diff --git a/res/drawable-hdpi/googlelogo_dark20_color_132x44.png b/res/drawable-hdpi/googlelogo_dark20_color_132x44.png
deleted file mode 100644
index 078c8a8..0000000
--- a/res/drawable-hdpi/googlelogo_dark20_color_132x44.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/googlelogo_dark20_color_184x60.png b/res/drawable-hdpi/googlelogo_dark20_color_184x60.png
deleted file mode 100644
index 9d25e3d..0000000
--- a/res/drawable-hdpi/googlelogo_dark20_color_184x60.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/product_logo_contacts_color_144.png b/res/drawable-hdpi/product_logo_contacts_color_144.png
index d26a363..293a85e 100644
--- a/res/drawable-hdpi/product_logo_contacts_color_144.png
+++ b/res/drawable-hdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-hdpi/product_logo_contacts_color_192.png b/res/drawable-hdpi/product_logo_contacts_color_192.png
index ebd8a8b..04a5a10 100644
--- a/res/drawable-hdpi/product_logo_contacts_color_192.png
+++ b/res/drawable-hdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-mdpi/googlelogo_dark20_color_132x44.png b/res/drawable-mdpi/googlelogo_dark20_color_132x44.png
deleted file mode 100644
index a045dab..0000000
--- a/res/drawable-mdpi/googlelogo_dark20_color_132x44.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/googlelogo_dark20_color_184x60.png b/res/drawable-mdpi/googlelogo_dark20_color_184x60.png
deleted file mode 100644
index d1181a9..0000000
--- a/res/drawable-mdpi/googlelogo_dark20_color_184x60.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/product_logo_contacts_color_144.png b/res/drawable-mdpi/product_logo_contacts_color_144.png
index e28097c..27c571e 100644
--- a/res/drawable-mdpi/product_logo_contacts_color_144.png
+++ b/res/drawable-mdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-mdpi/product_logo_contacts_color_192.png b/res/drawable-mdpi/product_logo_contacts_color_192.png
index a8fcbf0..6e79412 100644
--- a/res/drawable-mdpi/product_logo_contacts_color_192.png
+++ b/res/drawable-mdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-sw600dp/quantum_launchscreen_contacts.xml b/res/drawable-sw600dp/quantum_launchscreen_contacts.xml
index 5cc35d5..0272a01 100755
--- a/res/drawable-sw600dp/quantum_launchscreen_contacts.xml
+++ b/res/drawable-sw600dp/quantum_launchscreen_contacts.xml
@@ -24,11 +24,4 @@
             android:gravity="center"
             android:src="@drawable/product_logo_contacts_color_192" />
     </item>
-    <item
-        android:id="@+id/launchscreens_logo_text"
-        android:bottom="@dimen/launchscreens_google_logo_bottom">
-        <bitmap
-            android:gravity="center_horizontal|bottom"
-            android:src="@drawable/googlelogo_dark20_color_184x60" />
-    </item>
 </layer-list>
diff --git a/res/drawable-xhdpi/googlelogo_dark20_color_132x44.png b/res/drawable-xhdpi/googlelogo_dark20_color_132x44.png
deleted file mode 100644
index 437f083..0000000
--- a/res/drawable-xhdpi/googlelogo_dark20_color_132x44.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/googlelogo_dark20_color_184x60.png b/res/drawable-xhdpi/googlelogo_dark20_color_184x60.png
deleted file mode 100644
index 2bd813f..0000000
--- a/res/drawable-xhdpi/googlelogo_dark20_color_184x60.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/product_logo_contacts_color_144.png b/res/drawable-xhdpi/product_logo_contacts_color_144.png
index ebd8a8b..04a5a10 100644
--- a/res/drawable-xhdpi/product_logo_contacts_color_144.png
+++ b/res/drawable-xhdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-xhdpi/product_logo_contacts_color_192.png b/res/drawable-xhdpi/product_logo_contacts_color_192.png
index 690bbd0..35d80e4 100644
--- a/res/drawable-xhdpi/product_logo_contacts_color_192.png
+++ b/res/drawable-xhdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-xxhdpi/googlelogo_dark20_color_132x44.png b/res/drawable-xxhdpi/googlelogo_dark20_color_132x44.png
deleted file mode 100644
index b22fba6..0000000
--- a/res/drawable-xxhdpi/googlelogo_dark20_color_132x44.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/googlelogo_dark20_color_184x60.png b/res/drawable-xxhdpi/googlelogo_dark20_color_184x60.png
deleted file mode 100644
index 6e4193e..0000000
--- a/res/drawable-xxhdpi/googlelogo_dark20_color_184x60.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/product_logo_contacts_color_144.png b/res/drawable-xxhdpi/product_logo_contacts_color_144.png
index 8ff6a14..12c582b 100644
--- a/res/drawable-xxhdpi/product_logo_contacts_color_144.png
+++ b/res/drawable-xxhdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-xxhdpi/product_logo_contacts_color_192.png b/res/drawable-xxhdpi/product_logo_contacts_color_192.png
index c32d9cd..baa0003 100644
--- a/res/drawable-xxhdpi/product_logo_contacts_color_192.png
+++ b/res/drawable-xxhdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/googlelogo_dark20_color_132x44.png b/res/drawable-xxxhdpi/googlelogo_dark20_color_132x44.png
deleted file mode 100644
index 7372b47..0000000
--- a/res/drawable-xxxhdpi/googlelogo_dark20_color_132x44.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/googlelogo_dark20_color_184x60.png b/res/drawable-xxxhdpi/googlelogo_dark20_color_184x60.png
deleted file mode 100644
index 60de38b..0000000
--- a/res/drawable-xxxhdpi/googlelogo_dark20_color_184x60.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/product_logo_contacts_color_144.png b/res/drawable-xxxhdpi/product_logo_contacts_color_144.png
index c32d9cd..baa0003 100644
--- a/res/drawable-xxxhdpi/product_logo_contacts_color_144.png
+++ b/res/drawable-xxxhdpi/product_logo_contacts_color_144.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/product_logo_contacts_color_192.png b/res/drawable-xxxhdpi/product_logo_contacts_color_192.png
index 1346cbc..f1a62e6 100644
--- a/res/drawable-xxxhdpi/product_logo_contacts_color_192.png
+++ b/res/drawable-xxxhdpi/product_logo_contacts_color_192.png
Binary files differ
diff --git a/res/drawable/quantum_launchscreen_contacts.xml b/res/drawable/quantum_launchscreen_contacts.xml
index 1995899..276b2da 100755
--- a/res/drawable/quantum_launchscreen_contacts.xml
+++ b/res/drawable/quantum_launchscreen_contacts.xml
@@ -24,11 +24,4 @@
         android:gravity="center"
         android:src="@drawable/product_logo_contacts_color_144" />
   </item>
