diff --git a/Android.mk b/Android.mk
index c3b1094..984cd28 100644
--- a/Android.mk
+++ b/Android.mk
@@ -4,12 +4,6 @@
 # * 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)
 
@@ -26,7 +20,6 @@
 SRC_DIRS := \
 	$(BASE_DIR)/contacts/common \
 	$(BASE_DIR)/dialer \
-	$(BASE_DIR)/dialershared \
 	$(BASE_DIR)/incallui \
 	$(BASE_DIR)/voicemail
 
@@ -46,7 +39,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 += \
@@ -69,7 +62,6 @@
 	$(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 \
@@ -77,14 +69,12 @@
 	$(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 \
@@ -98,7 +88,6 @@
 	$(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 \
@@ -124,7 +113,6 @@
 	$(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 \
@@ -132,7 +120,6 @@
 	$(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 \
@@ -140,7 +127,6 @@
 	$(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 \
@@ -153,13 +139,12 @@
 	$(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/AndroidManifest.xml \
+	$(BASE_DIR)/voicemail/permissions.xml \
 
 
 # Merge all manifest files.
@@ -195,7 +180,6 @@
 	--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 \
@@ -203,14 +187,12 @@
 	--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 \
@@ -227,7 +209,6 @@
 	--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 \
@@ -242,7 +223,6 @@
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
 	android-common \
-	android-support-dynamic-animation \
 	com.android.vcard \
 	dialer-commons-io-target \
 	dialer-dagger2-target \
@@ -250,11 +230,6 @@
 	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 \
@@ -276,11 +251,6 @@
 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 := \
@@ -344,11 +314,6 @@
     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)
 
@@ -467,53 +432,3 @@
 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 7966a55..c04f8be 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="140000"
-  android:versionName="11.0">
+  android:versionCode="130000"
+  android:versionName="10.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
deleted file mode 100644
index 046372d..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..52ff857
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png
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
new file mode 100644
index 0000000..a0711d3
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png
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
deleted file mode 100644
index d25d388..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png
+++ /dev/null
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
deleted file mode 100644
index 6fccf5d..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..8df91f2
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png
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
deleted file mode 100644
index f2c8942..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png
+++ /dev/null
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
deleted file mode 100644
index ec67c6e..0000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png
+++ /dev/null
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
new file mode 100644
index 0000000..f0bb6f5
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png
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
deleted file mode 100644
index ddffcf1..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..eff56272
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png
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
new file mode 100644
index 0000000..65f7329
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png
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
deleted file mode 100644
index df06379..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png
+++ /dev/null
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
deleted file mode 100644
index 15094d8..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..1c3e8b9
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png
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
deleted file mode 100644
index e6f98af..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png
+++ /dev/null
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
deleted file mode 100644
index f2c8942..0000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png
+++ /dev/null
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
new file mode 100644
index 0000000..63ef736
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png
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
deleted file mode 100644
index b494eb3..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..e31fcf3
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png
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
new file mode 100644
index 0000000..7a5df52
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png
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
deleted file mode 100644
index d7a741b..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png
+++ /dev/null
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
deleted file mode 100644
index bb7915f..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..ca927f3
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png
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
deleted file mode 100644
index a2d78b2..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png
+++ /dev/null
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
deleted file mode 100644
index 9c002da..0000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png
+++ /dev/null
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
new file mode 100644
index 0000000..dc0c995
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png
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
deleted file mode 100644
index d5022d0..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..a8eb2a4
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png
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
new file mode 100644
index 0000000..7bd5b16
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png
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
deleted file mode 100644
index 82db542..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png
+++ /dev/null
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
deleted file mode 100644
index 7a15a9e..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..75469cd
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png
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
deleted file mode 100644
index 9c002da..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png
+++ /dev/null
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
deleted file mode 100644
index 5bb683f..0000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png
+++ /dev/null
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
new file mode 100644
index 0000000..919a872
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png
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
deleted file mode 100644
index 8e1fa20..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..7e08f61
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png
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
new file mode 100644
index 0000000..428009c
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png
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
deleted file mode 100644
index 0f0b2e1..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png
+++ /dev/null
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
deleted file mode 100644
index 22ca19a..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png
+++ /dev/null
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
new file mode 100644
index 0000000..eb284e3
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png
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
deleted file mode 100644
index 36be1da..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png
+++ /dev/null
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
deleted file mode 100644
index 1257e66..0000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png
+++ /dev/null
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
new file mode 100644
index 0000000..aed7668
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png
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
deleted file mode 100644
index 2989fda..0000000
--- a/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<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
deleted file mode 100644
index 1fbafeb..0000000
--- a/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<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
deleted file mode 100644
index 3f99732..0000000
--- a/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<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 6495ac7..4f1fd49 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>
+</vector>
\ No newline at end of file
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 b6da8a0..c67509c 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>
+</vector>
\ No newline at end of file
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
deleted file mode 100644
index d8567f5..0000000
--- a/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<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
deleted file mode 100644
index 280fa26..0000000
--- a/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<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
deleted file mode 100644
index cf4e563..0000000
--- a/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<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
deleted file mode 100644
index 083d636..0000000
--- a/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<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
deleted file mode 100644
index 429061a..0000000
--- a/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<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 3d76839..9345b0f 100644
--- a/java/com/android/contacts/common/ClipboardUtils.java
+++ b/java/com/android/contacts/common/ClipboardUtils.java
@@ -24,6 +24,8 @@
 
 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 3e1a78f..169348b 100644
--- a/java/com/android/contacts/common/ContactPhotoManager.java
+++ b/java/com/android/contacts/common/ContactPhotoManager.java
@@ -36,6 +36,14 @@
 /** 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;
 
@@ -80,7 +88,7 @@
       if (!TextUtils.isEmpty(request.identifier)) {
         builder.appendQueryParameter(IDENTIFIER_PARAM_KEY, request.identifier);
       }
-      if (request.contactType != LetterTileDrawable.TYPE_DEFAULT) {
+      if (request.contactType != TYPE_DEFAULT) {
         builder.appendQueryParameter(CONTACT_TYPE_PARAM_KEY, String.valueOf(request.contactType));
       }
       if (request.scale != SCALE_DEFAULT) {
@@ -106,7 +114,7 @@
   public static String appendBusinessContactType(String photoUrl) {
     Uri uri = Uri.parse(photoUrl);
     Builder builder = uri.buildUpon();
-    builder.encodedFragment(String.valueOf(LetterTileDrawable.TYPE_BUSINESS));
+    builder.encodedFragment(String.valueOf(TYPE_BUSINESS));
     return builder.build().toString();
   }
 
@@ -139,7 +147,7 @@
 
     String encodedFragment = photoUri.getEncodedFragment();
     return !TextUtils.isEmpty(encodedFragment)
-        && encodedFragment.equals(String.valueOf(LetterTileDrawable.TYPE_BUSINESS));
+        && encodedFragment.equals(String.valueOf(TYPE_BUSINESS));
   }
 
   protected static DefaultImageRequest getDefaultImageRequestFromUri(Uri uri) {
@@ -370,7 +378,7 @@
      * be returned.
      */
     public static final DefaultImageRequest EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST =
-        new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, false);
+        new DefaultImageRequest(null, null, TYPE_BUSINESS, false);
     /**
      * Used to indicate that a circular drawable that represents a contact without any contact
      * details should be returned.
@@ -382,7 +390,7 @@
      * should be returned.
      */
     public static final DefaultImageRequest EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST =
-        new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, true);
+        new DefaultImageRequest(null, null, TYPE_BUSINESS, true);
     /** The contact's display name. The display name is used to */
     public String displayName;
     /**
@@ -395,9 +403,10 @@
     /**
      * 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.
+     * identifier. See: {@link #TYPE_PERSON} {@link #TYPE_BUSINESS} {@link #TYPE_PERSON} {@link
+     * #TYPE_DEFAULT}
      */
-    public @LetterTileDrawable.ContactType int contactType = LetterTileDrawable.TYPE_DEFAULT;
+    public int contactType = 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.
@@ -420,13 +429,7 @@
     public DefaultImageRequest() {}
 
     public DefaultImageRequest(String displayName, String identifier, boolean isCircular) {
-      this(
-          displayName,
-          identifier,
-          LetterTileDrawable.TYPE_DEFAULT,
-          SCALE_DEFAULT,
-          OFFSET_DEFAULT,
-          isCircular);
+      this(displayName, identifier, 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 28ecf34..2e6ff9f 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,9 +634,8 @@
           }
           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 c5347e7..97d84c8 100644
--- a/java/com/android/contacts/common/ContactStatusUtil.java
+++ b/java/com/android/contacts/common/ContactStatusUtil.java
@@ -23,6 +23,8 @@
 /** 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 66ccc90..60af44b 100644
--- a/java/com/android/contacts/common/ContactsUtils.java
+++ b/java/com/android/contacts/common/ContactsUtils.java
@@ -16,17 +16,184 @@
 
 package com.android.contacts.common;
 
-import android.provider.ContactsContract.Contacts;
+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.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.
@@ -65,13 +232,27 @@
           : USER_TYPE_CURRENT;
     }
     // Only check contact id if directory id is null
-    if (contactId != null && contactId != 0L && Contacts.isEnterpriseContactId(contactId)) {
+    if (contactId != null && contactId != 0L && ContactsCompat.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
new file mode 100644
index 0000000..50b0cd9
--- /dev/null
+++ b/java/com/android/contacts/common/GeoUtil.java
@@ -0,0 +1,55 @@
+/*
+ * 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 26241b3..028f899 100644
--- a/java/com/android/contacts/common/MoreContactUtils.java
+++ b/java/com/android/contacts/common/MoreContactUtils.java
@@ -16,6 +16,7 @@
 
 package com.android.contacts.common;
 
+import android.content.Context;
 import android.content.Intent;
 import android.graphics.Rect;
 import android.net.Uri;
@@ -23,6 +24,7 @@
 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;
@@ -192,6 +194,40 @@
   }
 
   /**
+   * 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 e0c9b7e..39d0b55 100644
--- a/java/com/android/contacts/common/compat/ContactsCompat.java
+++ b/java/com/android/contacts/common/compat/ContactsCompat.java
@@ -21,6 +21,7 @@
 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 {
@@ -28,6 +29,8 @@
   // 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() {}
@@ -38,4 +41,17 @@
     }
     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 aa22c68..6a24ec0 100644
--- a/java/com/android/contacts/common/compat/PhoneAccountCompat.java
+++ b/java/com/android/contacts/common/compat/PhoneAccountCompat.java
@@ -20,10 +20,33 @@
 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.
@@ -38,16 +61,44 @@
     if (phoneAccount == null || context == null) {
       return null;
     }
-    return createIconDrawableMarshmallow(phoneAccount, context);
+
+    if (CompatUtils.isMarshmallowCompatible()) {
+      return createIconDrawableMarshmallow(phoneAccount, context);
+    }
+
+    if (CompatUtils.isLollipopMr1Compatible()) {
+      return createIconDrawableLollipopMr1(phoneAccount, context);
+    }
+    return null;
   }
 
   @Nullable
   private static Drawable createIconDrawableMarshmallow(
       PhoneAccount phoneAccount, Context context) {
-    Icon accountIcon = phoneAccount.getIcon();
+    Icon accountIcon = getIcon(phoneAccount);
     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 a6cfe07..960b340 100644
--- a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
+++ b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
@@ -17,7 +17,13 @@
 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
@@ -31,16 +37,138 @@
   /** 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) {
-    return PhoneNumberUtils.createTtsSpannable(phoneNumber);
+    if (CompatUtils.isMarshmallowCompatible()) {
+      return PhoneNumberUtils.createTtsSpannable(phoneNumber);
+    } else {
+      return createTtsSpannableInternal(phoneNumber);
+    }
   }
 
   public static TtsSpan createTtsSpan(String phoneNumber) {
-    return PhoneNumberUtils.createTtsSpan(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();
   }
 }
diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
index 4a16fb8..7e4803c 100644
--- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
+++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
@@ -27,6 +27,7 @@
 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 {
@@ -48,6 +49,31 @@
   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)
    *
@@ -59,7 +85,31 @@
     if (telephonyManager == null) {
       return 1;
     }
-    return telephonyManager.getPhoneCount();
+    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;
   }
 
   /**
@@ -69,7 +119,14 @@
    * @return {@code true} if the device supports TTY mode, and {@code false} otherwise.
    */
   public static boolean isTtyModeSupported(@Nullable TelephonyManager telephonyManager) {
-    return telephonyManager != null && telephonyManager.isTtyModeSupported();
+    if (telephonyManager == null) {
+      return false;
+    }
+    if (CompatUtils.isMarshmallowCompatible()
+        || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isTtyModeSupported")) {
+      return telephonyManager.isTtyModeSupported();
+    }
+    return false;
   }
 
   /**
@@ -81,7 +138,15 @@
    */
   public static boolean isHearingAidCompatibilitySupported(
       @Nullable TelephonyManager telephonyManager) {
-    return telephonyManager != null && telephonyManager.isHearingAidCompatibilitySupported();
+    if (telephonyManager == null) {
+      return false;
+    }
+    if (CompatUtils.isMarshmallowCompatible()
+        || CompatUtils.isMethodAvailable(
+            TELEPHONY_MANAGER_CLASS, "isHearingAidCompatibilitySupported")) {
+      return telephonyManager.isHearingAidCompatibilitySupported();
+    }
+    return false;
   }
 
   /**
diff --git a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
index 43eae58..5687f6f 100644
--- a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
+++ b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
@@ -15,19 +15,275 @@
  */
 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.
    *
@@ -36,7 +292,9 @@
    */
   @Nullable
   public static PhoneAccountHandle getSimCallManager(TelecomManager telecomManager) {
-    if (telecomManager != null) {
+    if (telecomManager != null
+        && (CompatUtils.isMarshmallowCompatible()
+            || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "getSimCallManager"))) {
       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 88fac02..0e79371 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.lettertiles.LetterTileDrawable;
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
 import com.android.dialer.animation.AnimUtils;
 import com.android.dialer.callintent.CallInitiationType;
 import com.android.dialer.callintent.CallIntentBuilder;
@@ -154,7 +154,11 @@
                   .setCallSubject(subject)
                   .build();
 
-          getSystemService(TelecomManager.class).placeCall(intent.getData(), intent.getExtras());
+          TelecomManagerCompat.placeCall(
+              CallSubjectDialog.this,
+              (TelecomManager) getSystemService(Context.TELECOM_SERVICE),
+              intent);
+
           mSubjectHistory.add(subject);
           saveSubjectHistory(mSubjectHistory);
           finish();
@@ -198,7 +202,7 @@
         number /* number */,
         null /* displayNumber */,
         null /* numberLabel */,
-        LetterTileDrawable.TYPE_DEFAULT,
+        ContactPhotoManager.TYPE_DEFAULT,
         null /* phoneAccountHandle */);
   }
 
@@ -352,7 +356,7 @@
     mNumber = arguments.getString(ARG_NUMBER);
     mDisplayNumber = arguments.getString(ARG_DISPLAY_NUMBER);
     mNumberLabel = arguments.getString(ARG_NUMBER_LABEL);
-    mContactType = arguments.getInt(ARG_CONTACT_TYPE, LetterTileDrawable.TYPE_DEFAULT);
+    mContactType = arguments.getInt(ARG_CONTACT_TYPE, ContactPhotoManager.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
new file mode 100644
index 0000000..727c15b
--- /dev/null
+++ b/java/com/android/contacts/common/format/FormatUtils.java
@@ -0,0 +1,181 @@
+/*
+ * 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 f397f04..30c03fd 100644
--- a/java/com/android/contacts/common/format/TextHighlighter.java
+++ b/java/com/android/contacts/common/format/TextHighlighter.java
@@ -24,6 +24,8 @@
 /** 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;
@@ -79,7 +81,7 @@
     }
     final String trimmedPrefix = prefix.substring(prefixStart);
 
-    int index = indexOfWordPrefix(text, trimmedPrefix);
+    int index = FormatUtils.indexOfWordPrefix(text, trimmedPrefix);
     if (index != -1) {
       final SpannableString result = new SpannableString(text);
       result.setSpan(mTextStyleSpan, index, index + trimmedPrefix.length(), 0 /* flags */);
@@ -88,55 +90,4 @@
       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
new file mode 100644
index 0000000..293d9d5
--- /dev/null
+++ b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java
@@ -0,0 +1,85 @@
+/*
+ * 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 5e77b69..88522c4 100644
--- a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
+++ b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
@@ -30,10 +30,8 @@
 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;
@@ -408,30 +406,4 @@
     }
     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 064214e..18bbae3 100644
--- a/java/com/android/contacts/common/list/ContactEntryListAdapter.java
+++ b/java/com/android/contacts/common/list/ContactEntryListAdapter.java
@@ -26,6 +26,7 @@
 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;
@@ -38,10 +39,7 @@
 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;
 
 /**
@@ -356,7 +354,7 @@
     if (cursor.getCount() == 0) {
       // Directory table must have at least local directory, without which this adapter will
       // enter very weird state.
-      LogUtil.e(
+      Log.e(
           TAG,
           "Directory search loader returned an empty cursor, which implies we have "
               + "no directory entries.",
@@ -680,9 +678,6 @@
       // 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 146986f..278175c 100644
--- a/java/com/android/contacts/common/list/ContactEntryListFragment.java
+++ b/java/com/android/contacts/common/list/ContactEntryListFragment.java
@@ -555,6 +555,7 @@
   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 5a27491..7a31947 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,6 +55,7 @@
 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;
@@ -80,15 +81,13 @@
 
   /** IntDef for indices of ViewPager tabs. */
   @Retention(RetentionPolicy.SOURCE)
-  @IntDef({NONE, VIDEO, LIGHTBRINGER, CALL_AND_SHARE})
+  @IntDef({NONE, VIDEO, CALL_AND_SHARE})
   public @interface CallToAction {}
 
   public static final int NONE = 0;
   public static final int VIDEO = 1;
-  public static final int LIGHTBRINGER = 2;
-  public static final int CALL_AND_SHARE = 3;
+  public static final int CALL_AND_SHARE = 2;
 
-  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 = '[';
@@ -107,7 +106,7 @@
   private int mNameTextViewTextSize;
   private int mHeaderWidth;
   private Drawable mActivatedBackgroundDrawable;
-  private int mCallToActionSize = 48;
+  private int mCallToActionSize = 32;
   private int mCallToActionMargin = 16;
   // Set in onLayout. Represent left and right position of the View on the screen.
   private int mLeftOffset;
@@ -123,7 +122,10 @@
   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;
@@ -137,7 +139,7 @@
   private TextView mSnippetView;
   private TextView mStatusView;
   private ImageView mPresenceIcon;
-  @NonNull private final ImageView mCallToActionView;
+  private ImageView mCallToAction;
   private ImageView mWorkProfileIcon;
   private ColorStateList mSecondaryTextColor;
   private int mDefaultPhotoViewSize = 0;
@@ -179,14 +181,23 @@
   private Rect mBoundsWithoutHeader = new Rect();
   private CharSequence mUnknownNameText;
 
-  private String mPhoneNumber;
-  private int mPosition = -1;
-  private @CallToAction int mCallToAction = NONE;
+  public ContactListItemView(Context context) {
+    super(context);
 
-  public ContactListItemView(Context context, AttributeSet attrs, boolean supportVideoCallIcon) {
+    mTextHighlighter = new TextHighlighter(Typeface.BOLD);
+    mNameHighlightSequence = new ArrayList<>();
+    mNumberHighlightSequence = new ArrayList<>();
+  }
+
+  public ContactListItemView(
+      Context context,
+      AttributeSet attrs,
+      boolean supportVideoCallIcon,
+      boolean supportCallAndShare) {
     this(context, attrs);
 
     mSupportVideoCall = supportVideoCallIcon;
+    mSupportCallAndShare = supportCallAndShare;
   }
 
   public ContactListItemView(Context context, AttributeSet attrs) {
@@ -273,20 +284,19 @@
     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() {
-    int layoutDirection = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault());
-    return layoutDirection == View.LAYOUT_DIRECTION_RTL ? PhotoPosition.RIGHT : PhotoPosition.LEFT;
+  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);
+    }
   }
 
   /**
@@ -323,47 +333,35 @@
    * @param position The position in the adapter of the call to action.
    */
   public void setCallToAction(@CallToAction int action, Listener listener, int position) {
-    mCallToAction = action;
-    mPosition = position;
-
-    Drawable drawable;
+    int drawable;
     int description;
     OnClickListener onClickListener;
-    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;
+    if (action == CALL_AND_SHARE && mSupportCallAndShare) {
+      drawable = R.drawable.ic_call_and_share;
+      description = R.string.description_search_video_call;
       onClickListener = v -> listener.onCallAndShareIconClicked(position);
     } else if (action == VIDEO && mSupportVideoCall) {
-      drawable =
-          getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
-      drawable.setAutoMirrored(true);
-      description = R.string.description_search_video_call;
+      drawable = R.drawable.ic_search_video_call;
+      description = R.string.description_search_call_and_share;
       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 {
-      mCallToActionView.setVisibility(View.GONE);
-      mCallToActionView.setOnClickListener(null);
+      if (mCallToAction != null) {
+        mCallToAction.setVisibility(View.GONE);
+        mCallToAction.setOnClickListener(null);
+      }
       return;
     }
 
-    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;
+    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);
   }
 
   /**
@@ -378,6 +376,18 @@
     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
@@ -413,7 +423,9 @@
       effectiveWidth -= mHeaderWidth + mGapBetweenImageAndText;
     }
 
-    effectiveWidth -= (mCallToActionSize + mCallToActionMargin);
+    if (mSupportVideoCall || mSupportCallAndShare) {
+      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.
@@ -484,9 +496,11 @@
       mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight();
     }
 
-    mCallToActionView.measure(
-        MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
-        MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
+    if ((mSupportVideoCall || mSupportCallAndShare) && isVisible(mCallToAction)) {
+      mCallToAction.measure(
+          MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
+          MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
+    }
 
     if (isVisible(mWorkProfileIcon)) {
       mWorkProfileIcon.measure(
@@ -615,30 +629,34 @@
       leftBound += mTextIndent;
     }
 
-    // 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 (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;
 
-    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 (!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 (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.
@@ -883,7 +901,9 @@
     }
     if (mQuickContact == null) {
       mQuickContact = new QuickContactBadge(getContext());
-      mQuickContact.setOverlay(null);
+      if (CompatUtils.isLollipopCompatible()) {
+        mQuickContact.setOverlay(null);
+      }
       mQuickContact.setLayoutParams(getDefaultPhotoLayoutParams());
       if (mNameTextView != null) {
         mQuickContact.setContentDescription(
@@ -988,7 +1008,9 @@
       mNameTextView.setGravity(Gravity.CENTER_VERTICAL);
       mNameTextView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
       mNameTextView.setId(R.id.cliv_name_textview);
-      mNameTextView.setElegantTextHeight(false);
+      if (CompatUtils.isLollipopCompatible()) {
+        mNameTextView.setElegantTextHeight(false);
+      }
       addView(mNameTextView);
     }
     return mNameTextView;
@@ -1034,7 +1056,6 @@
    * exists.
    */
   public void setPhoneNumber(String text) {
-    mPhoneNumber = text;
     if (text == null) {
       if (mDataView != null) {
         mDataView.setVisibility(View.GONE);
@@ -1065,10 +1086,6 @@
     }
   }
 
-  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
@@ -1092,7 +1109,9 @@
       mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
       mDataView.setActivated(isActivated());
       mDataView.setId(R.id.cliv_data_view);
-      mDataView.setElegantTextHeight(false);
+      if (CompatUtils.isLollipopCompatible()) {
+        mDataView.setElegantTextHeight(false);
+      }
       addView(mDataView);
     }
     return mDataView;
@@ -1450,17 +1469,28 @@
     forceLayout();
   }
 
+  public void setPhotoPosition(PhotoPosition photoPosition) {
+    mPhotoPosition = photoPosition;
+  }
+
   /**
    * Set drawable resources directly for the drawable resource of the photo view.
    *
-   * @param drawable A drawable resource.
+   * @param drawableId Id of drawable resource.
    */
-  public void setDrawable(Drawable drawable) {
+  public void setDrawableResource(int drawableId) {
     ImageView photo = getPhotoView();
     photo.setScaleType(ImageView.ScaleType.CENTER);
-    int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
-    photo.setImageDrawable(drawable);
-    photo.setImageTintList(ColorStateList.valueOf(iconColor));
+    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);
+    }
   }
 
   @Override
diff --git a/java/com/android/contacts/common/list/ContactTileView.java b/java/com/android/contacts/common/list/ContactTileView.java
index 15582d6..9273b05 100644
--- a/java/com/android/contacts/common/list/ContactTileView.java
+++ b/java/com/android/contacts/common/list/ContactTileView.java
@@ -19,6 +19,7 @@
 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;
@@ -27,9 +28,6 @@
 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 {
@@ -62,14 +60,8 @@
         if (mListener == null) {
           return;
         }
-        CallSpecificAppData callSpecificAppData =
-            CallSpecificAppData.newBuilder()
-                .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
-                .build();
         mListener.onContactSelected(
-            getLookupUri(),
-            MoreContactUtils.getTargetRectFromView(ContactTileView.this),
-            callSpecificAppData);
+            getLookupUri(), MoreContactUtils.getTargetRectFromView(ContactTileView.this));
       }
     };
   }
@@ -105,7 +97,7 @@
 
         }
       } else {
-        LogUtil.w(TAG, "contactPhotoManager not set");
+        Log.w(TAG, "contactPhotoManager not set");
       }
     } else {
       setVisibility(View.INVISIBLE);
@@ -171,10 +163,9 @@
   public interface Listener {
 
     /** Notification that the contact was selected; no specific action is dictated. */
-    void onContactSelected(
-        Uri contactLookupUri, Rect viewRect, CallSpecificAppData callSpecificAppData);
+    void onContactSelected(Uri contactLookupUri, Rect viewRect);
 
     /** Notification that the specified number is to be called. */
-    void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData);
+    void onCallNumberDirectly(String phoneNumber);
   }
 }
diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
index 65e6f2d..9a490d7 100644
--- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
+++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
@@ -30,6 +30,7 @@
 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;
@@ -37,17 +38,15 @@
 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;
@@ -69,15 +68,16 @@
   // 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 mIsPresenceEnabled;
-  protected final boolean mIsImsVideoEnabled;
-
+  private final boolean mCallAndShareEnabled;
   // 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,8 +88,11 @@
         PhoneDirectoryExtenderAccessor.get(mContext).getExtendedDirectories(mContext);
 
     int videoCapabilities = CallUtil.getVideoCallingAvailability(context);
-    mIsImsVideoEnabled = CallUtil.isVideoEnabled(context);
+    mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0;
     mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0;
+
+    // TODO
+    mCallAndShareEnabled = true;
   }
 
   @Override
@@ -246,10 +249,10 @@
     return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null;
   }
 
-  public DialerContact getDialerContact(int position) {
+  public CallComposerContact getCallComposerContact(int position) {
     Cursor cursor = (Cursor) getItem(position);
     if (cursor == null) {
-      LogUtil.e("PhoneNumberListAdapter.getDialerContact", "cursor was null.");
+      LogUtil.e("PhoneNumberListAdapter.getCallComposerContact", "cursor was null.");
       return null;
     }
 
@@ -260,11 +263,11 @@
         Contacts.getLookupUri(
             cursor.getLong(PhoneQuery.CONTACT_ID), cursor.getString(PhoneQuery.LOOKUP_KEY));
 
-    DialerContact.Builder contact = DialerContact.newBuilder();
+    CallComposerContact.Builder contact = CallComposerContact.newBuilder();
     contact
         .setNumber(number)
         .setPhotoId(cursor.getLong(PhoneQuery.PHOTO_ID))
-        .setContactType(LetterTileDrawable.TYPE_DEFAULT)
+        .setContactType(ContactPhotoManager.TYPE_DEFAULT)
         .setNameOrNumber(displayName)
         .setNumberLabel(
             Phone.getTypeLabel(
@@ -294,6 +297,7 @@
     ContactListItemView view = super.newView(context, partition, cursor, position, parent);
     view.setUnknownNameText(mUnknownNameText);
     view.setQuickContactEnabled(isQuickContactEnabled());
+    view.setPhotoPosition(mPhotoPosition);
     return view;
   }
 
@@ -397,17 +401,13 @@
       int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE);
       boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
 
-      boolean isVideoIconShown = mIsImsVideoEnabled && (!mIsPresenceEnabled || isPresent);
+      boolean isVideoIconShown = mIsVideoEnabled && (!mIsPresenceEnabled || isPresent);
       if (isVideoIconShown) {
         action = ContactListItemView.VIDEO;
       }
     }
 
-    if (LightbringerComponent.get(mContext).getLightbringer().isReachable(mContext, number)) {
-      action = ContactListItemView.LIGHTBRINGER;
-    }
-
-    if (action == ContactListItemView.NONE) {
+    if (isCallAndShareEnabled() && action == ContactListItemView.NONE && number != null) {
       EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
       EnrichedCallCapabilities capabilities = manager.getCapabilities(number);
       if (capabilities != null && capabilities.supportsCallComposer()) {
@@ -481,6 +481,14 @@
     }
   }
 
+  public ContactListItemView.PhotoPosition getPhotoPosition() {
+    return mPhotoPosition;
+  }
+
+  public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
+    mPhotoPosition = photoPosition;
+  }
+
   public void setUseCallableUri(boolean useCallableUri) {
     mUseCallableUri = useCallableUri;
   }
@@ -562,12 +570,14 @@
     mListener = listener;
   }
 
+  public boolean isCallAndShareEnabled() {
+    return mCallAndShareEnabled;
+  }
+
   public interface Listener {
 
     void onVideoCallIconClicked(int position);
 
-    void onLightbringerIconClicked(int position);
-
     void onCallAndShareIconClicked(int position);
   }
 
@@ -632,14 +642,18 @@
     static {
       final List<String> projectionList =
           new ArrayList<>(Arrays.asList(PROJECTION_PRIMARY_INTERNAL));
-      projectionList.add(Phone.CARRIER_PRESENCE); // 9
+      if (CompatUtils.isMarshmallowCompatible()) {
+        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));
-      projectionList.add(Phone.CARRIER_PRESENCE); // 9
+      if (CompatUtils.isMarshmallowCompatible()) {
+        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 79e6700..8f25f82 100644
--- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
+++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
@@ -29,18 +29,15 @@
 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;
@@ -64,6 +61,9 @@
 
   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(false);
+    setSectionHeaderDisplayEnabled(true);
     setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
 
     // Show nothing instead of letting caller Activity show something.
@@ -85,32 +85,17 @@
    */
   @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));
-    DialerContact contact = ((PhoneNumberListAdapter) getAdapter()).getDialerContact(position);
+    CallComposerContact contact =
+        ((PhoneNumberListAdapter) getAdapter()).getCallComposerContact(position);
     ProtoParsers.put(intent, "CALL_COMPOSER_CONTACT", contact);
     startActivity(intent);
   }
@@ -335,27 +320,7 @@
   @Override
   public void onCapabilitiesUpdated() {
     if (getAdapter() != null) {
-      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());
-      }
+      getAdapter().notifyDataSetChanged();
     }
   }
 
@@ -395,6 +360,12 @@
     if (!isSearchMode() && mFilter != null) {
       adapter.setFilter(mFilter);
     }
+
+    setPhotoPosition(adapter);
+  }
+
+  protected void setPhotoPosition(ContactEntryListAdapter adapter) {
+    ((PhoneNumberListAdapter) adapter).setPhotoPosition(mPhotoPosition);
   }
 
   @Override
@@ -418,6 +389,15 @@
     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 1e6cf13..34f623e 100644
--- a/java/com/android/contacts/common/list/ViewPagerTabs.java
+++ b/java/com/android/contacts/common/list/ViewPagerTabs.java
@@ -33,6 +33,7 @@
 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,
