Import translations. DO NOT MERGE
am: 37ed23f55b -s ours
Change-Id: I4d17248ad0d2db19ff9ca02aecc5934821ecbbc8
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/ic_work_profile.xml b/res/drawable/ic_work_profile.xml
index bacfe69..d30e8e1 100644
--- a/res/drawable/ic_work_profile.xml
+++ b/res/drawable/ic_work_profile.xml
@@ -1,17 +1,9 @@
-<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="16dp"
- android:height="16dp"
- android:viewportWidth="48"
- android:viewportHeight="48">
-
- <!-- //java/com/google/android/assets/quantum:ic_enterprise_grey600_16 -->
-
+ android:width="16dp"
+ android:height="16dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
<path
- android:fillColor="#757575"
- android:pathData="M28 33h-8v-3H6v8c0 2.2 1.8 4 4 4h28c2.2 0 4-1.8
-4-4v-8H28v3zm12-21h-7V9l-3-3H18l-3 3.1V12H8c-2.2 0-4 1.8-4 4v8c0 2.2 1.8 4 4
-4h12v-3h8v3h12c2.2 0 4-1.8 4-4v-8c0-2.2-1.8-4-4-4zm-10 0H18V9h12v3z" />
- <path
- android:pathData="M0 0h48v48H0z" />
+ android:pathData="M20,6h-4V4c0,-1.11 -0.89,-2 -2,-2h-4C8.89,2 8,2.89 8,4v2H4C2.89,6 2.01,6.89 2.01,8L2,19c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2V8C22,6.89 21.11,6 20,6zM12,15c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2s2,0.9 2,2S13.1,15 12,15zM14,6h-4V4h4V6z"
+ android:fillColor="#7F7F7F"/>
</vector>
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-bs/strings.xml b/res/values-bs/strings.xml
index 7b789b1..c14e050 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -366,15 +366,15 @@
<string name="map_work" msgid="1360474076921878088">"Prikaži poslovnu adresu"</string>
<string name="map_other" msgid="3817820803587012641">"Prikaži adresu"</string>
<string name="map_custom" msgid="8761800628069473526">"Prikaži <xliff:g id="CUSTOM_LABEL">%s</xliff:g> adresu"</string>
- <string name="chat_aim" msgid="2588492205291249142">"Chat putem aplikacije AIM"</string>
- <string name="chat_msn" msgid="8041633440091073484">"Chat putem aplikacije Windows Live"</string>
- <string name="chat_yahoo" msgid="6629211142719943666">"Chat putem aplikacije Yahoo"</string>
- <string name="chat_skype" msgid="1210045020427480566">"Chat putem aplikacije Skype"</string>
- <string name="chat_qq" msgid="4294637812847719693">"Chat putem aplikacije QQ"</string>
- <string name="chat_gtalk" msgid="981575737258117697">"Chat putem aplikacije Google Talk"</string>
- <string name="chat_icq" msgid="8438405386153745775">"Chat putem aplikacije ICQ"</string>
- <string name="chat_jabber" msgid="7561444230307829609">"Chat putem aplikacije Jabber"</string>
- <string name="chat" msgid="9025361898797412245">"Chat"</string>
+ <string name="chat_aim" msgid="2588492205291249142">"Ćaskanje putem aplikacije AIM"</string>
+ <string name="chat_msn" msgid="8041633440091073484">"Ćaskanje putem aplikacije Windows Live"</string>
+ <string name="chat_yahoo" msgid="6629211142719943666">"Ćaskanje putem aplikacije Yahoo"</string>
+ <string name="chat_skype" msgid="1210045020427480566">"Ćaskanje putem aplikacije Skype"</string>
+ <string name="chat_qq" msgid="4294637812847719693">"Ćaskanje putem aplikacije QQ"</string>
+ <string name="chat_gtalk" msgid="981575737258117697">"Ćaskanje putem aplikacije Google Talk"</string>
+ <string name="chat_icq" msgid="8438405386153745775">"Ćaskanje putem aplikacije ICQ"</string>
+ <string name="chat_jabber" msgid="7561444230307829609">"Ćaskanje putem aplikacije Jabber"</string>
+ <string name="chat" msgid="9025361898797412245">"Ćaskanje"</string>
<string name="description_minus_button" msgid="6908099247930477551">"izbriši"</string>
<string name="expand_name_fields_description" msgid="6948274252874552543">"Prikaži više polja za ime"</string>
<string name="collapse_name_fields_description" msgid="4757877385895561556">"Skupi polja za imena"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 9326229..4f4f7e1 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -159,7 +159,7 @@
<string name="cancel_button_content_description" msgid="1288652456274531846">"रद्द करें"</string>
<string name="back_arrow_content_description" msgid="4355362760545735065">"वापस जाएं"</string>
<string name="action_menu_back_from_edit_select" msgid="6435476408621731420">"बंद करें"</string>
- <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"चयनित संपर्क के संपादन पर जाएं? आपके द्वारा अभी तक दर्ज की गई जानकारी की कॉपी बनाई जाएगी."</string>
+ <string name="aggregation_suggestion_edit_dialog_message" msgid="6549585283910518095">"चयनित संपर्क के संपादन पर जाएं? आपके द्वारा अभी तक दर्ज की गई जानकारी की प्रतिलिपि बनाई जाएगी."</string>
<string name="contact_directory_description" msgid="683398073603909119">"निर्देशिका <xliff:g id="TYPE">%1$s</xliff:g>"</string>
<string name="activity_title_settings" msgid="5464130076132770781">"सेटिंग"</string>
<string name="menu_settings" msgid="377929915873428211">"सेटिंग"</string>
@@ -174,10 +174,10 @@
<string name="create_group_item_label" msgid="3263064599743742865">"नया बनाएं…"</string>
<string name="delete_group_dialog_message" msgid="335713829185261371">"लेबल \"<xliff:g id="GROUP_LABEL">%1$s</xliff:g>\" हटाएं? (संपर्क स्वयं नहीं हटाए जाएंगे.)"</string>
<string name="toast_join_with_empty_contact" msgid="1215465657839085613">"अन्य संपर्क से लिंक करने से पहले संपर्क नाम लिखें."</string>
- <string name="copy_text" msgid="3257145021583508761">"क्लिपबोर्ड में कॉपी करें"</string>
+ <string name="copy_text" msgid="3257145021583508761">"क्लिपबोर्ड पर प्रतिलिपि बनाएं"</string>
<string name="set_default" msgid="4417505153468300351">"सामान्य सेट करें"</string>
<string name="clear_default" msgid="7193185801596678067">"सामान्य साफ़ करें"</string>
- <string name="toast_text_copied" msgid="5143776250008541719">"लेख को कॉपी किया गया"</string>
+ <string name="toast_text_copied" msgid="5143776250008541719">"लेख की प्रतिलिपि बनाई गई"</string>
<string name="cancel_confirmation_dialog_message" msgid="9008214737653278989">"क्या परिवर्तनों को छोड़ना चाहते हैं?"</string>
<string name="cancel_confirmation_dialog_cancel_editing_button" msgid="3057023972074640671">"अभी नहीं"</string>
<string name="cancel_confirmation_dialog_keep_editing_button" msgid="3316573928085916146">"रद्द करें"</string>
@@ -204,7 +204,7 @@
<string name="expanding_entry_card_view_see_less" msgid="5344160551629714168">"कम देखें"</string>
<string name="recent_card_title" msgid="8982782042698001695">"हाल ही का"</string>
<string name="about_card_title" msgid="2920942314212825637">"संक्षिप्त विवरण"</string>
- <string name="toast_making_personal_copy" msgid="288549957278065542">"एक व्यक्तिगत कॉपी बना रहा है…"</string>
+ <string name="toast_making_personal_copy" msgid="288549957278065542">"एक व्यक्तिगत प्रतिलिपि बना रहा है…"</string>
<string name="tomorrow" msgid="6241969467795308581">"कल"</string>
<string name="today" msgid="8041090779381781781">"आज"</string>
<string name="today_at_time_fmt" msgid="605665249491030460">"आज <xliff:g id="TIME_INTERVAL">%s</xliff:g> बजे"</string>
@@ -239,7 +239,7 @@
<string name="quickcontact_suggestion_link_button" msgid="3244619714781727946">"संपर्क लिंक करें"</string>
<string name="quickcontact_suggestion_cancel_button" msgid="8236954313106630862">"अभी नहीं"</string>
<string name="suggestion_card_this_contact_title" msgid="3039457405374454914">"यह संपर्क"</string>
- <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"संभावित कॉपी"</string>
+ <string name="suggestion_card_duplicates_title" msgid="9107788743178980902">"संभावित प्रतिलिपि"</string>
<string name="suggestion_card_help_message" msgid="4474061044387181093">"हो सकता है कि ये संपर्क एक ही व्यक्ति हो. आप उन्हें एकल संपर्क के रूप में एक साथ लिंक कर सकते हैं."</string>
<string name="editor_delete_view_description" msgid="8583095381562991959">"<xliff:g id="DATA_TYPE">%1$s </xliff:g><xliff:g id="DATA_KIND">%2$s</xliff:g> हटाएं"</string>
<string name="editor_delete_view_description_short" msgid="7335518371270844912">"<xliff:g id="DATA_KIND">%s</xliff:g> हटाएं"</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/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() {