-  <item
-      android:id="@+id/launchscreens_logo_text"
-      android:bottom="@dimen/launchscreens_google_logo_bottom">
-    <bitmap
-        android:gravity="center_horizontal|bottom"
-        android:src="@drawable/googlelogo_dark20_color_132x44" />
-  </item>
 </layer-list>
diff --git a/res/mipmap-anydpi-v26/ic_contacts_launcher.xml b/res/mipmap-anydpi-v26/ic_contacts_launcher.xml
deleted file mode 100644
index 784f6e3..0000000
--- a/res/mipmap-anydpi-v26/ic_contacts_launcher.xml
+++ /dev/null
@@ -1,19 +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.
--->
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@color/ic_contacts_launcher_background"/>
-    <foreground android:drawable="@mipmap/ic_contacts_launcher_foreground"/>
-</adaptive-icon>
\ No newline at end of file
diff --git a/res/mipmap-hdpi/ic_contacts_launcher.png b/res/mipmap-hdpi/ic_contacts_launcher.png
index 0fd1492..64eff00 100644
--- a/res/mipmap-hdpi/ic_contacts_launcher.png
+++ b/res/mipmap-hdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-hdpi/ic_contacts_launcher_foreground.png b/res/mipmap-hdpi/ic_contacts_launcher_foreground.png
deleted file mode 100644
index 8088777..0000000
--- a/res/mipmap-hdpi/ic_contacts_launcher_foreground.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-mdpi/ic_contacts_launcher.png b/res/mipmap-mdpi/ic_contacts_launcher.png
index e23930b..b4ee821 100644
--- a/res/mipmap-mdpi/ic_contacts_launcher.png
+++ b/res/mipmap-mdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-mdpi/ic_contacts_launcher_foreground.png b/res/mipmap-mdpi/ic_contacts_launcher_foreground.png
deleted file mode 100644
index abea159..0000000
--- a/res/mipmap-mdpi/ic_contacts_launcher_foreground.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_contacts_launcher.png b/res/mipmap-xhdpi/ic_contacts_launcher.png
index aff0f31..6feeadf 100644
--- a/res/mipmap-xhdpi/ic_contacts_launcher.png
+++ b/res/mipmap-xhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png
deleted file mode 100644
index 1fb6752..0000000
--- a/res/mipmap-xhdpi/ic_contacts_launcher_foreground.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_contacts_launcher.png b/res/mipmap-xxhdpi/ic_contacts_launcher.png
index 9cd2ebe..01a3fde 100644
--- a/res/mipmap-xxhdpi/ic_contacts_launcher.png
+++ b/res/mipmap-xxhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png
deleted file mode 100644
index f1be7b1..0000000
--- a/res/mipmap-xxhdpi/ic_contacts_launcher_foreground.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_contacts_launcher.png b/res/mipmap-xxxhdpi/ic_contacts_launcher.png
index 74c4179..328e067 100644
--- a/res/mipmap-xxxhdpi/ic_contacts_launcher.png
+++ b/res/mipmap-xxxhdpi/ic_contacts_launcher.png
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png b/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png
deleted file mode 100644
index 4b1a4b4..0000000
--- a/res/mipmap-xxxhdpi/ic_contacts_launcher_foreground.png
+++ /dev/null
Binary files differ
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index ac64425..8e79099 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -29,8 +29,8 @@
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"إنشاء جهة اتصال جديدة"</string>
     <string name="searchHint" msgid="8482945356247760701">"البحث في جهات الاتصال"</string>
     <string name="menu_addStar" msgid="2908478235715404876">"إضافة إلى المفضلة"</string>
-    <string name="menu_removeStar" msgid="5844227078364227030">"إزالة من المفضلة"</string>
-    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"تمت الإزالة من المفضلة"</string>
+    <string name="menu_removeStar" msgid="5844227078364227030">"الإزالة من العناصر المفضّلة"</string>
+    <string name="description_action_menu_remove_star" msgid="4699640108012265178">"تمت الإزالة من العناصر المفضّلة"</string>
     <string name="description_action_menu_add_star" msgid="3327186327234177456">"تمت الإضافة إلى المفضلة"</string>
     <string name="menu_editContact" msgid="9042415603857662633">"تعديل"</string>
     <string name="menu_deleteContact" msgid="6788644058868189393">"حذف"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 091b09e..c14e050 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -22,9 +22,9 @@
     <string name="shortcutContact" msgid="749243779392912958">"Kontakt"</string>
     <string name="shortcutDialContact" msgid="746622101599186779">"Direktno biranje"</string>
     <string name="shortcutMessageContact" msgid="2460337253595976198">"Direktna poruka"</string>
-    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Izaberi kontakt"</string>
+    <string name="shortcutActivityTitle" msgid="1504383567778497348">"Odaberi kontakt"</string>
     <string name="contactInsertOrEditActivityTitle" msgid="6527505405325862674">"Dodaj u kontakt"</string>