@@ -42,13 +43,7 @@
  */
 public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnPageChangeListener {
 
-  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 ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER;
   private static final int TAB_SIDE_PADDING_IN_DPS = 10;
   // TODO: This should use <declare-styleable> in the future
   private static final int[] ATTRS =
@@ -59,6 +54,20 @@
         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.
@@ -102,8 +111,10 @@
         new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
     a.recycle();
 
-    // enable shadow casting from view bounds
-    setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER);
+    if (CompatUtils.isLollipopCompatible()) {
+      // 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
new file mode 100644
index 0000000..7d9e42b
--- /dev/null
+++ b/java/com/android/contacts/common/location/CountryDetector.java
@@ -0,0 +1,221 @@
+/*
+ * 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
new file mode 100644
index 0000000..f23e09e
--- /dev/null
+++ b/java/com/android/contacts/common/location/UpdateCountryService.java
@@ -0,0 +1,104 @@
+/*
+ * 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 7ef3b73..55464b1 100644
--- a/java/com/android/contacts/common/model/ContactLoader.java
+++ b/java/com/android/contacts/common/model/ContactLoader.java
@@ -522,7 +522,6 @@
     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 ccdad36..8e9ba73 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_vd_theme_24;
+    kind.iconAltRes = R.drawable.quantum_ic_message_white_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_vd_theme_24;
+      kind.iconAltRes = R.drawable.quantum_ic_message_white_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
new file mode 100644
index 0000000..d86b219
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png
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
new file mode 100644
index 0000000..ddbb2c4
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png
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
new file mode 100644
index 0000000..d5942dc
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png
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
new file mode 100644
index 0000000..4dc5065
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png
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
new file mode 100644
index 0000000..9695529
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png
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
new file mode 100644
index 0000000..540ab4d
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png
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
new file mode 100644
index 0000000..017e4bb
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png
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
new file mode 100644
index 0000000..703d30b
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png
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
new file mode 100644
index 0000000..c7b1113
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png
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
new file mode 100644
index 0000000..deb3a6d
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png
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
new file mode 100644
index 0000000..06bd18f
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png
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
new file mode 100644
index 0000000..d829d11
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png
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
new file mode 100644
index 0000000..1ba1295
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png
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
new file mode 100644
index 0000000..5ff3ac5
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png
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
new file mode 100644
index 0000000..b4ebfc7
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png
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
new file mode 100644
index 0000000..03fd2fb
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png
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
new file mode 100644
index 0000000..e8cb0f5
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png
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
new file mode 100644
index 0000000..4513796
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png
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
new file mode 100644
index 0000000..1c9bb81
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png
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
new file mode 100644
index 0000000..56708b0
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png
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
new file mode 100644
index 0000000..ccdda67
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png
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
new file mode 100644
index 0000000..603ddc8
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png
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
new file mode 100644
index 0000000..97905c9
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png
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
new file mode 100644
index 0000000..2121878
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png
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
new file mode 100644
index 0000000..4ea7afa
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..cddf9be
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png
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
new file mode 100644
index 0000000..86578be
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png
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
new file mode 100644
index 0000000..e9afcc9
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png
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
new file mode 100644
index 0000000..2054530
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png
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
new file mode 100644
index 0000000..a0f1756
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png
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
new file mode 100644
index 0000000..ae93717
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png
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
new file mode 100644
index 0000000..4139942
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png
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
new file mode 100644
index 0000000..569d28f
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png
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
new file mode 100644
index 0000000..5ec4c96
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png
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
new file mode 100644
index 0000000..4139942
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png
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
new file mode 100644
index 0000000..065ff62
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png
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
new file mode 100644
index 0000000..013d5e7
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png
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
new file mode 100644
index 0000000..947f03c
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..6d09d72
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..63c7456
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..4139942
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png
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
new file mode 100644
index 0000000..af58554
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png
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
new file mode 100644
index 0000000..cb801ac
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png
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
new file mode 100644
index 0000000..3bf8e03
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..86578be
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png
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
new file mode 100644
index 0000000..3226ab7
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png
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
new file mode 100644
index 0000000..061904c
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png
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
new file mode 100644
index 0000000..1d9371d
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png
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
new file mode 100644
index 0000000..046b24a
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..1ff3373
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..2eb7c7e
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..eda10e6
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..86578be
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png
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
new file mode 100644
index 0000000..5532e88
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png
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
new file mode 100644
index 0000000..f4af926
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png
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
new file mode 100644
index 0000000..8fb0636
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png
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
new file mode 100644
index 0000000..52c00dd
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png
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
new file mode 100644
index 0000000..3e4ca68
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png
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
new file mode 100644
index 0000000..230d649
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png
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
new file mode 100644
index 0000000..1352a17
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png
Binary files differ
diff --git a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
similarity index 69%
copy from java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
copy to java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
index 33ca1fd..ecf704e 100644
--- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ 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.
@@ -14,8 +14,7 @@
   ~ 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:color="#80FFFFFF" android:state_enabled="false"/>
-  <item android:color="@android:color/white"/>
-</selector>
+<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
diff --git a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
similarity index 65%
copy from java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
copy to java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
index 33ca1fd..be0cdd3 100644
--- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ 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.
@@ -15,7 +15,8 @@
   ~ limitations under the License
   -->
 
-<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>
+<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/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
similarity index 70%
rename from java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
rename to java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
index 33ca1fd..c2538cf 100644
--- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ 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.
@@ -14,8 +14,7 @@
   ~ 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:color="#80FFFFFF" android:state_enabled="false"/>
-  <item android:color="@android:color/white"/>
-</selector>
+<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"/>
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
new file mode 100644
index 0000000..476212d
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml
@@ -0,0 +1,20 @@
+<?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/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
similarity index 65%
copy from java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
copy to java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
index 33ca1fd..0fe0367 100644
--- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2017 The Android Open Source Project
+  ~ 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.
@@ -15,7 +15,8 @@
   ~ limitations under the License
   -->
 
-<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>
+<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
new file mode 100644
index 0000000..35fff99
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml
@@ -0,0 +1,20 @@
+<?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 df8e8d2..a33b2ac 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_vd_theme_24"
+          android:src="@drawable/quantum_ic_history_white_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 7192eb0..fa16083 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/quantum_ic_arrow_back_vd_theme_24"
+    android:src="@drawable/ic_back_arrow"
     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_vd_theme_24"
+    android:src="@drawable/quantum_ic_close_white_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 48e4158..52e612d 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="6338030032554019678">"<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="8726132674272173486">"<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 4121474..0283fbb 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="6338030032554019678">"<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="8726132674272173486">"<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 98fb057..a3862fe 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="6338030032554019678">"<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="8726132674272173486">"<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 813ada7..9433771 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="6338030032554019678">"<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="8726132674272173486">"<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 3eccfc6..fc99567 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="6338030032554019678">"<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="8726132674272173486">"<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 99922a8..a9652a1 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="6338030032554019678">"<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="8726132674272173486">"<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 c2ebd27..0b57eb6 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="6338030032554019678">"<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="8726132674272173486">"<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 47e9b02..8e783d1 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="6338030032554019678">"<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="8726132674272173486">"<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 305a746..278f6a8 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="6338030032554019678">"<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="8726132674272173486">"<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 8e80686..ad31a01 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="6338030032554019678">"<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="8726132674272173486">"<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 7aea200..ab54be9 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="6338030032554019678">"<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="8726132674272173486">"<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 430895a..965d04a 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="6338030032554019678">"<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="8726132674272173486">"<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 a46f278..60c5e68 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="6338030032554019678">"<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="8726132674272173486">"<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 567b8fb..9af3bc5 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="6338030032554019678">"<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="8726132674272173486">"<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 660993d..996c6ee 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="6338030032554019678">"<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="8726132674272173486">"<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 660993d..996c6ee 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="6338030032554019678">"<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="8726132674272173486">"<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 660993d..996c6ee 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="6338030032554019678">"<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="8726132674272173486">"<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 1c0339a..acb563c 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="6338030032554019678">"<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="8726132674272173486">"<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 b0956ec..def7a44 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="6338030032554019678">"<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="8726132674272173486">"<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 e152f59..c80d542 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="6338030032554019678">"<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="8726132674272173486">"<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 967b635..868d668 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="6338030032554019678">"<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="8726132674272173486">"<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 3650e46..dda1064 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="6338030032554019678">"<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="8726132674272173486">"<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 b7739de..b8065b2 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="6338030032554019678">"<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="8726132674272173486">"<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 c20b882..82f5492 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="6338030032554019678">"<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="8726132674272173486">"<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 93b52dc..474d721 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="6338030032554019678">"<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="8726132674272173486">"<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 4aa1fc1..4a3262a 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="6338030032554019678">"<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="8726132674272173486">"<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 8bbfb3a..536aceb 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="6338030032554019678">"<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="8726132674272173486">"<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 c1af9b7..c61e195 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="6338030032554019678">"<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="8726132674272173486">"<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 a60c884..66986dd 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="6338030032554019678">"<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="8726132674272173486">"<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 19fbbe8..22bf509 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="6338030032554019678">"<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="8726132674272173486">"<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 b3ed5e5..85c9023 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="6338030032554019678">"<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="8726132674272173486">"<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 13252a5..d7ee8bf 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="6338030032554019678">"<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="8726132674272173486">"<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 569c10f..26c1aef 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="6338030032554019678">"<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="8726132674272173486">"<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 342cd61..8ea5648 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="6338030032554019678">"<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="8726132674272173486">"<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 e0d8e5d..2a6b2c1 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="6338030032554019678">"‎<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="8726132674272173486">"<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 e224a38..3271b46 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="6338030032554019678">"<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="8726132674272173486">"<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 86273b3..ebbee6e 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="6338030032554019678">"<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="8726132674272173486">"<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 45df334..327532a 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="6338030032554019678">"<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="8726132674272173486">"<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 8d4ba2a..5030167 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="6338030032554019678">"<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="8726132674272173486">"<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 0dfdaa6..446e078 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="6338030032554019678">"<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="8726132674272173486">"<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 13edcc1..4c2bd4f 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="6338030032554019678">"<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="8726132674272173486">"<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 43e12e7..e5bab45 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="6338030032554019678">"<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="8726132674272173486">"<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 d98ec8b..c649539 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="6338030032554019678">"<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="8726132674272173486">"<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 53773b2..b74bd99 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="6338030032554019678">"<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="8726132674272173486">"<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 cc56901..c09a27f 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="6338030032554019678">"<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="8726132674272173486">"<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 f6a4af8..da1530f 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="6338030032554019678">"<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="8726132674272173486">"<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 dfc21ff..7e92749 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="6338030032554019678">"<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="8726132674272173486">"<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 a5c2afd..f0a8c92 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="6338030032554019678">"<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="8726132674272173486">"<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 d632bb1..96504c7 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="6338030032554019678">"<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="8726132674272173486">"<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 24ff737..60d2b7a 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="6338030032554019678">"<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="8726132674272173486">"<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 c0cb020..d81e895 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="6338030032554019678">"<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="8726132674272173486">"<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 80507fc..7085cb3 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="6338030032554019678">"<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="8726132674272173486">"<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 2459c8a..1f54232 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="6338030032554019678">"<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="8726132674272173486">"<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 c92249b..9d41899 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="6338030032554019678">"<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="8726132674272173486">"<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 80507fc..7085cb3 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="6338030032554019678">"<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="8726132674272173486">"<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 6401993..c96510c 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="6338030032554019678">"<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="8726132674272173486">"<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 c10bb1f..c4e65f5 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="6338030032554019678">"<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="8726132674272173486">"<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 95bbb0b..ee2b87c 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="6338030032554019678">"<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="8726132674272173486">"<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 c3b50e0..44bba14 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="6338030032554019678">"<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="8726132674272173486">"<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 95bbb0b..ee2b87c 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="6338030032554019678">"<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="8726132674272173486">"<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 da0d5da..358e7af 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="6338030032554019678">"<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="8726132674272173486">"<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 f4e1d84..3442f2c 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="6338030032554019678">"<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="8726132674272173486">"<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 fc121f6..72ca32d 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="6338030032554019678">"<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="8726132674272173486">"<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 90a4752..b85f63f 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="6338030032554019678">"<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="8726132674272173486">"<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 ef2e1a3..f4c39de 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="6338030032554019678">"<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="8726132674272173486">"<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 3011492..553c46d 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="6338030032554019678">"<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="8726132674272173486">"<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 25adf7b..99997e6 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="6338030032554019678">"<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="8726132674272173486">"<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 ee748a4..79e56e5 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="6338030032554019678">"<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="8726132674272173486">"<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 7bd0835..4d30271 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="6338030032554019678">"<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="8726132674272173486">"<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 d5b3f93..e041a99 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="6338030032554019678">"<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="8726132674272173486">"<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 4126ddc..6dd0e21 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="6338030032554019678">"<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="8726132674272173486">"<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 2d52f34..b979e74 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="6338030032554019678">"<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="8726132674272173486">"<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 30978db..62caef8 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="6338030032554019678">"<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="8726132674272173486">"<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 c18097a..ce3c109 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="6338030032554019678">"<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="8726132674272173486">"<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 94d09db..f6d1e47 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="6338030032554019678">"<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="8726132674272173486">"<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 75c761f..b34c78d 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="6338030032554019678">"<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="8726132674272173486">"<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 69b07d1..44bfd99 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="6338030032554019678">"<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="8726132674272173486">"<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 c167573..dadb78a 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="6338030032554019678">"<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="8726132674272173486">"<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 367b78f..161638e 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="6338030032554019678">"<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="8726132674272173486">"<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 733d980..9952ab6 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="6338030032554019678">"<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="8726132674272173486">"<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 af7843f..e5ad61f 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="6338030032554019678">"<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="8726132674272173486">"<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 5906ee1..adca139 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="6338030032554019678">"<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="8726132674272173486">"<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 65969c4..871f5a6 100644
--- a/java/com/android/contacts/common/res/values/ids.xml
+++ b/java/com/android/contacts/common/res/values/ids.xml
@@ -27,5 +27,4 @@
 
   <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 371d5b4..9ac9fef 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 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 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 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 bb19afe..07d4a02 100644
--- a/java/com/android/contacts/common/res/values/styles.xml
+++ b/java/com/android/contacts/common/res/values/styles.xml
@@ -43,6 +43,7 @@
     <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 25f937c..18743c6 100644
--- a/java/com/android/contacts/common/util/AccountFilterUtil.java
+++ b/java/com/android/contacts/common/util/AccountFilterUtil.java
@@ -16,15 +16,35 @@
 
 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.
@@ -58,6 +78,8 @@
         } 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) {
@@ -75,9 +97,29 @@
         } 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 51f65f2..20f916a 100644
--- a/java/com/android/contacts/common/util/BitmapUtil.java
+++ b/java/com/android/contacts/common/util/BitmapUtil.java
@@ -24,6 +24,8 @@
 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 {
@@ -89,6 +91,30 @@
   }
 
   /**
+   * 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 ff22f28..1586784 100644
--- a/java/com/android/contacts/common/util/ContactDisplayUtils.java
+++ b/java/com/android/contacts/common/util/ContactDisplayUtils.java
@@ -16,20 +16,21 @@
 
 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. */
@@ -37,6 +38,7 @@
 
   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.
@@ -72,9 +74,9 @@
       } else {
         resId = getPhoneLabelResourceId(type);
         if (interactionType != INTERACTION_CALL) {
-          LogUtil.e(
-              "ContactDisplayUtils.getLabelForCallOrSms",
-              "un-recognized interaction type: "
+          Log.e(
+              TAG,
+              "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 09d52bc..1935d72 100644
--- a/java/com/android/contacts/common/util/DateUtils.java
+++ b/java/com/android/contacts/common/util/DateUtils.java
@@ -16,11 +16,252 @@
 
 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 bd32faa..a2d9847 100644
--- a/java/com/android/contacts/common/util/MaterialColorMapUtils.java
+++ b/java/com/android/contacts/common/util/MaterialColorMapUtils.java
@@ -21,6 +21,7 @@
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.Trace;
+import com.android.contacts.common.R;
 
 public class MaterialColorMapUtils {
 
@@ -34,6 +35,13 @@
         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
new file mode 100644
index 0000000..ae3275d
--- /dev/null
+++ b/java/com/android/contacts/common/util/NameConverter.java
@@ -0,0 +1,242 @@
+/*
+ * 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 7986d10..b944b98 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 com.android.dialer.common.LogUtil;
+import android.util.Log;
 import java.util.ArrayList;
 
 /** A {@link StopWatch} records start, laps and stop, and print them to logcat. */
@@ -37,6 +37,11 @@
     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());
@@ -71,6 +76,25 @@
       sb.append(" ");
       last = current;
     }
-    LogUtil.v(TAG, sb.toString());
+    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
+    }
   }
 }
diff --git a/java/com/android/contacts/common/util/TelephonyManagerUtils.java b/java/com/android/contacts/common/util/TelephonyManagerUtils.java
index e4c2c63..b664268 100644
--- a/java/com/android/contacts/common/util/TelephonyManagerUtils.java
+++ b/java/com/android/contacts/common/util/TelephonyManagerUtils.java
@@ -33,4 +33,13 @@
     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
new file mode 100644
index 0000000..b0e7fb5
--- /dev/null
+++ b/java/com/android/contacts/common/util/TrafficStatsTags.java
@@ -0,0 +1,22 @@
+/*
+ * 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 85c7508..e9489ce 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 android:theme="@style/Theme.AppCompat">
+  <application>
     <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 9215627..e41b8b8 100644
--- a/java/com/android/dialer/about/res/raw/keep.xml
+++ b/java/com/android/dialer/about/res/raw/keep.xml
@@ -16,3 +16,4 @@
   -->
 <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 4200082..de4b48c 100644
--- a/java/com/android/dialer/app/AndroidManifest.xml
+++ b/java/com/android/dialer/app/AndroidManifest.xml
@@ -39,7 +39,6 @@
   <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 b5e6150..6e2c6be 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -91,7 +91,6 @@
 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;
@@ -107,7 +106,6 @@
 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;
@@ -156,7 +154,6 @@
   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";
@@ -165,7 +162,6 @@
 
   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;
 
@@ -184,9 +180,6 @@
   /** 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;
 
@@ -269,7 +262,6 @@
           }
           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
@@ -285,8 +277,6 @@
             mSmartDialSearchFragment.setQueryString(mSearchQuery);
           } else if (mRegularSearchFragment != null && mRegularSearchFragment.isVisible()) {
             mRegularSearchFragment.setQueryString(mSearchQuery);
-          } else if (mNewSearchFragment != null) {
-            mNewSearchFragment.setQuery(mSearchQuery);
           }
         }
 
@@ -640,8 +630,6 @@
     } 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;
@@ -797,7 +785,6 @@
 
     if (animate) {
       mFloatingActionButtonController.scaleOut();
-      maybeEnterSearchUi();
     } else {
       mFloatingActionButtonController.setVisible(false);
       maybeEnterSearchUi();
@@ -1070,11 +1057,7 @@
     }
 
     final String tag;
-    boolean useNewSearch =
-        ConfigProviderBindings.get(this).getBoolean("enable_new_search_fragment", false);
-    if (useNewSearch) {
-      tag = TAG_NEW_SEARCH_FRAGMENT;
-    } else if (smartDialSearch) {
+    if (smartDialSearch) {
       tag = TAG_SMARTDIAL_SEARCH_FRAGMENT;
     } else {
       tag = TAG_REGULAR_SEARCH_FRAGMENT;
@@ -1084,52 +1067,40 @@
 
     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 (useNewSearch) {
-        fragment = new NewSearchFragment();
-      } else if (smartDialSearch) {
+      if (smartDialSearch) {
         fragment = new SmartDialSearchFragment();
       } else {
         fragment = Bindings.getLegacy(this).newRegularSearchFragment();
-        ((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;
-                });
+        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;
+              }
+            });
       }
       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.
-    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);
+    fragment.setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery());
+    if (!smartDialSearch) {
+      fragment.setQueryString(query);
     }
     transaction.commit();
 
@@ -1175,9 +1146,6 @@
     if (mRegularSearchFragment != null) {
       transaction.remove(mRegularSearchFragment);
     }
-    if (mNewSearchFragment != null) {
-      transaction.remove(mNewSearchFragment);
-    }
     transaction.commit();
 
     Assert.isNotNull(mListsFragment.getView()).animate().alpha(1).withLayer();
@@ -1509,7 +1477,6 @@
             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 20222d6..85c2ea6 100644
--- a/java/com/android/dialer/app/SpecialCharSequenceMgr.java
+++ b/java/com/android/dialer/app/SpecialCharSequenceMgr.java
@@ -47,6 +47,7 @@
 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;
@@ -298,7 +299,9 @@
               : R.string.meid;
 
       List<String> deviceIds = new ArrayList<String>();
-      if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1) {
+      if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1
+          && CompatUtils.isMethodAvailable(
+              TelephonyManagerCompat.TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.TYPE)) {
         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 3357ee2..2f8a58c 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -86,7 +86,6 @@
 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;
@@ -106,12 +105,11 @@
 
   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 = true;
+  public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false;
 
   protected final Activity mActivity;
   protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
@@ -119,7 +117,6 @@
   protected final CallLogCache mCallLogCache;
 
   private final CallFetcher mCallFetcher;
-  private final MultiSelectRemoveView mMultiSelectRemoveView;
   @NonNull private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
   private final int mActivityType;
 
@@ -139,8 +136,6 @@
   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 =
@@ -149,16 +144,10 @@
         // 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;
         }
 
@@ -176,6 +165,7 @@
             if (selectedItems.size() > 0) {
               showDeleteSelectedItemsDialog();
             }
+            mode.finish();
             return true;
           } else {
             return false;
@@ -185,16 +175,8 @@
         // 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();
         }
       };
@@ -220,7 +202,6 @@
           @Override
           public void onClick(DialogInterface dialog, int id) {
             deleteSelectedItems(voicemailsToDeleteOnConfirmation);
-            mActionMode.finish();
             dialog.cancel();
           }
         });
@@ -277,15 +258,22 @@
             return;
           }
           if (mActionMode != null && viewHolder.voicemailUri != null) {
-            selectAllMode = false;
-            deselectAllMode = false;
-            mMultiSelectRemoveView.setSelectAllModeToFalse();
             int id = getVoicemailId(viewHolder.voicemailUri);
             if (selectedItems.get(id) != null) {
-              uncheckMarkCallLogEntry(viewHolder, id);
+              selectedItems.delete(id);
+              viewHolder.checkBoxView.setVisibility(View.GONE);
+              viewHolder.quickContactView.setVisibility(View.VISIBLE);
             } else {
-              checkMarkCallLogEntry(viewHolder);
+              viewHolder.quickContactView.setVisibility(View.GONE);
+              viewHolder.checkBoxView.setVisibility(View.VISIBLE);
+              selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri);
             }
+
+            if (selectedItems.size() == 0) {
+              mActionMode.finish();
+              return;
+            }
+            mActionMode.setTitle(Integer.toString(selectedItems.size()));
             return;
           }
 
@@ -324,48 +312,6 @@
         }
       };
 
-  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);
@@ -412,7 +358,6 @@
       Activity activity,
       ViewGroup alertContainer,
       CallFetcher callFetcher,
-      MultiSelectRemoveView multiSelectRemoveView,
       CallLogCache callLogCache,
       ContactInfoCache contactInfoCache,
       VoicemailPlaybackPresenter voicemailPlaybackPresenter,
@@ -422,7 +367,6 @@
 
     mActivity = activity;
     mCallFetcher = callFetcher;
-    mMultiSelectRemoveView = multiSelectRemoveView;
     mVoicemailPlaybackPresenter = voicemailPlaybackPresenter;
     if (mVoicemailPlaybackPresenter != null) {
       mVoicemailPlaybackPresenter.setOnVoicemailDeletedListener(this);
@@ -482,14 +426,6 @@
   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) {
@@ -498,18 +434,6 @@
           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();
-      }
     }
   }
 
@@ -635,8 +559,6 @@
   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);
       }
@@ -669,8 +591,6 @@
       return;
     }
     CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
-    updateCheckMarkedStatusOfEntry(views);
-
     views.isLoaded = false;
     int groupSize = getGroupSize(position);
     CallDetailsEntries callDetailsEntries = createCallDetailsEntries(c, groupSize);
@@ -689,17 +609,6 @@
     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,
@@ -1008,12 +917,6 @@
     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);
@@ -1022,6 +925,7 @@
       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
@@ -1288,41 +1192,9 @@
     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 1571c1a..6e4b23f 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -49,16 +49,15 @@
 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
@@ -67,7 +66,6 @@
 public class CallLogFragment extends Fragment
     implements CallLogQueryHandler.Listener,
         CallLogAdapter.CallFetcher,
-        CallLogAdapter.MultiSelectRemoveView,
         OnEmptyViewActionButtonClickedListener,
         FragmentCompat.OnRequestPermissionsResultCallback,
         CallLogModalAlertManager.Listener {
@@ -319,7 +317,6 @@
                 getActivity(),
                 mRecyclerView,
                 this,
-                this,
                 CallLogCache.getCallLogCache(getActivity()),
                 mContactInfoCache,
                 getVoicemailPlaybackPresenter(),
@@ -383,16 +380,6 @@
   }
 
   @Override
-  public void onStart() {
-    super.onStart();
-    CequintCallerIdManager cequintCallerIdManager = null;
-    if (CequintCallerIdManager.isCequintCallerIdEnabled(getContext())) {
-      cequintCallerIdManager = CequintCallerIdManager.createInstanceForCallLog();
-    }
-    mContactInfoCache.setCequintCallerIdManager(cequintCallerIdManager);
-  }
-
-  @Override
   public void onStop() {
     updateOnTransition();
 
@@ -464,8 +451,6 @@
       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);
     }
   }
 
@@ -604,16 +589,6 @@
     }
   }
 
-  @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 a9a4d1d..1daccd1 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -17,7 +17,6 @@
 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;
@@ -32,6 +31,7 @@
 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,13 +44,10 @@
 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;
@@ -61,16 +58,15 @@
 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;
@@ -255,20 +251,6 @@
     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);
@@ -485,7 +467,7 @@
         primaryActionButtonView.setContentDescription(
             TextUtils.expandTemplate(
                 mContext.getString(R.string.description_call_action), validNameOrNumber));
-        primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_vd_theme_24);
+        primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_white_24);
         primaryActionButtonView.setVisibility(View.VISIBLE);
       } else {
         primaryActionButtonView.setTag(null);
@@ -735,14 +717,19 @@
             getContactType());
   }
 
-  private @ContactType int getContactType() {
-    return LetterTileDrawable.getContactTypeFromPrimitives(
-        mCallLogCache.isVoicemailNumber(accountHandle, number),
-        isSpam,
-        mCachedNumberLookupService != null
-            && mCachedNumberLookupService.isBusiness(info.sourceType),
-        numberPresentation,
-        false);
+  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;
   }
 
   @Override
@@ -808,40 +795,19 @@
       mVoicemailPlaybackPresenter.shareVoicemail();
     } else {
       logCallLogAction(view.getId());
-
       final IntentProvider intentProvider = (IntentProvider) view.getTag();
-      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);
+      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);
+        }
       }
     }
   }
 
-  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();
+  private CallComposerContact buildContact() {
+    CallComposerContact.Builder contact = CallComposerContact.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 1f45f70..58fe6fa 100644
--- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
@@ -225,18 +225,14 @@
       int count,
       String voicemailNumber,
       PendingIntent callVoicemailIntent,
-      PendingIntent voicemailSettingIntent,
-      boolean isRefresh) {
+      PendingIntent voicemailSettingIntent) {
     Assert.isNotNull(phoneAccountHandle);
     Assert.checkArgument(BuildCompat.isAtLeastO());
     TelephonyManager telephonyManager =
         context
             .getSystemService(TelephonyManager.class)
             .createForPhoneAccountHandle(phoneAccountHandle);
-    if (telephonyManager == null) {
-      LogUtil.e(TAG, "invalid PhoneAccountHandle, ignoring");
-      return;
-    }
+    Assert.isNotNull(telephonyManager);
     LogUtil.i(TAG, "Creating legacy voicemail notification");
 
     PersistableBundle carrierConfig = telephonyManager.getCarrierConfig();
@@ -279,8 +275,7 @@
         .setSound(telephonyManager.getVoicemailRingtoneUri(phoneAccountHandle))
         .setOngoing(
             carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
-        .setOnlyAlertOnce(isRefresh);
+                CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL));
 
     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 9c3c18b..a94c678 100644
--- a/java/com/android/dialer/app/calllog/IntentProvider.java
+++ b/java/com/android/dialer/app/calllog/IntentProvider.java
@@ -24,14 +24,12 @@
 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;
@@ -70,7 +68,6 @@
     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)
@@ -83,8 +80,6 @@
     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);
       }
     };
@@ -117,7 +112,7 @@
    * @return The call details intent provider.
    */
   public static IntentProvider getCallDetailIntentProvider(
-      CallDetailsEntries callDetailsEntries, DialerContact contact) {
+      CallDetailsEntries callDetailsEntries, CallComposerContact 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 6728dfb..7645a33 100644
--- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
+++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
@@ -19,6 +19,7 @@
 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;
 
 /**
@@ -45,7 +46,10 @@
 
   /** Return the most compatible version of the TelecomCallLogCache. */
   public static CallLogCache getCallLogCache(Context context) {
-    return new CallLogCacheLollipopMr1(context);
+    if (CompatUtils.isClassAvailable("android.telecom.PhoneAccountHandle")) {
+      return new CallLogCacheLollipopMr1(context);
+    }
+    return new CallLogCacheLollipop(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
new file mode 100644
index 0000000..78aaa41
--- /dev/null
+++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java
@@ -0,0 +1,74 @@
+/*
+ * 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 32bbf06..e561b56 100644
--- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
+++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
@@ -24,7 +24,6 @@
 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;
@@ -56,7 +55,6 @@
   private final OnContactInfoChangedListener mOnContactInfoChangedListener;
   private final BlockingQueue<ContactInfoRequest> mUpdateRequests;
   private final Handler mHandler;
-  private CequintCallerIdManager mCequintCallerIdManager;
   private QueryThread mContactInfoQueryThread;
   private volatile boolean mRequestProcessingDisabled = false;
 
@@ -97,10 +95,6 @@
     mHandler = new InnerHandler(new WeakReference<>(this));
   }
 
-  public void setCequintCallerIdManager(CequintCallerIdManager cequintCallerIdManager) {
-    mCequintCallerIdManager = cequintCallerIdManager;
-  }
-
   public ContactInfo getValue(
       String number,
       String countryIso,
@@ -166,7 +160,7 @@
         // TODO: Maybe skip look up if it's already available in cached number lookup
         // service.
         long start = SystemClock.elapsedRealtime();
-        mContactInfoHelper.updateFromCequintCallerId(mCequintCallerIdManager, info, request.number);
+        mContactInfoHelper.updateFromCequintCallerId(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 c0b26c9..e9d57b3 100644
--- a/java/com/android/dialer/app/dialpad/DialpadFragment.java
+++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java
@@ -29,7 +29,6 @@
 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;
@@ -85,7 +84,6 @@
 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;
@@ -628,14 +626,6 @@
     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 d98395e..f71517a 100644
--- a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
+++ b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
@@ -28,7 +28,6 @@
 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;
@@ -99,8 +98,8 @@
         info.lookupUri == null ? null : UriUtils.getLookupKeyFromUri(info.lookupUri);
     final int contactType =
         mContactInfoHelper.isBusiness(info.sourceType)
-            ? LetterTileDrawable.TYPE_BUSINESS
-            : LetterTileDrawable.TYPE_DEFAULT;
+            ? ContactPhotoManager.TYPE_BUSINESS
+            : ContactPhotoManager.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 c208fd5..1cdeb21 100644
--- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
+++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
@@ -40,7 +40,6 @@
       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 19fa1a7..6e32843 100644
--- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
+++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
@@ -34,7 +34,6 @@
       Activity activity,
       ViewGroup alertContainer,
       CallLogAdapter.CallFetcher callFetcher,
-      CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView,
       CallLogCache callLogCache,
       ContactInfoCache contactInfoCache,
       VoicemailPlaybackPresenter voicemailPlaybackPresenter,
@@ -44,7 +43,6 @@
         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 f5fdb9e..0460997 100644
--- a/java/com/android/dialer/app/list/AllContactsFragment.java
+++ b/java/com/android/dialer/app/list/AllContactsFragment.java
@@ -38,14 +38,12 @@
 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>
@@ -151,8 +149,6 @@
   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 04927cf..537f488 100644
--- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
+++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
@@ -19,7 +19,6 @@
 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;
@@ -30,6 +29,7 @@
 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,6 +50,7 @@
 
   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;
@@ -58,6 +59,7 @@
     super(context);
 
     mCountryIso = GeoUtil.getCurrentCountryIso(context);
+    mVideoCallingEnabled = CallUtil.isVideoEnabled(context);
   }
 
   @Override
@@ -108,7 +110,8 @@
         return convertView;
       } else {
         final ContactListItemView v =
-            new ContactListItemView(getContext(), null, mIsImsVideoEnabled);
+            new ContactListItemView(
+                getContext(), null, mVideoCallingEnabled, isCallAndShareEnabled());
         assignShortcutToView(v, shortcutType);
         return v;
       }
@@ -122,7 +125,8 @@
       Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
     final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
 
-    view.setSupportVideoCallIcon(mIsImsVideoEnabled);
+    view.setSupportVideoCallIcon(mVideoCallingEnabled);
+    view.setSupportCallAndShareIcon(isCallAndShareEnabled());
     return view;
   }
 
@@ -167,7 +171,7 @@
 
   private void assignShortcutToView(ContactListItemView v, int shortcutType) {
     final CharSequence text;
-    final Drawable drawable;
+    final int drawableId;
     final Resources resources = getContext().getResources();
     final String number = getFormattedQueryString();
     switch (shortcutType) {
@@ -177,39 +181,34 @@
                 resources,
                 R.string.search_shortcut_call_number,
                 mBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR));
-        drawable = getContext().getResources().getDrawable(R.drawable.quantum_ic_call_vd_theme_24);
+        drawableId = R.drawable.ic_search_phone;
         break;
       case SHORTCUT_CREATE_NEW_CONTACT:
         text = resources.getString(R.string.search_shortcut_create_new_contact);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
-        drawable.setAutoMirrored(true);
+        drawableId = R.drawable.ic_search_add_contact;
         break;
       case SHORTCUT_ADD_TO_EXISTING_CONTACT:
         text = resources.getString(R.string.search_shortcut_add_to_contact);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
+        drawableId = R.drawable.quantum_ic_person_white_24;
         break;
       case SHORTCUT_SEND_SMS_MESSAGE:
         text = resources.getString(R.string.search_shortcut_send_sms_message);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.quantum_ic_message_vd_theme_24);
+        drawableId = R.drawable.quantum_ic_message_white_24;
         break;
       case SHORTCUT_MAKE_VIDEO_CALL:
         text = resources.getString(R.string.search_shortcut_make_video_call);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+        drawableId = R.drawable.quantum_ic_videocam_white_24;
         break;
       case SHORTCUT_BLOCK_NUMBER:
         text = resources.getString(R.string.search_shortcut_block_number);
-        drawable =
-            getContext().getResources().getDrawable(R.drawable.ic_not_interested_googblue_24dp);
+        drawableId = R.drawable.ic_not_interested_googblue_24dp;
         break;
       default:
         throw new IllegalArgumentException("Invalid shortcut type");
     }
-    v.setDrawable(drawable);
+    v.setDrawableResource(drawableId);
     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
deleted file mode 100644
index ae99f05..0000000
--- a/java/com/android/dialer/app/list/DialerViewPager.java
+++ /dev/null
@@ -1,55 +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.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 32501d5..8dd52a9 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -31,23 +31,19 @@
 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;
@@ -65,28 +61,24 @@
  * containing the lists up above the search bar and pin it against the top of the screen.
  */
 public class ListsFragment extends Fragment
-    implements OnPageChangeListener, Listener, OnClickListener {
+    implements ViewPager.OnPageChangeListener, CallLogQueryHandler.Listener {
 
   private static final String TAG = "ListsFragment";
-  private DialerViewPager mViewPager;
+  private ViewPager 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 CallLogQueryHandler mCallLogQueryHandler;
 
   private final ContentObserver mVoicemailStatusObserver =
@@ -171,7 +163,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 = (DialerViewPager) parentView.findViewById(R.id.lists_pager);
+    mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager);
     mAdapter =
         new DialtactsPagerAdapter(
             getContext(),
@@ -188,15 +180,9 @@
     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())) {
@@ -205,7 +191,7 @@
           .registerContentObserver(
               VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
     } else {
-      LogUtil.w("ListsFragment.onCreateView", "no voicemail read permissions");
+      LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions");
     }
 
     Trace.endSection();
@@ -399,13 +385,6 @@
     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
@@ -445,28 +424,4 @@
     }
     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 1ddc0f4..40fe745 100644
--- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java
+++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
@@ -50,11 +50,12 @@
 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. */
@@ -429,7 +430,7 @@
     void showAllContactsTab();
   }
 
-  class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
+  private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
 
     @Override
     public CursorLoader onCreateLoader(int id, Bundle args) {
@@ -459,17 +460,24 @@
   private class ContactTileAdapterListener implements ContactTileView.Listener {
 
     @Override
-    public void onContactSelected(
-        Uri contactUri, Rect targetRect, CallSpecificAppData callSpecificAppData) {
+    public void onContactSelected(Uri contactUri, Rect targetRect) {
       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, CallSpecificAppData callSpecificAppData) {
+    public void onCallNumberDirectly(String phoneNumber) {
       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 f4f395f..9516f06 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteListView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
@@ -1,5 +1,6 @@
 /*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2012 Google Inc.
+ * Licensed to The Android Open Source Project.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -23,6 +24,7 @@
 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;
@@ -31,7 +33,6 @@
 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
@@ -39,14 +40,14 @@
 
   public static final String LOG_TAG = PhoneFavoriteListView.class.getSimpleName();
   final int[] mLocationOnScreen = new int[2];
-  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;
+  private final long SCROLL_HANDLER_DELAY_MILLIS = 5;
+  private final int DRAG_SCROLL_PX_UNIT = 25;
+  private 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 static final float BOUND_GAP_RATIO = 0.2f;
+  private final float BOUND_GAP_RATIO = 0.2f;
 
   private float mTouchSlop;
   private int mTopScrollBound;
@@ -66,6 +67,7 @@
         }
       };
   private boolean mIsDragScrollerRunning = false;
+  private int mTouchDownForDragStartX;
   private int mTouchDownForDragStartY;
   private Bitmap mDragShadowBitmap;
   private ImageView mDragShadowOverlay;
@@ -96,7 +98,7 @@
   }
 
   public PhoneFavoriteListView(Context context, AttributeSet attrs) {
-    this(context, attrs, 0);
+    this(context, attrs, -1);
   }
 
   public PhoneFavoriteListView(Context context, AttributeSet attrs, int defStyle) {
@@ -119,6 +121,7 @@
   @Override
   public boolean onInterceptTouchEvent(MotionEvent ev) {
     if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+      mTouchDownForDragStartX = (int) ev.getX();
       mTouchDownForDragStartY = (int) ev.getY();
     }
 
@@ -284,7 +287,7 @@
       try {
         bitmap = cache.copy(Bitmap.Config.ARGB_8888, false);
       } catch (final OutOfMemoryError e) {
-        LogUtil.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
+        Log.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 40f23ea..5a18d03 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
@@ -26,8 +26,6 @@
 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 {
@@ -89,8 +87,6 @@
           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 835b448..db89cf3 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
@@ -18,22 +18,16 @@
 
 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
@@ -48,6 +42,7 @@
   // 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.
@@ -60,8 +55,6 @@
   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);
@@ -90,8 +83,6 @@
     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;
@@ -122,35 +113,16 @@
         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),
-              callSpecificAppData.build());
+              getLookupUri(), MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this));
         } 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, callSpecificAppData.build());
+          mListener.onCallNumberDirectly(mPhoneNumberString);
         }
       }
     };
@@ -161,7 +133,7 @@
     return new DefaultImageRequest(
         displayName,
         lookupKey,
-        LetterTileDrawable.TYPE_DEFAULT,
+        ContactPhotoManager.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 ce85982..c692eca 100644
--- a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
+++ b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
@@ -30,6 +30,7 @@
 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;
@@ -40,11 +41,6 @@
 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;
@@ -194,14 +190,6 @@
     // 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);
@@ -274,22 +262,6 @@
         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++;
@@ -302,47 +274,6 @@
 
     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 */
@@ -416,7 +347,7 @@
   @Override
   public void notifyDataSetChanged() {
     if (DEBUG) {
-      LogUtil.v(TAG, "notifyDataSetChanged");
+      Log.v(TAG, "notifyDataSetChanged");
     }
     super.notifyDataSetChanged();
   }
@@ -424,7 +355,7 @@
   @Override
   public View getView(int position, View convertView, ViewGroup parent) {
     if (DEBUG) {
-      LogUtil.v(TAG, "get view for " + position);
+      Log.v(TAG, "get view for " + String.valueOf(position));
     }
 
     PhoneFavoriteTileView tileView = null;
@@ -524,9 +455,8 @@
           // 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) {
-            LogUtil.e(TAG, "Exception thrown when pinning contacts", e);
+            Log.e(TAG, "Exception thrown when pinning contacts", e);
           }
         }
       }
@@ -679,7 +609,6 @@
     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 4f03203..0289679 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 1d566c5..3b917db 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, 0);
+    this(context, attrs, -1);
   }
 
   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 7f2d176..fcf8236 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -34,18 +34,19 @@
 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 {
 
@@ -79,6 +80,7 @@
     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 fc21c8b..eb1508c 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 7c6df94..ca93da0 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 android:theme="@style/Theme.AppCompat">
+  <application>
 
     <activity
       android:exported="false"
diff --git a/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png
Binary files differ
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
deleted file mode 100644
index eeed895..0000000
--- a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png
+++ /dev/null
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
deleted file mode 100644
index b041a74..0000000
--- a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png
+++ /dev/null
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
deleted file mode 100644
index 2c5ba8d..0000000
--- a/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png
+++ /dev/null
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
new file mode 100644
index 0000000..3a1a7a7
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png
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
deleted file mode 100644
index f3b76be..0000000
--- a/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png
+++ /dev/null
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
new file mode 100644
index 0000000..74ccf14
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png
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
deleted file mode 100644
index 01a3bbe..0000000
--- a/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png
+++ /dev/null
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
new file mode 100644
index 0000000..0e24fa4
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png
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
deleted file mode 100644
index 2043279..0000000
--- a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png
+++ /dev/null
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
new file mode 100644
index 0000000..9594619
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png
similarity index 100%
rename from java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png
rename to java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png
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
deleted file mode 100644
index bfbe69e..0000000
--- a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png
+++ /dev/null
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
new file mode 100644
index 0000000..395652c
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png
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
new file mode 100644
index 0000000..5d449ee
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable/ic_search_phone.xml
@@ -0,0 +1,20 @@
+<?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
deleted file mode 100644
index 9687133..0000000
--- a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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 59d1363..5f80680 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/empty_list_view_image"
+      android:id="@+id/emptyListViewImage"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
       android:importantForAccessibility="no"/>
 
     <TextView
-      android:id="@+id/empty_list_view_message"
+      android:id="@+id/emptyListViewMessage"
       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/empty_list_view_action"
+      android:id="@+id/emptyListViewAction"
       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
deleted file mode 100644
index 4cb85d4..0000000
--- a/java/com/android/dialer/app/res/layout/action_mode_close_button.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2017 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT 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 422c529..17a4520 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.widget.EmptyContentView
+    <com.android.dialer.app.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 8ed2d5b..64f7c10 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.widget.EmptyContentView
+  <com.android.dialer.app.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 4a3a836..0fbbb9d 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/ic_check_mark_48dp" />
+              android:src="@drawable/quantum_ic_check_circle_googblue_24" />
 
         </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 5046383..d3a5531 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/call"/>
+        android:text="@string/description_call_log_call_action"/>
 
       <TextView
         android:id="@+id/call_type_or_location_text"
@@ -135,7 +135,7 @@
 
     <ImageView
       style="@style/CallLogActionIconStyle"
-      android:src="@drawable/ic_phone_attach"/>
+      android:src="@drawable/ic_call_and_share"/>
 
     <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 9b95e1f..dd6dab7 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,9 +64,8 @@
       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"
-      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"/>
+      app:elevation="@dimen/floating_action_button_translation_z"
+      app:backgroundTint="@color/dialpad_fab_green"/>
 </view>
diff --git a/java/com/android/dialer/widget/res/layout/empty_content_view.xml b/java/com/android/dialer/app/res/layout/empty_content_view.xml
similarity index 92%
rename from java/com/android/dialer/widget/res/layout/empty_content_view.xml
rename to java/com/android/dialer/app/res/layout/empty_content_view.xml
index 1777443..96a6a02 100644
--- a/java/com/android/dialer/widget/res/layout/empty_content_view.xml
+++ b/java/com/android/dialer/app/res/layout/empty_content_view.xml
@@ -16,13 +16,13 @@
 
 <merge xmlns:android="http://schemas.android.com/apk/res/android">
   <ImageView
-    android:id="@+id/empty_list_view_image"
+    android:id="@+id/emptyListViewImage"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="center_horizontal"/>
 
   <TextView
-    android:id="@+id/empty_list_view_message"
+    android:id="@+id/emptyListViewMessage"
     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/empty_list_view_action"
+    android:id="@+id/emptyListViewAction"
     style="@style/TextActionStyle"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
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 1d20479..e245aac 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/empty_list_view_image"
+    android:id="@+id/emptyListViewImage"
     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/empty_list_view_message"
+    android:id="@+id/emptyListViewMessage"
     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/empty_list_view_action"
+    android:id="@+id/emptyListViewAction"
     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 71867d7..442b428 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">
+  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
-      android:layout_width="match_parent"
-      android:layout_height="match_parent"
-      android:orientation="vertical">
+    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"/>
 
-    <com.android.dialer.app.list.DialerViewPager
-        android:id="@+id/lists_pager"
-        android:layout_width="match_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1"/>
+    <android.support.v4.view.ViewPager
+      android:id="@+id/lists_pager"
+      android:layout_width="match_parent"
+      android:layout_height="0dp"
+      android:layout_weight="1"/>
 
   </LinearLayout>
 
@@ -58,80 +58,41 @@
        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 bb6a5f7..c02512d 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_vd_theme_24"
+      android:src="@drawable/quantum_ic_search_white_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 3fa3be2..c778c6b 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.widget.EmptyContentView
+  <com.android.dialer.app.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 4f4c65b..2eb462b 100644
--- a/java/com/android/dialer/app/res/values-af/strings.xml
+++ b/java/com/android/dialer/app/res/values-af/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 7f4a622..8230301 100644
--- a/java/com/android/dialer/app/res/values-am/strings.xml
+++ b/java/com/android/dialer/app/res/values-am/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 3687d0b..e4dfb4d 100644
--- a/java/com/android/dialer/app/res/values-ar/strings.xml
+++ b/java/com/android/dialer/app/res/values-ar/strings.xml
@@ -89,10 +89,6 @@
     <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>
@@ -107,13 +103,11 @@
     <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>
@@ -126,6 +120,7 @@
     <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>
@@ -154,9 +149,10 @@
     <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>
@@ -225,9 +221,11 @@
     <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 b6681c9..62bc117 100644
--- a/java/com/android/dialer/app/res/values-az/strings.xml
+++ b/java/com/android/dialer/app/res/values-az/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 40c0886..9df7291 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,10 +86,6 @@
     <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>
@@ -104,13 +100,11 @@
     <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>
@@ -123,6 +117,7 @@
     <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>
@@ -151,9 +146,10 @@
     <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>
@@ -219,9 +215,11 @@
     <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 f2ad334..aac3df2 100644
--- a/java/com/android/dialer/app/res/values-be/strings.xml
+++ b/java/com/android/dialer/app/res/values-be/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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>
@@ -221,9 +217,11 @@
     <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 8083f48..7bab71f 100644
--- a/java/com/android/dialer/app/res/values-bg/strings.xml
+++ b/java/com/android/dialer/app/res/values-bg/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 4d2d7cc..271247b 100644
--- a/java/com/android/dialer/app/res/values-bn/strings.xml
+++ b/java/com/android/dialer/app/res/values-bn/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 d834772..92c9c14 100644
--- a/java/com/android/dialer/app/res/values-bs/strings.xml
+++ b/java/com/android/dialer/app/res/values-bs/strings.xml
@@ -86,10 +86,6 @@
     <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>
@@ -104,13 +100,11 @@
     <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>
@@ -123,6 +117,7 @@
     <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>
@@ -151,9 +146,10 @@
     <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>
@@ -219,9 +215,11 @@
     <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 7b12e0d..fa04dd9 100644
--- a/java/com/android/dialer/app/res/values-ca/strings.xml
+++ b/java/com/android/dialer/app/res/values-ca/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 bbcb358..5a3e429 100644
--- a/java/com/android/dialer/app/res/values-cs/strings.xml
+++ b/java/com/android/dialer/app/res/values-cs/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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>
@@ -221,9 +217,11 @@
     <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 31cf8e3..42aa663 100644
--- a/java/com/android/dialer/app/res/values-da/strings.xml
+++ b/java/com/android/dialer/app/res/values-da/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 c1f6441..5653e0f 100644
--- a/java/com/android/dialer/app/res/values-de/strings.xml
+++ b/java/com/android/dialer/app/res/values-de/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 c4ba02d..847f60a 100644
--- a/java/com/android/dialer/app/res/values-el/strings.xml
+++ b/java/com/android/dialer/app/res/values-el/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 cb7e912..28eea8b 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,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 cb7e912..28eea8b 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,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 cb7e912..28eea8b 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,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 79d607f..9d80bc9 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,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 170edc8..b7383d9 100644
--- a/java/com/android/dialer/app/res/values-es/strings.xml
+++ b/java/com/android/dialer/app/res/values-es/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 e32b104..d4e4faa 100644
--- a/java/com/android/dialer/app/res/values-et/strings.xml
+++ b/java/com/android/dialer/app/res/values-et/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 57ef67d..95f4621 100644
--- a/java/com/android/dialer/app/res/values-eu/strings.xml
+++ b/java/com/android/dialer/app/res/values-eu/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 eadb0dc..9c8c01b 100644
--- a/java/com/android/dialer/app/res/values-fa/strings.xml
+++ b/java/com/android/dialer/app/res/values-fa/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 9510959..c5a103d 100644
--- a/java/com/android/dialer/app/res/values-fi/strings.xml
+++ b/java/com/android/dialer/app/res/values-fi/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 6aa285c..d557d74 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,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 f539d2e..d8a5939 100644
--- a/java/com/android/dialer/app/res/values-fr/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 ca31c5e..33b55a7 100644
--- a/java/com/android/dialer/app/res/values-gl/strings.xml
+++ b/java/com/android/dialer/app/res/values-gl/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 fbe4d0a..1df1826 100644
--- a/java/com/android/dialer/app/res/values-gu/strings.xml
+++ b/java/com/android/dialer/app/res/values-gu/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 c998e44..84d2d97 100644
--- a/java/com/android/dialer/app/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/res/values-hi/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 5261cfb..cd35353 100644
--- a/java/com/android/dialer/app/res/values-hr/strings.xml
+++ b/java/com/android/dialer/app/res/values-hr/strings.xml
@@ -86,10 +86,6 @@
     <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>
@@ -104,13 +100,11 @@
     <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>
@@ -123,6 +117,7 @@
     <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>
@@ -151,9 +146,10 @@
     <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>
@@ -219,9 +215,11 @@
     <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 452f0da..2e64d74 100644
--- a/java/com/android/dialer/app/res/values-hu/strings.xml
+++ b/java/com/android/dialer/app/res/values-hu/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 97a84f2..6f3931c 100644
--- a/java/com/android/dialer/app/res/values-hy/strings.xml
+++ b/java/com/android/dialer/app/res/values-hy/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 f309f92..c0de9b3 100644
--- a/java/com/android/dialer/app/res/values-in/strings.xml
+++ b/java/com/android/dialer/app/res/values-in/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 b291eae..fdd6356 100644
--- a/java/com/android/dialer/app/res/values-is/strings.xml
+++ b/java/com/android/dialer/app/res/values-is/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 711ab26..9bd8cd3 100644
--- a/java/com/android/dialer/app/res/values-it/strings.xml
+++ b/java/com/android/dialer/app/res/values-it/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 bd2a05a..bb115e2 100644
--- a/java/com/android/dialer/app/res/values-iw/strings.xml
+++ b/java/com/android/dialer/app/res/values-iw/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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,9 +217,11 @@
     <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 9ba40fb..63b15cb 100644
--- a/java/com/android/dialer/app/res/values-ja/strings.xml
+++ b/java/com/android/dialer/app/res/values-ja/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 dbb48f4..ae89505 100644
--- a/java/com/android/dialer/app/res/values-ka/strings.xml
+++ b/java/com/android/dialer/app/res/values-ka/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 8dfe531..ba42386 100644
--- a/java/com/android/dialer/app/res/values-kk/strings.xml
+++ b/java/com/android/dialer/app/res/values-kk/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 ed0db05..bdc91cf 100644
--- a/java/com/android/dialer/app/res/values-km/strings.xml
+++ b/java/com/android/dialer/app/res/values-km/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 932bc40..dae544d 100644
--- a/java/com/android/dialer/app/res/values-kn/strings.xml
+++ b/java/com/android/dialer/app/res/values-kn/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 de6b93c..1850b6c 100644
--- a/java/com/android/dialer/app/res/values-ko/strings.xml
+++ b/java/com/android/dialer/app/res/values-ko/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 ac9a617..9e80e29 100644
--- a/java/com/android/dialer/app/res/values-ky/strings.xml
+++ b/java/com/android/dialer/app/res/values-ky/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 2a82973..8284e8d 100644
--- a/java/com/android/dialer/app/res/values-lo/strings.xml
+++ b/java/com/android/dialer/app/res/values-lo/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 367c928..a346d5d 100644
--- a/java/com/android/dialer/app/res/values-lt/strings.xml
+++ b/java/com/android/dialer/app/res/values-lt/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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>
@@ -221,9 +217,11 @@
     <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 2713b91..808d7bf 100644
--- a/java/com/android/dialer/app/res/values-lv/strings.xml
+++ b/java/com/android/dialer/app/res/values-lv/strings.xml
@@ -86,10 +86,6 @@
     <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>
@@ -104,13 +100,11 @@
     <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>
@@ -123,6 +117,7 @@
     <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>
@@ -151,9 +146,10 @@
     <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>
@@ -219,9 +215,11 @@
     <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 09725a6..6d2e533 100644
--- a/java/com/android/dialer/app/res/values-mk/strings.xml
+++ b/java/com/android/dialer/app/res/values-mk/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 7655dbe..91accf4 100644
--- a/java/com/android/dialer/app/res/values-ml/strings.xml
+++ b/java/com/android/dialer/app/res/values-ml/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 29bd8af..a07a826 100644
--- a/java/com/android/dialer/app/res/values-mn/strings.xml
+++ b/java/com/android/dialer/app/res/values-mn/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 ee21291..5aca7a5 100644
--- a/java/com/android/dialer/app/res/values-mr/strings.xml
+++ b/java/com/android/dialer/app/res/values-mr/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 dbb0213..9dbe541 100644
--- a/java/com/android/dialer/app/res/values-ms/strings.xml
+++ b/java/com/android/dialer/app/res/values-ms/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 eecfeb2..2b51b20 100644
--- a/java/com/android/dialer/app/res/values-my/strings.xml
+++ b/java/com/android/dialer/app/res/values-my/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 bda4915..d92edc6 100644
--- a/java/com/android/dialer/app/res/values-nb/strings.xml
+++ b/java/com/android/dialer/app/res/values-nb/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 8262a31..90a3016 100644
--- a/java/com/android/dialer/app/res/values-ne/strings.xml
+++ b/java/com/android/dialer/app/res/values-ne/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 eed412d..5f41b80 100644
--- a/java/com/android/dialer/app/res/values-nl/strings.xml
+++ b/java/com/android/dialer/app/res/values-nl/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 bda4915..d92edc6 100644
--- a/java/com/android/dialer/app/res/values-no/strings.xml
+++ b/java/com/android/dialer/app/res/values-no/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 8e65407..76d4b9b 100644
--- a/java/com/android/dialer/app/res/values-pa/strings.xml
+++ b/java/com/android/dialer/app/res/values-pa/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 8f57a82..76adfe5 100644
--- a/java/com/android/dialer/app/res/values-pl/strings.xml
+++ b/java/com/android/dialer/app/res/values-pl/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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>
@@ -221,9 +217,11 @@
     <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 eb61923..780ca07 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,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 493f846..95fa75c 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,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 eb61923..780ca07 100644
--- a/java/com/android/dialer/app/res/values-pt/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 93d0188..725ff4a 100644
--- a/java/com/android/dialer/app/res/values-ro/strings.xml
+++ b/java/com/android/dialer/app/res/values-ro/strings.xml
@@ -86,10 +86,6 @@
     <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>
@@ -104,13 +100,11 @@
     <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>
@@ -123,6 +117,7 @@
     <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>
@@ -151,9 +146,10 @@
     <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>
@@ -219,9 +215,11 @@
     <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 54278c4..557832b 100644
--- a/java/com/android/dialer/app/res/values-ru/strings.xml
+++ b/java/com/android/dialer/app/res/values-ru/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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,9 +217,11 @@
     <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 6363457..329d89e 100644
--- a/java/com/android/dialer/app/res/values-si/strings.xml
+++ b/java/com/android/dialer/app/res/values-si/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 f7bf423..60b63d5 100644
--- a/java/com/android/dialer/app/res/values-sk/strings.xml
+++ b/java/com/android/dialer/app/res/values-sk/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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>
@@ -221,9 +217,11 @@
     <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 d3c57dd..b46b99a 100644
--- a/java/com/android/dialer/app/res/values-sl/strings.xml
+++ b/java/com/android/dialer/app/res/values-sl/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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>
@@ -221,9 +217,11 @@
     <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 8470445..6a274fc 100644
--- a/java/com/android/dialer/app/res/values-sq/strings.xml
+++ b/java/com/android/dialer/app/res/values-sq/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 6cf7a7c..0def958 100644
--- a/java/com/android/dialer/app/res/values-sr/strings.xml
+++ b/java/com/android/dialer/app/res/values-sr/strings.xml
@@ -86,10 +86,6 @@
     <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>
@@ -104,13 +100,11 @@
     <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>
@@ -123,6 +117,7 @@
     <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>
@@ -151,9 +146,10 @@
     <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>
@@ -219,9 +215,11 @@
     <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 71ef3e5..75aa731 100644
--- a/java/com/android/dialer/app/res/values-sv/strings.xml
+++ b/java/com/android/dialer/app/res/values-sv/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 9cbdd3e..d3b8392 100644
--- a/java/com/android/dialer/app/res/values-sw/strings.xml
+++ b/java/com/android/dialer/app/res/values-sw/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 a91088c..afb852b 100644
--- a/java/com/android/dialer/app/res/values-ta/strings.xml
+++ b/java/com/android/dialer/app/res/values-ta/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 aecc1c4..ffc046f 100644
--- a/java/com/android/dialer/app/res/values-te/strings.xml
+++ b/java/com/android/dialer/app/res/values-te/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 58507b4..13916a5 100644
--- a/java/com/android/dialer/app/res/values-th/strings.xml
+++ b/java/com/android/dialer/app/res/values-th/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -205,7 +201,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>
@@ -217,9 +213,11 @@
     <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 9a8157f..cc44cb5 100644
--- a/java/com/android/dialer/app/res/values-tl/strings.xml
+++ b/java/com/android/dialer/app/res/values-tl/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 17bd664..2f6f704 100644
--- a/java/com/android/dialer/app/res/values-tr/strings.xml
+++ b/java/com/android/dialer/app/res/values-tr/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 a020a1f..9a79012 100644
--- a/java/com/android/dialer/app/res/values-uk/strings.xml
+++ b/java/com/android/dialer/app/res/values-uk/strings.xml
@@ -87,10 +87,6 @@
     <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>
@@ -105,13 +101,11 @@
     <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>
@@ -124,6 +118,7 @@
     <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>
@@ -152,9 +147,10 @@
     <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,9 +217,11 @@
     <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 d696bd5..2519871 100644
--- a/java/com/android/dialer/app/res/values-ur/strings.xml
+++ b/java/com/android/dialer/app/res/values-ur/strings.xml
@@ -85,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 aa645bf..705cae7 100644
--- a/java/com/android/dialer/app/res/values-uz/strings.xml
+++ b/java/com/android/dialer/app/res/values-uz/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 dda7c15..5a60e0a 100644
--- a/java/com/android/dialer/app/res/values-vi/strings.xml
+++ b/java/com/android/dialer/app/res/values-vi/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 672614e..98abc39 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,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 f3dc44b..2a96ce0 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,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 473955c..9174521 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,10 +85,6 @@
     <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,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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,9 +213,11 @@
     <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 93843aa..9c8a6b8 100644
--- a/java/com/android/dialer/app/res/values-zu/strings.xml
+++ b/java/com/android/dialer/app/res/values-zu/strings.xml
@@ -85,10 +85,6 @@
     <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>
@@ -103,13 +99,11 @@
     <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>
@@ -122,6 +116,7 @@
     <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>
@@ -150,9 +145,10 @@
     <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>
@@ -217,9 +213,11 @@
     <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 2f6d87b..cf6b926 100644
--- a/java/com/android/dialer/app/res/values/colors.xml
+++ b/java/com/android/dialer/app/res/values/colors.xml
@@ -52,6 +52,8 @@
   <!-- 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>
@@ -67,6 +69,8 @@
   <!-- 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 57c43eb..7da29c7 100644
--- a/java/com/android/dialer/app/res/values/dimens.xml
+++ b/java/com/android/dialer/app/res/values/dimens.xml
@@ -105,6 +105,9 @@
   <!-- 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 6110601..9e1fdeb 100644
--- a/java/com/android/dialer/app/res/values/strings.xml
+++ b/java/com/android/dialer/app/res/values/strings.xml
@@ -279,34 +279,6 @@
   <!-- 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.
@@ -390,19 +362,12 @@
   <!-- 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 -->
@@ -446,6 +411,9 @@
   <!-- 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>
 
@@ -546,6 +514,12 @@
   <!-- 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]
@@ -555,9 +529,6 @@
   <!-- 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] -->
@@ -583,7 +554,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>
@@ -870,6 +841,9 @@
   <!-- 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>
 
@@ -879,6 +853,9 @@
   <!-- 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 592f06d..7adf7ca 100644
--- a/java/com/android/dialer/app/res/values/styles.xml
+++ b/java/com/android/dialer/app/res/values/styles.xml
@@ -25,15 +25,13 @@
     <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/quantum_ic_arrow_back_vd_theme_24</item>
+    <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</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>
@@ -68,7 +66,7 @@
     <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item>
 
     <!-- Video call icon -->
-    <item name="list_item_video_call_icon_size">48dip</item>
+    <item name="list_item_video_call_icon_size">32dip</item>
     <item name="list_item_video_call_icon_margin">8dip</item>
 
     <item name="dialpad_style">@style/Dialpad.Light</item>
@@ -131,12 +129,6 @@
     <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 d9afb74..796ed2e 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"/>
 
-  <SwitchPreference
+  <CheckBoxPreference
     android:defaultValue="false"
     android:key="@string/vibrate_on_preference_key"
     android:persistent="false"
     android:title="@string/vibrate_on_ring_title"/>
 
-  <SwitchPreference
+  <CheckBoxPreference
     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 e8e4256..2c46438 100644
--- a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
+++ b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
@@ -18,6 +18,7 @@
 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;
@@ -48,6 +49,10 @@
     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 6036c85..f1c270c 100644
--- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java
+++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
@@ -36,6 +36,7 @@
 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;
@@ -82,12 +83,14 @@
     soundSettingsHeader.id = R.id.settings_header_sounds_and_vibration;
     target.add(soundSettingsHeader);
 
-    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);
+    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);
+    }
 
     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 dcfb7a5..83ce453 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 SwitchPreference mVibrateWhenRinging;
-  private SwitchPreference mPlayDtmfTone;
+  private CheckBoxPreference mVibrateWhenRinging;
+  private CheckBoxPreference mPlayDtmfTone;
   private ListPreference mDtmfToneLength;
 
   @Override
@@ -87,9 +87,9 @@
 
     mRingtonePreference = findPreference(context.getString(R.string.ringtone_preference_key));
     mVibrateWhenRinging =
-        (SwitchPreference) findPreference(context.getString(R.string.vibrate_on_preference_key));
+        (CheckBoxPreference) findPreference(context.getString(R.string.vibrate_on_preference_key));
     mPlayDtmfTone =
-        (SwitchPreference) findPreference(context.getString(R.string.play_dtmf_preference_key));
+        (CheckBoxPreference) 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 ffbae71..9d07ec5 100644
--- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
+++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
@@ -43,15 +43,6 @@
 
   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(
@@ -60,6 +51,7 @@
 
     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)) {
@@ -105,8 +97,7 @@
             count,
             voicemailNumber,
             callVoicemailIntent,
-            voicemailSettingIntent,
-            intent.getBooleanExtra(EXTRA_IS_REFRESH, false));
+            voicemailSettingIntent);
   }
 
   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 686e3e8..ea48c83 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -548,9 +548,7 @@
     mView.setClipPosition(mPosition, mDuration.get());
     mView.enableUiElements();
     mView.setSuccess();
-    if (!mp.isPlaying()) {
-      mMediaPlayer.seekTo(mPosition);
-    }
+    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 fb1b186..bc9c463 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 5846b1f..85fd5ec 100644
--- a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
+++ b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
@@ -21,7 +21,6 @@
 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/widget/EmptyContentView.java b/java/com/android/dialer/app/widget/EmptyContentView.java
similarity index 87%
rename from java/com/android/dialer/widget/EmptyContentView.java
rename to java/com/android/dialer/app/widget/EmptyContentView.java
index a76ab98..cfc8665 100644
--- a/java/com/android/dialer/widget/EmptyContentView.java
+++ b/java/com/android/dialer/app/widget/EmptyContentView.java
@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-package com.android.dialer.widget;
+package com.android.dialer.app.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,8 +40,6 @@
   private TextView mActionView;
   private OnEmptyViewActionButtonClickedListener mOnActionButtonClickedListener;
 
-  private @StringRes int actionLabel;
-
   public EmptyContentView(Context context) {
     this(context, null);
   }
@@ -60,9 +58,9 @@
 
     // Don't let touches fall through the empty view.
     setClickable(true);
-    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);
+    mImageView = (ImageView) findViewById(R.id.emptyListViewImage);
+    mDescriptionView = (TextView) findViewById(R.id.emptyListViewMessage);
+    mActionView = (TextView) findViewById(R.id.emptyListViewAction);
     mActionView.setOnClickListener(this);
   }
 
@@ -86,8 +84,7 @@
     }
   }
 