-    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Izaberi kontakt"</string>
+    <string name="contactPickerActivityTitle" msgid="4301062192337417640">"Odaberi kontakt"</string>
     <string name="groupMemberPickerActivityTitle" msgid="1431750793695262522">"Odaberi"</string>
     <string name="header_entry_contact_list_adapter_header_title" msgid="2436981165830115659">"Napravi novi kontakt"</string>
     <string name="searchHint" msgid="8482945356247760701">"Pretraži kontakte"</string>
@@ -57,7 +57,7 @@
     <string name="menu_linkedContacts" msgid="400444389718855621">"Prikaz povezanih kontakata"</string>
     <string name="menu_save" msgid="1727844363591825909">"Sačuvaj"</string>
     <string name="titleJoinContactDataWith" msgid="6825255752748313944">"Poveži kontakte"</string>
-    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Izaberite kontakt koji želite povezati s kontaktom <xliff:g id="NAME">%s</xliff:g>:"</string>
+    <string name="blurbJoinContactDataWith" msgid="5864256698061641841">"Odaberite kontakt koji želite povezati s kontaktom <xliff:g id="NAME">%s</xliff:g>:"</string>
     <string name="separatorJoinAggregateSuggestions" msgid="2831414448851313345">"Predloženi kontakti"</string>
     <string name="separatorJoinAggregateAll" msgid="7939932265026181043">"Svi kontakti"</string>
     <string name="contactsJoinedNamedMessage" msgid="1299418263439579455">"<xliff:g id="NAME">%s</xliff:g> je povezan"</string>
@@ -127,7 +127,7 @@
     <string name="groupSomeContactsNoPhonesToast" msgid="5530760834827530509">"Neki kontakti nemaju brojeve telefona."</string>
     <string name="menu_sendEmailOption" msgid="5978319931321657780">"Pošalji poruku e-pošte"</string>
     <string name="menu_sendMessageOption" msgid="8850168125274916426">"Pošalji poruku"</string>
-    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Izaberite kontakte"</string>
+    <string name="pickerSelectContactsActivityTitle" msgid="1936544190231136729">"Odaberite kontakte"</string>
     <string name="send_to_selection" msgid="2251339182881603540">"Pošalji"</string>
     <string name="listFoundAllContactsZero" msgid="922980883593159444">"Nema kontakata"</string>
     <string name="add_contact_dlg_message_fmt" msgid="7986472669444326576">"Dodati \"<xliff:g id="EMAIL">%s</xliff:g>\" u kontakte?"</string>
@@ -144,7 +144,7 @@
       <item quantity="few">Podijeli kontakte putem</item>
       <item quantity="other">Podijeli kontakte putem</item>
     </plurals>
-    <string name="dialog_new_group_account" msgid="3451312333591556651">"Izaberi račun"</string>
+    <string name="dialog_new_group_account" msgid="3451312333591556651">"Odaberi račun"</string>
     <string name="group_name_dialog_insert_title" msgid="2668452090427027941">"Napravi oznaku"</string>
     <string name="group_name_dialog_update_title" msgid="6328021162869677383">"Preimenuj oznaku"</string>
     <string name="group_name_dialog_hint" msgid="7624523157537700160">"Naziv oznake"</string>
@@ -155,7 +155,7 @@
     <string name="google_account_type_format" msgid="5283997303922067997">"Račun <xliff:g id="SOURCE">%1$s</xliff:g>"</string>
     <string name="take_photo" msgid="7496128293167402354">"Snimi fotografiju"</string>
     <string name="take_new_photo" msgid="7341354729436576304">"Snimi novu fotografiju"</string>
-    <string name="pick_photo" msgid="2129509985223564942">"Izaberi fotografiju"</string>
+    <string name="pick_photo" msgid="2129509985223564942">"Odaberi fotografiju"</string>
     <string name="pick_new_photo" msgid="9122450996263688237">"Odaberi novu fotografiju"</string>
     <string name="search_results_searching" msgid="3984833028938569930">"Pretraživanje…"</string>
     <string name="event_edit_field_hint_text" msgid="5794424930242630477">"Datum"</string>
@@ -192,11 +192,11 @@
     <string name="external_profile_title" msgid="8034998767621359438">"Moj profil <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Odvojite malo vremena da dodate račun putem kojeg će se kontakti sigurnosno kopirati na Google."</string>
     <string name="contact_editor_prompt_one_account" msgid="3087691056345099310">"Novi kontakti će biti sačuvani na račun <xliff:g id="ACCOUNT_NAME">%1$s</xliff:g>."</string>
-    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Izaberite zadani račun za nove kontakte:"</string>
+    <string name="contact_editor_prompt_multiple_accounts" msgid="8565761674283473549">"Odaberite zadani račun za nove kontakte:"</string>
     <string name="contact_editor_title_new_contact" msgid="3042788718983070111">"Napravi novi kontakt"</string>
     <string name="contact_editor_title_existing_contact" msgid="4898475703683187798">"Uredi kontakt"</string>
     <string name="contact_editor_title_read_only_contact" msgid="2443496574528842237">"Samo prikaz"</string>
-    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Izaberite kontakt za uređivanje"</string>
+    <string name="contact_editor_pick_raw_contact_to_edit_dialog_title" msgid="4186699385645902152">"Odaberite kontakt za uređivanje"</string>
     <string name="contact_editor_pick_linked_contact_dialog_title" msgid="4618465940423857694">"Povezani kontakti"</string>
     <string name="contact_editor_add_linked_contact" msgid="426142748048816297">"Dodaj"</string>
     <string name="contact_editor_unlink_contacts" msgid="4525214336177236653">"Prekini povezanost"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 3dd2de8..cfc8607 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -229,7 +229,7 @@
     <string name="content_description_recent_call_type_missed" msgid="7371810920196048204">"tak terjawab"</string>
     <string name="content_description_recent_call" msgid="5183800406316723676">"panggilan telepon terbaru. <xliff:g id="CALL_TYPE">%1$s</xliff:g>. <xliff:g id="PHONE_NUMBER">%2$s</xliff:g>. <xliff:g id="DATE">%3$s</xliff:g>. klik untuk menelepon balik"</string>
     <string name="message_from_you_prefix" msgid="7180706529908434482">"Anda: <xliff:g id="SMS_BODY">%s</xliff:g>"</string>