-  public void setActionLabel(@StringRes int resourceId) {
-    actionLabel = resourceId;
+  public void setActionLabel(int resourceId) {
     if (resourceId == NO_LABEL) {
       mActionView.setText(null);
       mActionView.setVisibility(View.GONE);
@@ -97,10 +94,6 @@
     }
   }
 
-  public @StringRes int getActionLabel() {
-    return actionLabel;
-  }
-
   public boolean isShowingContent() {
     return mImageView.getVisibility() == View.VISIBLE
         || mDescriptionView.getVisibility() == View.VISIBLE
@@ -124,4 +117,5 @@
         (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     inflater.inflate(R.layout.empty_content_view, this);
   }
+
 }
diff --git a/java/com/android/dialer/app/widget/SearchEditTextLayout.java b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
index d67fd9e..f83c482 100644
--- a/java/com/android/dialer/app/widget/SearchEditTextLayout.java
+++ b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
@@ -52,6 +52,7 @@
   private View mVoiceSearchButtonView;
   private View mOverflowButtonView;
   private View mBackButtonView;
+  private View mExpandedSearchBox;
   private View mClearButtonView;
 
   private ValueAnimator mAnimator;
@@ -89,27 +90,20 @@
     mVoiceSearchButtonView = findViewById(R.id.voice_search_button);
     mOverflowButtonView = findViewById(R.id.dialtacts_options_menu_button);
     mBackButtonView = findViewById(R.id.search_back_button);
-    mBackButtonView
-        .getResources()
-        .getDrawable(R.drawable.quantum_ic_arrow_back_vd_theme_24)
-        .setAutoMirrored(true);
+    mExpandedSearchBox = findViewById(R.id.search_box_expanded);
     mClearButtonView = findViewById(R.id.search_close_button);
 
-    // 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.
+    // 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.
     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() {
@@ -218,7 +212,7 @@
       AnimUtils.crossFadeViews(mExpanded, mCollapsed, ANIMATION_DURATION);
       mAnimator = ValueAnimator.ofFloat(EXPAND_MARGIN_FRACTION_START, 0f);
       setMargins(EXPAND_MARGIN_FRACTION_START);
-      prepareAnimator();
+      prepareAnimator(true);
     } else {
       mExpanded.setVisibility(View.VISIBLE);
       mExpanded.setAlpha(1);
@@ -247,7 +241,7 @@
     if (animate) {
       AnimUtils.crossFadeViews(mCollapsed, mExpanded, ANIMATION_DURATION);
       mAnimator = ValueAnimator.ofFloat(0f, 1f);
-      prepareAnimator();
+      prepareAnimator(false);
     } else {
       mCollapsed.setVisibility(View.VISIBLE);
       mCollapsed.setAlpha(1);
@@ -285,7 +279,7 @@
     }
   }
 
-  private void prepareAnimator() {
+  private void prepareAnimator(final boolean expand) {
     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 bc0b39b..595401c 100644
--- a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
+++ b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
@@ -18,7 +18,6 @@
 
 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;
@@ -35,7 +34,6 @@
   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 6e6ae4b..2deb7fd 100644
--- a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
+++ b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
@@ -17,8 +17,6 @@
 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;
@@ -33,8 +31,6 @@
 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 5037883..a4c2e7d 100644
--- a/java/com/android/dialer/binary/common/DialerApplication.java
+++ b/java/com/android/dialer/binary/common/DialerApplication.java
@@ -55,9 +55,8 @@
 
   private void enableStrictMode() {
     StrictMode.setThreadPolicy(
-        new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
-    StrictMode.setVmPolicy(
-        new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
+        new StrictMode.ThreadPolicy.Builder().detectAll().penaltyDeath().build());
+    StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyDeath().build());
   }
 
   /**
diff --git a/java/com/android/dialer/callcomposer/AndroidManifest.xml b/java/com/android/dialer/callcomposer/AndroidManifest.xml
index cce7110..369db6f 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 android:theme="@style/Theme.AppCompat">
+  <application>
     <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 bc20c73..074fc6d 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -37,8 +37,10 @@
 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;
@@ -54,7 +56,6 @@
 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;
@@ -85,6 +86,7 @@
     implements OnClickListener,
         OnPageChangeListener,
         CallComposerListener,
+        OnLayoutChangeListener,
         EnrichedCallManager.StateChangedListener {
 
   public static final String KEY_CONTACT_NAME = "contact_name";
@@ -100,7 +102,7 @@
   private static final String VIEW_PAGER_STATE_KEY = "view_pager_state_key";
   private static final String SESSION_ID_KEY = "session_id_key";
 
-  private DialerContact contact;
+  private CallComposerContact contact;
   private Long sessionId = Session.NO_SESSION_ID;
 
   private TextView nameView;
@@ -124,9 +126,10 @@
   private boolean shouldAnimateEntrance = true;
   private boolean inFullscreenMode;
   private boolean isSendAndCallHidingOrHidden = true;
+  private boolean layoutChanged;
   private int currentIndex;
 
-  public static Intent newIntent(Context context, DialerContact contact) {
+  public static Intent newIntent(Context context, CallComposerContact contact) {
     Intent intent = new Intent(context, CallComposerActivity.class);
     ProtoParsers.put(intent, ARG_CALL_COMPOSER_CONTACT, contact);
     return intent;
@@ -137,19 +140,19 @@
     super.onCreate(savedInstanceState);
     setContentView(R.layout.call_composer_activity);
 
-    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);
+    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);
     sendAndCall = findViewById(R.id.send_and_call_button);
-    sendAndCallText = findViewById(R.id.send_and_call_text);
+    sendAndCallText = (TextView) findViewById(R.id.send_and_call_text);
 
     interpolator = new FastOutSlowInInterpolator();
     adapter =
@@ -159,6 +162,7 @@
     pager.setAdapter(adapter);
     pager.addOnPageChangeListener(this);
 
+    background.addOnLayoutChangeListener(this);
     cameraIcon.setOnClickListener(this);
     galleryIcon.setOnClickListener(this);
     messageIcon.setOnClickListener(this);
@@ -174,6 +178,11 @@
       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(
@@ -255,7 +264,7 @@
     } else if (view == sendAndCall) {
       sendAndCall();
     } else {
-      throw Assert.createIllegalStateFailException("View on click not implemented: " + view);
+      Assert.fail();
     }
   }
 
@@ -331,7 +340,11 @@
 
   private boolean sessionReady() {
     Session session = getEnrichedCallManager().getSession(sessionId);
-    return session != null && session.getState() == EnrichedCallManager.STATE_STARTED;
+    if (session == null) {
+      return false;
+    }
+
+    return session.getState() == EnrichedCallManager.STATE_STARTED;
   }
 
   private void placeRCSCall(MultimediaData.Builder builder) {
@@ -411,6 +424,28 @@
     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}.
@@ -421,14 +456,14 @@
       byte[] bytes =
           Base64.decode(intent.getStringExtra(ARG_CALL_COMPOSER_CONTACT_BASE64), Base64.DEFAULT);
       try {
-        contact = DialerContact.parseFrom(bytes);
+        contact = CallComposerContact.parseFrom(bytes);
       } catch (InvalidProtocolBufferException e) {
         throw Assert.createAssertionFailException(e.toString());
       }
     } else {
       contact =
           ProtoParsers.getTrusted(
-              intent, ARG_CALL_COMPOSER_CONTACT, DialerContact.getDefaultInstance());
+              intent, ARG_CALL_COMPOSER_CONTACT, CallComposerContact.getDefaultInstance());
     }
     updateContactInfo();
   }
diff --git a/java/com/android/dialer/callcomposer/CameraComposerFragment.java b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
index ecdc258..f65207f 100644
--- a/java/com/android/dialer/callcomposer/CameraComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
@@ -17,14 +17,13 @@
 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;
@@ -57,7 +56,6 @@
 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";
 
@@ -109,8 +107,7 @@
     capture.setOnClickListener(this);
     cancel.setOnClickListener(this);
 
-
-    if (!PermissionsUtil.hasCameraPermissions(getContext())) {
+    if (!PermissionsUtil.hasPermission(getContext(), permission.CAMERA)) {
       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);
@@ -134,12 +131,6 @@
   }
 
   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 39d6a4a..f9990e1 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/webp"};
+      new String[] {"image/jpeg", "image/jpg", "image/png", "image/gif", "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/webp')"
+        "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/gif', '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 392f6e7..2a342bb 100644
--- a/java/com/android/dialer/callcomposer/MessageComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
@@ -24,8 +24,11 @@
 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;
@@ -33,12 +36,17 @@
 
 /** Fragment used to compose call with message fragment. */
 public class MessageComposerFragment extends CallComposerFragment
-    implements OnClickListener, TextWatcher, OnEditorActionListener {
+    implements OnClickListener,
+        TextWatcher,
+        OnTouchListener,
+        OnLongClickListener,
+        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) {
@@ -65,6 +73,8 @@
     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) {
@@ -108,6 +118,30 @@
     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 977f063..4cc08ba 100644
--- a/java/com/android/dialer/callcomposer/camera/CameraManager.java
+++ b/java/com/android/dialer/callcomposer/camera/CameraManager.java
@@ -522,7 +522,6 @@
     switch (windowManager.getDefaultDisplay().getRotation()) {
       case Surface.ROTATION_0:
         degrees = 0;
-        mCamera.setDisplayOrientation(90);
         break;
       case Surface.ROTATION_90:
         degrees = 90;
@@ -532,22 +531,31 @@
         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) {
-      mRotation = (mCameraInfo.orientation + degrees) % 360;
+      orientation = (mCameraInfo.orientation + degrees) % 360;
+      rotation = orientation;
+      // compensate the mirror but only for orientation
+      orientation = (360 - orientation) % 360;
     } else { // back-facing
-      mRotation = (mCameraInfo.orientation - degrees + 360) % 360;
+      orientation = (mCameraInfo.orientation - degrees + 360) % 360;
+      rotation = orientation;
     }
+    mRotation = rotation;
     try {
+      mCamera.setDisplayOrientation(orientation);
       final Camera.Parameters params = mCamera.getParameters();
-      params.setRotation(mRotation);
+      params.setRotation(rotation);
       mCamera.setParameters(params);
     } catch (final RuntimeException e) {
       LogUtil.e(
@@ -581,6 +589,7 @@
         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 b5542ab..31751e5 100644
--- a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
+++ b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
@@ -20,11 +20,13 @@
 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;
@@ -69,7 +71,13 @@
     File outputFile = DialerUtils.createShareableFile(mContext);
 
     try (OutputStream outputStream = new FileOutputStream(outputFile)) {
-      writeClippedBitmap(outputStream);
+      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);
+      }
     }
 
     return FileProvider.getUriForFile(
@@ -97,12 +105,10 @@
     } 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;
-    boolean invert = ExifInterface.getOrientationParams(orientation).invertDimensions;
-    if (invert) {
+    if (ExifInterface.getOrientationParams(orientation).invertDimensions) {
       Assert.checkState(mWidth == bitmap.getHeight());
       Assert.checkState(mHeight == bitmap.getWidth());
       clippedWidth = (int) (mHeight * mHeightPercent);
@@ -113,22 +119,24 @@
       clippedWidth = mWidth;
       clippedHeight = (int) (mHeight * mHeightPercent);
     }
-
-    int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
-    int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
+    final int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
+    final int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
     mWidth = clippedWidth;
     mHeight = clippedHeight;
-
-    Matrix matrix = new Matrix();
-    matrix.postRotate(invert ? 90 : 0);
-
     Bitmap clippedBitmap =
-        Bitmap.createBitmap(
-            bitmap, offsetLeft, offsetTop, clippedWidth, clippedHeight, matrix, true);
+        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();
     clippedBitmap = BitmapResizer.resizeForEnrichedCalling(clippedBitmap);
-    // 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.
+    // 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);
     exifInterface.clearExif();
+    exifInterface.setTag(orientationTag);
     exifInterface.writeExif(clippedBitmap, outputStream);
 
     clippedBitmap.recycle();
diff --git a/java/com/android/dialer/dialercontact/dialer_contact.proto b/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
similarity index 82%
rename from java/com/android/dialer/dialercontact/dialer_contact.proto
rename to java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
index ee364c6..99766aa 100644
--- a/java/com/android/dialer/dialercontact/dialer_contact.proto
+++ b/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
@@ -1,12 +1,12 @@
 syntax = "proto2";
 
-option java_package = "com.android.dialer.dialercontact";
+option java_package = "com.android.dialer.callcomposer";
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
 package com.android.dialer.callcomposer;
 
-message DialerContact {
+message CallComposerContact {
   optional fixed64 photo_id = 1;
   optional string photo_uri = 2;
   optional string contact_uri = 3;
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 14703a4..c3f1102 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_theme_color_dark"
+        android:background="@color/dialer_secondary_color"
         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 1556247..77c7a58 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|textCapSentences"
+      android:inputType="textShortMessage"
       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 1a57f87..4fa52ad 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, 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>
+    <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>
 </resources>
diff --git a/java/com/android/dialer/callcomposer/res/values/styles.xml b/java/com/android/dialer/callcomposer/res/values/styles.xml
index 16e7fb6..29ac4dd 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="DialerThemeBase.NoActionBar">
+  <style name="Theme.AppCompat.CallComposer" parent="Theme.AppCompat.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 fd887c4..adaac40 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 android:theme="@style/Theme.AppCompat">
+  <application>
     <activity
       android:label="@string/call_details"
       android:name="com.android.dialer.calldetails.CallDetailsActivity"
-      android:theme="@style/DialerThemeBase.NoActionBar">
+      android:theme="@style/Theme.AppCompat.Light.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 4d5853f..7eab951 100644
--- a/java/com/android/dialer/calldetails/CallDetailsActivity.java
+++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java
@@ -29,13 +29,12 @@
 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;
 
@@ -49,7 +48,7 @@
   private List<CallDetailsEntry> entries;
 
   public static Intent newInstance(
-      Context context, @NonNull CallDetailsEntries details, @NonNull DialerContact contact) {
+      Context context, @NonNull CallDetailsEntries details, @NonNull CallComposerContact contact) {
     Assert.isNotNull(details);
     Assert.isNotNull(contact);
 
@@ -71,20 +70,14 @@
   }
 
   @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) {
-    DialerContact contact =
-        ProtoParsers.getTrusted(intent, EXTRA_CONTACT, DialerContact.getDefaultInstance());
+    CallComposerContact contact =
+        ProtoParsers.getTrusted(intent, EXTRA_CONTACT, CallComposerContact.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 d2fdbb4..7250779 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}. */
-final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+public 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 DialerContact contact;
+  private final CallComposerContact contact;
   private final List<CallDetailsEntry> callDetailsEntries;
   private final CallTypeHelper callTypeHelper;
 
-  CallDetailsAdapter(
+  public CallDetailsAdapter(
       Context context,
-      @NonNull DialerContact contact,
+      @NonNull CallComposerContact 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:
-        throw Assert.createIllegalStateFailException(
-            "No ViewHolder available for viewType: " + viewType);
+        Assert.fail("No ViewHolder available for viewType: " + viewType);
+        return null;
     }
   }
 
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
index 1ddd2e7..4d9aacf 100644
--- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
@@ -25,12 +25,11 @@
 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;
 
@@ -44,24 +43,20 @@
   private final QuickContactBadge contactPhoto;
   private final Context context;
 
-  private DialerContact contact;
+  private CallComposerContact contact;
 
   CallDetailsHeaderViewHolder(View container) {
     super(container);
     context = container.getContext();
     callBackButton = container.findViewById(R.id.call_back_button);
-    nameView = container.findViewById(R.id.contact_name);
-    numberView = container.findViewById(R.id.phone_number);
-    contactPhoto = container.findViewById(R.id.quick_contact_photo);
-
+    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);
     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(DialerContact contact) {
+  void updateContactInfo(CallComposerContact contact) {
     this.contact = contact;
     ContactPhotoManager.getInstance(context)
         .loadDialerThumbnailOrPhoto(
@@ -103,7 +98,7 @@
           view.getContext(),
           new CallIntentBuilder(contact.getNumber(), CallInitiationType.Type.CALL_DETAILS).build());
     } else {
-      throw Assert.createIllegalStateFailException("View OnClickListener not implemented: " + view);
+      Assert.fail("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 d8d6e4e..bb89b36 100644
--- a/java/com/android/dialer/calldetails/res/layout/contact_container.xml
+++ b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
@@ -56,8 +56,6 @@
         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>
 
@@ -68,8 +66,8 @@
       android:layout_alignParentEnd="true"
       android:layout_centerVertical="true"
       android:background="?android:attr/selectableItemBackgroundBorderless"
-      android:contentDescription="@string/call"
+      android:contentDescription="@string/description_call_log_call_action"
       android:scaleType="center"
       android:src="@drawable/quantum_ic_call_white_24"
       android:tint="@color/secondary_text_color"/>
-</RelativeLayout>
\ No newline at end of file
+</RelativeLayout>
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 74fbcd0..86bef4b 100644
--- a/java/com/android/dialer/calldetails/res/values-af/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-af/strings.xml
@@ -21,6 +21,7 @@
     <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 4deaceb..2a23945 100644
--- a/java/com/android/dialer/calldetails/res/values-am/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-am/strings.xml
@@ -21,6 +21,7 @@
     <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 11a80e9..6b0d8a7 100644
--- a/java/com/android/dialer/calldetails/res/values-ar/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ar/strings.xml
@@ -21,6 +21,7 @@
     <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 6710966..479837c 100644
--- a/java/com/android/dialer/calldetails/res/values-az/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-az/strings.xml
@@ -21,6 +21,7 @@
     <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 a08c4ed..01141ff 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,6 +21,7 @@
     <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 3997fb2..683f29b 100644
--- a/java/com/android/dialer/calldetails/res/values-be/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-be/strings.xml
@@ -21,6 +21,7 @@
     <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 2354517..9cd70e2 100644
--- a/java/com/android/dialer/calldetails/res/values-bg/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bg/strings.xml
@@ -21,6 +21,7 @@
     <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 0667152..148f61a 100644
--- a/java/com/android/dialer/calldetails/res/values-bn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bn/strings.xml
@@ -21,6 +21,7 @@
     <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 305a413..6f164b2 100644
--- a/java/com/android/dialer/calldetails/res/values-bs/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bs/strings.xml
@@ -21,6 +21,7 @@
     <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 6d5092e..0e33e60 100644
--- a/java/com/android/dialer/calldetails/res/values-ca/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ca/strings.xml
@@ -21,6 +21,7 @@
     <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 bec5bab..9747ee1 100644
--- a/java/com/android/dialer/calldetails/res/values-cs/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-cs/strings.xml
@@ -21,6 +21,7 @@
     <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 cfc4ad1..41bc252 100644
--- a/java/com/android/dialer/calldetails/res/values-da/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-da/strings.xml
@@ -21,6 +21,7 @@
     <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 6443924..014666b 100644
--- a/java/com/android/dialer/calldetails/res/values-de/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-de/strings.xml
@@ -21,6 +21,7 @@
     <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 04c850e..6b51fc7 100644
--- a/java/com/android/dialer/calldetails/res/values-el/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-el/strings.xml
@@ -21,6 +21,7 @@
     <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 5f4f559..2d5210e 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,6 +21,7 @@
     <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 5f4f559..2d5210e 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,6 +21,7 @@
     <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 5f4f559..2d5210e 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,6 +21,7 @@
     <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 8986534..d9db282 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,6 +21,7 @@
     <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 ad581b4..e72e898 100644
--- a/java/com/android/dialer/calldetails/res/values-es/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-es/strings.xml
@@ -21,6 +21,7 @@
     <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 9190b28..496459d 100644
--- a/java/com/android/dialer/calldetails/res/values-et/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-et/strings.xml
@@ -21,6 +21,7 @@
     <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 a8c48cf..913082f 100644
--- a/java/com/android/dialer/calldetails/res/values-eu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-eu/strings.xml
@@ -21,6 +21,7 @@
     <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 d02591b..cad85a2 100644
--- a/java/com/android/dialer/calldetails/res/values-fa/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fa/strings.xml
@@ -21,6 +21,7 @@
     <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 3b409ed..c16110d 100644
--- a/java/com/android/dialer/calldetails/res/values-fi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fi/strings.xml
@@ -21,6 +21,7 @@
     <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 7b88bdd..676861f 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,6 +21,7 @@
     <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 8319a2c..606cb10 100644
--- a/java/com/android/dialer/calldetails/res/values-fr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fr/strings.xml
@@ -21,6 +21,7 @@
     <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 f7aa166..aa5ff14 100644
--- a/java/com/android/dialer/calldetails/res/values-gl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-gl/strings.xml
@@ -21,6 +21,7 @@
     <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 03e402e..ccb8755 100644
--- a/java/com/android/dialer/calldetails/res/values-gu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-gu/strings.xml
@@ -21,6 +21,7 @@
     <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 3e46920..517fbe5 100644
--- a/java/com/android/dialer/calldetails/res/values-hi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hi/strings.xml
@@ -21,6 +21,7 @@
     <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 c1cc360..687a65e 100644
--- a/java/com/android/dialer/calldetails/res/values-hr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hr/strings.xml
@@ -21,6 +21,7 @@
     <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 298c10e..66863e8 100644
--- a/java/com/android/dialer/calldetails/res/values-hu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hu/strings.xml
@@ -21,6 +21,7 @@
     <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 ab44622..a1e84e9 100644
--- a/java/com/android/dialer/calldetails/res/values-hy/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hy/strings.xml
@@ -21,6 +21,7 @@
     <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 68ced55..ba58ba0 100644
--- a/java/com/android/dialer/calldetails/res/values-in/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-in/strings.xml
@@ -21,6 +21,7 @@
     <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 667ebd6..0770814 100644
--- a/java/com/android/dialer/calldetails/res/values-is/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-is/strings.xml
@@ -21,6 +21,7 @@
     <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 4f159d5..97af251 100644
--- a/java/com/android/dialer/calldetails/res/values-it/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-it/strings.xml
@@ -21,6 +21,7 @@
     <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 87c6fed..329eded 100644
--- a/java/com/android/dialer/calldetails/res/values-iw/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-iw/strings.xml
@@ -21,6 +21,7 @@
     <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 d3a15d4..7aef345 100644
--- a/java/com/android/dialer/calldetails/res/values-ja/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ja/strings.xml
@@ -21,6 +21,7 @@
     <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 66f1928..1cd7bc2 100644
--- a/java/com/android/dialer/calldetails/res/values-ka/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ka/strings.xml
@@ -21,6 +21,7 @@
     <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 c3903e1..1923cf7 100644
--- a/java/com/android/dialer/calldetails/res/values-kk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-kk/strings.xml
@@ -21,6 +21,7 @@
     <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 240e28a..e047279 100644
--- a/java/com/android/dialer/calldetails/res/values-km/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-km/strings.xml
@@ -21,6 +21,7 @@
     <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 a833ffc..66c0d63 100644
--- a/java/com/android/dialer/calldetails/res/values-kn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-kn/strings.xml
@@ -21,6 +21,7 @@
     <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 700c360..35c5038 100644
--- a/java/com/android/dialer/calldetails/res/values-ko/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ko/strings.xml
@@ -21,6 +21,7 @@
     <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 08546c8..fe37b33 100644
--- a/java/com/android/dialer/calldetails/res/values-ky/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ky/strings.xml
@@ -21,6 +21,7 @@
     <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 8f099e8..85b636a 100644
--- a/java/com/android/dialer/calldetails/res/values-lo/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lo/strings.xml
@@ -21,6 +21,7 @@
     <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 62d89f5..9c8ad7b 100644
--- a/java/com/android/dialer/calldetails/res/values-lt/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lt/strings.xml
@@ -21,6 +21,7 @@
     <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 3625649..d878393 100644
--- a/java/com/android/dialer/calldetails/res/values-lv/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lv/strings.xml
@@ -21,6 +21,7 @@
     <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 6d1fd71..9388ae0 100644
--- a/java/com/android/dialer/calldetails/res/values-mk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mk/strings.xml
@@ -21,6 +21,7 @@
     <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 fbafb88..d296911 100644
--- a/java/com/android/dialer/calldetails/res/values-ml/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ml/strings.xml
@@ -21,6 +21,7 @@
     <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 10b5d96..cb264e0 100644
--- a/java/com/android/dialer/calldetails/res/values-mn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mn/strings.xml
@@ -21,6 +21,7 @@
     <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 5644664..5c31e36 100644
--- a/java/com/android/dialer/calldetails/res/values-mr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mr/strings.xml
@@ -21,6 +21,7 @@
     <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 157198d..da17d6e 100644
--- a/java/com/android/dialer/calldetails/res/values-ms/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ms/strings.xml
@@ -21,6 +21,7 @@
     <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 bf3f90b..75508d8 100644
--- a/java/com/android/dialer/calldetails/res/values-my/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-my/strings.xml
@@ -21,6 +21,7 @@
     <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 609c8af..022025f 100644
--- a/java/com/android/dialer/calldetails/res/values-nb/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-nb/strings.xml
@@ -21,6 +21,7 @@
     <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 6b60967..8fe355b 100644
--- a/java/com/android/dialer/calldetails/res/values-ne/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ne/strings.xml
@@ -21,6 +21,7 @@
     <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 f5efb1a..71657b8 100644
--- a/java/com/android/dialer/calldetails/res/values-nl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-nl/strings.xml
@@ -21,6 +21,7 @@
     <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 609c8af..022025f 100644
--- a/java/com/android/dialer/calldetails/res/values-no/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-no/strings.xml
@@ -21,6 +21,7 @@
     <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 8a9ec1f..d4f1759 100644
--- a/java/com/android/dialer/calldetails/res/values-pa/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pa/strings.xml
@@ -21,6 +21,7 @@
     <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 1a342b0..9644600 100644
--- a/java/com/android/dialer/calldetails/res/values-pl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pl/strings.xml
@@ -21,6 +21,7 @@
     <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 7abc8be..467973d 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,6 +21,7 @@
     <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 5e6dae8..cfbbc02 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,6 +21,7 @@
     <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 7abc8be..467973d 100644
--- a/java/com/android/dialer/calldetails/res/values-pt/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt/strings.xml
@@ -21,6 +21,7 @@
     <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 3a6447b..e9281ae 100644
--- a/java/com/android/dialer/calldetails/res/values-ro/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ro/strings.xml
@@ -21,6 +21,7 @@
     <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 b071dc6..bf981e2 100644
--- a/java/com/android/dialer/calldetails/res/values-ru/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ru/strings.xml
@@ -21,6 +21,7 @@
     <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 999183b..5fdca0d 100644
--- a/java/com/android/dialer/calldetails/res/values-si/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-si/strings.xml
@@ -21,6 +21,7 @@
     <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 57b90cf..db04787 100644
--- a/java/com/android/dialer/calldetails/res/values-sk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sk/strings.xml
@@ -21,6 +21,7 @@
     <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 83ffcbb..98975f4 100644
--- a/java/com/android/dialer/calldetails/res/values-sl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sl/strings.xml
@@ -21,6 +21,7 @@
     <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 d05770f..dd9915d 100644
--- a/java/com/android/dialer/calldetails/res/values-sq/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sq/strings.xml
@@ -21,6 +21,7 @@
     <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 a1294df..7f4005d 100644
--- a/java/com/android/dialer/calldetails/res/values-sr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sr/strings.xml
@@ -21,6 +21,7 @@
     <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 9b2e25e..3967b4f 100644
--- a/java/com/android/dialer/calldetails/res/values-sv/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sv/strings.xml
@@ -21,6 +21,7 @@
     <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 b767337..e5df823 100644
--- a/java/com/android/dialer/calldetails/res/values-sw/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sw/strings.xml
@@ -21,6 +21,7 @@
     <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 51ff04f..840ad87 100644
--- a/java/com/android/dialer/calldetails/res/values-ta/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ta/strings.xml
@@ -21,6 +21,7 @@
     <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 1d44e55..3054444 100644
--- a/java/com/android/dialer/calldetails/res/values-te/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-te/strings.xml
@@ -21,6 +21,7 @@
     <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 3fe88f9..c565eba 100644
--- a/java/com/android/dialer/calldetails/res/values-th/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-th/strings.xml
@@ -21,6 +21,7 @@
     <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 91fb3be..81c148e 100644
--- a/java/com/android/dialer/calldetails/res/values-tl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-tl/strings.xml
@@ -21,6 +21,7 @@
     <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 f84d0b3..ade4018 100644
--- a/java/com/android/dialer/calldetails/res/values-tr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-tr/strings.xml
@@ -21,6 +21,7 @@
     <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 bf6e0ac..6538d66 100644
--- a/java/com/android/dialer/calldetails/res/values-uk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-uk/strings.xml
@@ -21,6 +21,7 @@
     <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 5a22869..90c3a59 100644
--- a/java/com/android/dialer/calldetails/res/values-ur/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ur/strings.xml
@@ -21,6 +21,7 @@
     <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 890b7ae..7b443ca 100644
--- a/java/com/android/dialer/calldetails/res/values-uz/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-uz/strings.xml
@@ -21,6 +21,7 @@
     <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 b589632..7a95021 100644
--- a/java/com/android/dialer/calldetails/res/values-vi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-vi/strings.xml
@@ -21,6 +21,7 @@
     <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 7b8b972..aad695a 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,6 +21,7 @@
     <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 8771098..eb5b606 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,6 +21,7 @@
     <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 73aba80..fd426c0 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,6 +21,7 @@
     <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 94040ce..d41d1f5 100644
--- a/java/com/android/dialer/calldetails/res/values-zu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zu/strings.xml
@@ -21,6 +21,7 @@
     <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 91bf70e..f85d02f 100644
--- a/java/com/android/dialer/calldetails/res/values/dimens.xml
+++ b/java/com/android/dialer/calldetails/res/values/dimens.xml
@@ -15,6 +15,8 @@
   ~ 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 6b3b179..4471605 100644
--- a/java/com/android/dialer/calldetails/res/values/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values/strings.xml
@@ -27,6 +27,10 @@
   <!-- 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 1a2b529..4fffe1a 100644
--- a/java/com/android/dialer/calldetails/res/values/styles.xml
+++ b/java/com/android/dialer/calldetails/res/values/styles.xml
@@ -15,6 +15,24 @@
   ~ 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 c62006d..20ffc1f 100644
--- a/java/com/android/dialer/callintent/call_specific_app_data.proto
+++ b/java/com/android/dialer/callintent/call_specific_app_data.proto
@@ -7,7 +7,6 @@
 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
@@ -18,7 +17,4 @@
   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
deleted file mode 100644
index d352f45..0000000
--- a/java/com/android/dialer/callintent/speed_dial_contact_type.proto
+++ /dev/null
@@ -1,18 +0,0 @@
-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 c7db2a1..5cdd2b4 100644
--- a/java/com/android/dialer/calllog/CallLogComponent.java
+++ b/java/com/android/dialer/calllog/CallLogComponent.java
@@ -25,8 +25,6 @@
 
   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 55ef15b..508413b 100644
--- a/java/com/android/dialer/calllog/CallLogFramework.java
+++ b/java/com/android/dialer/calllog/CallLogFramework.java
@@ -22,7 +22,6 @@
 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;
@@ -39,6 +38,7 @@
 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,7 +58,6 @@
     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 2f2f16d..d7473a7 100644
--- a/java/com/android/dialer/calllog/CallLogModule.java
+++ b/java/com/android/dialer/calllog/CallLogModule.java
@@ -17,9 +17,11 @@
 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;
@@ -30,6 +32,10 @@
 @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/datasources/DataSources.java b/java/com/android/dialer/calllog/DataSources.java
similarity index 88%
rename from java/com/android/dialer/calllog/datasources/DataSources.java
rename to java/com/android/dialer/calllog/DataSources.java
index 911ca3f..21d1901 100644
--- a/java/com/android/dialer/calllog/datasources/DataSources.java
+++ b/java/com/android/dialer/calllog/DataSources.java
@@ -14,13 +14,14 @@
  * limitations under the License
  */
 
-package com.android.dialer.calllog.datasources;
+package com.android.dialer.calllog;
 
+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. */
-public interface DataSources {
+interface DataSources {
 
   SystemCallLogDataSource getSystemCallLogDataSource();
 
diff --git a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
index d25ec5e..f9f0c99 100644
--- a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
+++ b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
@@ -18,16 +18,14 @@
 
 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.CallLogDatabaseComponent;
+import com.android.dialer.calllog.database.AnnotatedCallLog;
+import com.android.dialer.calllog.database.CallLogMutations;
 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;
@@ -36,65 +34,75 @@
 /**
  * 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.
+ * <p>Accepts a boolean which indicates if the dirty check should be skipped, and returns true if
+ * the annotated call log was updated.
  */
-public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Void> {
+public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Boolean> {
 
   private final Context appContext;
   private final DataSources dataSources;
 
   @Inject
-  RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) {
+  public RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) {
     this.appContext = appContext;
     this.dataSources = dataSources;
   }
 
   @Override
-  public Void doInBackground(Boolean skipDirtyCheck)
-      throws RemoteException, OperationApplicationException {
-    LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackground");
+  public Boolean doInBackground(Boolean skipDirtyCheck) {
+    LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackgroundFallible");
 
     long startTime = System.currentTimeMillis();
-    checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck);
+    boolean annotatedCallLogUpdated = checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck);
     LogUtil.i(
-        "RefreshAnnotatedCallLogWorker.doInBackground",
-        "took %dms",
+        "RefreshAnnotatedCallLogWorker.doInBackgroundFallible",
+        "updated? %s, took %dms",
+        annotatedCallLogUpdated,
         System.currentTimeMillis() - startTime);
-    return null;
+    return annotatedCallLogUpdated;
   }
 
   @WorkerThread
-  private void checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck)
-      throws RemoteException, OperationApplicationException {
+  private boolean checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck) {
     Assert.isWorkerThread();
 
     long startTime = System.currentTimeMillis();
 
     SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext);
-    // 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.
+    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");
+    }
     boolean forceRebuildPrefValue =
-        sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, true);
+        sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, false);
     if (forceRebuildPrefValue) {
       LogUtil.i(
           "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
-          "annotated call log has been marked dirty or does not exist");
+          "call log has been marked dirty");
     }
 
-    boolean isDirty = skipDirtyCheck || forceRebuildPrefValue || isDirty(appContext);
-
+    boolean isDirty =
+        lastRebuildTimeMillis == 0
+            || skipDirtyCheck
+            || forceRebuildPrefValue
+            || isDirty(appContext);
     LogUtil.i(
         "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
         "isDirty took: %dms",
         System.currentTimeMillis() - startTime);
     if (isDirty) {
       startTime = System.currentTimeMillis();
-      rebuild(appContext);
+      rebuild(appContext, lastRebuildTimeMillis);
       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
@@ -121,48 +129,51 @@
 
   @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
   @WorkerThread
-  private void rebuild(Context appContext) throws RemoteException, OperationApplicationException {
+  private void rebuild(Context appContext, long lastRebuildTimeMillis) {
     Assert.isWorkerThread();
 
-    CallLogMutations mutations = new CallLogMutations();
+    // TODO: Start a transaction?
+    try (SQLiteDatabase database = AnnotatedCallLog.getWritableDatabase(appContext)) {
 
-    // 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);
+      CallLogMutations mutations = new CallLogMutations();
 
-    for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) {
-      dataSourceName = getName(dataSource);
+      // System call log data source must go first!
+      CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource();
+      String dataSourceName = getName(systemCallLogDataSource);
       LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
-      startTime = System.currentTimeMillis();
-      dataSource.fill(appContext, mutations);
+      long startTime = System.currentTimeMillis();
+      systemCallLogDataSource.fill(appContext, database, lastRebuildTimeMillis, mutations);
       LogUtil.i(
-          "CallLogFramework.rebuild",
+          "RefreshAnnotatedCallLogWorker.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
deleted file mode 100644
index 396a6d9..0000000
--- a/java/com/android/dialer/calllog/database/AndroidManifest.xml
+++ /dev/null
@@ -1,28 +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
- -->
-<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
new file mode 100644
index 0000000..7dca44a
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLog.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.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
deleted file mode 100644
index a9c0d36..0000000
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
+++ /dev/null
@@ -1,310 +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.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 3cca639..7b28e55 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -16,25 +16,28 @@
 
 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) {
-    super(appContext, "annotated_call_log.db", null, 1);
+  AnnotatedCallLogDatabaseHelper(Context appContext, String databaseName) {
+    super(appContext, databaseName, null, 1);
   }
 
   private static final String CREATE_SQL =
       new StringBuilder()
-          .append("create table if not exists " + AnnotatedCallLog.TABLE + " (")
-          .append(AnnotatedCallLog._ID + " integer primary key, ")
-          .append(AnnotatedCallLog.TIMESTAMP + " integer, ")
-          .append(AnnotatedCallLog.CONTACT_NAME + " string")
+          .append("create table if not exists " + AnnotatedCallLog.TABLE_NAME + " (")
+          .append(ID + " integer primary key, ")
+          .append(TIMESTAMP + " integer, ")
+          .append(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
deleted file mode 100644
index ede4691..0000000
--- a/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.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.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
new file mode 100644
index 0000000..ec020c6
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/CallLogMutations.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
deleted file mode 100644
index e3dfb7e..0000000
--- a/java/com/android/dialer/calllog/database/Coalescer.java
+++ /dev/null
@@ -1,142 +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.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
deleted file mode 100644
index 21c8a50..0000000
--- a/java/com/android/dialer/calllog/database/MutationApplier.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.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
deleted file mode 100644
index 8b3b0a8..0000000
--- a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
+++ /dev/null
@@ -1,114 +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.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 3fff3ba..13d0b84 100644
--- a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
@@ -16,39 +16,13 @@
 
 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.contract.AnnotatedCallLogContract;
-import java.util.List;
+import com.android.dialer.calllog.database.CallLogMutations;
 
-/**
- * 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.
- */
+/** A source of data for one or more columns in the annotated call log. */
 public interface CallLogDataSource {
 
   /**
@@ -61,8 +35,6 @@
    * <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);
@@ -71,39 +43,16 @@
    * 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, 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);
+  void fill(
+      Context appContext,
+      SQLiteDatabase readableDatabase,
+      long lastRebuildTimeMillis,
+      CallLogMutations mutations);
 
   @MainThread
   void registerContentObservers(
diff --git a/java/com/android/dialer/calllog/datasources/CallLogMutations.java b/java/com/android/dialer/calllog/datasources/CallLogMutations.java
deleted file mode 100644
index 148601d..0000000
--- a/java/com/android/dialer/calllog/datasources/CallLogMutations.java
+++ /dev/null
@@ -1,110 +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.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/contacts/ContactsDataSource.java b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
index e9538da..355940f 100644
--- a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
@@ -16,16 +16,13 @@
 
 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.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.database.CallLogMutations;
 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. */
@@ -47,24 +44,13 @@
   @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 be2df60..ea6663f 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -16,49 +16,28 @@
 
 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.Cursor;
+import android.database.sqlite.SQLiteDatabase;
 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 android.text.TextUtils;
-import android.util.ArraySet;
-import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.database.CallLogMutations;
 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() {}
 
@@ -68,8 +47,6 @@
       Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
     Assert.isMainThread();
 
-    LogUtil.enterBlock("SystemCallLogDataSource.registerContentObservers");
-
     if (!PermissionsUtil.hasCallLogReadPermissions(appContext)) {
       LogUtil.i("SystemCallLogDataSource.registerContentObservers", "no call log permissions");
       return;
@@ -100,185 +77,17 @@
 
   @WorkerThread
   @Override
-  public void fill(Context appContext, CallLogMutations mutations) {
+  public void fill(
+      Context appContext,
+      SQLiteDatabase readableDatabase,
+      long lastRebuildTimeMillis,
+      CallLogMutations mutations) {
     Assert.isWorkerThread();
 
-    lastTimestampProcessed = null;
-
-    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());
+    Assert.checkState(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;
-    }
+    // TODO: Implementation.
   }
 
   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
deleted file mode 100644
index 0c7be1e..0000000
--- a/java/com/android/dialer/calllog/datasources/util/RowCombiner.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.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
deleted file mode 100644
index cb22405..0000000
--- a/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java
+++ /dev/null
@@ -1,39 +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.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 eaf71ab..2281677 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.ui"/>
+<manifest package="com.android.dialer.calllog"/>
diff --git a/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java b/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java
new file mode 100644
index 0000000..cd8622e
--- /dev/null
+++ b/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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
deleted file mode 100644
index f9ab21c..0000000
--- a/java/com/android/dialer/calllog/ui/NewCallLogAdapter.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.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 89ed52f..b8f2b13 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.CursorLoader;
+import android.content.Context;
 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.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
+import com.android.dialer.calllog.database.AnnotatedCallLog.Columns;
 import com.android.dialer.common.LogUtil;
-import com.android.dialer.common.concurrent.DialerExecutor;
-import com.android.dialer.common.concurrent.DialerExecutorComponent;
-import com.android.dialer.common.concurrent.DialerExecutorFactory;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
 
 /** 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 DialerExecutor<Boolean> refreshAnnotatedCallLogTask;
-  private RecyclerView recyclerView;
+  private CursorAdapter cursorAdapter;
 
   public NewCallLogFragment() {
     LogUtil.enterBlock("NewCallLogFragment.NewCallLogFragment");
@@ -52,27 +52,8 @@
 
     LogUtil.enterBlock("NewCallLogFragment.onCreate");
 
-    CallLogComponent component = CallLogComponent.get(getContext());
-    CallLogFramework callLogFramework = component.callLogFramework();
+    CallLogFramework callLogFramework = CallLogComponent.get(getContext()).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
@@ -83,9 +64,6 @@
 
     CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework();
     callLogFramework.attachUi(this);
-
-    // TODO: Consider doing this when fragment becomes visible.
-    checkAnnotatedCallLogDirtyAndRefreshIfNecessary();
   }
 
   @Override
@@ -104,44 +82,57 @@
     LogUtil.enterBlock("NewCallLogFragment.onCreateView");
 
     View view = inflater.inflate(R.layout.new_call_log_fragment, container, false);
-    recyclerView = view.findViewById(R.id.new_call_log_recycler_view);
+    ListView listView = (ListView) view.findViewById(R.id.list);
 
-    getLoaderManager().restartLoader(0, null, this);
+    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);
 
     return view;
   }
 
-  private void checkAnnotatedCallLogDirtyAndRefreshIfNecessary() {
-    LogUtil.enterBlock("NewCallLogFragment.checkAnnotatedCallLogDirtyAndRefreshIfNecessary");
-    refreshAnnotatedCallLogTask.executeSerial(false /* skipDirtyCheck */);
-  }
-
   @Override
   public void invalidateUi() {
     LogUtil.enterBlock("NewCallLogFragment.invalidateUi");
-    refreshAnnotatedCallLogTask.executeSerial(true /* skipDirtyCheck */);
+    // TODO: Implementation.
   }
 
   @Override
   public Loader<Cursor> onCreateLoader(int id, Bundle args) {
-    LogUtil.enterBlock("NewCallLogFragment.onCreateLoader");
-    // CoalescedAnnotatedCallLog requires that all params be null.
-    return new CursorLoader(
-        getContext(), CoalescedAnnotatedCallLog.CONTENT_URI, null, null, null, null);
+    // TODO: This is sort of weird, do we need to implement a content provider?
+    return new AnnotatedCallLogCursorLoader(getContext());
   }
 
   @Override
   public void onLoadFinished(Loader<Cursor> loader, Cursor newCursor) {
-    LogUtil.enterBlock("NewCallLogFragment.onLoadFinished");
-
-    // TODO: Handle empty cursor by showing empty view.
-    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
-    recyclerView.setAdapter(new NewCallLogAdapter(newCursor));
+    cursorAdapter.swapCursor(newCursor);
   }
 
   @Override
   public void onLoaderReset(Loader<Cursor> loader) {
-    LogUtil.enterBlock("NewCallLogFragment.onLoaderReset");
-    recyclerView.setAdapter(null);
+    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);
+    }
   }
 }
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
deleted file mode 100644
index 4c459e1..0000000
--- a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
+++ /dev/null
@@ -1,43 +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.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 99797fa..ee3efd0 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,20 +18,16 @@
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    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"
-      style="@style/PrimaryText"/>
+    android:layout_height="match_parent"
+    android:orientation="horizontal">
 
   <TextView
       android:id="@+id/timestamp"
       android:layout_width="wrap_content"
-      android:layout_height="wrap_content"
-      style="@style/SecondaryText"/>
+      android:layout_height="wrap_content"/>
 
+  <TextView
+      android:id="@+id/contact_name"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"/>
 </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 e1d8410..433dbdd 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,9 +15,8 @@
   ~ limitations under the License
   -->
 
-<android.support.v7.widget.RecyclerView
+<ListView
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/new_call_log_recycler_view"
+    android:id="@+id/list"
     android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@color/background_dialer_light"/>
+    android:layout_height="match_parent"/>
diff --git a/java/com/android/dialer/common/Assert.java b/java/com/android/dialer/common/Assert.java
index 943e1dd..189d209 100644
--- a/java/com/android/dialer/common/Assert.java
+++ b/java/com/android/dialer/common/Assert.java
@@ -30,6 +30,10 @@
     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
deleted file mode 100644
index 2503325..0000000
--- a/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java
+++ /dev/null
@@ -1,39 +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.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/dialer/common/concurrent/DialerExecutorModule.java b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
deleted file mode 100644
index 281f88c..0000000
--- a/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
+++ /dev/null
@@ -1,28 +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.common.concurrent;
-
-import dagger.Binds;
-import dagger.Module;
-
-/** Module which binds the production {@link DialerExecutorFactory}. */
-@Module
-public abstract class DialerExecutorModule {
-
-  @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 351c89a..673cb70 100644
--- a/java/com/android/dialer/compat/CompatUtils.java
+++ b/java/com/android/dialer/compat/CompatUtils.java
@@ -16,9 +16,15 @@
 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;
@@ -64,4 +70,153 @@
   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 076393e..d92c0bc 100644
--- a/java/com/android/dialer/constants/Constants.java
+++ b/java/com/android/dialer/constants/Constants.java
@@ -53,8 +53,5 @@
   @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 a54adc7..2fed4ef 100644
--- a/java/com/android/dialer/constants/ScheduledJobIds.java
+++ b/java/com/android/dialer/constants/ScheduledJobIds.java
@@ -32,7 +32,6 @@
   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/dialer/constants/aospdialer/ConstantsImpl.java b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
index 1111732..6b78b98 100644
--- a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
+++ b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
@@ -34,10 +34,4 @@
   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
deleted file mode 100644
index a64066e..0000000
--- a/java/com/android/dialer/contactactions/AndroidManifest.xml
+++ /dev/null
@@ -1,16 +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
- -->
-<manifest package="com.android.dialer.contactactions"/>
diff --git a/java/com/android/dialer/contactactions/ContactActionBottomSheet.java b/java/com/android/dialer/contactactions/ContactActionBottomSheet.java
deleted file mode 100644
index 4718ff0..0000000
--- a/java/com/android/dialer/contactactions/ContactActionBottomSheet.java
+++ /dev/null
@@ -1,136 +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.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
deleted file mode 100644
index 8089edc..0000000
--- a/java/com/android/dialer/contactactions/ContactActionModule.java
+++ /dev/null
@@ -1,38 +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.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
deleted file mode 100644
index aabd160..0000000
--- a/java/com/android/dialer/contactactions/DividerModule.java
+++ /dev/null
@@ -1,41 +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.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
deleted file mode 100644
index 201f521..0000000
--- a/java/com/android/dialer/contactactions/IntentModule.java
+++ /dev/null
@@ -1,75 +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.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
deleted file mode 100644
index bf32971..0000000
--- a/java/com/android/dialer/contactactions/res/layout/contact_layout.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT 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
deleted file mode 100644
index fdee50e..0000000
--- a/java/com/android/dialer/contactactions/res/layout/divider_layout.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT 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
deleted file mode 100644
index 9aee679..0000000
--- a/java/com/android/dialer/contactactions/res/layout/module_layout.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT 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
deleted file mode 100644
index 6984367..0000000
--- a/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT 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/dialer/contactactions/res/values/dimens.xml b/java/com/android/dialer/contactactions/res/values/dimens.xml
deleted file mode 100644
index 47bf804..0000000
--- a/java/com/android/dialer/contactactions/res/values/dimens.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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="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 586e22a..5df106d 100644
--- a/java/com/android/dialer/contactsfragment/ContactViewHolder.java
+++ b/java/com/android/dialer/contactsfragment/ContactViewHolder.java
@@ -16,7 +16,6 @@
 
 package com.android.dialer.contactsfragment;
 
-import android.content.Context;
 import android.net.Uri;
 import android.provider.ContactsContract.QuickContact;
 import android.support.v7.widget.RecyclerView;
@@ -26,8 +25,6 @@
 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 {
@@ -35,14 +32,12 @@
   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);
@@ -65,10 +60,6 @@
     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() {
@@ -85,8 +76,6 @@
 
   @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 309e034..4692eff 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.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.dialer.common.Assert;
 
 /** 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,
-            LetterTileDrawable.TYPE_DEFAULT);
+            0);
 
     String photoDescription =
         context.getString(com.android.contacts.common.R.string.description_quick_contact_for, name);
@@ -79,23 +79,17 @@
     // 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.
-    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);
+    if (position == 0) {
+      contactViewHolder.bind(header, name, contactUri, true);
+    } else {
+      boolean showHeader = !header.equals(getHeaderString(position - 1));
+      contactViewHolder.bind(header, name, contactUri, showHeader);
+    }
   }
 
   public void refreshHeaders() {
     for (ContactViewHolder holder : holderMap.keySet()) {
-      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);
+      onBindViewHolder(holder, holderMap.get(holder));
     }
   }
 
@@ -104,6 +98,27 @@
     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);
   }
@@ -123,7 +138,7 @@
     return Contacts.getLookupUri(contactId, lookupKey);
   }
 
-  public String getHeaderString(int position) {
+  private 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 2bb540a..6d4d210 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_DISPLAY_NAME_PRIMARY =
+  public static final String[] CONTACTS_PROJECTION =
       new String[] {
         Contacts._ID, // 0
         Contacts.DISPLAY_NAME_PRIMARY, // 1
@@ -38,35 +38,16 @@
         Contacts.LOOKUP_KEY, // 4
       };
 
-  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) {
+  public ContactsCursorLoader(Context context) {
     super(
         context,
         Contacts.CONTENT_URI
             .buildUpon()
             .appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true")
             .build(),
-        contactProjection,
+        CONTACTS_PROJECTION,
         null,
         null,
-        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);
+        Contacts.SORT_KEY_PRIMARY + " ASC");
   }
 }
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java
index a996a4f..ea662fc 100644
--- a/java/com/android/dialer/contactsfragment/ContactsFragment.java
+++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java
@@ -16,125 +16,63 @@
 
 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,
-        OnEmptyViewActionButtonClickedListener {
+    implements LoaderCallbacks<Cursor>, OnScrollChangeListener {
 
-  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);
-    recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
+    manager = new LinearLayoutManager(getContext());
 
-    emptyContentView = (EmptyContentView) view.findViewById(R.id.empty_list_view);
-    emptyContentView.setImage(R.drawable.empty_contacts);
-    emptyContentView.setActionClickedListener(this);
+    // 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);
 
     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) {
-    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);
+    return new ContactsCursorLoader(getContext());
   }
 
   @Override
   public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
-    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);
+    // TODO setup fast scroller.
+    adapter = new ContactsAdapter(getContext(), cursor);
+    recyclerView.setAdapter(adapter);
+    if (adapter.getItemCount() > 1) {
+      recyclerView.setOnScrollChangeListener(this);
     }
   }
 
@@ -143,7 +81,6 @@
     recyclerView.setAdapter(null);
     recyclerView.setOnScrollChangeListener(null);
     adapter = null;
-    contactsPrefs.unregisterChangeListener();
   }
 
   /*
@@ -158,10 +95,8 @@
    */
   @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.
@@ -169,46 +104,15 @@
     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 {
-      anchoredHeader.setVisibility(View.INVISIBLE);
-      getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.VISIBLE);
-      getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.VISIBLE);
-    }
-  }
+      boolean showAnchor =
+          adapter.getHeader(firstVisibleItem).equals(adapter.getHeader(firstCompletelyVisible));
+      anchoredHeader.setText(adapter.getHeader(firstCompletelyVisible));
+      anchoredHeader.setVisibility(showAnchor ? View.VISIBLE : View.INVISIBLE);
 
-  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);
-      }
+      int rowHeaderVisibility = showAnchor ? View.INVISIBLE : View.VISIBLE;
+      adapter.setHeaderVisibility(firstVisibleItem, rowHeaderVisibility);
+      adapter.setHeaderVisibility(firstCompletelyVisible, rowHeaderVisibility);
     }
   }
 }
diff --git a/java/com/android/dialer/contactsfragment/FastScroller.java b/java/com/android/dialer/contactsfragment/FastScroller.java
deleted file mode 100644
index 980032c..0000000
--- a/java/com/android/dialer/contactsfragment/FastScroller.java
+++ /dev/null
@@ -1,129 +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.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
deleted file mode 100644
index a7b2277..0000000
--- a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT 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
deleted file mode 100644
index a3e0c25..0000000
--- a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2017 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~      http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT 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 9e829fe..af87c7f 100644
--- a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
+++ b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
@@ -43,13 +43,11 @@
 
     <TextView
         android:id="@+id/contact_name"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:paddingStart="@dimen/text_padding_start"
         android:paddingEnd="@dimen/text_padding_end"
-        android:maxLines="1"
-        android:ellipsize="end"
-        android:gravity="center_vertical"
+        android:gravity="center_vertical|start"
         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 7cbc4f0..67b490f 100644
--- a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
+++ b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
@@ -23,46 +23,8 @@
       android:id="@+id/recycler_view"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
-      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>
+      android:background="@color/background_dialer_white"/>
 
   <!-- 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 f120014..00d7c6d 100644
--- a/java/com/android/dialer/contactsfragment/res/values/dimens.xml
+++ b/java/com/android/dialer/contactsfragment/res/values/dimens.xml
@@ -25,11 +25,4 @@
   <dimen name="text_padding_start">16dp</dimen>
   <dimen name="text_padding_end">8dp</dimen>
   <dimen name="text_size">16sp</dimen>
-
-  <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
+</resources>
diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java
index 6dd7cf4..3488142 100644
--- a/java/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/java/com/android/dialer/database/DialerDatabaseHelper.java
@@ -34,7 +34,6 @@
 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;
@@ -47,6 +46,7 @@
 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,6 +77,8 @@
   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) {
@@ -594,212 +596,218 @@
    * accordingly. It also queries the deleted contact database to remove newly deleted contacts
    * since last update.
    */
-  @WorkerThread
-  public synchronized void updateSmartDialDatabase() {
+  public void updateSmartDialDatabase() {
     LogUtil.enterBlock("DialerDatabaseHelper.updateSmartDialDatabase");
 
     final SQLiteDatabase db = getWritableDatabase();
 
-    LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database");
-    final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null;
+    synchronized (mLock) {
+      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");
+      }
 
-    /** Removes contacts that have been deleted. */
-    removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis));
-    removePotentiallyCorruptedContacts(db, lastUpdateMillis);
+      /** Prevents the app from reading the dialer database when updating. */
+      mInUpdate.getAndSet(true);
 
-    if (DEBUG) {
-      stopWatch.lap("Finished deleting deleted entries");
-    }
+      /** Removes contacts that have been deleted. */
+      removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis));
+      removePotentiallyCorruptedContacts(db, lastUpdateMillis);
 
-    /**
-     * If the database did not exist before, jump through deletion as there is nothing to delete.
-     */
-    if (!lastUpdateMillis.equals("0")) {
+      if (DEBUG) {
+        stopWatch.lap("Finished deleting deleted entries");
+      }
+
       /**
-       * 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 the database did not exist before, jump through deletion as there is nothing to delete.
        */
-      final Cursor updatedContactCursor =
+      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 =
           mContext
               .getContentResolver()
               .query(
-                  UpdatedContactQuery.URI,
-                  UpdatedContactQuery.PROJECTION,
-                  UpdatedContactQuery.SELECT_UPDATED_CLAUSE,
+                  PhoneQuery.URI,
+                  PhoneQuery.PROJECTION,
+                  PhoneQuery.SELECTION,
                   new String[] {lastUpdateMillis},
                   null);
-      if (updatedContactCursor == null) {
+      if (updatedPhoneCursor == 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 =
-        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 {
+        /** Inserts recently updated phone numbers to the smartdial database. */
+        insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis);
         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");
+          stopWatch.lap("Finished building the smart dial table");
         }
       } finally {
-        nameCursor.close();
+        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
+                  + " = "
+                  + 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);
   }
 
   /**
@@ -809,9 +817,12 @@
    * @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.
    */
-  @WorkerThread
-  public synchronized ArrayList<ContactNumber> getLooseMatches(
-      String query, SmartDialNameMatcher nameMatcher) {
+  public ArrayList<ContactNumber> getLooseMatches(String query, SmartDialNameMatcher nameMatcher) {
+    final boolean inUpdate = mInUpdate.get();
+    if (inUpdate) {
+      return new ArrayList<>();
+    }
+
     final SQLiteDatabase db = getReadableDatabase();
 
     /** Uses SQL query wildcard '%' to represent prefix matching. */
diff --git a/java/com/android/dialer/dialpadview/res/values/dimens.xml b/java/com/android/dialer/dialpadview/res/values/dimens.xml
index 7277364..210c816 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">36dp</dimen>
+  <dimen name="dialpad_key_numbers_default_size">36sp</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 ef468a9..52f9d20 100644
--- a/java/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -54,14 +54,11 @@
 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;
@@ -546,12 +543,6 @@
         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 c4bed14..a90febf 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,9 +216,7 @@
 
   private static void processLocationUpdate(
       Context appContext, Geocoder geocoder, Location location) {
-    DialerExecutorComponent.get(appContext)
-        .dialerExecutorFactory()
-        .createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder))
+    DialerExecutors.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 4a98d9e..526cb20 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,22 +62,6 @@
    */
   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 dd3b8ac..f7ca6ec 100644
--- a/java/com/android/dialer/logging/LoggingBindingsStub.java
+++ b/java/com/android/dialer/logging/LoggingBindingsStub.java
@@ -15,7 +15,6 @@
 package com.android.dialer.logging;
 
 import android.app.Activity;
-import android.widget.QuickContactBadge;
 
 /** Default implementation for logging bindings. */
 public class LoggingBindingsStub implements LoggingBindings {
@@ -37,21 +36,5 @@
   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 c9624af..835d7d7 100644
--- a/java/com/android/dialer/logging/contact_lookup_result.proto
+++ b/java/com/android/dialer/logging/contact_lookup_result.proto
@@ -5,7 +5,6 @@
 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 ffd32de..470cf8b 100644
--- a/java/com/android/dialer/logging/contact_source.proto
+++ b/java/com/android/dialer/logging/contact_source.proto
@@ -5,7 +5,6 @@
 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 1d8c828..5416146 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -5,12 +5,11 @@
 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:1196
+  // Next Tag:1191
   enum Type {
 
     UNKNOWN_AOSP_EVENT_TYPE = 1000;
@@ -387,21 +386,5 @@
     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 89cf46f..b9af1b7 100644
--- a/java/com/android/dialer/logging/interaction_event.proto
+++ b/java/com/android/dialer/logging/interaction_event.proto
@@ -5,9 +5,7 @@
 option java_multiple_files = true;
 option optimize_for = LITE_RUNTIME;
 
-
 message InteractionEvent {
-  // Next Tag: 38
   enum Type {
 
     UNKNOWN = 0;
@@ -43,23 +41,5 @@
 
     // 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 d436564..7286948 100644
--- a/java/com/android/dialer/logging/reporting_location.proto
+++ b/java/com/android/dialer/logging/reporting_location.proto
@@ -5,7 +5,6 @@
 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 ca62477..2430bfd 100644
--- a/java/com/android/dialer/logging/screen_event.proto
+++ b/java/com/android/dialer/logging/screen_event.proto
@@ -5,7 +5,6 @@
 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 dee0cff..22bb764 100644
--- a/java/com/android/dialer/multimedia/MultimediaData.java
+++ b/java/com/android/dialer/multimedia/MultimediaData.java
@@ -20,7 +20,6 @@
 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;
 
@@ -64,11 +63,6 @@
   /** 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 806d553..095ee4e 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -18,6 +18,7 @@
 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;
@@ -30,6 +31,7 @@
 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;
 
 /**
@@ -71,12 +73,17 @@
   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;
@@ -110,35 +117,9 @@
     return isCequintCallerIdEnabled;
   }
 
-  public static CequintCallerIdManager createInstanceForCallLog() {
-    return new CequintCallerIdManager();
-  }
-
   @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);
-    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) {
+  public static CequintCallerIdContact getCequintCallerIdContact(Context context, String number) {
     Assert.isWorkerThread();
     LogUtil.d(
         "CequintCallerIdManager.getCequintCallerIdContact",
@@ -161,6 +142,43 @@
 
   @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();
@@ -267,7 +285,33 @@
     return geoDescription;
   }
 
-  private CequintCallerIdManager() {
-    callLogCache = new ConcurrentHashMap<>();
+  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 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 79abff0..9cf145b 100644
--- a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
+++ b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
@@ -67,7 +67,9 @@
   }
 
   private MotorolaHiddenMenuKeySequence(Context context) {
-    featureHiddenMenuEnabled = MotorolaUtils.isSupportingHiddenMenu(context);
+    featureHiddenMenuEnabled =
+        MotorolaUtils.isSpnMatched(context)
+            && context.getResources().getBoolean(R.bool.motorola_feature_hidden_menu);
     // 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 2c91e60..db2b890 100644
--- a/java/com/android/dialer/oem/MotorolaUtils.java
+++ b/java/com/android/dialer/oem/MotorolaUtils.java
@@ -19,10 +19,7 @@
 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 {
@@ -42,8 +39,6 @@
   // 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.
@@ -69,10 +64,6 @@
     }
   }
 
-  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)
@@ -111,22 +102,6 @@
     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 ac33975..7f63bee 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,21 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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 c5cb0d1..39b72cd 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,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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 c5cb0d1..39b72cd 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,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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 c5cb0d1..39b72cd 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,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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 c5cb0d1..39b72cd 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,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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 c5cb0d1..39b72cd 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,20 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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 46e7a16..f875d57 100644
--- a/java/com/android/dialer/oem/res/values/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values/motorola_config.xml
@@ -1,25 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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 aef7374..5546553 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.NonNull;
+import android.support.annotation.Nullable;
 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 @NonNull ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE;
+  public @Nullable 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 c9e940e..bd4ba97 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
@@ -601,17 +601,13 @@
    * will be updated if available.
    */
   @WorkerThread
-  public void updateFromCequintCallerId(
-      @Nullable CequintCallerIdManager cequintCallerIdManager, ContactInfo info, String number) {
+  public void updateFromCequintCallerId(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 22c77dd..79ca5d5 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/DialerThemeBase.NoActionBar"
+      android:theme="@style/Theme.AppCompat.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 7eb83b1..586b473 100644
--- a/java/com/android/dialer/postcall/PostCall.java
+++ b/java/com/android/dialer/postcall/PostCall.java
@@ -26,6 +26,8 @@
 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;
@@ -201,7 +203,19 @@
   }
 
   private static boolean isEnabled(Context context) {
-    return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true);
+    @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;
+    }
   }
 
   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 5a60799..b77c069 100644
--- a/java/com/android/dialer/protos/ProtoParsers.java
+++ b/java/com/android/dialer/protos/ProtoParsers.java
@@ -18,10 +18,13 @@
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
+import android.os.Parcel;
+import android.os.Parcelable;
 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 {
@@ -32,8 +35,11 @@
   @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 {
-    byte[] bytes = bundle.getByteArray(key);
-    return (T) mergeFrom(bytes, defaultInstance.getDefaultInstanceForType());
+    // 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());
   }
 
   /**
@@ -45,7 +51,7 @@
     try {
       return get(bundle, key, defaultInstance);
     } catch (InvalidProtocolBufferException e) {
-      throw Assert.createIllegalStateFailException(e.toString());
+      throw new RuntimeException(e);
     }
   }
 
@@ -62,28 +68,121 @@
    * 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(
-      @NonNull Bundle bundle, @NonNull String key, @NonNull MessageLite message) {
-    Assert.checkState(message != null);
-    bundle.putByteArray(key, message.toByteArray());
+  public static void put(Bundle bundle, String key, MessageLite message) {
+    bundle.putParcelable(key, new InternalDontUse<>(null, message));
   }
 
   /**
    * 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(@NonNull Intent intent, @NonNull String key, MessageLite message) {
-    Assert.checkState(message != null);
-    intent.putExtra(key, message.toByteArray());
+  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;
+    }
   }
 
   /** Parses a proto, throwing parser errors as runtime exceptions. */
   @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes
-  private static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
+  public static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
     try {
       return (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
     } catch (InvalidProtocolBufferException e) {
-      throw Assert.createIllegalStateFailException(e.toString());
+      throw new RuntimeException(e);
     }
   }
 }
diff --git a/java/com/android/dialer/searchfragment/AndroidManifest.xml b/java/com/android/dialer/searchfragment/AndroidManifest.xml
deleted file mode 100644
index 88ce67c..0000000
--- a/java/com/android/dialer/searchfragment/AndroidManifest.xml
+++ /dev/null
@@ -1,16 +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
- -->
-<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
deleted file mode 100644
index e7283d0..0000000
--- a/java/com/android/dialer/searchfragment/NewSearchFragment.java
+++ /dev/null
@@ -1,83 +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.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
deleted file mode 100644
index a3f44ab..0000000
--- a/java/com/android/dialer/searchfragment/QueryUtil.java
+++ /dev/null
@@ -1,269 +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.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
deleted file mode 100644
index b3b9135..0000000
--- a/java/com/android/dialer/searchfragment/README.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# 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
deleted file mode 100644
index 8f52415..0000000
--- a/java/com/android/dialer/searchfragment/SearchAdapter.java
+++ /dev/null
@@ -1,84 +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.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
deleted file mode 100644
index 5006e1a..0000000
--- a/java/com/android/dialer/searchfragment/SearchContactCursor.java
+++ /dev/null
@@ -1,390 +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.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
deleted file mode 100644
index 4ac6af3..0000000
--- a/java/com/android/dialer/searchfragment/SearchContactViewHolder.java
+++ /dev/null
@@ -1,203 +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.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
deleted file mode 100644
index 309dfff..0000000
--- a/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java
+++ /dev/null
@@ -1,57 +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.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
deleted file mode 100644
index 64c4fc1..0000000
--- a/java/com/android/dialer/searchfragment/SearchCursorManager.java
+++ /dev/null
@@ -1,229 +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.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/dialer/searchfragment/res/layout/fragment_search.xml b/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
deleted file mode 100644
index 06f2348..0000000
--- a/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-<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
deleted file mode 100644
index efeca0e..0000000
--- a/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT 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/dialer/searchfragment/res/values/dimens.xml b/java/com/android/dialer/searchfragment/res/values/dimens.xml
deleted file mode 100644
index d5459dd..0000000
--- a/java/com/android/dialer/searchfragment/res/values/dimens.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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="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 15f7794..7132051 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 android:theme="@style/Theme.AppCompat">
+  <application>
 
     <service
       android:exported="false"
diff --git a/java/com/android/dialer/telecom/TelecomUtil.java b/java/com/android/dialer/telecom/TelecomUtil.java
index 82b4383..87ddda5 100644
--- a/java/com/android/dialer/telecom/TelecomUtil.java
+++ b/java/com/android/dialer/telecom/TelecomUtil.java
@@ -38,17 +38,12 @@
  * perform the required check and return the fallback default if the permission is missing,
  * otherwise return the value from TelecomManager.
  */
-public abstract class TelecomUtil {
+public class TelecomUtil {
 
   private static final String TAG = "TelecomUtil";
   private static boolean sWarningLogged = false;
-
-  private static TelecomUtilImpl instance = new TelecomUtilImpl();
-
-  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
-  public static void setInstanceForTesting(TelecomUtilImpl instanceForTesting) {
-    instance = instanceForTesting;
-  }
+  private static Boolean isDefaultDialerForTesting;
+  private static Boolean hasPermissionForTesting;
 
   public static void showInCallScreen(Context context, boolean showDialpad) {
     if (hasReadPhoneStatePermission(context)) {
@@ -130,7 +125,10 @@
   }
 
   public static boolean isInCall(Context context) {
-    return instance.isInCall(context);
+    if (hasReadPhoneStatePermission(context)) {
+      return getTelecomManager(context).isInCall();
+    }
+    return false;
   }
 
   public static boolean isVoicemailNumber(
@@ -191,47 +189,43 @@
   }
 
   private static boolean hasPermission(Context context, String permission) {
-    return instance.hasPermission(context, 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;
   }
 
   private static TelecomManager getTelecomManager(Context context) {
     return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
   }
 
-  public static boolean isDefaultDialer(Context context) {
-    return instance.isDefaultDialer(context);
+  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+  public static void setIsDefaultDialerForTesting(Boolean defaultDialer) {
+    isDefaultDialerForTesting = defaultDialer;
   }
 
-  /** 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;
-    }
+  @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+  public static void setHasPermissionForTesting(Boolean hasPermission) {
+    hasPermissionForTesting = hasPermission;
   }
 }
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 17e6cea..f263a81 100644
--- a/java/com/android/dialer/theme/res/values-af/strings.xml
+++ b/java/com/android/dialer/theme/res/values-af/strings.xml
@@ -21,7 +21,5 @@
     <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 5b0b2fd..4f36244 100644
--- a/java/com/android/dialer/theme/res/values-am/strings.xml
+++ b/java/com/android/dialer/theme/res/values-am/strings.xml
@@ -21,7 +21,5 @@
     <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 ea3468e..951bde2 100644
--- a/java/com/android/dialer/theme/res/values-ar/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ar/strings.xml
@@ -21,7 +21,5 @@
     <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 91ead1b..08eaf33 100644
--- a/java/com/android/dialer/theme/res/values-az/strings.xml
+++ b/java/com/android/dialer/theme/res/values-az/strings.xml
@@ -21,7 +21,5 @@
     <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 a1e5965..01cdb47 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,7 +21,5 @@
     <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 881aa7f..49be019 100644
--- a/java/com/android/dialer/theme/res/values-be/strings.xml
+++ b/java/com/android/dialer/theme/res/values-be/strings.xml
@@ -21,7 +21,5 @@
     <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 debc238..87af9f0 100644
--- a/java/com/android/dialer/theme/res/values-bg/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bg/strings.xml
@@ -21,7 +21,5 @@
     <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 806ee8e..ab1c65b 100644
--- a/java/com/android/dialer/theme/res/values-bn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bn/strings.xml
@@ -21,7 +21,5 @@
     <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 bed71a2..01cdb47 100644
--- a/java/com/android/dialer/theme/res/values-bs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bs/strings.xml
@@ -21,7 +21,5 @@
     <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 5140ca5..1e21a1f 100644
--- a/java/com/android/dialer/theme/res/values-ca/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ca/strings.xml
@@ -21,7 +21,5 @@
     <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 a951fe7..ca7bad9 100644
--- a/java/com/android/dialer/theme/res/values-cs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-cs/strings.xml
@@ -21,7 +21,5 @@
     <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 54f1850..c606b28 100644
--- a/java/com/android/dialer/theme/res/values-da/strings.xml
+++ b/java/com/android/dialer/theme/res/values-da/strings.xml
@@ -21,7 +21,5 @@
     <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 0c97581..d214287 100644
--- a/java/com/android/dialer/theme/res/values-de/strings.xml
+++ b/java/com/android/dialer/theme/res/values-de/strings.xml
@@ -21,7 +21,5 @@
     <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 1c34a69..abe1d3f 100644
--- a/java/com/android/dialer/theme/res/values-el/strings.xml
+++ b/java/com/android/dialer/theme/res/values-el/strings.xml
@@ -21,7 +21,5 @@
     <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 136d7df..b086b4c 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,7 +21,5 @@
     <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 136d7df..b086b4c 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,7 +21,5 @@
     <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 136d7df..b086b4c 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,7 +21,5 @@
     <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 90837b7..aee2d0a 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,7 +21,5 @@
     <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 c2d3ee3..343ac21 100644
--- a/java/com/android/dialer/theme/res/values-es/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es/strings.xml
@@ -21,7 +21,5 @@
     <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 269fa64..5b1e6c0 100644
--- a/java/com/android/dialer/theme/res/values-et/strings.xml
+++ b/java/com/android/dialer/theme/res/values-et/strings.xml
@@ -21,7 +21,5 @@
     <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 14345f0..dbb4f70 100644
--- a/java/com/android/dialer/theme/res/values-eu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-eu/strings.xml
@@ -21,7 +21,5 @@
     <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 f751f34..99bed5f 100644
--- a/java/com/android/dialer/theme/res/values-fa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fa/strings.xml
@@ -21,7 +21,5 @@
     <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 0c09d7f..a180be5 100644
--- a/java/com/android/dialer/theme/res/values-fi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fi/strings.xml
@@ -21,7 +21,5 @@
     <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 7d901ca..18a70bb 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,7 +21,5 @@
     <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 1c30ef1..18a70bb 100644
--- a/java/com/android/dialer/theme/res/values-fr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr/strings.xml
@@ -21,7 +21,5 @@
     <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 083d395..fbbad6c 100644
--- a/java/com/android/dialer/theme/res/values-gl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gl/strings.xml
@@ -21,7 +21,5 @@
     <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 4baba69..9b38dcd 100644
--- a/java/com/android/dialer/theme/res/values-gu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gu/strings.xml
@@ -21,7 +21,5 @@
     <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 758be5d..ee360b4 100644
--- a/java/com/android/dialer/theme/res/values-hi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hi/strings.xml
@@ -21,7 +21,5 @@
     <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 89a5aee..92e1956 100644
--- a/java/com/android/dialer/theme/res/values-hr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hr/strings.xml
@@ -21,7 +21,5 @@
     <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 30051d4..dfcc876 100644
--- a/java/com/android/dialer/theme/res/values-hu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hu/strings.xml
@@ -21,7 +21,5 @@
     <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 6577dab..3b4e862 100644
--- a/java/com/android/dialer/theme/res/values-hy/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hy/strings.xml
@@ -21,7 +21,5 @@
     <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 d2d72b8..eda15a2 100644
--- a/java/com/android/dialer/theme/res/values-in/strings.xml
+++ b/java/com/android/dialer/theme/res/values-in/strings.xml
@@ -21,7 +21,5 @@
     <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 ff3faf8..cda7fc8 100644
--- a/java/com/android/dialer/theme/res/values-is/strings.xml
+++ b/java/com/android/dialer/theme/res/values-is/strings.xml
@@ -21,7 +21,5 @@
     <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 4b26288..fa2caa6 100644
--- a/java/com/android/dialer/theme/res/values-it/strings.xml
+++ b/java/com/android/dialer/theme/res/values-it/strings.xml
@@ -21,7 +21,5 @@
     <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 09abf2e..18d87ea 100644
--- a/java/com/android/dialer/theme/res/values-iw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-iw/strings.xml
@@ -21,7 +21,5 @@
     <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 551d679..3921559 100644
--- a/java/com/android/dialer/theme/res/values-ja/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ja/strings.xml
@@ -21,7 +21,5 @@
     <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 ab22595..18e7cb3 100644
--- a/java/com/android/dialer/theme/res/values-ka/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ka/strings.xml
@@ -21,7 +21,5 @@
     <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 d3a1b7b..f9c62d3 100644
--- a/java/com/android/dialer/theme/res/values-kk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kk/strings.xml
@@ -21,7 +21,5 @@
     <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 900f1d6..7e375cf 100644
--- a/java/com/android/dialer/theme/res/values-km/strings.xml
+++ b/java/com/android/dialer/theme/res/values-km/strings.xml
@@ -21,7 +21,5 @@
     <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 ab9f816..718fea0 100644
--- a/java/com/android/dialer/theme/res/values-kn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kn/strings.xml
@@ -21,7 +21,5 @@
     <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 b5ac556..29f608c 100644
--- a/java/com/android/dialer/theme/res/values-ko/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ko/strings.xml
@@ -21,7 +21,5 @@
     <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 0a9bec2..905b8c5 100644
--- a/java/com/android/dialer/theme/res/values-ky/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ky/strings.xml
@@ -21,7 +21,5 @@
     <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 d33d43e..6826a75 100644
--- a/java/com/android/dialer/theme/res/values-lo/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lo/strings.xml
@@ -21,7 +21,5 @@
     <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 fdf31e2..43469a1 100644
--- a/java/com/android/dialer/theme/res/values-lt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lt/strings.xml
@@ -21,7 +21,5 @@
     <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 031c5bd..f9a6dec 100644
--- a/java/com/android/dialer/theme/res/values-lv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lv/strings.xml
@@ -21,7 +21,5 @@
     <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 d89d12e..1328edb 100644
--- a/java/com/android/dialer/theme/res/values-mk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mk/strings.xml
@@ -21,7 +21,5 @@
     <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 f02ceeb..03f9533 100644
--- a/java/com/android/dialer/theme/res/values-ml/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ml/strings.xml
@@ -21,7 +21,5 @@
     <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 7a07e5d..c47f083 100644
--- a/java/com/android/dialer/theme/res/values-mn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mn/strings.xml
@@ -21,7 +21,5 @@
     <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 eeb9afa..41a9c96 100644
--- a/java/com/android/dialer/theme/res/values-mr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mr/strings.xml
@@ -21,7 +21,5 @@
     <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 2e424fd..b28fe26 100644
--- a/java/com/android/dialer/theme/res/values-ms/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ms/strings.xml
@@ -21,7 +21,5 @@
     <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 97b871b..eb21b6e 100644
--- a/java/com/android/dialer/theme/res/values-my/strings.xml
+++ b/java/com/android/dialer/theme/res/values-my/strings.xml
@@ -21,7 +21,5 @@
     <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 7587b7e..dcd9b17 100644
--- a/java/com/android/dialer/theme/res/values-nb/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nb/strings.xml
@@ -21,7 +21,5 @@
     <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 af1ad5e..383ac2c 100644
--- a/java/com/android/dialer/theme/res/values-ne/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ne/strings.xml
@@ -21,7 +21,5 @@
     <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 ab51c97..9635708 100644
--- a/java/com/android/dialer/theme/res/values-nl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nl/strings.xml
@@ -21,7 +21,5 @@
     <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 7587b7e..dcd9b17 100644
--- a/java/com/android/dialer/theme/res/values-no/strings.xml
+++ b/java/com/android/dialer/theme/res/values-no/strings.xml
@@ -21,7 +21,5 @@
     <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 8784bca..dc23b7a 100644
--- a/java/com/android/dialer/theme/res/values-pa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pa/strings.xml
@@ -21,7 +21,5 @@
     <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 246261e..1ebaad2 100644
--- a/java/com/android/dialer/theme/res/values-pl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pl/strings.xml
@@ -21,7 +21,5 @@
     <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 c1356d9..6caf87c 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,7 +21,5 @@
     <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 2b46e44..ef7c7d6 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,7 +21,5 @@
     <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 c1356d9..6caf87c 100644
--- a/java/com/android/dialer/theme/res/values-pt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt/strings.xml
@@ -21,7 +21,5 @@
     <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 8978e92..4d0c09b 100644
--- a/java/com/android/dialer/theme/res/values-ro/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ro/strings.xml
@@ -21,7 +21,5 @@
     <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 a155052..aeab136 100644
--- a/java/com/android/dialer/theme/res/values-ru/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ru/strings.xml
@@ -21,7 +21,5 @@
     <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 424a112..ba3bb05 100644
--- a/java/com/android/dialer/theme/res/values-si/strings.xml
+++ b/java/com/android/dialer/theme/res/values-si/strings.xml
@@ -21,7 +21,5 @@
     <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 411b85e..6863463 100644
--- a/java/com/android/dialer/theme/res/values-sk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sk/strings.xml
@@ -21,7 +21,5 @@
     <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 85a3e2b..1b1776a 100644
--- a/java/com/android/dialer/theme/res/values-sl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sl/strings.xml
@@ -21,7 +21,5 @@
     <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 5cbd587..0d7084a 100644
--- a/java/com/android/dialer/theme/res/values-sq/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sq/strings.xml
@@ -21,7 +21,5 @@
     <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 310da73..a744e95 100644
--- a/java/com/android/dialer/theme/res/values-sr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sr/strings.xml
@@ -21,7 +21,5 @@
     <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 af8e5f7..f409807 100644
--- a/java/com/android/dialer/theme/res/values-sv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sv/strings.xml
@@ -21,7 +21,5 @@
     <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 31615fe..a2f9888 100644
--- a/java/com/android/dialer/theme/res/values-sw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sw/strings.xml
@@ -21,7 +21,5 @@
     <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 ab15f0b..a4f55f5 100644
--- a/java/com/android/dialer/theme/res/values-ta/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ta/strings.xml
@@ -21,7 +21,5 @@
     <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 4a6fca1..59f00ca 100644
--- a/java/com/android/dialer/theme/res/values-te/strings.xml
+++ b/java/com/android/dialer/theme/res/values-te/strings.xml
@@ -21,7 +21,5 @@
     <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 51db053..3870b4d 100644
--- a/java/com/android/dialer/theme/res/values-th/strings.xml
+++ b/java/com/android/dialer/theme/res/values-th/strings.xml
@@ -21,7 +21,5 @@
     <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 97f69ec..8169278 100644
--- a/java/com/android/dialer/theme/res/values-tl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tl/strings.xml
@@ -21,7 +21,5 @@
     <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 b38f067..c11cd13 100644
--- a/java/com/android/dialer/theme/res/values-tr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tr/strings.xml
@@ -21,7 +21,5 @@
     <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 f070277..c87fe89 100644
--- a/java/com/android/dialer/theme/res/values-uk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uk/strings.xml
@@ -21,7 +21,5 @@
     <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 e9a4b44..abc0d6d 100644
--- a/java/com/android/dialer/theme/res/values-ur/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ur/strings.xml
@@ -21,7 +21,5 @@
     <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 2bbaf20..2889f3f 100644
--- a/java/com/android/dialer/theme/res/values-uz/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uz/strings.xml
@@ -21,7 +21,5 @@
     <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 fae3180..b014516 100644
--- a/java/com/android/dialer/theme/res/values-vi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-vi/strings.xml
@@ -21,7 +21,5 @@
     <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 2e60962..baff752 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,7 +21,5 @@
     <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 7b08024..8b26663 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,7 +21,5 @@
     <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 57d7fe2..24a5c10 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,7 +21,5 @@
     <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 d0dd728..96cd798 100644
--- a/java/com/android/dialer/theme/res/values-zu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zu/strings.xml
@@ -21,7 +21,5 @@
     <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 af61d35..a14693f 100644
--- a/java/com/android/dialer/theme/res/values/strings.xml
+++ b/java/com/android/dialer/theme/res/values/strings.xml
@@ -30,12 +30,6 @@
        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 1246826..0d0c45f 100644
--- a/java/com/android/dialer/theme/res/values/themes.xml
+++ b/java/com/android/dialer/theme/res/values/themes.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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">
@@ -34,20 +19,6 @@
     <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>
@@ -55,18 +26,4 @@
     <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 b6ab3b3..81a4bb2 100644
--- a/java/com/android/dialer/util/CallUtil.java
+++ b/java/com/android/dialer/util/CallUtil.java
@@ -21,7 +21,6 @@
 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;
@@ -41,9 +40,6 @@
    */
   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)) {
@@ -106,23 +102,7 @@
    *     false} otherwise.
    */
   public static boolean isVideoEnabled(Context context) {
-    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;
+    return (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0;
   }
 
   /**
diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java
index 72a59ea..466e862 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 fe0e861..9e10583 100644
--- a/java/com/android/dialer/widget/DialerToolbar.java
+++ b/java/com/android/dialer/widget/DialerToolbar.java
@@ -41,11 +41,6 @@
     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/widget/MessageFragment.java b/java/com/android/dialer/widget/MessageFragment.java
index 615ad3b..b136f47 100644
--- a/java/com/android/dialer/widget/MessageFragment.java
+++ b/java/com/android/dialer/widget/MessageFragment.java
@@ -23,7 +23,6 @@
 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;
@@ -32,13 +31,11 @@
 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, OnEditorActionListener {
+public class MessageFragment extends Fragment implements OnClickListener, TextWatcher {
   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";
@@ -72,7 +69,7 @@
       LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.fragment_message, container, false);
 
-    sendMessage = view.findViewById(R.id.send_message);
+    sendMessage = (ImageView) 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);
@@ -80,19 +77,18 @@
       sendMessageContainer.setOnClickListener(this);
     }
 
-    customMessage = view.findViewById(R.id.custom_message);
+    customMessage = (EditText) 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 = view.findViewById(R.id.remaining_characters);
+      remainingChar = (TextView) view.findViewById(R.id.remaining_characters);
       remainingChar.setVisibility(View.VISIBLE);
-      remainingChar = view.findViewById(R.id.remaining_characters);
-      remainingChar.setText(Integer.toString(charLimit));
+      remainingChar = (TextView) view.findViewById(R.id.remaining_characters);
+      remainingChar.setText("" + charLimit);
       customMessage.setFilters(new InputFilter[] {new InputFilter.LengthFilter(charLimit)});
     }
 
-    LinearLayout messageContainer = view.findViewById(R.id.message_container);
+    LinearLayout messageContainer = (LinearLayout) 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);
@@ -127,20 +123,11 @@
   @Override
   public void afterTextChanged(Editable s) {
     if (charLimit != NO_CHAR_LIMIT) {
-      remainingChar.setText(Integer.toString(charLimit - s.length()));
+      remainingChar.setText("" + (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/widget/res/layout/dialer_toolbar.xml b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
index 023b0ff..c4aac65 100644
--- a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
+++ b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
@@ -29,9 +29,7 @@
         android:gravity="top"
         android:textSize="@dimen/toolbar_title_text_size"
         android:textColor="@color/background_dialer_white"
-        android:fontFamily="sans-serif-medium"
-        android:maxLines="1"
-        android:ellipsize="end"/>
+        android:fontFamily="sans-serif-medium"/>
 
     <TextView
         android:id="@+id/subtitle"
@@ -39,8 +37,6 @@
         android:layout_height="wrap_content"
         android:textSize="@dimen/toolbar_subtitle_text_size"
         android:textColor="@color/background_dialer_white"
-        android:visibility="gone"
-        android:maxLines="1"
-        android:ellipsize="end"/>
+        android:visibility="gone"/>
   </LinearLayout>
 </merge>
\ No newline at end of file
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 5b0bab5..e39e03a 100644
--- a/java/com/android/dialer/widget/res/layout/fragment_message.xml
+++ b/java/com/android/dialer/widget/res/layout/fragment_message.xml
@@ -48,9 +48,7 @@
       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:inputType="textShortMessage|textCapSentences"
-      android:imeOptions="actionSend"/>
+      android:layout_toStartOf="@+id/count_and_send_container"/>
 
     <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 122c843..7c5e83a 100644
--- a/java/com/android/dialer/widget/res/values-af/strings.xml
+++ b/java/com/android/dialer/widget/res/values-af/strings.xml
@@ -3,9 +3,4 @@
     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 8a5353e..f11b468 100644
--- a/java/com/android/dialer/widget/res/values-am/strings.xml
+++ b/java/com/android/dialer/widget/res/values-am/strings.xml
@@ -3,9 +3,4 @@
     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 7947903..cb2e733 100644
--- a/java/com/android/dialer/widget/res/values-ar/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ar/strings.xml
@@ -3,9 +3,4 @@
     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 7a1389a..3860a58 100644
--- a/java/com/android/dialer/widget/res/values-az/strings.xml
+++ b/java/com/android/dialer/widget/res/values-az/strings.xml
@@ -3,9 +3,4 @@
     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 46b29d2..daefd90 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,9 +3,4 @@
     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 38c8a80..8786132 100644
--- a/java/com/android/dialer/widget/res/values-be/strings.xml
+++ b/java/com/android/dialer/widget/res/values-be/strings.xml
@@ -3,9 +3,4 @@
     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 00ce564..35e980c 100644
--- a/java/com/android/dialer/widget/res/values-bg/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bg/strings.xml
@@ -3,9 +3,4 @@
     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 96b75db..9e17071 100644
--- a/java/com/android/dialer/widget/res/values-bn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bn/strings.xml
@@ -3,9 +3,4 @@
     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 df24ee1..0bc1a9c 100644
--- a/java/com/android/dialer/widget/res/values-bs/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bs/strings.xml
@@ -3,9 +3,4 @@
     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 f7bbaa7..8639300 100644
--- a/java/com/android/dialer/widget/res/values-ca/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ca/strings.xml
@@ -3,9 +3,4 @@
     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 19e5d17..829aab8 100644
--- a/java/com/android/dialer/widget/res/values-cs/strings.xml
+++ b/java/com/android/dialer/widget/res/values-cs/strings.xml
@@ -3,9 +3,4 @@
     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 67fb244..9381f36 100644
--- a/java/com/android/dialer/widget/res/values-da/strings.xml
+++ b/java/com/android/dialer/widget/res/values-da/strings.xml
@@ -3,9 +3,4 @@
     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 14146d6..949fe9e 100644
--- a/java/com/android/dialer/widget/res/values-de/strings.xml
+++ b/java/com/android/dialer/widget/res/values-de/strings.xml
@@ -3,9 +3,4 @@
     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 0db6b26..21e049b 100644
--- a/java/com/android/dialer/widget/res/values-el/strings.xml
+++ b/java/com/android/dialer/widget/res/values-el/strings.xml
@@ -3,9 +3,4 @@
     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 a87cd28..7f22b46 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,9 +3,4 @@
     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 a87cd28..7f22b46 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,9 +3,4 @@
     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 a87cd28..7f22b46 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,9 +3,4 @@
     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 5ecc22b..c7fbdaa 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,9 +3,4 @@
     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 e561d06..507e8af 100644
--- a/java/com/android/dialer/widget/res/values-es/strings.xml
+++ b/java/com/android/dialer/widget/res/values-es/strings.xml
@@ -3,9 +3,4 @@
     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 054b422..71dab42 100644
--- a/java/com/android/dialer/widget/res/values-et/strings.xml
+++ b/java/com/android/dialer/widget/res/values-et/strings.xml
@@ -3,9 +3,4 @@
     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 7d19192..b8e4085 100644
--- a/java/com/android/dialer/widget/res/values-eu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-eu/strings.xml
@@ -3,9 +3,4 @@
     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 5ed2313..0c3b1d4 100644
--- a/java/com/android/dialer/widget/res/values-fa/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fa/strings.xml
@@ -3,9 +3,4 @@
     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 1a15307..e0e971c 100644
--- a/java/com/android/dialer/widget/res/values-fi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fi/strings.xml
@@ -3,9 +3,4 @@
     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 62e1f37..9776385 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,9 +3,4 @@
     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 85a32b8..fececd8 100644
--- a/java/com/android/dialer/widget/res/values-fr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fr/strings.xml
@@ -3,9 +3,4 @@
     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 8a9089f..6a75681 100644
--- a/java/com/android/dialer/widget/res/values-gl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-gl/strings.xml
@@ -3,9 +3,4 @@
     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 794245d..c2f8cf0 100644
--- a/java/com/android/dialer/widget/res/values-gu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-gu/strings.xml
@@ -3,9 +3,4 @@
     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 5cdb8bb..63c94e7 100644
--- a/java/com/android/dialer/widget/res/values-hi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hi/strings.xml
@@ -3,9 +3,4 @@
     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 9ded4d4..28a58d4 100644
--- a/java/com/android/dialer/widget/res/values-hr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hr/strings.xml
@@ -3,9 +3,4 @@
     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 92ae71d..dcd2b36 100644
--- a/java/com/android/dialer/widget/res/values-hu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hu/strings.xml
@@ -3,9 +3,4 @@
     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 ffa7132..7b78bb2 100644
--- a/java/com/android/dialer/widget/res/values-hy/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hy/strings.xml
@@ -3,9 +3,4 @@
     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 69849ae..b4b6550 100644
--- a/java/com/android/dialer/widget/res/values-in/strings.xml
+++ b/java/com/android/dialer/widget/res/values-in/strings.xml
@@ -3,9 +3,4 @@
     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 98a1729..fd84419 100644
--- a/java/com/android/dialer/widget/res/values-is/strings.xml
+++ b/java/com/android/dialer/widget/res/values-is/strings.xml
@@ -3,9 +3,4 @@
     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 1a6e6c1..0af3fd2 100644
--- a/java/com/android/dialer/widget/res/values-it/strings.xml
+++ b/java/com/android/dialer/widget/res/values-it/strings.xml
@@ -3,9 +3,4 @@
     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 f2a732a..a485888 100644
--- a/java/com/android/dialer/widget/res/values-iw/strings.xml
+++ b/java/com/android/dialer/widget/res/values-iw/strings.xml
@@ -3,9 +3,4 @@
     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 7994c62..9fd65a8 100644
--- a/java/com/android/dialer/widget/res/values-ja/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ja/strings.xml
@@ -3,9 +3,4 @@
     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 865a66b..6dde044 100644
--- a/java/com/android/dialer/widget/res/values-ka/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ka/strings.xml
@@ -3,9 +3,4 @@
     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 08856aa..334d915 100644
--- a/java/com/android/dialer/widget/res/values-kk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-kk/strings.xml
@@ -3,9 +3,4 @@
     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 c092332..d0f5633 100644
--- a/java/com/android/dialer/widget/res/values-km/strings.xml
+++ b/java/com/android/dialer/widget/res/values-km/strings.xml
@@ -3,9 +3,4 @@
     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 a502d08..3535bfc 100644
--- a/java/com/android/dialer/widget/res/values-kn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-kn/strings.xml
@@ -3,9 +3,4 @@
     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 045dc54..8c00cea 100644
--- a/java/com/android/dialer/widget/res/values-ko/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ko/strings.xml
@@ -3,9 +3,4 @@
     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 7ef10e7..46ea851 100644
--- a/java/com/android/dialer/widget/res/values-ky/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ky/strings.xml
@@ -3,9 +3,4 @@
     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 dc7ba44..0db64a7 100644
--- a/java/com/android/dialer/widget/res/values-lo/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lo/strings.xml
@@ -3,9 +3,4 @@
     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 be12520..a10b91e 100644
--- a/java/com/android/dialer/widget/res/values-lt/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lt/strings.xml
@@ -3,9 +3,4 @@
     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 acefbae..8ff0793 100644
--- a/java/com/android/dialer/widget/res/values-lv/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lv/strings.xml
@@ -3,9 +3,4 @@
     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 20b18e8..aa9be30 100644
--- a/java/com/android/dialer/widget/res/values-mk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mk/strings.xml
@@ -3,9 +3,4 @@
     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 a97a7d8..b52ee40 100644
--- a/java/com/android/dialer/widget/res/values-ml/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ml/strings.xml
@@ -3,9 +3,4 @@
     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 bbcfc7c..6bdad89 100644
--- a/java/com/android/dialer/widget/res/values-mn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mn/strings.xml
@@ -3,9 +3,4 @@
     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 38d913a..5661fa8 100644
--- a/java/com/android/dialer/widget/res/values-mr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mr/strings.xml
@@ -3,9 +3,4 @@
     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 bc67c67..8889ccc 100644
--- a/java/com/android/dialer/widget/res/values-ms/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ms/strings.xml
@@ -3,9 +3,4 @@
     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 c8e783b..9a69f29 100644
--- a/java/com/android/dialer/widget/res/values-my/strings.xml
+++ b/java/com/android/dialer/widget/res/values-my/strings.xml
@@ -3,9 +3,4 @@
     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 822f07e..100156b 100644
--- a/java/com/android/dialer/widget/res/values-nb/strings.xml
+++ b/java/com/android/dialer/widget/res/values-nb/strings.xml
@@ -3,9 +3,4 @@
     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 ebb31d5..abb8bb0 100644
--- a/java/com/android/dialer/widget/res/values-ne/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ne/strings.xml
@@ -3,9 +3,4 @@
     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 cbc286b..5560288 100644
--- a/java/com/android/dialer/widget/res/values-nl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-nl/strings.xml
@@ -3,9 +3,4 @@
     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 822f07e..100156b 100644
--- a/java/com/android/dialer/widget/res/values-no/strings.xml
+++ b/java/com/android/dialer/widget/res/values-no/strings.xml
@@ -3,9 +3,4 @@
     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 06f191e..4c69c2c 100644
--- a/java/com/android/dialer/widget/res/values-pa/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pa/strings.xml
@@ -3,9 +3,4 @@
     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 5d62a07..cec7a40 100644
--- a/java/com/android/dialer/widget/res/values-pl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pl/strings.xml
@@ -3,9 +3,4 @@
     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 0afc0f1..b15bfac 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,9 +3,4 @@
     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 35f71a3..ece2ef2 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,9 +3,4 @@
     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 0afc0f1..b15bfac 100644
--- a/java/com/android/dialer/widget/res/values-pt/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt/strings.xml
@@ -3,9 +3,4 @@
     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 6c51d23..753b920 100644
--- a/java/com/android/dialer/widget/res/values-ro/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ro/strings.xml
@@ -3,9 +3,4 @@
     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 c36874d..bdebd3c 100644
--- a/java/com/android/dialer/widget/res/values-ru/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ru/strings.xml
@@ -3,9 +3,4 @@
     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 10eb7b5..4988259 100644
--- a/java/com/android/dialer/widget/res/values-si/strings.xml
+++ b/java/com/android/dialer/widget/res/values-si/strings.xml
@@ -3,9 +3,4 @@
     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 56f7ceb..5dc1bd5 100644
--- a/java/com/android/dialer/widget/res/values-sk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sk/strings.xml
@@ -3,9 +3,4 @@
     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 52f0293..0ba965b 100644
--- a/java/com/android/dialer/widget/res/values-sl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sl/strings.xml
@@ -3,9 +3,4 @@
     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 c7943df..7f5e0f2 100644
--- a/java/com/android/dialer/widget/res/values-sq/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sq/strings.xml
@@ -3,9 +3,4 @@
     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 00b9b4f..446c273 100644
--- a/java/com/android/dialer/widget/res/values-sr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sr/strings.xml
@@ -3,9 +3,4 @@
     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 3593970..7d2f44c 100644
--- a/java/com/android/dialer/widget/res/values-sv/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sv/strings.xml
@@ -3,9 +3,4 @@
     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 b089210..d2c2a97 100644
--- a/java/com/android/dialer/widget/res/values-sw/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sw/strings.xml
@@ -3,9 +3,4 @@
     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 83ca080..4061c16 100644
--- a/java/com/android/dialer/widget/res/values-ta/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ta/strings.xml
@@ -3,9 +3,4 @@
     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 418cc3d..c2474b7 100644
--- a/java/com/android/dialer/widget/res/values-te/strings.xml
+++ b/java/com/android/dialer/widget/res/values-te/strings.xml
@@ -3,9 +3,4 @@
     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 c556d1c..d450b4b 100644
--- a/java/com/android/dialer/widget/res/values-th/strings.xml
+++ b/java/com/android/dialer/widget/res/values-th/strings.xml
@@ -3,9 +3,4 @@
     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 be02d19..ee7c52f 100644
--- a/java/com/android/dialer/widget/res/values-tl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-tl/strings.xml
@@ -3,9 +3,4 @@
     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 90d5db6..64e2ea5 100644
--- a/java/com/android/dialer/widget/res/values-tr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-tr/strings.xml
@@ -3,9 +3,4 @@
     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 cf5a7d1..f8d9bb8 100644
--- a/java/com/android/dialer/widget/res/values-uk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-uk/strings.xml
@@ -3,9 +3,4 @@
     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 e5199af..6edeb5c 100644
--- a/java/com/android/dialer/widget/res/values-ur/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ur/strings.xml
@@ -3,9 +3,4 @@
     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 eb0e0ad..434464a 100644
--- a/java/com/android/dialer/widget/res/values-uz/strings.xml
+++ b/java/com/android/dialer/widget/res/values-uz/strings.xml
@@ -3,9 +3,4 @@
     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 62e94b8..1a30f7c 100644
--- a/java/com/android/dialer/widget/res/values-vi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-vi/strings.xml
@@ -3,9 +3,4 @@
     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 063301a..7999723 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,9 +3,4 @@
     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 e2e69b7..b0bfcc8 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,9 +3,4 @@
     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 85768af..b0bfcc8 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,9 +3,4 @@
     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 a3ba84a..074aa58 100644
--- a/java/com/android/dialer/widget/res/values-zu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zu/strings.xml
@@ -3,9 +3,4 @@
     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
deleted file mode 100644
index c974609..0000000
--- a/java/com/android/dialer/widget/res/values/colors.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?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 537ad7b..20393a8 100644
--- a/java/com/android/dialer/widget/res/values/dimens.xml
+++ b/java/com/android/dialer/widget/res/values/dimens.xml
@@ -26,9 +26,4 @@
   <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 d6ea2e7..a5829bb 100644
--- a/java/com/android/dialer/widget/res/values/strings.xml
+++ b/java/com/android/dialer/widget/res/values/strings.xml
@@ -5,19 +5,4 @@
 
   <!-- 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/dialershared/bubble/AndroidManifest.xml b/java/com/android/dialershared/bubble/AndroidManifest.xml
deleted file mode 100644
index 1a94aaf..0000000
--- a/java/com/android/dialershared/bubble/AndroidManifest.xml
+++ /dev/null
@@ -1,22 +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
-  -->
-
-<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
deleted file mode 100644
index 3eb88aa..0000000
--- a/java/com/android/dialershared/bubble/Bubble.java
+++ /dev/null
@@ -1,667 +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.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
deleted file mode 100644
index 52417ae..0000000
--- a/java/com/android/dialershared/bubble/BubbleInfo.java
+++ /dev/null
@@ -1,116 +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.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
deleted file mode 100644
index 4da6a35..0000000
--- a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java
+++ /dev/null
@@ -1,166 +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.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
deleted file mode 100644
index 7a5a432..0000000
--- a/java/com/android/dialershared/bubble/CheckableImageButton.java
+++ /dev/null
@@ -1,101 +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.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
deleted file mode 100644
index 8a21cd7..0000000
--- a/java/com/android/dialershared/bubble/MoveHandler.java
+++ /dev/null
@@ -1,250 +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.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
deleted file mode 100644
index 2c17666..0000000
--- a/java/com/android/dialershared/bubble/WindowRoot.java
+++ /dev/null
@@ -1,55 +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.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/dialershared/bubble/res/color/bubble_checkable_mask.xml b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
deleted file mode 100644
index f9416ab..0000000
--- a/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT 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:color="@android:color/white" android:state_checked="true"/>
-  <item android:color="@android:color/transparent"/>
-</selector>
diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml
deleted file mode 100644
index 77c813a..0000000
--- a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT 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">
-  <corners
-      android:bottomRightRadius="@dimen/bubble_size"
-      android:topRightRadius="@dimen/bubble_size"/>
-  <solid android:color="@android:color/white"/>
-</shape>
diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml
deleted file mode 100644
index 9e25421..0000000
--- a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT 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">
-  <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
deleted file mode 100644
index 85e0b24..0000000
--- a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT 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/dialershared/bubble/res/drawable/bubble_ripple_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
deleted file mode 100644
index 8d5cf0b..0000000
--- a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT 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>
-      <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
deleted file mode 100644
index 3acd2af..0000000
--- a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT 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/dialershared/bubble/res/values/colors.xml b/java/com/android/dialershared/bubble/res/values/colors.xml
deleted file mode 100644
index 97545fa..0000000
--- a/java/com/android/dialershared/bubble/res/values/colors.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<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
deleted file mode 100644
index 5b85e0d..0000000
--- a/java/com/android/dialershared/bubble/res/values/values.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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 703e5b5..8539bd0 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,49 +43,47 @@
        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:launchMode="singleInstance"
-        android:name="com.android.incallui.InCallActivity"
-        android:resizeableActivity="true"
-        android:screenOrientation="nosensor"
-        android:taskAffinity="com.android.incallui"
-        android:theme="@style/Theme.InCallScreen">
+      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">
     </activity>
 
     <activity
-        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"/>
+      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"/>
 
     <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"/>
@@ -99,35 +97,23 @@
        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"/>
-
-    <receiver
-        android:exported="false"
-        android:name=".ReturnToCallActionReceiver"/>
+      android:directBootAware="true"
+      android:exported="false"
+      android:name="com.android.incallui.NotificationBroadcastReceiver"/>
 
   </application>
 
diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java
index ddbe6cc..ca34aa6 100644
--- a/java/com/android/incallui/AnswerScreenPresenter.java
+++ b/java/com/android/incallui/AnswerScreenPresenter.java
@@ -124,29 +124,12 @@
       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());
@@ -200,9 +183,6 @@
 
     @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 d02a181..7bff329 100644
--- a/java/com/android/incallui/AnswerScreenPresenterStub.java
+++ b/java/com/android/incallui/AnswerScreenPresenterStub.java
@@ -43,11 +43,5 @@
   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
deleted file mode 100644
index dfd4d1a..0000000
--- a/java/com/android/incallui/AudioRouteSelectorActivity.java
+++ /dev/null
@@ -1,47 +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.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 f758a96..b0c3a99 100644
--- a/java/com/android/incallui/CallButtonPresenter.java
+++ b/java/com/android/incallui/CallButtonPresenter.java
@@ -300,7 +300,18 @@
    */
   @Override
   public void switchCameraClicked(boolean useFrontFacingCamera) {
-    updateCamera(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);
+    }
   }
 
   @Override
@@ -334,11 +345,8 @@
             mCall.getTimeAddedMs());
 
     if (pause) {
-      mCall.getVideoTech().setCamera(null);
       mCall.getVideoTech().stopTransmission();
     } else {
-      updateCamera(
-          InCallPresenter.getInstance().getInCallCameraManager().isUsingFrontFacingCamera());
       mCall.getVideoTech().resumeTransmission();
     }
 
@@ -346,21 +354,6 @@
     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 cd06793..c2b99c1 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -47,6 +47,9 @@
 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;
@@ -82,7 +85,8 @@
         InCallDetailsListener,
         InCallEventListener,
         InCallScreenDelegate,
-        DialerCallListener {
+        DialerCallListener,
+        EnrichedCallManager.StateChangedListener {
 
   /**
    * Amount of time to wait before sending an announcement via the accessibility manager. When the
@@ -372,11 +376,6 @@
   @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() {
@@ -419,6 +418,12 @@
     updatePrimaryCallState();
   }
 
+  @Override
+  public void onEnrichedCallStateChanged() {
+    LogUtil.enterBlock("CallCardPresenter.onEnrichedCallStateChanged");
+    updatePrimaryDisplayInfo();
+  }
+
   private boolean shouldRefreshPrimaryInfo(boolean primaryChanged) {
     if (mPrimary == null) {
       return false;
@@ -470,8 +475,7 @@
                   mPrimary.getConnectTimeMillis(),
                   CallerInfoUtils.isVoiceMailNumber(mContext, mPrimary),
                   mPrimary.isRemotelyHeld(),
-                  isBusiness,
-                  supports2ndCallOnHold()));
+                  isBusiness));
 
       InCallActivity activity =
           (InCallActivity) (mInCallScreen.getInCallScreenFragment().getActivity());
@@ -501,15 +505,6 @@
         && !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);
@@ -671,8 +666,26 @@
     boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL);
 
     MultimediaData multimediaData = null;
-    if (mPrimary.getEnrichedCallSession() != null) {
-      multimediaData = mPrimary.getEnrichedCallSession().getMultimediaData();
+    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.isConferenceCall()) {
@@ -683,8 +696,7 @@
       mInCallScreen.setPrimary(
           new PrimaryInfo(
               null /* number */,
-              CallerInfoUtils.getConferenceString(
-                  mContext, mPrimary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)),
+              getConferenceString(mPrimary),
               false /* nameIsNumber */,
               null /* location */,
               null /* label */,
@@ -868,8 +880,7 @@
       mInCallScreen.setSecondary(
           new SecondaryInfo(
               true /* show */,
-              CallerInfoUtils.getConferenceString(
-                  mContext, mSecondary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)),
+              getConferenceString(mSecondary),
               false /* nameIsNumber */,
               null /* label */,
               mSecondary.getCallProviderLabel(),
@@ -961,7 +972,7 @@
   }
 
   /** Gets the name to display for the call. */
-  private String getNameForCall(ContactCacheEntry contactInfo) {
+  String getNameForCall(ContactCacheEntry contactInfo) {
     String preferredName =
         ContactDisplayUtils.getPreferredDisplayName(
             contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences);
@@ -971,6 +982,19 @@
     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) {
@@ -1011,6 +1035,15 @@
     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;
@@ -1030,6 +1063,7 @@
 
   @Override
   public void onInCallScreenResumed() {
+    EnrichedCallComponent.get(mContext).getEnrichedCallManager().registerStateChangedListener(this);
     updatePrimaryDisplayInfo();
 
     if (shouldSendAccessibilityEvent) {
@@ -1038,7 +1072,11 @@
   }
 
   @Override
-  public void onInCallScreenPaused() {}
+  public void onInCallScreenPaused() {
+    EnrichedCallComponent.get(mContext)
+        .getEnrichedCallManager()
+        .unregisterStateChangedListener(this);
+  }
 
   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 8f23107..5644466 100644
--- a/java/com/android/incallui/CallerInfoUtils.java
+++ b/java/com/android/incallui/CallerInfoUtils.java
@@ -282,11 +282,4 @@
         });
     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 d7eea79..e45eb97 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, false, queryToken);
+              callId, call.getNumberPresentation(), callerInfo, isIncoming, false, queryToken);
       sendInfoNotifications(callId, initialCacheEntry);
     }
   }
@@ -416,6 +416,7 @@
       String callId,
       int numberPresentation,
       CallerInfo callerInfo,
+      boolean isIncoming,
       boolean didLocalLookup,
       CallerInfoQueryToken queryToken) {
     Log.d(
@@ -442,7 +443,16 @@
     Log.d(TAG, "Existing cacheEntry in hashMap " + existingCacheEntry);
 
     if (didLocalLookup) {
-      if (cacheEntry.displayPhotoUri != null) {
+      // 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) {
         // 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
@@ -779,7 +789,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, true, mQueryToken);
+      updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, mIsIncoming, true, mQueryToken);
     }
 
     @Override
@@ -797,16 +807,6 @@
         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,7 +870,6 @@
         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 051392e..0c2493c 100644
--- a/java/com/android/incallui/ExternalCallNotifier.java
+++ b/java/com/android/incallui/ExternalCallNotifier.java
@@ -384,10 +384,11 @@
       ContactInfoCache.ContactCacheEntry contactInfo,
       android.telecom.Call call) {
 
-    if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)) {
-      return CallerInfoUtils.getConferenceString(
-          context,
-          call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE));
+    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);
     }
 
     String preferredName =
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index bda003c..cc9a8e4 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -694,8 +694,13 @@
     if (didShowInCallScreen) {
       return false;
     }
-    InCallScreen inCallScreen = InCallBindings.createInCallScreen();
-    transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN);
+    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());
+    }
     Logger.get(this).logScreenView(ScreenEvent.Type.INCALL, this);
     didShowInCallScreen = true;
     return true;
@@ -707,7 +712,7 @@
     }
     InCallScreen inCallScreen = getInCallScreen();
     if (inCallScreen != null) {
-      transaction.remove(inCallScreen.getInCallScreenFragment());
+      transaction.hide(inCallScreen.getInCallScreenFragment());
     }
     didShowInCallScreen = false;
     return true;
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index 7c30001..2d6d83c 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -695,10 +695,7 @@
     if (newState == InCallState.INCOMING
         && (waitingForAccountCall = callList.getWaitingForAccountCall()) != null) {
       waitingForAccountCall.disconnect();
-      // The InCallActivity might be destroyed or not started yet at this point.
-      if (isActivityStarted()) {
-        mInCallActivity.dismissPendingDialogs();
-      }
+      mInCallActivity.dismissPendingDialogs();
     }
 
     newState = startOrFinishUi(newState);
diff --git a/java/com/android/incallui/InCallServiceImpl.java b/java/com/android/incallui/InCallServiceImpl.java
index 1653334..4ab92a7 100644
--- a/java/com/android/incallui/InCallServiceImpl.java
+++ b/java/com/android/incallui/InCallServiceImpl.java
@@ -23,7 +23,6 @@
 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;
@@ -37,8 +36,6 @@
  */
 public class InCallServiceImpl extends InCallService {
 
-  private ReturnToCallController returnToCallController;
-
   @Override
   public void onCallAudioStateChanged(CallAudioState audioState) {
     AudioModeProvider.getInstance().onAudioStateChanged(audioState);
@@ -82,9 +79,6 @@
     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);
   }