-    <string name="editor_more_fields" msgid="3630987771304393421">"Bidang lainnya"</string>
+    <string name="editor_more_fields" msgid="3630987771304393421">"Kolom lainnya"</string>
     <string name="editor_change_photo_content_description" msgid="820879708069864340">"Ubah foto kontak"</string>
     <string name="editor_add_photo_content_description" msgid="4194479313465418120">"Tambahkan foto kontak"</string>
     <string name="editor_contact_photo_content_description" msgid="8571975622926162369">"Foto kontak"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index c97992a..2c31633 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -103,7 +103,7 @@
     <string name="createContactShortcutSuccessful" msgid="953651153238790069">"Kontakt <xliff:g id="NAME">%s</xliff:g> został dodany do ekranu głównego."</string>
     <string name="photoPickerNotFoundText" msgid="2052542573853433204">"Brak zdjęć na urządzeniu."</string>
     <string name="attach_photo_dialog_title" msgid="5599827035558557169">"Zdjęcie kontaktu"</string>
-    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nazwa etykiety niestandardowej"</string>
+    <string name="customLabelPickerTitle" msgid="1081475101983255212">"Nazwa etykiety własnej"</string>
     <string name="removePhoto" msgid="4898105274130284565">"Usuń zdjęcie"</string>
     <string name="noContacts" msgid="2228592924476426108">"Twoja lista kontaktów jest pusta"</string>
     <string name="emptyGroup" msgid="5102411903247859575">"Brak kontaktów z tą etykietą"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index f60f241..18e0cc3 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -66,15 +66,15 @@
     <string name="contacts_deleted_two_named_toast" msgid="3642082931473111791">"Contactos <xliff:g id="NAME_0">%1$s</xliff:g> e <xliff:g id="NAME_1">%2$s</xliff:g> eliminados"</string>
     <string name="contacts_deleted_many_named_toast" msgid="7731565342428031249">"<xliff:g id="NAME_0">%1$s</xliff:g>, <xliff:g id="NAME_1">%2$s</xliff:g>, <xliff:g id="NAME_2">%3$s</xliff:g>… foram eliminados"</string>
     <plurals name="contacts_deleted_toast" formatted="false" msgid="1477708624197262295">
-      <item quantity="one">Contacto eliminado</item>
+      <item quantity="one">Contacts deleted</item>
       <item quantity="other">Contactos eliminados</item>
     </plurals>
     <plurals name="contacts_count" formatted="false" msgid="8696793457340503668">
-      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> contacto</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> contacts</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> contactos</item>
     </plurals>
     <plurals name="contacts_count_with_account" formatted="false" msgid="7402583111980220575">
-      <item quantity="one"><xliff:g id="COUNT_0">%1$d</xliff:g> contacto · <xliff:g id="ACCOUNT_1">%2$s</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_2">%1$d</xliff:g> contacts · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
       <item quantity="other"><xliff:g id="COUNT_2">%1$d</xliff:g> contactos · <xliff:g id="ACCOUNT_3">%2$s</xliff:g></item>
     </plurals>
     <string name="title_from_google" msgid="4664084747121207202">"Da Google"</string>
@@ -137,7 +137,7 @@
     <string name="menu_add_contact" msgid="3198704337220892684">"Adicionar aos contactos"</string>
     <string name="menu_add_contacts" msgid="4465646512002163011">"Adicionar"</string>
     <plurals name="title_share_via" formatted="false" msgid="5886112726191455415">
-      <item quantity="one">Partilhar contacto através de</item>
+      <item quantity="one">Share contacts via</item>
       <item quantity="other">Partilhar contactos através de</item>
     </plurals>
     <string name="dialog_new_group_account" msgid="3451312333591556651">"Selecionar conta"</string>
@@ -396,11 +396,11 @@
     <string name="import_from_sim" msgid="6912071635295799131">"Cartão SIM"</string>
     <string name="import_from_sim_summary_fmt" msgid="5169032449686348118">"SIM <xliff:g id="SIM_NAME">%1$s</xliff:g>"</string>
     <plurals name="import_from_sim_secondary_contact_count_fmt" formatted="false" msgid="5821095773211149295">
-      <item quantity="one">1 contacto</item>
+      <item quantity="one">%1$d contacts</item>
       <item quantity="other">%1$d contactos</item>
     </plurals>
     <plurals name="import_from_sim_secondary_template" formatted="false" msgid="2484832025802907060">
-      <item quantity="one"><xliff:g id="COUNT_0">^1</xliff:g> contacto • <xliff:g id="PHONE_NUMBER_1">^2</xliff:g></item>
+      <item quantity="one"><xliff:g id="COUNT_2">^1</xliff:g> contacts • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
       <item quantity="other"><xliff:g id="COUNT_2">^1</xliff:g> contactos • <xliff:g id="PHONE_NUMBER_3">^2</xliff:g></item>
     </plurals>
     <string name="import_from_vcf_file" msgid="8662528435646418203">"Ficheiro .vcf"</string>
@@ -509,7 +509,7 @@
     <string name="sim_import_empty_message" msgid="7743815244380189651">"Sem contactos no cartão SIM"</string>
     <string name="sim_import_contact_exists_toast" msgid="1503743663717316732">"O contacto já existe na sua lista"</string>
     <plurals name="sim_import_success_toast_fmt" formatted="false" msgid="8572156521110906443">
-      <item quantity="one">1 contacto do cartão SIM importado</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> SIM contacts imported</item>
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> contactos do cartão SIM importados</item>
     </plurals>
     <string name="sim_import_failed_toast" msgid="5559267299793622705">"Ocorreu uma falha ao importar os contactos do cartão SIM"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index de982b3..109b71f 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -37,7 +37,7 @@
     <string name="menu_change_photo" msgid="7769177631511496210">"Schimbați fotografia"</string>
     <string name="menu_create_contact_shortcut" msgid="1663022219127343858">"Creați o comandă rapidă"</string>
     <string name="menu_splitAggregate" msgid="2627252205317945563">"Disociați"</string>
-    <string name="menu_editGroup" msgid="6696843438454341063">"Eliminați intrările din Agendă"</string>
+    <string name="menu_editGroup" msgid="6696843438454341063">"Ștergeți persoane de contact"</string>
     <string name="menu_renameGroup" msgid="7169512355179757182">"Redenumiți eticheta"</string>
     <string name="menu_deleteGroup" msgid="1126469629233412249">"Ștergeți eticheta"</string>
     <string name="menu_addToGroup" msgid="3267409983764370041">"Adăugați o persoană"</string>
@@ -187,7 +187,7 @@
     <string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"Anulați"</string>
     <string name="leave_customize_confirmation_dialog_message" msgid="4277114551206032979">"Renunțați la personalizări?"</string>
     <string name="enter_contact_name" msgid="4594274696120278368">"Căutați în Agendă"</string>
-    <string name="title_edit_group" msgid="8602752287270586734">"Eliminați intrările din Agendă"</string>
+    <string name="title_edit_group" msgid="8602752287270586734">"Ștergeți persoane de contact"</string>
     <string name="local_profile_title" msgid="2021416826991393684">"Profilul meu local"</string>
     <string name="external_profile_title" msgid="8034998767621359438">"Profilul meu <xliff:g id="EXTERNAL_SOURCE">%1$s</xliff:g>"</string>
     <string name="contact_editor_prompt_zero_accounts" msgid="6648376557574360096">"Adăugați un cont în care se va face backup pentru agenda dvs. în Google."</string>
diff --git a/res/values-sw600dp-land/dimens.xml b/res/values-sw600dp-land/dimens.xml
index 7d9eb33..7a0fce5 100644
--- a/res/values-sw600dp-land/dimens.xml
+++ b/res/values-sw600dp-land/dimens.xml
@@ -17,7 +17,6 @@
     <!-- Copied from java/com/google/android/assets/launchscreens/res/values-sw600dp-land-v21/dimens.xml -->
     <!-- Values adjusted for nav bar size due to windowDrawsSystemBarBackgrounds -->
     <dimen name="launchscreens_product_logo_bottom">72dp</dimen>
-    <dimen name="launchscreens_google_logo_bottom">96dp</dimen>
 
     <!-- Height for the image for empty group view-->
     <dimen name="empty_view_image_height">180dp</dimen>
diff --git a/res/values-sw600dp/dimens.xml b/res/values-sw600dp/dimens.xml
index a38364c..18b43d9 100644
--- a/res/values-sw600dp/dimens.xml
+++ b/res/values-sw600dp/dimens.xml
@@ -17,7 +17,6 @@
     <!-- Copied from java/com/google/android/assets/launchscreens/res/values-sw600dp-port-v21/dimens.xml -->
     <!-- Values adjusted for nav bar size due to windowDrawsSystemBarBackgrounds -->
     <dimen name="launchscreens_product_logo_bottom">72dp</dimen>
-    <dimen name="launchscreens_google_logo_bottom">96dp</dimen>
 
     <dimen name="editor_type_label_width">122dip</dimen>
     <dimen name="shortcut_icon_size">64dip</dimen>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 5c36249..e394ea3 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -500,11 +500,11 @@
     <string name="call_subject_limit" msgid="4545212901205397669">"<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="7667188212129152558">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
     <string name="about_build_version" msgid="1765533099416999801">"Версія складання"</string>
-    <string name="about_open_source_licenses" msgid="6479990452352919641">"Ліцензії з відкритим кодом"</string>
+    <string name="about_open_source_licenses" msgid="6479990452352919641">"Ліцензії відкритого коду"</string>
     <string name="about_open_source_licenses_summary" msgid="57418386931763994">"Деталі ліцензії на програмне забезпечення з відкритим кодом"</string>
     <string name="about_privacy_policy" msgid="3705518622499152626">"Політика конфіденційності"</string>
     <string name="about_terms_of_service" msgid="4642400812150296723">"Умови використання"</string>
-    <string name="activity_title_licenses" msgid="5467767062737708066">"Ліцензії з відкритим кодом"</string>
+    <string name="activity_title_licenses" msgid="5467767062737708066">"Ліцензії відкритого коду"</string>
     <string name="url_open_error_toast" msgid="452592089815420457">"Не вдалося відкрити посилання."</string>
     <string name="account_filter_view_checked" msgid="6696859503887762213">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> вибрано"</string>
     <string name="account_filter_view_not_checked" msgid="2248684521205038389">"<xliff:g id="ACCOUNT_INFO">%s</xliff:g> не вибрано"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 201756d..29477bb 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -257,14 +257,14 @@
     <string name="hamburger_feature_highlight_header" msgid="5762679188565585072">"Tavsiyalar"</string>
     <string name="hamburger_feature_highlight_body" msgid="4403398269286898733">"Kontaktlar bilan qulay ishlash uchun ularni tartibga soling"</string>
     <string name="undo" msgid="1425165101664071422">"Bekor qilish"</string>