@@ -104,9 +98,5 @@
     // 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
deleted file mode 100644
index b645c15..0000000
--- a/java/com/android/incallui/ReturnToCallActionReceiver.java
+++ /dev/null
@@ -1,132 +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.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
deleted file mode 100644
index 4cb6aaf..0000000
--- a/java/com/android/incallui/ReturnToCallController.java
+++ /dev/null
@@ -1,204 +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.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 229f08c..165b30b 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,9 +565,8 @@
   @VisibleForTesting
   @Nullable
   String getContentTitle(ContactCacheEntry contactInfo, DialerCall call) {
-    if (call.isConferenceCall()) {
-      return CallerInfoUtils.getConferenceString(
-          mContext, call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE));
+    if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
+      return mContext.getResources().getString(R.string.conference_call_name);
     }
 
     String preferredName =
@@ -605,16 +604,20 @@
     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);
-      @ContactType
-      int contactType =
-          LetterTileDrawable.getContactTypeFromPrimitives(
-              CallerInfoUtils.isVoiceMailNumber(context, call),
-              call.isSpam(),
-              contactInfo.isBusiness,
-              call.getNumberPresentation(),
-              call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE));
+      int contactType = LetterTileDrawable.TYPE_DEFAULT;
       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,
@@ -691,10 +694,20 @@
     }
 
     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 (shouldShowEnrichedCallNotification(call.getEnrichedCallSession())) {
-        resId = getECIncomingCallText(call.getEnrichedCallSession());
+      } else if (session != null) {
+        resId = getECIncomingCallText(session);
       } else if (call.hasProperty(Details.PROPERTY_WIFI)) {
         resId = R.string.notification_incoming_call_wifi;
       } else {
@@ -718,13 +731,6 @@
     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();
@@ -750,10 +756,8 @@
         } else {
           resId = R.string.important_notification_incoming_call_with_photo;
         }