-    <string name="call_custom" msgid="6385303130912713318">"Qo‘ng‘iroq qilish (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="call_custom" msgid="6385303130912713318">"Chaqiruv (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
     <string name="call_home" msgid="1990519474420545392">"Uy telefoni"</string>
     <string name="call_mobile" msgid="7502236805487609178">"Mobil telefon"</string>
     <string name="call_work" msgid="5328785911463744028">"Ishxona telefoni"</string>
     <string name="call_fax_work" msgid="7467763592359059243">"Ishxona faksi"</string>
     <string name="call_fax_home" msgid="8342175628887571876">"Uy faksi"</string>
     <string name="call_pager" msgid="9003902812293983281">"Peyjer"</string>
-    <string name="call_other" msgid="8563753966926932052">"Qo‘ng‘iroq qilish"</string>
+    <string name="call_other" msgid="8563753966926932052">"Chaqiruv"</string>
     <string name="call_callback" msgid="1910165691349426858">"Teskari chaqiruv"</string>
     <string name="call_car" msgid="3280537320306436445">"Avtomobildagi telefon"</string>
     <string name="call_company_main" msgid="6105120947138711257">"Ofis"</string>
@@ -276,9 +276,9 @@
     <string name="call_tty_tdd" msgid="8951266948204379604">"Teletayp"</string>
     <string name="call_work_mobile" msgid="8707874281430105394">"Ishxona mobil telefoni"</string>
     <string name="call_work_pager" msgid="3419348514157949008">"Ish peyjeri"</string>
-    <string name="call_assistant" msgid="670941612175068337">"Qo‘ng‘iroq qilish (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
+    <string name="call_assistant" msgid="670941612175068337">"Chaqiruv (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
     <string name="call_mms" msgid="6274041545876221437">"MMS markazi"</string>
-    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Qo‘ng‘iroq qilish)"</string>
+    <string name="call_by_shortcut" msgid="2566802538698913124">"<xliff:g id="CONTACT_NAME">%s</xliff:g> (Chaqiruv)"</string>
     <string name="sms_custom" msgid="415060214233647603">"SMS yuborish (<xliff:g id="CUSTOM_LABEL">%s</xliff:g>)"</string>
     <string name="sms_home" msgid="7524332261493162995">"SMS: uy telefoni"</string>
     <string name="sms_mobile" msgid="5200107250451030769">"SMS: mobil"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index e311ff3..aeba877 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -14,8 +14,6 @@
      limitations under the License.
 -->
 <resources>
-    <!-- Adaptive icon background layer color -->
-    <color name="ic_contacts_launcher_background">#2458CA</color>
     <color name="ic_add_contact_shortcut_background">#F5F5F5</color>
 
     <!-- 87% black -->
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index c14d396..f92cf79 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -19,7 +19,6 @@
     <!-- Copied from java/com/google/android/assets/launchscreens/res/values-port-v21/dimens.xml -->
     <!-- Values adjusted for nav bar size due to windowDrawsSystemBarBackgrounds -->
     <dimen name="launchscreens_product_logo_bottom">64dp</dimen>
-    <dimen name="launchscreens_google_logo_bottom">104dp</dimen>
 
     <!-- Initial height of transparent space above QuickContacts -->
     <dimen name="quickcontact_starting_empty_height">150dp</dimen>
diff --git a/src/com/android/contacts/CallUtil.java b/src/com/android/contacts/CallUtil.java
index 7172766..bba1faa 100644
--- a/src/com/android/contacts/CallUtil.java
+++ b/src/com/android/contacts/CallUtil.java
@@ -19,18 +19,23 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
+import android.os.Bundle;
+import android.os.PersistableBundle;
 import android.telecom.PhoneAccount;
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.telecom.VideoProfile;
+import android.telephony.CarrierConfigManager;
 import android.telephony.PhoneNumberUtils;
 import android.text.TextUtils;
+import android.util.Log;
 
 import com.android.contacts.compat.CompatUtils;
 import com.android.contacts.compat.PhoneAccountSdkCompat;
 import com.android.contacts.util.PermissionsUtil;
 import com.android.contacts.util.PhoneNumberHelper;
 import com.android.contactsbind.FeedbackHelper;
+import com.android.contactsbind.experiments.Flags;
 import com.android.phone.common.PhoneConstants;
 
 import java.util.List;
@@ -61,6 +66,14 @@
      */
     public static final int VIDEO_CALLING_PRESENCE = 2;
 
+    /** {@link PhoneAccount#EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK} */
+    private static final String EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK =
+            "android.telecom.extra.SUPPORTS_VIDEO_CALLING_FALLBACK";
+
+    /** {@link CarrierConfigManager#CONFIG_ALLOW_VIDEO_CALLING_FALLBACK} */
+    private static final String CONFIG_ALLOW_VIDEO_CALLING_FALLBACK =
+            "allow_video_calling_fallback_bool";
+
     /**
      * Return an Intent for making a phone call. Scheme (e.g. tel, sip) will be determined
      * automatically.
@@ -210,4 +223,66 @@
         }
 
     }
+
+    /**
+     * Determines if we're able to use Tachyon as a fallback for video calling.
+     *
+     * @param context The context.
+     * @return {@code true} if there exists a call capable phone account which supports using a
+     * fallback for video calling, the carrier configuration supports a fallback, and the
+     * experiment for using a fallback is enabled. Otherwise {@code false} is returned.
+     */
+    public static boolean isTachyonEnabled(Context context) {
+        // Need to be able to read phone state, and be on at least N to check PhoneAccount extras.
+        if (!PermissionsUtil.hasPermission(context, android.Manifest.permission.READ_PHONE_STATE)
+                || !CompatUtils.isNCompatible()) {
+            return false;
+        }
+        TelecomManager telecommMgr = (TelecomManager)
+                context.getSystemService(Context.TELECOM_SERVICE);
+        if (telecommMgr == null) {
+            return false;
+        }
+        try {
+            List<PhoneAccountHandle> accountHandles = telecommMgr.getCallCapablePhoneAccounts();
+            for (PhoneAccountHandle accountHandle : accountHandles) {
+                PhoneAccount account = telecommMgr.getPhoneAccount(accountHandle);
+                if (account == null) {
+                    continue;
+                }
+                // Check availability for the device config.
+                final Bundle accountExtras = account.getExtras();
+                final boolean deviceEnabled = accountExtras != null && accountExtras.getBoolean(
+                        EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Device video fallback config: " + deviceEnabled);
+                }
+
+                // Check availability from carrier config.
+                final PersistableBundle carrierConfig = context.getSystemService(
+                        CarrierConfigManager.class).getConfig();
+                final boolean carrierEnabled =
+                        carrierConfig != null && carrierConfig.getBoolean(
+                                CONFIG_ALLOW_VIDEO_CALLING_FALLBACK);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Carrier video fallback config: " + carrierEnabled);
+                }
+
+                // Check experiment value.
+                final boolean experimentEnabled = Flags.getInstance().getBoolean(
+                        Experiments.QUICK_CONTACT_VIDEO_CALL);
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "Experiment video fallback config: " + experimentEnabled);
+                }
+
+                // All three checks above must be true to enable Tachyon calling.
+                return deviceEnabled && carrierEnabled && experimentEnabled;
+            }
+            return false;
+        } catch (SecurityException e) {
+            FeedbackHelper.sendFeedback(context, TAG,
+                    "Security exception when getting call capable phone accounts", e);
+            return false;
+        }
+    }
 }
diff --git a/src/com/android/contacts/DynamicShortcuts.java b/src/com/android/contacts/DynamicShortcuts.java
index fc0d05a..ac950d9 100644
--- a/src/com/android/contacts/DynamicShortcuts.java
+++ b/src/com/android/contacts/DynamicShortcuts.java
@@ -297,6 +297,7 @@
         final ShortcutInfo.Builder builder = new ShortcutInfo.Builder(mContext, id)
                 .setIntent(action)
                 .setIcon(icon)
+                .setExtras(extras)
                 .setDisabledMessage(mContext.getString(R.string.dynamic_shortcut_disabled_message));
 
         setLabel(builder, label);
@@ -305,6 +306,9 @@
 
     public ShortcutInfo getQuickContactShortcutInfo(long id, String lookupKey, String displayName) {
         final ShortcutInfo.Builder builder = builderForContactShortcut(id, lookupKey, displayName);
+        if (builder == null) {
+            return null;
+        }
         addIconForContact(id, lookupKey, displayName, builder);
         return builder.build();
     }
diff --git a/src/com/android/contacts/ShortcutIntentBuilder.java b/src/com/android/contacts/ShortcutIntentBuilder.java
index e90e786..b3bd85d 100644
--- a/src/com/android/contacts/ShortcutIntentBuilder.java
+++ b/src/com/android/contacts/ShortcutIntentBuilder.java
@@ -276,6 +276,9 @@
     private void createContactShortcutIntent(Uri contactUri, String contentType, String displayName,
             String lookupKey, byte[] bitmapData) {
         Intent intent = null;
+        if (TextUtils.isEmpty(displayName)) {
+            displayName = mContext.getResources().getString(R.string.missing_name);
+        }
         if (BuildCompat.isAtLeastO()) {
             final long contactId = ContentUris.parseId(contactUri);
             final ShortcutManager sm = (ShortcutManager)
@@ -283,12 +286,11 @@
             final DynamicShortcuts dynamicShortcuts = new DynamicShortcuts(mContext);
             final ShortcutInfo shortcutInfo = dynamicShortcuts.getQuickContactShortcutInfo(
                     contactId, lookupKey, displayName);
-            intent = sm.createShortcutResultIntent(shortcutInfo);
+            if (shortcutInfo != null) {
+                intent = sm.createShortcutResultIntent(shortcutInfo);
+            }
         }
         final Drawable drawable = getPhotoDrawable(bitmapData, displayName, lookupKey);
-        if (TextUtils.isEmpty(displayName)) {
-            displayName = mContext.getResources().getString(R.string.missing_name);
-        }
 
         final Intent shortcutIntent = ImplicitIntentsUtil.getIntentForQuickContactLauncherShortcut(
                 mContext, contactUri);
@@ -346,7 +348,9 @@
             final DynamicShortcuts dynamicShortcuts = new DynamicShortcuts(mContext);
             final ShortcutInfo shortcutInfo = dynamicShortcuts.getActionShortcutInfo(
                     id, displayName, shortcutIntent, compatAdaptiveIcon.toIcon());
-            intent = sm.createShortcutResultIntent(shortcutInfo);
+            if (shortcutInfo != null) {
+                intent = sm.createShortcutResultIntent(shortcutInfo);
+            }
         }
 
         intent = intent == null ? new Intent() : intent;
diff --git a/src/com/android/contacts/model/AccountTypeManager.java b/src/com/android/contacts/model/AccountTypeManager.java
index b442e4f..9938695 100644
--- a/src/com/android/contacts/model/AccountTypeManager.java
+++ b/src/com/android/contacts/model/AccountTypeManager.java
@@ -622,9 +622,10 @@
             final AccountWithDataSet accountWithDataSet = new AccountWithDataSet(
                     account.name, account.type, null);
             final AccountType type = mTypeProvider.getTypeForAccount(accountWithDataSet);
-
-            // Accounts with a dataSet (e.g. Google plus accounts) are not writable.
-            result.add(type.wrapAccount(mContext, accountWithDataSet));
+            if (type != null) {
+                // Accounts with a dataSet (e.g. Google plus accounts) are not writable.
+                result.add(type.wrapAccount(mContext, accountWithDataSet));
+            }
         }
         return result;
     }
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 3c088b4..5da7502 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -35,6 +35,7 @@
 import android.content.Loader;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.content.pm.ShortcutInfo;
 import android.content.pm.ShortcutManager;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