-      } else if (hasSubject) {
-        resId = R.string.important_notification_incoming_call_with_message;
       } else {
-        resId = R.string.important_notification_incoming_call;
+        resId = R.string.important_notification_incoming_call_with_message;
       }
       if (mContext.getString(resId).length() > 50) {
         resId = R.string.important_notification_incoming_call_attachments;
@@ -1001,9 +1005,6 @@
     @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 6be7930..1f0541c4 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -427,10 +427,8 @@
 
     if (allowAnswerAndRelease()) {
       answerAndReleaseButton.setVisibility(View.VISIBLE);
-      answerScreenDelegate.onAnswerAndReleaseButtonEnabled();
     } else {
       answerAndReleaseButton.setVisibility(View.INVISIBLE);
-      answerScreenDelegate.onAnswerAndReleaseButtonDisabled();
     }
   }
 
@@ -932,7 +930,7 @@
         if (hasCallOnHold()) {
           getAnswerMethod()
               .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_third));
-        } else if (primaryCallState.supportsCallOnHold) {
+        } else {
           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
new file mode 100644
index 0000000..57d84c4
--- /dev/null
+++ b/java/com/android/incallui/answer/impl/PillDrawable.java
@@ -0,0 +1,43 @@
+/*
+ * 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 600115e..9a49075 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,7 +41,6 @@
         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"
@@ -60,7 +59,6 @@
         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"/>
@@ -112,7 +110,6 @@
         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 9c33b5d..77b45ec 100644
--- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
+++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
@@ -23,6 +23,7 @@
 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;
@@ -34,9 +35,8 @@
  */
 public class AnswerHintFactory {
 
-  @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
-  static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY = "answer_hint_answered_threshold";
-
+  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,7 +58,12 @@
 
   @NonNull
   public AnswerHint create(Context context, long puckUpDuration, long puckUpDelay) {
-    if (shouldShowAnswerHint(context, Build.PRODUCT)) {
+
+    if (shouldShowAnswerHint(
+        context,
+        ConfigProviderBindings.get(context),
+        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context),
+        Build.PRODUCT)) {
       return new DotAnswerHint(context, puckUpDuration, puckUpDelay);
     }
 
@@ -79,23 +84,24 @@
   }
 
   @VisibleForTesting
-  static boolean shouldShowAnswerHint(Context context, String device) {
+  static boolean shouldShowAnswerHint(
+      Context context,
+      ConfigProvider configProvider,
+      SharedPreferences sharedPreferences,
+      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(context, device)) {
+    if (!isDeviceWhitelisted(device, configProvider)) {
       return false;
     }
 
     // If the user has gone through the process a few times we can assume they have learnt the
     // method.
-    int answeredCount =
-        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context)
-            .getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
-    long threshold =
-        ConfigProviderBindings.get(context).getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
+    int answeredCount = sharedPreferences.getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
+    long threshold = configProvider.getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
     LogUtil.i(
         "AnswerHintFactory.shouldShowAnswerHint",
         "answerCount: %d, threshold: %d",
@@ -109,8 +115,8 @@
    * @param configProvider should provide a list of devices quoted with '/' concatenated to a
    *     string.
    */
-  private static boolean isDeviceWhitelisted(Context context, String device) {
-    return ConfigProviderBindings.get(context)
+  private static boolean isDeviceWhitelisted(String device, ConfigProvider configProvider) {
+    return configProvider
         .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 05358d8..21154ca 100644
--- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
+++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
@@ -24,9 +24,7 @@
 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)
@@ -42,25 +40,10 @@
     if (!preferences.getBoolean(PawSecretCodeListener.PAW_ENABLED_WITH_SECRET_CODE_KEY, false)) {
       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);
+    int drawableId = preferences.getInt(PawSecretCodeListener.PAW_DRAWABLE_ID_KEY, 0);
+    if (drawableId == 0) {
+      return null;
     }
-
-    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);
-    }
+    return context.getDrawable(drawableId);
   }
 }
diff --git a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java
index 3b4512c..a8737c3 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.support.annotation.IntDef;
+import android.preference.PreferenceManager;
 import android.support.annotation.VisibleForTesting;
 import android.text.TextUtils;
 import android.widget.Toast;
@@ -29,7 +29,6 @@
 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;
 
 /**
@@ -41,20 +40,7 @@
   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";
-
-  /** 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;
+  public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id";
 
   @Override
   public void onReceive(Context context, Intent intent) {
@@ -68,8 +54,7 @@
     if (!TextUtils.equals(secretCode, host)) {
       return;
     }
-    SharedPreferences preferences =
-        DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context);
+    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(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();
@@ -77,24 +62,20 @@
       Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_DEACTIVATED);
       LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint disabled");
     } else {
-      selectPawType(preferences);
+      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();
       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 b155ee8..82a8796 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Belangrik"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</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 c27705f..4086977 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"አስፈላጊ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"አስቸኳይ"</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 e3f84ff..fc29c16 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"مهم"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"عاجل"</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 5d113b4..fff561d 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Önəmli"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Vacib"</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 3acc576..7b29bfa 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Važno"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</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 4f34150..228a80f 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Важны"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Тэрмінова"</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 54a5ab9..4e9422f 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Важно"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Спешно"</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 d2aa4c3..869f7b9 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"গুরুত্বপূর্ণ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"জরুরি"</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 e175887..b36e178 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Važno"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</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 538e0d3..13b3b32 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</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 626409e..6c69030 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Důležité"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Naléhavé"</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 3870891..3a87d44 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Vigtigt"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</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 ab3c33c..f4356d2 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Wichtig"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</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 d847aac..9c9a0f3 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Σημαντικό"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Επείγον"</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 fe6aa46..fb8d156 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</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 fe6aa46..fb8d156 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</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 fe6aa46..fb8d156 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</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 60fcd01..14928ee 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</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 7b2f19a..972bbc5 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</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 b4632d1..9e303bb 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Tähtis"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Kiireloomuline"</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 118a2c7..a1f6d71 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Garrantzitsua"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Premiazkoa"</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 971b172..28cf826 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"مهم"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"فوری"</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 7ae9a1f..8b8eac9 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Tärkeä"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Kiireellinen"</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 ce454b5..9ea27b8 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</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 7f77ed0..3aa3c12 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Importants"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</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 07e0c51..16c0f69 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urxente"</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 845e9de..3f99c71 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"મહત્વપૂર્ણ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"તાત્કાલિક"</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 e8e3c75..f28505f 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"महत्वपूर्ण"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"बहुत ज़रूरी"</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 ffd0c9b..2807439 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Važno"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</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 13ec7da..d7dacbf 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Fontos"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Sürgős"</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 7fb7ef4..4492833 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Կարևոր"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Շտապ"</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 48d71af..a1fd19f 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Penting"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"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 a92a411..c4f9eb4 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Mikilvægt"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Áríðandi"</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 b29bca7..70e9722 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</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 6544e8f..08c02e3 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"חשוב"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"דחופה"</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 83f8f09..b7bd65b 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"重要"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</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 4a1120c..6813067 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"მნიშვნელოვანი"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"სასწრაფო"</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 69cf949..3d18633 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Маңызды"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Шұғыл"</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 db65a97..89f9031 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"សំខាន់"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"បន្ទាន់"</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 8426aef..f02a6b8 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"ಪ್ರಮುಖ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ತುರ್ತು"</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 6b6beff..850b440 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"중요"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"긴급"</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 6dd5a2d..dc08e84 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Маанилүү"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Шашылыш"</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 776c027..06ad00c 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"ສຳຄັນ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ດ່ວນ"</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 2ef70ea..3366e33 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Svarbu"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Skubus"</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 3fc754d..49d1dc9 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Svarīgs"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Steidzams"</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 deeba45..c068f66 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Важно"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Итно"</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 d8ce90d..8e1d492 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"പ്രധാനപ്പെട്ടവ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"അടിയന്തിര പ്രാധാന്യം"</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 aaa1621..4bdd912 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Чухал"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Яаралтай"</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 eea662f..11c8268 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"महत्त्वाचे"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"त्वरित"</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 04b054e..36ede75 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Penting"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Segera"</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 f3d6a2e..5ad7a82 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"အရေးကြီး"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"အရေးတကြီး"</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 42ff3d0..b1c32be 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Viktig"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</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 f0b8641..40ef7b6 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"महत्त्वपूर्ण"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"जरुरी"</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 89c956a..b2f619f 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Belangrijk"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</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 42ff3d0..b1c32be 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Viktig"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</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 3772f29..d2b1452 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"ਮਹੱਤਵਪੂਰਨ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ਜ਼ਰੂਰੀ"</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 f6e1f1b..b0c44e7 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Ważne"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Pilne"</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 1ed2451..fe1c89d 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</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 f1e17a1..1a23a4a 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</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 1ed2451..fe1c89d 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Importante"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</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 0b1f4f4..6c8bafa 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Important"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</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 d1fdcf7..67ff06a 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Важный звонок"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Срочно"</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 99f4989..ae3c080 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"වැදගත්"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"හදිසි"</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 fa00ac4..179be7b 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Dôležité"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Naliehavé"</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 147a098..5f658be 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Pomembno"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Nujno"</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 e71691a..1de60c9 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"E rëndësishme"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Urgjente"</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 c802b0e..4d6ef56 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Важно"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Хитно"</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 2265dc4..e47b4e0 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Viktigt"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Brådskande"</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 26e1b7a..1e58966 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Muhimu"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Dharura"</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 453781d..847936f 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"முக்கிய அழைப்பு"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"அவசரம்"</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 e0e5087..abc3902 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"ముఖ్యమైనది"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"అత్యవసరం"</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 695da74..54069b3 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"สำคัญ"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ด่วน"</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 6128d6f..8f87b56 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Mahalaga"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Apurahan"</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 87583c0..53f5eb9 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Önemli"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Acil"</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 76eb2b0..a0332d3 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Важливо"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Терміново"</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 2a44e90..e1813cb 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"اہم"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"ارجنٹ"</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 f348a49..b83abcc 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Muhim qo‘ng‘iroq"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Juda muhim"</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 f4dfa5b..94dd1c3 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Quan trọng"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Khẩn cấp"</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 9698aa0..fc7ce64 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"重要"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"紧急"</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 81a8815..9795539 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"重要事項"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</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 8f04992..f27e5ae 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"重要"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</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 23c988e..52f2400 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -36,5 +20,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="3762352743365137090">"Kubalulekile"</string>
+    <string name="call_incoming_important" msgid="4090408168895243702">"Okuphuthumayo"</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 de5ee6e..2359220 100644
--- a/java/com/android/incallui/answer/impl/res/values/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values/strings.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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>
@@ -41,5 +26,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">Important</string>
+  <string name="call_incoming_important">Urgent</string>
 </resources>
diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
index 10a3413..9815981 100644
--- a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
+++ b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
@@ -32,10 +32,6 @@
   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 fe4ae9f..24fbfc4 100644
--- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
+++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
@@ -143,9 +143,6 @@
   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 c7a9d63..c757477 100644
--- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
+++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
@@ -18,7 +18,6 @@
 
 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;
@@ -42,8 +41,6 @@
   /** Called when an audio route is picked */
   public interface AudioRouteSelectorPresenter {
     void onAudioRouteSelected(int audioRoute);
-
-    void onAudioRouteSelectorDismiss();
   }
 
   public static AudioRouteSelectorDialogFragment newInstance(CallAudioState audioState) {
@@ -94,14 +91,6 @@
     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 5c6aef4..d3d3a8b 100644
--- a/java/com/android/incallui/bindings/InCallUiBindings.java
+++ b/java/com/android/incallui/bindings/InCallUiBindings.java
@@ -19,6 +19,7 @@
 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 {
@@ -36,4 +37,12 @@
    */
   @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 3a005b0..7b42fb3 100644
--- a/java/com/android/incallui/bindings/InCallUiBindingsStub.java
+++ b/java/com/android/incallui/bindings/InCallUiBindingsStub.java
@@ -19,9 +19,11 @@
 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
@@ -40,4 +42,40 @@
   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 3876ca6..34f0cc0 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -32,8 +32,6 @@
 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;
@@ -119,10 +117,6 @@
         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());
@@ -284,10 +278,6 @@
       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) {
@@ -803,9 +793,6 @@
     }
 
     @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 12edb07..acedf41 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -51,10 +51,6 @@
 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;
@@ -81,7 +77,7 @@
 import java.util.concurrent.TimeUnit;
 
 /** Describes a single call and its state. */
-public class DialerCall implements VideoTechListener, StateChangedListener, CapabilitiesListener {
+public class DialerCall implements VideoTechListener {
 
   public static final int CALL_HISTORY_STATUS_UNKNOWN = 0;
   public static final int CALL_HISTORY_STATUS_PRESENT = 1;
@@ -147,12 +143,6 @@
   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();
   }
@@ -302,8 +292,6 @@
 
     mTimeAddedMs = System.currentTimeMillis();
     parseCallSpecificAppData();
-
-    updateEnrichedCallSession();
   }
 
   private static int translateState(int state) {
@@ -425,12 +413,6 @@
       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();
@@ -978,30 +960,6 @@
     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;
@@ -1214,66 +1172,6 @@
     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.
@@ -1474,7 +1372,6 @@
 
       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 5d24a4d..ed321be 100644
--- a/java/com/android/incallui/call/DialerCallListener.java
+++ b/java/com/android/incallui/call/DialerCallListener.java
@@ -36,6 +36,4 @@
   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 4fc9f81..ebf4ecf 100644
--- a/java/com/android/incallui/call/TelecomAdapter.java
+++ b/java/com/android/incallui/call/TelecomAdapter.java
@@ -20,13 +20,12 @@
 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 class TelecomAdapter implements InCallServiceListener {
+public final class TelecomAdapter implements InCallServiceListener {
 
   private static final String ADD_CALL_MODE_KEY = "add_call_mode";
 
@@ -46,11 +45,6 @@
     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 b093a1b..801b0d3 100644
--- a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
+++ b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
@@ -21,7 +21,6 @@
 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 99a759b..3a14789 100644
--- a/java/com/android/incallui/calllocation/impl/LocationHelper.java
+++ b/java/com/android/incallui/calllocation/impl/LocationHelper.java
@@ -24,7 +24,6 @@
 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;
@@ -88,12 +87,6 @@
       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 060ec0b..eb5957b 100644
--- a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
+++ b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
@@ -20,7 +20,6 @@
 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/dialer/constants/TrafficStatsTags.java b/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
similarity index 61%
rename from java/com/android/dialer/constants/TrafficStatsTags.java
rename to java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
index 4e61404..02cc2e0 100644
--- a/java/com/android/dialer/constants/TrafficStatsTags.java
+++ b/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
@@ -11,18 +11,19 @@
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT 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.dialer.constants;
+package com.android.incallui.calllocation.impl;
 
-/** Registry of tags for {@link android.net.TrafficStats#setThreadStatsTag(int)} */
+/** Constants used for logging */
 public class TrafficStatsTags {
-  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;
+
+  /**
+   * 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;
-  public static final int VISUAL_VOICEMAIL_TAG = 0xd002;
 }
diff --git a/java/com/android/incallui/commontheme/res/anim/blinking.xml b/java/com/android/incallui/commontheme/res/anim/blinking.xml
new file mode 100644
index 0000000..4b921c6
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/anim/blinking.xml
@@ -0,0 +1,10 @@
+<?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
new file mode 100644
index 0000000..26f3fe0
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png
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
new file mode 100644
index 0000000..5b0a9d6
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png
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
new file mode 100644
index 0000000..d595b19
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png
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
new file mode 100644
index 0000000..fb7cf16
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png
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
new file mode 100644
index 0000000..4bb58d9
--- /dev/null
+++ b/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png
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 0721869..0dfdbc7 100644
--- a/java/com/android/incallui/commontheme/res/values-af/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-af/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 9d748e3..3155c39 100644
--- a/java/com/android/incallui/commontheme/res/values-am/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-am/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 693bfc5..ecb3608 100644
--- a/java/com/android/incallui/commontheme/res/values-ar/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ar/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 a1d88ce..d935a6c 100644
--- a/java/com/android/incallui/commontheme/res/values-az/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-az/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 05ae59c..36430c4 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 e772e27..9609a63 100644
--- a/java/com/android/incallui/commontheme/res/values-be/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-be/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 63364f8..1a0f3e3 100644
--- a/java/com/android/incallui/commontheme/res/values-bg/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bg/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 9871ea4..ef2408f 100644
--- a/java/com/android/incallui/commontheme/res/values-bn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 76f991d..bfaff98 100644
--- a/java/com/android/incallui/commontheme/res/values-bs/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bs/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 832027d..1b6ed44 100644
--- a/java/com/android/incallui/commontheme/res/values-ca/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ca/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 7afdcba..1f10d85 100644
--- a/java/com/android/incallui/commontheme/res/values-cs/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-cs/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 bd26e90..35d01e3 100644
--- a/java/com/android/incallui/commontheme/res/values-da/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-da/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 3fd10f0..57a95b7 100644
--- a/java/com/android/incallui/commontheme/res/values-de/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-de/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 71c0be9..6bb9edc 100644
--- a/java/com/android/incallui/commontheme/res/values-el/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-el/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 4869c3f..8133185 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 4869c3f..8133185 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 4869c3f..8133185 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 a9596d9..45f2e2f 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 aa84c62..56c8b28 100644
--- a/java/com/android/incallui/commontheme/res/values-es/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-es/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 ae2e1ba..069f3b5 100644
--- a/java/com/android/incallui/commontheme/res/values-et/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-et/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 0dd126c..bbcf5dc 100644
--- a/java/com/android/incallui/commontheme/res/values-eu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-eu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 1996ad4..ea967bb 100644
--- a/java/com/android/incallui/commontheme/res/values-fa/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fa/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 5a57981..f0da44f 100644
--- a/java/com/android/incallui/commontheme/res/values-fi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 a1db306..bf74dfb 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 e169a3d..fb674a4 100644
--- a/java/com/android/incallui/commontheme/res/values-fr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 ba98a98..c7e2214 100644
--- a/java/com/android/incallui/commontheme/res/values-gl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-gl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 194590c..75584ea 100644
--- a/java/com/android/incallui/commontheme/res/values-gu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-gu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 207bbf2..f7ea68a 100644
--- a/java/com/android/incallui/commontheme/res/values-hi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 c58ab85..c30f397 100644
--- a/java/com/android/incallui/commontheme/res/values-hr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 ba7fec7..9ee2300 100644
--- a/java/com/android/incallui/commontheme/res/values-hu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 81262e4..96a0cab 100644
--- a/java/com/android/incallui/commontheme/res/values-hy/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hy/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 fb3fc56..4536f5d 100644
--- a/java/com/android/incallui/commontheme/res/values-in/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-in/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 438b143..357f90e 100644
--- a/java/com/android/incallui/commontheme/res/values-is/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-is/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 b7c1d3f..a63d314 100644
--- a/java/com/android/incallui/commontheme/res/values-it/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-it/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 cbd6d75..1e2b7f2 100644
--- a/java/com/android/incallui/commontheme/res/values-iw/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-iw/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 4ea9495..658b513 100644
--- a/java/com/android/incallui/commontheme/res/values-ja/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ja/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 3163476..ffba7ce 100644
--- a/java/com/android/incallui/commontheme/res/values-ka/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ka/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 23b3a2a..ace83ec 100644
--- a/java/com/android/incallui/commontheme/res/values-kk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-kk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 55cfa0a..e28f120 100644
--- a/java/com/android/incallui/commontheme/res/values-km/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-km/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 685ef64..59186e0 100644
--- a/java/com/android/incallui/commontheme/res/values-kn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-kn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 088746d..0a0e3c9 100644
--- a/java/com/android/incallui/commontheme/res/values-ko/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ko/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 5dd4d0c..ac697e4 100644
--- a/java/com/android/incallui/commontheme/res/values-ky/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ky/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 2f0b94b..da2050a 100644
--- a/java/com/android/incallui/commontheme/res/values-lo/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lo/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 d0a5e0d..bda53d6 100644
--- a/java/com/android/incallui/commontheme/res/values-lt/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lt/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 443ac5e..beaf35c 100644
--- a/java/com/android/incallui/commontheme/res/values-lv/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lv/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 d9a339e..5b4f6d0 100644
--- a/java/com/android/incallui/commontheme/res/values-mk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 0f2d889..0242667 100644
--- a/java/com/android/incallui/commontheme/res/values-ml/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ml/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 3665fcf..cd286ed 100644
--- a/java/com/android/incallui/commontheme/res/values-mn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mn/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 f749809..2c626ed 100644
--- a/java/com/android/incallui/commontheme/res/values-mr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 fb38fa9d..f6c358d 100644
--- a/java/com/android/incallui/commontheme/res/values-ms/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ms/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 5b396be..6b6614c 100644
--- a/java/com/android/incallui/commontheme/res/values-my/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-my/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 506b15e..4974411 100644
--- a/java/com/android/incallui/commontheme/res/values-nb/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-nb/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 fa9d87f..5cd91b3 100644
--- a/java/com/android/incallui/commontheme/res/values-ne/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ne/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 192c47b..d33d600 100644
--- a/java/com/android/incallui/commontheme/res/values-nl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-nl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 506b15e..4974411 100644
--- a/java/com/android/incallui/commontheme/res/values-no/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-no/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 77ceb25..7e59e61 100644
--- a/java/com/android/incallui/commontheme/res/values-pa/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pa/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 d9b037e..4ab1d24 100644
--- a/java/com/android/incallui/commontheme/res/values-pl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 2c1834e..67f3674 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 f0c14d0..27c5649 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 2c1834e..67f3674 100644
--- a/java/com/android/incallui/commontheme/res/values-pt/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 f7c8f72..b7fec9a 100644
--- a/java/com/android/incallui/commontheme/res/values-ro/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ro/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 1853ad2..5d1807f 100644
--- a/java/com/android/incallui/commontheme/res/values-ru/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ru/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 ae13cc4..0a0f35c 100644
--- a/java/com/android/incallui/commontheme/res/values-si/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-si/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 cd9aa99..97eabeb 100644
--- a/java/com/android/incallui/commontheme/res/values-sk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 0aa6e69..46cf2e8 100644
--- a/java/com/android/incallui/commontheme/res/values-sl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 b9c97d1..17ec081 100644
--- a/java/com/android/incallui/commontheme/res/values-sq/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sq/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 67586b7..2928bc9 100644
--- a/java/com/android/incallui/commontheme/res/values-sr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 957a2f8..17b5d37 100644
--- a/java/com/android/incallui/commontheme/res/values-sv/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sv/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 8752c2d..165d576 100644
--- a/java/com/android/incallui/commontheme/res/values-sw/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sw/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 69258d2..fa2dfb2 100644
--- a/java/com/android/incallui/commontheme/res/values-ta/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ta/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 9454e15..3ce431c 100644
--- a/java/com/android/incallui/commontheme/res/values-te/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-te/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 8235310..1fa145c 100644
--- a/java/com/android/incallui/commontheme/res/values-th/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-th/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 f368e3a..a53e11c 100644
--- a/java/com/android/incallui/commontheme/res/values-tl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-tl/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 cbf5502..0955273 100644
--- a/java/com/android/incallui/commontheme/res/values-tr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-tr/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 2bcd04c..e17e781 100644
--- a/java/com/android/incallui/commontheme/res/values-uk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-uk/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 bd8cf68..5082e9d 100644
--- a/java/com/android/incallui/commontheme/res/values-ur/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ur/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 9bc995d..d349d3f 100644
--- a/java/com/android/incallui/commontheme/res/values-uz/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-uz/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 caf8f34..3bd39ae 100644
--- a/java/com/android/incallui/commontheme/res/values-vi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-vi/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 4d8bda6..0f57120 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 175b3e6..a3809eb 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 dee1b9c..983dddd 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,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 9535962..2dd2c89 100644
--- a/java/com/android/incallui/commontheme/res/values-zu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zu/strings.xml
@@ -1,20 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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>
@@ -31,6 +15,4 @@
     <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 94a8c90..6f346a3 100644
--- a/java/com/android/incallui/commontheme/res/values/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values/strings.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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>
@@ -47,11 +32,4 @@
 
   <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 d0ff192..228c786 100644
--- a/java/com/android/incallui/contactgrid/BottomRow.java
+++ b/java/com/android/incallui/contactgrid/BottomRow.java
@@ -22,6 +22,7 @@
 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;
@@ -136,7 +137,7 @@
   }
 
   private static CharSequence spanDisplayNumber(String displayNumber) {
-    return PhoneNumberUtils.createTtsSpannable(
+    return PhoneNumberUtilsCompat.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 502cc52..1322d58 100644
--- a/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -20,8 +20,10 @@
 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;
@@ -76,7 +78,6 @@
   private boolean hideAvatar;
   private boolean showAnonymousAvatar;
   private boolean middleRowVisible = true;
-  private boolean isTimerStarted;
 
   private PrimaryInfo primaryInfo = PrimaryInfo.createEmptyPrimaryInfo();
   private PrimaryCallState primaryCallState = PrimaryCallState.createEmptyPrimaryCallState();
@@ -104,7 +105,6 @@
 
     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, primaryInfo);
+    TopRow.Info info = TopRow.getInfo(context, primaryCallState);
     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,6 +233,26 @@
   }
 
   /**
+   * 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>
@@ -275,12 +295,8 @@
               primaryInfo.name,
               primaryInfo.contactInfoLookupKey,
               LetterTileDrawable.SHAPE_CIRCLE,
-              LetterTileDrawable.getContactTypeFromPrimitives(
-                  primaryCallState.isVoiceMailNumber,
-                  primaryInfo.isSpam,
-                  primaryCallState.isBusinessNumber,
-                  primaryInfo.numberPresentation,
-                  primaryCallState.isConference));
+              getContactTypeForPrimaryCallState(primaryCallState, primaryInfo));
+
           // 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
@@ -347,19 +363,15 @@
     }
 
     if (info.isTimerVisible) {
-      if (!isTimerStarted) {
-        bottomTextSwitcher.setDisplayedChild(1);
-        bottomTimerView.setBase(
-            primaryCallState.connectTimeMillis
-                - System.currentTimeMillis()
-                + SystemClock.elapsedRealtime());
-        bottomTimerView.start();
-        isTimerStarted = true;
-      }
+      bottomTextSwitcher.setDisplayedChild(1);
+      bottomTimerView.setBase(
+          primaryCallState.connectTimeMillis
+              - System.currentTimeMillis()
+              + SystemClock.elapsedRealtime());
+      bottomTimerView.start();
     } 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 ab00357..8c3d6b0 100644
--- a/java/com/android/incallui/contactgrid/TopRow.java
+++ b/java/com/android/incallui/contactgrid/TopRow.java
@@ -19,14 +19,10 @@
 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;
 
@@ -59,7 +55,7 @@
 
   private TopRow() {}
 
-  public static Info getInfo(Context context, PrimaryCallState state, PrimaryInfo primaryInfo) {
+  public static Info getInfo(Context context, PrimaryCallState state) {
     CharSequence label = null;
     Drawable icon = state.connectionIcon;
     boolean labelIsSingleLine = true;
@@ -77,11 +73,6 @@
         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)) {
@@ -94,8 +85,6 @@
       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
@@ -105,27 +94,9 @@
     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.sessionModificationState, state.isWifi);
+      return getLabelForIncomingVideo(context, state.isWifi);
     } else if (state.isWifi && !TextUtils.isEmpty(state.connectionLabel)) {
       return state.connectionLabel;
     } else if (isAccount(state)) {
@@ -137,20 +108,11 @@
     }
   }
 
-  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);
-      }
+  private static CharSequence getLabelForIncomingVideo(Context context, boolean isWifi) {
+    if (isWifi) {
+      return context.getString(R.string.contact_grid_incoming_wifi_video_call);
     } else {
-      if (isWifi) {
-        return context.getString(R.string.contact_grid_incoming_wifi_video_call);
-      } else {
-        return context.getString(R.string.contact_grid_incoming_video_call);
-      }
+      return context.getString(R.string.contact_grid_incoming_video_call);
     }
   }
 
@@ -192,7 +154,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.sessionModificationState, state.isWifi);
+        return getLabelForIncomingVideo(context, 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 75a8bf3..95ec39b 100644
--- a/java/com/android/incallui/contactgrid/res/values-af/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-af/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 3d11f73..d8060c9 100644
--- a/java/com/android/incallui/contactgrid/res/values-am/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-am/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 cddd1ec..30fd32c 100644
--- a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 8c1993d..4fe79ee 100644
--- a/java/com/android/incallui/contactgrid/res/values-az/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-az/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 caa61bd..f1a938e 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 51f7ea9..aec3a31 100644
--- a/java/com/android/incallui/contactgrid/res/values-be/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-be/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 4e313d4..f162e4c 100644
--- a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 8fce2e4..6d3a50c 100644
--- a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 0d4dfb3..2587992 100644
--- a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 b4aa2dd..07598a2 100644
--- a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 b8698f0..d27a028 100644
--- a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 71a651f..555a2ac 100644
--- a/java/com/android/incallui/contactgrid/res/values-da/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-da/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 d69e0f6..3d3838c 100644
--- a/java/com/android/incallui/contactgrid/res/values-de/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-de/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 954e7b7..337da7b 100644
--- a/java/com/android/incallui/contactgrid/res/values-el/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-el/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 a1402ff..3748db2 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 a1402ff..3748db2 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 a1402ff..3748db2 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 abb2b01..fa56849 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 ef7c457..1d57f9c 100644
--- a/java/com/android/incallui/contactgrid/res/values-es/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-es/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 b91f073..2d81062 100644
--- a/java/com/android/incallui/contactgrid/res/values-et/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-et/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 ba7995a..f08347b 100644
--- a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 40873ca..0dfc0f4 100644
--- a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 241fef5..00503bf 100644
--- a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 3ffc1e9..ee0196d 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 0db6ae0..9849ad6 100644
--- a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 2970014..c85f336 100644
--- a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 220bebe..5179cc0 100644
--- a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 da128b6..dec7b62 100644
--- a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 24429a2..d7023ac 100644
--- a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 600b69f..f7da923 100644
--- a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 88a49eb..6384fa9 100644
--- a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 f673583..7556838 100644
--- a/java/com/android/incallui/contactgrid/res/values-in/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-in/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 9e83031..86d577c 100644
--- a/java/com/android/incallui/contactgrid/res/values-is/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-is/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 76958cf..9576a6d 100644
--- a/java/com/android/incallui/contactgrid/res/values-it/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-it/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 b06c321..62771d1 100644
--- a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 a2fce09..a5d958c 100644
--- a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 cb0094d..7848f59 100644
--- a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 3fc68c2..aaf260b 100644
--- a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 7ee21ba..b2bfc96 100644
--- a/java/com/android/incallui/contactgrid/res/values-km/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-km/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 e90bd6b..0ee73ba 100644
--- a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 85dd613..a5a34e3 100644
--- a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 6028022..a020e70 100644
--- a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 6ad1178..96c1dcf 100644
--- a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 3cca55c..e8e42fc 100644
--- a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 87e5c90..1b3823f 100644
--- a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 fcab8f4..1044683 100644
--- a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 1dfb46a..519e9f4 100644
--- a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 c93bd46..c87e071 100644
--- a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 81d76dd..6a01817 100644
--- a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 815df79..17ca753 100644
--- a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 3c8a88e..14770cf 100644
--- a/java/com/android/incallui/contactgrid/res/values-my/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-my/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 9ad8d0d..fbf9895 100644
--- a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 e6e65c5..d618af4 100644
--- a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 828a7a2..10dcd13 100644
--- a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 9ad8d0d..fbf9895 100644
--- a/java/com/android/incallui/contactgrid/res/values-no/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-no/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 1d4801c..fb261d6 100644
--- a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 586f39e..998e49e 100644
--- a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 a445cdf..4365cba 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 ca07b3f..55d3c26 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 a445cdf..4365cba 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 180a01f..f8d1c9b 100644
--- a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 e0a6351..dfbc088 100644
--- a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 451dc39..00ca2aa 100644
--- a/java/com/android/incallui/contactgrid/res/values-si/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-si/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 ae21ec8..40039ee 100644
--- a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 1d93d21..f76b5cd 100644
--- a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 8c28eb7..34ec2d1 100644
--- a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 66ea45d..9ad1499 100644
--- a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 931d9c9..d5dd159 100644
--- a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 581d797..72bc26f 100644
--- a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 37ff876..2f5b1b8 100644
--- a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 913c944..52038db 100644
--- a/java/com/android/incallui/contactgrid/res/values-te/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-te/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 6503959..419db19 100644
--- a/java/com/android/incallui/contactgrid/res/values-th/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-th/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 7fa063b..282ec10 100644
--- a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 1ce565d..5ecbf35 100644
--- a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 0d4a595..7b84fb6 100644
--- a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 793e487..6584181 100644
--- a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 a5ce1ca..db11a18 100644
--- a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 9ce0f18..340a115 100644
--- a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 af5008a..16031b8 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 9f47481..14a4441 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 563bb28..bdee41e 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,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 19951cc..150d5cc 100644
--- a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
@@ -1,20 +1,4 @@
 <?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>
@@ -30,8 +14,6 @@
     <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 5a9272c..385f843 100644
--- a/java/com/android/incallui/contactgrid/res/values/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values/strings.xml
@@ -1,19 +1,4 @@
 <?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.
@@ -65,12 +50,6 @@
   <!-- 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 99364e2..0dcfdb5 100644
--- a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
+++ b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
@@ -83,18 +83,11 @@
     mapping.put(
         InCallButtonIds.BUTTON_SWITCH_TO_SECONDARY, MappingInfo.builder(4).setSlotOrder(0).build());
     mapping.put(
-        InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO, MappingInfo.builder(4).setSlotOrder(10).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());
+        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());
 
     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 b7a47f0..8c11364 100644
--- a/java/com/android/incallui/incall/impl/ButtonController.java
+++ b/java/com/android/incallui/incall/impl/ButtonController.java
@@ -29,8 +29,6 @@
 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 {
@@ -378,13 +376,36 @@
     }
 
     public void setAudioState(CallAudioState audioState) {
-      SpeakerButtonInfo info = new SpeakerButtonInfo(audioState, IconSize.SIZE_36_DP);
+      @StringRes int contentDescriptionResId;
+      if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
+          == CallAudioState.ROUTE_BLUETOOTH) {
+        checkable = false;
+        isChecked = false;
+        label = R.string.incall_label_audio;
 
-      checkable = info.checkable;
-      isChecked = info.isChecked;
-      label = info.label;
-      icon = info.icon;
-      @StringRes int contentDescriptionResId = info.contentDescription;
+        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;
+      }
 
       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 d329dc9..c5d7532 100644
--- a/java/com/android/incallui/incall/impl/InCallFragment.java
+++ b/java/com/android/incallui/incall/impl/InCallFragment.java
@@ -473,9 +473,6 @@
     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 bc0c616..0b1088d 100644
--- a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
+++ b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
@@ -21,6 +21,7 @@
 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;
 
@@ -46,7 +47,8 @@
 
   @Override
   public int getCount() {
-    if (attachments != null && attachments.hasData()) {
+    if (attachments != null
+        && (!TextUtils.isEmpty(attachments.getText()) || attachments.hasImageData())) {
       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 64529a5..fd632fb 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 66a3868..9dfd0e6 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 e4dbfe4..a5f448a 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 9a1f7f8..5f1f8cb 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 02d6b7c..bff7ed0 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 45e1e10..394c7c8 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 c339d3b..4f5933b 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 ca5837b..9453e14 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 26b44ea..4b47964 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 9c76a3a..e10b7bd 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 69f3e53..a00c105 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 d9328af..08b5cbb 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 30eae96..5f3f8c1 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 b45314f..0f5a142 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 34323f5..89b72df 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 34323f5..89b72df 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 34323f5..89b72df 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 d39cf2f..fe9374c 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 db5a7e6..f2dd09b 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 f4587ad..03fa7de 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 28d78a7..51d300e 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 a26ac75..a070116 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 9ae5348..d81bfbf 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 cff6745..1278bce 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 14e92be..5532032 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 4b399f4..ec99b7c 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 438f0f3..fb3999c 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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
new file mode 100644
index 0000000..1f37cd5
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+  <dimen name="incall_avatar_size">88dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml
similarity index 100%
rename from java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
rename to java/com/android/incallui/incall/impl/res/values-h580dp/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 39e6e6b..6a7538d 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 e440028..fc431b3 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 e63ce59..194c348 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 ce395e7..0e8054e 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 e9d738a..f429cb4 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 f262e3f..9c3bf89 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 f29a702..1cfb0be 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 bf08e3b..2426fc8 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 b78ee20..9e313a0 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 f6926f3..d33af5a 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 8da9982..db9c4f6 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 88e356a..6596bdf 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 ad29b6d..c03ec09 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 f9bb20f..e701e77 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 f00264d..e51d4c5 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 2382f32..52de3ff 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 1a10884..4cd0356 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 c19e7c0..48f9ae0 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 610a308..5a61de5 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 83c2989..00586ff 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 9427d86..085a405 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 194c192..8419233 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 a918ded..c9db832 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 8007029..e0bfb8c 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 704384e..7520086 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 beffa3e..6bcfb6d 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 e3c919e..63f1ebd 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 704384e..7520086 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 d7e74ed..10a2865 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 9971d75..4bf6a58 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 538c20c..7ca6b6b 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 376ee84..750e57e 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 538c20c..7ca6b6b 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 81dcdf3..1f93da9 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 274f8ff..89192c3 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 a600c21..209bb77 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 d74d19e..4e06aee 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 782ce44..7cdb6c8 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 a0fca36..9ba18b5 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 ec70451..56a9684 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 ded4522..27d83b7 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 df634f4..136fe17 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 5c94abf..342f8d0 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 0cb3fb8..0048956 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 0929cfc..a740288 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 1ac2ef8..46ff797 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 241b694..89ca330 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 1821556..516bcb7 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 fed0af6..53ba190 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 7d6af27..8818489 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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">"Birlashtirish"</string>
+    <string name="incall_label_merge" msgid="720076442985913175">"Birlashtir."</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 42e320a..29f85ef 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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
new file mode 100644
index 0000000..e73eb93
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml
@@ -0,0 +1,7 @@
+<?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/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
deleted file mode 100644
index 834ea2f..0000000
--- a/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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="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
new file mode 100644
index 0000000..502ae72
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml
@@ -0,0 +1,5 @@
+<?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/incall/impl/res/values-w300dp-h620dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
deleted file mode 100644
index c7ac35e..0000000
--- a/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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="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 f0cca90..ec64045 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 c38ef35..63cd6d8 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 c04b830..be3103b 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 a23a1d5..df3f794 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,33 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- 
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under 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 2b30dfa..054ca96 100644
--- a/java/com/android/incallui/incall/impl/res/values/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values/strings.xml
@@ -1,19 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES 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.
@@ -32,14 +17,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>
 
@@ -60,9 +45,12 @@
      [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>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java
index 26dd388..2ae6a18 100644
--- a/java/com/android/incallui/incall/protocol/PrimaryCallState.java
+++ b/java/com/android/incallui/incall/protocol/PrimaryCallState.java
@@ -44,7 +44,6 @@
   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() {
@@ -68,8 +67,7 @@
         0,
         false /* isVoiceMailNumber */,
         false /* isRemotelyHeld */,
-        false /* isBusinessNumber */,
-        true /* supportsCallOnHold */);
+        false /* isBusinessNumber */);
   }
 
   public PrimaryCallState(
@@ -92,8 +90,7 @@
       long connectTimeMillis,
       boolean isVoiceMailNumber,
       boolean isRemotelyHeld,
-      boolean isBusinessNumber,
-      boolean supportsCallOnHold) {
+      boolean isBusinessNumber) {
     this.state = state;
     this.isVideoCall = isVideoCall;
     this.sessionModificationState = sessionModificationState;
@@ -114,7 +111,6 @@
     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
new file mode 100644
index 0000000..3d9f683
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-hdpi/img_conference.png
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
new file mode 100644
index 0000000..0694dbd
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-mdpi/img_conference.png
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
new file mode 100644
index 0000000..b0dbcc2
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png
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
new file mode 100644
index 0000000..a8dba5e
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png
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
new file mode 100644
index 0000000..eb42b55
--- /dev/null
+++ b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png
Binary files differ
diff --git a/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml b/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
similarity index 75%
rename from java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
rename to java/com/android/incallui/res/drawable/img_conference_automirrored.xml
index 904aed2..78b2876 100644
--- a/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
+++ b/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
+
 <!--
-  ~ Copyright (C) 2016 The Android Open Source Project
+  ~ 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.
@@ -15,6 +16,6 @@
   ~ limitations under the License
   -->
 
-<resources>
-  <dimen name="incall_avatar_size">88dp</dimen>
-</resources>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+  android:autoMirrored="true"
+  android:src="@drawable/img_conference"/>
\ No newline at end of file
diff --git a/java/com/android/incallui/res/values-ca/strings.xml b/java/com/android/incallui/res/values-ca/strings.xml
index ad34b00..5148db5 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\'hi 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\'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
deleted file mode 100644
index 2679653..0000000
--- a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2013 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License
-  -->
-
-<resources>
-  <!-- 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 b04972f..3828501 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 chaqiruv"</string>
+    <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi qo‘ng‘iroq"</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 fb4934d..18816f6 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">36dp</dimen>
+  <dimen name="incall_dialpad_key_numbers_size">36sp</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 3c036c9..68a38f0 100644
--- a/java/com/android/incallui/res/values/styles.xml
+++ b/java/com/android/incallui/res/values/styles.xml
@@ -78,13 +78,4 @@
     <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 3b3327d..ed29e78 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="wrap_content"
-      android:layout_height="match_parent"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
       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="centerCrop"/>
+      android:scaleType="fitCenter"/>
 
   <ProgressBar
       android:layout_width="wrap_content"
diff --git a/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml b/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
deleted file mode 100644
index 9557d03..0000000
--- a/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
+++ /dev/null
@@ -1,18 +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
-  -->
-<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
deleted file mode 100644
index 5ab821b..0000000
--- a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java
+++ /dev/null
@@ -1,91 +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.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 d98545f..e12032a 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.quantum_ic_phone_in_talk_white_36;
+        icon = R.drawable.ic_phone_audio_white_36dp;
         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 489f72b..b7a960e 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, mutePreviewOverlay};
+    return new View[] {previewRoot};
   }
 
   private int getOffsetTop(View view) {
@@ -644,6 +644,12 @@
     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);
@@ -828,9 +834,6 @@
   }
 
   @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 6e45f92..8e2f5ae 100644
--- a/java/com/android/incallui/video/impl/VideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/VideoCallFragment.java
@@ -59,7 +59,6 @@
 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;
@@ -666,14 +665,22 @@
     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. */
@@ -846,9 +853,6 @@
   }
 
   @Override
-  public void onAudioRouteSelectorDismiss() {}
-
-  @Override
   public void setPrimary(@NonNull PrimaryInfo primaryInfo) {
     LogUtil.i("VideoCallFragment.setPrimary", primaryInfo.toString());
     contactGridManager.setPrimary(primaryInfo);
@@ -1041,6 +1045,7 @@
     params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
     previewTextureView.setLayoutParams(params);
     previewTextureView.setOutlineProvider(circleOutlineProvider);
+    updatePreviewVideoScaling();
     updateOverlayBackground();
     contactGridManager.setIsMiddleRowVisible(false);
     updateMutePreviewOverlayVisibility();
@@ -1048,9 +1053,6 @@
     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 1a2bc24..c672466 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
   -->
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout 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_centerInParent="true"
+    android:layout_gravity="center"
     android:accessibilityTraversalBefore="@+id/videocall_speaker_button"
     android:drawablePadding="8dp"
     android:drawableTop="@drawable/quantum_ic_videocam_off_white_36"
@@ -71,22 +71,19 @@
       android:visibility="gone"
       android:importantForAccessibility="no"
       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"/>
+    <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>
 
   <View
     android:id="@+id/videocall_green_screen_background"
@@ -105,4 +102,4 @@
     android:layout_height="wrap_content"
     android:layout_gravity="top"/>
 
-</RelativeLayout>
+</FrameLayout>
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 e9e7f9e..a53fb64 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">116dp</dimen>
+  <dimen name="videocall_preview_long">104dp</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 d0a5e40..6485735 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">96dp</dimen>
+  <dimen name="videocall_preview_long">92dp</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 f60dbd1..a809708 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,8 +16,7 @@
   -->
 <resources>
   <style name="VideoPreviewHolder">
-    <item name="android:layout_alignParentBottom">true</item>
-    <item name="android:layout_alignParentEnd">true</item>
+    <item name="android:layout_gravity">bottom|end</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 e9e7f9e..a53fb64 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">116dp</dimen>
+  <dimen name="videocall_preview_long">104dp</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 606b158..aa08c9d 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">96dp</dimen>
+  <dimen name="videocall_preview_long">84dp</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 010aca2..f73075f 100644
--- a/java/com/android/incallui/video/impl/res/values/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values/styles.xml
@@ -23,8 +23,7 @@
     <item name="android:stateListAnimator">@animator/disabled_alpha</item>
   </style>
   <style name="VideoPreviewHolder">
-    <item name="android:layout_alignParentBottom">true</item>
-    <item name="android:layout_alignParentStart">true</item>
+    <item name="android:layout_gravity">bottom|start</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 2a0b7c5..01e4bb8 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
@@ -183,6 +183,8 @@
   public void stopTransmission() {
     LogUtil.enterBlock("ImsVideoTech.stopTransmission");
 
+    setCamera(null);
+
     int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
     call.getVideoCall()
         .sendSessionModifyRequest(
@@ -246,7 +248,7 @@
   private boolean canPause() {
     return call.getDetails().can(Details.CAPABILITY_CAN_PAUSE_VIDEO)
         && call.getState() == Call.STATE_ACTIVE
-        && isTransmittingOrReceiving();
+        && isTransmitting();
   }
 
   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 386afdc..e49d0b8 100644
--- a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
+++ b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
@@ -20,7 +20,6 @@
 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;
@@ -47,10 +46,7 @@
 
   @Override
   public boolean isAvailable(Context context) {
-    return ConfigProviderBindings.get(context)
-            .getBoolean("enable_lightbringer_video_upgrade", false)
-        && callState == Call.STATE_ACTIVE
-        && lightbringer.isReachable(context, callingNumber);
+    return callState == Call.STATE_ACTIVE && lightbringer.isReachable(context, callingNumber);
   }
 
   @Override
diff --git a/java/com/android/voicemail/impl/AndroidManifest.xml b/java/com/android/voicemail/impl/AndroidManifest.xml
index be7dac1..95e6e82 100644
--- a/java/com/android/voicemail/impl/AndroidManifest.xml
+++ b/java/com/android/voicemail/impl/AndroidManifest.xml
@@ -97,11 +97,6 @@
         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
new file mode 100644
index 0000000..9baf954
--- /dev/null
+++ b/java/com/android/voicemail/impl/OmtpReceiver.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;
+
+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
new file mode 100644
index 0000000..4762e90
--- /dev/null
+++ b/java/com/android/voicemail/impl/TelephonyManagerStub.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.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
new file mode 100644
index 0000000..1e2de60
--- /dev/null
+++ b/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java
@@ -0,0 +1,80 @@
+/*
+ * 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
deleted file mode 100644
index 448c693..0000000
--- a/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java
+++ /dev/null
@@ -1,254 +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.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 d15ce12..f386fce 100644
--- a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
+++ b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
@@ -23,12 +23,9 @@
 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;
@@ -59,7 +56,6 @@
    * @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();
@@ -94,23 +90,13 @@
     ContentValues values = new ContentValues();
     values.put(Voicemails.MIME_TYPE, voicemailPayload.getMimeType());
     values.put(Voicemails.HAS_CONTENT, true);
-    if (updateVoicemail(values)) {
-      ThreadUtil.postOnUiThread(
-          () -> {
-            if (!TranscriptionService.transcribeVoicemail(mContext, mUri)) {
-              VvmLog.w(TAG, String.format("Failed to schedule transcription for %s", mUri));
-            }
-          });
-    }
+    updateVoicemail(values);
   }
 
-  private boolean updateVoicemail(ContentValues values) {
+  private void 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 00339f0..3df36d5 100644
--- a/java/com/android/voicemail/impl/mail/MailTransport.java
+++ b/java/com/android/voicemail/impl/mail/MailTransport.java
@@ -17,9 +17,7 @@
 
 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;
@@ -190,7 +188,6 @@
 
     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
new file mode 100644
index 0000000..5ad2447
--- /dev/null
+++ b/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java
@@ -0,0 +1,400 @@
+/*
+ * 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
deleted file mode 100644
index 17c9be7..0000000
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
+++ /dev/null
@@ -1,62 +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.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
deleted file mode 100644
index cbc5cb8..0000000
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.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.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
deleted file mode 100644
index 3e80a7f..0000000
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionService.java
+++ /dev/null
@@ -1,203 +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.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
deleted file mode 100644
index 0fbc33a..0000000
--- a/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
+++ /dev/null
@@ -1,191 +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.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
deleted file mode 100644
index c6e30c6..0000000
--- a/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java
+++ /dev/null
@@ -1,59 +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.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
deleted file mode 100644
index 27603d9..0000000
--- a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java
+++ /dev/null
@@ -1,61 +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.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
deleted file mode 100644
index 6101ed5..0000000
--- a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java
+++ /dev/null
@@ -1,194 +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.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
deleted file mode 100644
index 4b1e19b..0000000
--- a/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto
+++ /dev/null
@@ -1,44 +0,0 @@
-// 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)
diff --git a/java/com/android/voicemail/AndroidManifest.xml b/java/com/android/voicemail/permissions.xml
similarity index 60%
rename from java/com/android/voicemail/AndroidManifest.xml
rename to java/com/android/voicemail/permissions.xml
index aedfd6f..bedf068 100644
--- a/java/com/android/voicemail/AndroidManifest.xml
+++ b/java/com/android/voicemail/permissions.xml
@@ -1,18 +1,3 @@
-<!--
-  ~ Copyright (C) 2017 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT 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">
 