@@ -105,7 +106,6 @@
 import com.android.contacts.ContactsActivity;
 import com.android.contacts.ContactsUtils;
 import com.android.contacts.DynamicShortcuts;
-import com.android.contacts.Experiments;
 import com.android.contacts.NfcHandler;
 import com.android.contacts.R;
 import com.android.contacts.ShortcutIntentBuilder;
@@ -176,7 +176,6 @@
 import com.android.contacts.widget.MultiShrinkScroller.MultiShrinkScrollerListener;
 import com.android.contacts.widget.QuickContactImageView;
 import com.android.contactsbind.HelpUtils;
-import com.android.contactsbind.experiments.Flags;
 
 import com.google.common.collect.Lists;
 
@@ -1457,6 +1456,7 @@
         Trace.beginSection("Build data items map");
 
         final Map<String, List<DataItem>> dataItemsMap = new HashMap<>();
+        final boolean tachyonEnabled = CallUtil.isTachyonEnabled(this);
 
         for (RawContact rawContact : data.getRawContacts()) {
             for (DataItem dataItem : rawContact.getDataItems()) {
@@ -1466,6 +1466,7 @@
                 if (mimeType == null) continue;
 
                 if (!MIMETYPE_TACHYON.equals(mimeType)) {
+                    // Only validate non-Tachyon mimetypes.
                     final AccountType accountType = rawContact.getAccountType(this);
                     final DataKind dataKind = AccountTypeManager.getInstance(this)
                             .getKindOrFallback(accountType, mimeType);
@@ -1477,6 +1478,9 @@
                             dataKind));
 
                     if (isMimeExcluded(mimeType) || !hasData) continue;
+                } else if (!tachyonEnabled) {
+                    // If tachyon isn't enabled, skip its mimetypes.
+                    continue;
                 }
 
                 List<DataItem> dataItemListByType = dataItemsMap.get(mimeType);
@@ -1820,7 +1824,7 @@
                     thirdIntent.putExtra(EXTRA_ACTION_TYPE, ActionType.VIDEOCALL);
                     thirdContentDescription =
                             res.getString(R.string.description_video_call);
-                } else if (Flags.getInstance().getBoolean(Experiments.QUICK_CONTACT_VIDEO_CALL)
+                } else if (CallUtil.isTachyonEnabled(context)
                         && ((PhoneDataItem) dataItem).isTachyonReachable()) {
                     thirdIcon = res.getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
                     thirdAction = Entry.ACTION_INTENT;
@@ -1915,8 +1919,8 @@
                     aboutCardName.value = res.getString(R.string.about_card_title);
                 }
             }
-        } else if (Flags.getInstance().getBoolean(Experiments.QUICK_CONTACT_VIDEO_CALL)
-                && MIMETYPE_TACHYON.equals(dataItem.getMimeType())) {
+        } else if (CallUtil.isTachyonEnabled(context) && MIMETYPE_TACHYON.equals(
+                dataItem.getMimeType())) {
             // Skip these actions. They will be placed by the phone number.
             return null;
         } else {
@@ -2694,21 +2698,26 @@
      * Creates a launcher shortcut with the current contact.
      */
     private void createLauncherShortcutWithContact() {
-        final ShortcutIntentBuilder builder = new ShortcutIntentBuilder(this,
-                new OnShortcutIntentCreatedListener() {
+        if (BuildCompat.isAtLeastO()) {
+            final ShortcutManager shortcutManager = (ShortcutManager)
+                    getSystemService(SHORTCUT_SERVICE);
+            final DynamicShortcuts shortcuts =
+                    new DynamicShortcuts(QuickContactActivity.this);
+            String displayName = mContactData.getDisplayName();
+            if (displayName == null) {
+                displayName = getString(R.string.missing_name);
+            }
+            final ShortcutInfo shortcutInfo = shortcuts.getQuickContactShortcutInfo(
+                    mContactData.getId(), mContactData.getLookupKey(), displayName);
+            if (shortcutInfo != null) {
+                shortcutManager.requestPinShortcut(shortcutInfo, null);
+            }
+        } else {
+            final ShortcutIntentBuilder builder = new ShortcutIntentBuilder(this,
+                    new OnShortcutIntentCreatedListener() {
 
-                    @Override
-                    public void onShortcutIntentCreated(Uri uri, Intent shortcutIntent) {
-                        if (BuildCompat.isAtLeastO()) {
-                            final ShortcutManager shortcutManager = (ShortcutManager)
-                                    getSystemService(SHORTCUT_SERVICE);
-                            final DynamicShortcuts shortcuts =
-                                    new DynamicShortcuts(QuickContactActivity.this);
-                            shortcutManager.requestPinShortcut(
-                                    shortcuts.getQuickContactShortcutInfo(
-                                            mContactData.getId(), mContactData.getLookupKey(),
-                                            mContactData.getDisplayName()), null);
-                        } else {
+                        @Override
+                        public void onShortcutIntentCreated(Uri uri, Intent shortcutIntent) {
                             // Broadcast the shortcutIntent to the launcher to create a
                             // shortcut to this contact
                             shortcutIntent.setAction(ACTION_INSTALL_SHORTCUT);
@@ -2724,9 +2733,9 @@
                             Toast.makeText(QuickContactActivity.this, toastMessage,
                                     Toast.LENGTH_SHORT).show();
                         }
-                    }
-                });
-        builder.createContactShortcutIntent(mContactData.getLookupUri());
+                    });
+            builder.createContactShortcutIntent(mContactData.getLookupUri());
+        }
     }
 
     private boolean isShortcutCreatable() {
