summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-06-05 13:35:02 -0700
committerEric Erfanian <erfanian@google.com>2017-06-07 20:44:54 +0000
commit91ce7d2a476bd04fe525049a37a2f8b2824e9724 (patch)
treeb9bbc285430ffb5363a70eb27e382c38f5a85b7a
parent75233ff03785f24789b32039ac2c208805b7e506 (diff)
downloadandroid_packages_apps_Dialer-91ce7d2a476bd04fe525049a37a2f8b2824e9724.tar.gz
android_packages_apps_Dialer-91ce7d2a476bd04fe525049a37a2f8b2824e9724.tar.bz2
android_packages_apps_Dialer-91ce7d2a476bd04fe525049a37a2f8b2824e9724.zip
Update AOSP Dialer source from internal google3 repository at
cl/158012278. Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/152373142 (4/06/2017) to cl/158012278 (6/05/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: I4d3f14b5140e2e51bead9497bc118a205b3ebe76
-rw-r--r--Android.mk89
-rw-r--r--AndroidManifest.xml4
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.pngbin0 -> 438 bytes
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.pngbin407 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.pngbin139 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.pngbin0 -> 350 bytes
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.pngbin0 -> 428 bytes
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.pngbin427 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.pngbin0 -> 483 bytes
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.pngbin0 -> 704 bytes
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.pngbin212 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.pngbin0 -> 297 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.pngbin278 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.pngbin117 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.pngbin0 -> 238 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.pngbin0 -> 288 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.pngbin299 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.pngbin0 -> 325 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.pngbin0 -> 483 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.pngbin163 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.pngbin0 -> 515 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.pngbin490 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.pngbin159 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.pngbin0 -> 433 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.pngbin0 -> 484 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.pngbin538 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.pngbin0 -> 601 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.pngbin0 -> 882 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.pngbin240 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.pngbin0 -> 778 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.pngbin717 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.pngbin204 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.pngbin0 -> 610 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.pngbin0 -> 713 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.pngbin786 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.pngbin0 -> 882 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.pngbin0 -> 1342 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.pngbin312 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.pngbin0 -> 945 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.pngbin1017 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.pngbin236 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.pngbin0 -> 838 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.pngbin0 -> 902 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.pngbin1043 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.pngbin0 -> 1162 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.pngbin0 -> 1729 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.pngbin340 -> 0 bytes
-rw-r--r--assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml2
-rw-r--r--assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml2
-rw-r--r--assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml10
-rw-r--r--java/com/android/contacts/common/ClipboardUtils.java2
-rw-r--r--java/com/android/contacts/common/ContactPhotoManager.java31
-rw-r--r--java/com/android/contacts/common/ContactPhotoManagerImpl.java5
-rw-r--r--java/com/android/contacts/common/ContactStatusUtil.java2
-rw-r--r--java/com/android/contacts/common/ContactsUtils.java185
-rw-r--r--java/com/android/contacts/common/GeoUtil.java55
-rw-r--r--java/com/android/contacts/common/MoreContactUtils.java36
-rw-r--r--java/com/android/contacts/common/compat/ContactsCompat.java16
-rw-r--r--java/com/android/contacts/common/compat/PhoneAccountCompat.java55
-rw-r--r--java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java132
-rw-r--r--java/com/android/contacts/common/compat/TelephonyManagerCompat.java71
-rw-r--r--java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java260
-rw-r--r--java/com/android/contacts/common/dialog/CallSubjectDialog.java12
-rw-r--r--java/com/android/contacts/common/format/FormatUtils.java181
-rw-r--r--java/com/android/contacts/common/format/TextHighlighter.java55
-rw-r--r--java/com/android/contacts/common/format/testing/SpannedTestUtils.java85
-rw-r--r--java/com/android/contacts/common/lettertiles/LetterTileDrawable.java28
-rw-r--r--java/com/android/contacts/common/list/ContactEntryListAdapter.java9
-rw-r--r--java/com/android/contacts/common/list/ContactEntryListFragment.java1
-rw-r--r--java/com/android/contacts/common/list/ContactListItemView.java216
-rw-r--r--java/com/android/contacts/common/list/ContactTileView.java19
-rw-r--r--java/com/android/contacts/common/list/PhoneNumberListAdapter.java56
-rw-r--r--java/com/android/contacts/common/list/PhoneNumberPickerFragment.java66
-rw-r--r--java/com/android/contacts/common/list/ViewPagerTabs.java29
-rw-r--r--java/com/android/contacts/common/location/CountryDetector.java221
-rw-r--r--java/com/android/contacts/common/location/UpdateCountryService.java104
-rw-r--r--java/com/android/contacts/common/model/ContactLoader.java1
-rw-r--r--java/com/android/contacts/common/model/account/BaseAccountType.java4
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.pngbin1115 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.pngbin612 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.pngbin2477 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.pngbin340 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.pngbin609 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.pngbin370 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.pngbin389 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.pngbin525 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.pngbin485 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.pngbin799 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.pngbin1954 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.pngbin1922 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.pngbin220 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.pngbin1439 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.pngbin1416 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.pngbin515 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.pngbin1438 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.pngbin1211 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.pngbin1414 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.pngbin273 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.pngbin413 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.pngbin370 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.pngbin269 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.pngbin2856 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.pngbin154 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.pngbin224 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.pngbin235 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.pngbin158 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.pngbin159 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.pngbin205 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.pngbin267 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.pngbin234 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.pngbin191 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.pngbin258 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.pngbin234 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.pngbin180 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.pngbin186 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.pngbin1666 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.pngbin1034 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.pngbin2486 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.pngbin234 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.pngbin196 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.pngbin255 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.pngbin151 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.pngbin235 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.pngbin155 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.pngbin158 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.pngbin198 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.pngbin1659 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.pngbin1005 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.pngbin2478 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.pngbin158 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.pngbin235 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.pngbin162 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.pngbin163 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.pngbin210 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.pngbin1140 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.pngbin1147 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.pngbin1051 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.pngbin1051 -> 0 bytes
-rw-r--r--java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml20
-rw-r--r--java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml20
-rw-r--r--java/com/android/contacts/common/res/layout/dialog_call_subject.xml2
-rw-r--r--java/com/android/contacts/common/res/layout/search_bar_expanded.xml4
-rw-r--r--java/com/android/contacts/common/res/values-af/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-am/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ar/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-az/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-be/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-bg/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-bn/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-bs/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ca/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-cs/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-da/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-de/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-el/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-en-rAU/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-en-rGB/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-en-rIN/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-es-rUS/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-es/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-et/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-eu/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-fa/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-fi/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-fr-rCA/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-fr/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-gl/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-gu/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-hi/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-hr/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-hu/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-hy/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-in/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-is/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-it/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-iw/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ja/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ka/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-kk/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-km/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-kn/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ko/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ky/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-lo/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-lt/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-lv/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-mk/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ml/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-mn/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-mr/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ms/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-my/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-nb/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ne/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-nl/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-no/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-pa/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-pl/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-pt-rBR/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-pt-rPT/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-pt/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ro/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ru/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-si/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-sk/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-sl/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-sq/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-sr/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-sv/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-sw/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ta/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-te/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-th/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-tl/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-tr/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-uk/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-ur/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-uz/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-vi/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-zh-rCN/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-zh-rHK/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-zh-rTW/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values-zu/strings.xml2
-rw-r--r--java/com/android/contacts/common/res/values/ids.xml1
-rw-r--r--java/com/android/contacts/common/res/values/strings.xml6
-rw-r--r--java/com/android/contacts/common/res/values/styles.xml1
-rw-r--r--java/com/android/contacts/common/util/AccountFilterUtil.java42
-rw-r--r--java/com/android/contacts/common/util/BitmapUtil.java26
-rw-r--r--java/com/android/contacts/common/util/ContactDisplayUtils.java12
-rw-r--r--java/com/android/contacts/common/util/DateUtils.java241
-rw-r--r--java/com/android/contacts/common/util/MaterialColorMapUtils.java8
-rw-r--r--java/com/android/contacts/common/util/NameConverter.java242
-rw-r--r--java/com/android/contacts/common/util/StopWatch.java28
-rw-r--r--java/com/android/contacts/common/util/TelephonyManagerUtils.java9
-rw-r--r--java/com/android/dialer/about/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/about/res/raw/keep.xml1
-rw-r--r--java/com/android/dialer/app/AndroidManifest.xml1
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java69
-rw-r--r--java/com/android/dialer/app/SpecialCharSequenceMgr.java5
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAdapter.java158
-rw-r--r--java/com/android/dialer/app/calllog/CallLogFragment.java29
-rw-r--r--java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java82
-rw-r--r--java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java11
-rw-r--r--java/com/android/dialer/app/calllog/IntentProvider.java9
-rw-r--r--java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java6
-rw-r--r--java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java74
-rw-r--r--java/com/android/dialer/app/contactinfo/ContactInfoCache.java8
-rw-r--r--java/com/android/dialer/app/dialpad/DialpadFragment.java10
-rw-r--r--java/com/android/dialer/app/filterednumber/NumbersAdapter.java5
-rw-r--r--java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java1
-rw-r--r--java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java2
-rw-r--r--java/com/android/dialer/app/list/AllContactsFragment.java8
-rw-r--r--java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java33
-rw-r--r--java/com/android/dialer/app/list/DialerViewPager.java55
-rw-r--r--java/com/android/dialer/app/list/ListsFragment.java59
-rw-r--r--java/com/android/dialer/app/list/OldSpeedDialFragment.java18
-rw-r--r--java/com/android/dialer/app/list/PhoneFavoriteListView.java19
-rw-r--r--java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java4
-rw-r--r--java/com/android/dialer/app/list/PhoneFavoriteTileView.java38
-rw-r--r--java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java79
-rw-r--r--java/com/android/dialer/app/list/RegularSearchFragment.java4
-rw-r--r--java/com/android/dialer/app/list/RemoveView.java2
-rw-r--r--java/com/android/dialer/app/list/SearchFragment.java4
-rw-r--r--java/com/android/dialer/app/list/SmartDialSearchFragment.java2
-rw-r--r--java/com/android/dialer/app/manifests/activities/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.pngbin0 -> 749 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.pngbin0 -> 408 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.pngbin0 -> 375 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.pngbin1084 -> 0 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.pngbin0 -> 526 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.pngbin801 -> 0 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.pngbin0 -> 981 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.pngbin1376 -> 0 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.pngbin0 -> 1443 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.pngbin2090 -> 0 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.pngbin0 -> 1893 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.pngbin2281 -> 0 bytes
-rw-r--r--java/com/android/dialer/app/res/drawable/ic_search_phone.xml20
-rw-r--r--java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml29
-rw-r--r--java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml6
-rw-r--r--java/com/android/dialer/app/res/layout/action_mode_close_button.xml31
-rw-r--r--java/com/android/dialer/app/res/layout/all_contacts_fragment.xml2
-rw-r--r--java/com/android/dialer/app/res/layout/call_log_fragment.xml2
-rw-r--r--java/com/android/dialer/app/res/layout/call_log_list_item.xml2
-rw-r--r--java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml4
-rw-r--r--java/com/android/dialer/app/res/layout/dialpad_fragment.xml47
-rw-r--r--java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml6
-rw-r--r--java/com/android/dialer/app/res/layout/lists_fragment.xml143
-rw-r--r--java/com/android/dialer/app/res/layout/search_edittext.xml2
-rw-r--r--java/com/android/dialer/app/res/layout/speed_dial_fragment.xml2
-rw-r--r--java/com/android/dialer/app/res/values-af/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-am/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ar/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-az/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-be/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-bg/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-bn/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-bs/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ca/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-cs/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-da/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-de/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-el/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-en-rAU/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-en-rGB/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-en-rIN/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-es-rUS/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-es/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-et/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-eu/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-fa/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-fi/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-fr-rCA/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-fr/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-gl/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-gu/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-hi/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-hr/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-hu/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-hy/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-in/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-is/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-it/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-iw/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ja/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ka/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-kk/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-km/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-kn/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ko/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ky/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-lo/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-lt/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-lv/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-mk/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ml/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-mn/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-mr/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ms/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-my/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-nb/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ne/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-nl/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-no/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-pa/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-pl/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-pt-rBR/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-pt-rPT/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-pt/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ro/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ru/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-si/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-sk/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-sl/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-sq/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-sr/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-sv/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-sw/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ta/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-te/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-th/strings.xml14
-rw-r--r--java/com/android/dialer/app/res/values-tl/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-tr/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-uk/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-ur/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-uz/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-vi/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-zh-rCN/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-zh-rHK/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-zh-rTW/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values-zu/strings.xml12
-rw-r--r--java/com/android/dialer/app/res/values/colors.xml4
-rw-r--r--java/com/android/dialer/app/res/values/dimens.xml3
-rw-r--r--java/com/android/dialer/app/res/values/strings.xml55
-rw-r--r--java/com/android/dialer/app/res/values/styles.xml14
-rw-r--r--java/com/android/dialer/app/res/xml/sound_settings.xml4
-rw-r--r--java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java5
-rw-r--r--java/com/android/dialer/app/settings/DialerSettingsActivity.java15
-rw-r--r--java/com/android/dialer/app/settings/SoundSettingsFragment.java10
-rw-r--r--java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java13
-rw-r--r--java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java4
-rw-r--r--java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml2
-rw-r--r--java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java1
-rw-r--r--java/com/android/dialer/app/widget/SearchEditTextLayout.java22
-rw-r--r--java/com/android/dialer/binary/aosp/AospDialerRootComponent.java2
-rw-r--r--java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java4
-rw-r--r--java/com/android/dialer/binary/common/DialerApplication.java5
-rw-r--r--java/com/android/dialer/callcomposer/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/callcomposer/CallComposerActivity.java73
-rw-r--r--java/com/android/dialer/callcomposer/CameraComposerFragment.java13
-rw-r--r--java/com/android/dialer/callcomposer/GalleryCursorLoader.java4
-rw-r--r--java/com/android/dialer/callcomposer/MessageComposerFragment.java36
-rw-r--r--java/com/android/dialer/callcomposer/camera/CameraManager.java19
-rw-r--r--java/com/android/dialer/callcomposer/camera/ImagePersistTask.java38
-rw-r--r--java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml12
-rw-r--r--java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml2
-rw-r--r--java/com/android/dialer/callcomposer/res/values-ca/strings.xml4
-rw-r--r--java/com/android/dialer/callcomposer/res/values/styles.xml2
-rw-r--r--java/com/android/dialer/calldetails/AndroidManifest.xml4
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsActivity.java15
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsAdapter.java14
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java19
-rw-r--r--java/com/android/dialer/calldetails/res/layout/contact_container.xml6
-rw-r--r--java/com/android/dialer/calldetails/res/values-af/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-am/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ar/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-az/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-be/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-bg/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-bn/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-bs/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ca/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-cs/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-da/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-de/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-el/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-es/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-et/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-eu/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-fa/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-fi/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-fr/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-gl/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-gu/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-hi/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-hr/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-hu/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-hy/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-in/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-is/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-it/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-iw/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ja/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ka/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-kk/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-km/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-kn/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ko/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ky/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-lo/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-lt/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-lv/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-mk/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ml/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-mn/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-mr/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ms/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-my/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-nb/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ne/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-nl/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-no/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-pa/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-pl/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-pt/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ro/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ru/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-si/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-sk/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-sl/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-sq/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-sr/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-sv/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-sw/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ta/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-te/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-th/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-tl/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-tr/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-uk/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-ur/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-uz/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-vi/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values-zu/strings.xml1
-rw-r--r--java/com/android/dialer/calldetails/res/values/dimens.xml2
-rw-r--r--java/com/android/dialer/calldetails/res/values/strings.xml4
-rw-r--r--java/com/android/dialer/calldetails/res/values/styles.xml18
-rw-r--r--java/com/android/dialer/callintent/call_specific_app_data.proto4
-rw-r--r--java/com/android/dialer/callintent/speed_dial_contact_type.proto18
-rw-r--r--java/com/android/dialer/calllog/CallLogComponent.java2
-rw-r--r--java/com/android/dialer/calllog/CallLogFramework.java3
-rw-r--r--java/com/android/dialer/calllog/CallLogModule.java8
-rw-r--r--java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java113
-rw-r--r--java/com/android/dialer/calllog/database/AndroidManifest.xml28
-rw-r--r--java/com/android/dialer/calllog/database/AnnotatedCallLog.java53
-rw-r--r--java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java310
-rw-r--r--java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java17
-rw-r--r--java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java40
-rw-r--r--java/com/android/dialer/calllog/database/CallLogMutations.java58
-rw-r--r--java/com/android/dialer/calllog/database/Coalescer.java142
-rw-r--r--java/com/android/dialer/calllog/database/MutationApplier.java105
-rw-r--r--java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java114
-rw-r--r--java/com/android/dialer/calllog/datasources/CallLogDataSource.java67
-rw-r--r--java/com/android/dialer/calllog/datasources/CallLogMutations.java110
-rw-r--r--java/com/android/dialer/calllog/datasources/DataSources.java (renamed from java/com/android/dialer/calllog/DataSources.java)5
-rw-r--r--java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java22
-rw-r--r--java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java209
-rw-r--r--java/com/android/dialer/calllog/datasources/util/RowCombiner.java53
-rw-r--r--java/com/android/dialer/calllog/testing/FakeCallLogApplication.java39
-rw-r--r--java/com/android/dialer/calllog/ui/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java48
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogAdapter.java53
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogFragment.java93
-rw-r--r--java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java43
-rw-r--r--java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml16
-rw-r--r--java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml7
-rw-r--r--java/com/android/dialer/common/Assert.java4
-rw-r--r--java/com/android/dialer/common/concurrent/DialerExecutorComponent.java39
-rw-r--r--java/com/android/dialer/common/concurrent/DialerExecutorModule.java (renamed from java/com/android/contacts/common/util/TrafficStatsTags.java)18
-rw-r--r--java/com/android/dialer/compat/CompatUtils.java155
-rw-r--r--java/com/android/dialer/constants/Constants.java3
-rw-r--r--java/com/android/dialer/constants/ScheduledJobIds.java1
-rw-r--r--java/com/android/dialer/constants/TrafficStatsTags.java (renamed from java/com/android/incallui/calllocation/impl/TrafficStatsTags.java)17
-rw-r--r--java/com/android/dialer/constants/aospdialer/ConstantsImpl.java6
-rw-r--r--java/com/android/dialer/contactactions/AndroidManifest.xml16
-rw-r--r--java/com/android/dialer/contactactions/ContactActionBottomSheet.java136
-rw-r--r--java/com/android/dialer/contactactions/ContactActionModule.java38
-rw-r--r--java/com/android/dialer/contactactions/DividerModule.java41
-rw-r--r--java/com/android/dialer/contactactions/IntentModule.java75
-rw-r--r--java/com/android/dialer/contactactions/res/layout/contact_layout.xml53
-rw-r--r--java/com/android/dialer/contactactions/res/layout/divider_layout.xml23
-rw-r--r--java/com/android/dialer/contactactions/res/layout/module_layout.xml40
-rw-r--r--java/com/android/dialer/contactactions/res/layout/sheet_layout.xml24
-rw-r--r--java/com/android/dialer/contactactions/res/values/dimens.xml (renamed from java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml)10
-rw-r--r--java/com/android/dialer/contactsfragment/ContactViewHolder.java11
-rw-r--r--java/com/android/dialer/contactsfragment/ContactsAdapter.java49
-rw-r--r--java/com/android/dialer/contactsfragment/ContactsCursorLoader.java27
-rw-r--r--java/com/android/dialer/contactsfragment/ContactsFragment.java138
-rw-r--r--java/com/android/dialer/contactsfragment/FastScroller.java129
-rw-r--r--java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml28
-rw-r--r--java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml32
-rw-r--r--java/com/android/dialer/contactsfragment/res/layout/contact_row.xml6
-rw-r--r--java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml40
-rw-r--r--java/com/android/dialer/contactsfragment/res/values/dimens.xml9
-rw-r--r--java/com/android/dialer/database/DialerDatabaseHelper.java357
-rw-r--r--java/com/android/dialer/dialercontact/dialer_contact.proto (renamed from java/com/android/dialer/callcomposer/proto/call_composer_contact.proto)4
-rw-r--r--java/com/android/dialer/dialpadview/res/values/dimens.xml2
-rw-r--r--java/com/android/dialer/interactions/PhoneNumberInteraction.java9
-rw-r--r--java/com/android/dialer/location/CountryDetector.java6
-rw-r--r--java/com/android/dialer/logging/LoggingBindings.java18
-rw-r--r--java/com/android/dialer/logging/LoggingBindingsStub.java17
-rw-r--r--java/com/android/dialer/logging/contact_lookup_result.proto1
-rw-r--r--java/com/android/dialer/logging/contact_source.proto1
-rw-r--r--java/com/android/dialer/logging/dialer_impression.proto19
-rw-r--r--java/com/android/dialer/logging/interaction_event.proto20
-rw-r--r--java/com/android/dialer/logging/reporting_location.proto1
-rw-r--r--java/com/android/dialer/logging/screen_event.proto1
-rw-r--r--java/com/android/dialer/multimedia/MultimediaData.java6
-rw-r--r--java/com/android/dialer/oem/CequintCallerIdManager.java98
-rw-r--r--java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java4
-rw-r--r--java/com/android/dialer/oem/MotorolaUtils.java25
-rw-r--r--java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml17
-rw-r--r--java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml17
-rw-r--r--java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml17
-rw-r--r--java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml17
-rw-r--r--java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml17
-rw-r--r--java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml17
-rw-r--r--java/com/android/dialer/oem/res/values/motorola_config.xml19
-rw-r--r--java/com/android/dialer/phonenumbercache/ContactInfo.java4
-rw-r--r--java/com/android/dialer/phonenumbercache/ContactInfoHelper.java8
-rw-r--r--java/com/android/dialer/postcall/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/postcall/PostCall.java16
-rw-r--r--java/com/android/dialer/protos/ProtoParsers.java125
-rw-r--r--java/com/android/dialer/searchfragment/AndroidManifest.xml16
-rw-r--r--java/com/android/dialer/searchfragment/NewSearchFragment.java83
-rw-r--r--java/com/android/dialer/searchfragment/QueryUtil.java269
-rw-r--r--java/com/android/dialer/searchfragment/README.md62
-rw-r--r--java/com/android/dialer/searchfragment/SearchAdapter.java84
-rw-r--r--java/com/android/dialer/searchfragment/SearchContactCursor.java390
-rw-r--r--java/com/android/dialer/searchfragment/SearchContactViewHolder.java203
-rw-r--r--java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java57
-rw-r--r--java/com/android/dialer/searchfragment/SearchCursorManager.java229
-rw-r--r--java/com/android/dialer/searchfragment/res/layout/fragment_search.xml21
-rw-r--r--java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml75
-rw-r--r--java/com/android/dialer/searchfragment/res/values/dimens.xml (renamed from java/com/android/contacts/common/res/drawable/ic_call_and_share.xml)15
-rw-r--r--java/com/android/dialer/shortcuts/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/telecom/TelecomUtil.java80
-rw-r--r--java/com/android/dialer/theme/res/values-af/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-am/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ar/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-az/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-be/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-bg/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-bn/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-bs/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ca/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-cs/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-da/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-de/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-el/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-en-rAU/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-en-rGB/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-en-rIN/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-es-rUS/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-es/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-et/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-eu/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-fa/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-fi/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-fr-rCA/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-fr/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-gl/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-gu/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-hi/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-hr/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-hu/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-hy/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-in/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-is/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-it/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-iw/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ja/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ka/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-kk/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-km/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-kn/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ko/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ky/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-lo/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-lt/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-lv/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-mk/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ml/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-mn/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-mr/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ms/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-my/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-nb/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ne/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-nl/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-no/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-pa/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-pl/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-pt-rBR/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-pt-rPT/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-pt/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ro/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ru/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-si/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-sk/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-sl/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-sq/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-sr/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-sv/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-sw/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ta/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-te/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-th/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-tl/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-tr/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-uk/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-ur/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-uz/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-vi/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-zh-rCN/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-zh-rHK/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-zh-rTW/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-zu/strings.xml2
-rw-r--r--java/com/android/dialer/theme/res/values/strings.xml6
-rw-r--r--java/com/android/dialer/theme/res/values/themes.xml43
-rw-r--r--java/com/android/dialer/util/CallUtil.java22
-rw-r--r--java/com/android/dialer/util/PermissionsUtil.java8
-rw-r--r--java/com/android/dialer/widget/DialerToolbar.java5
-rw-r--r--java/com/android/dialer/widget/EmptyContentView.java (renamed from java/com/android/dialer/app/widget/EmptyContentView.java)20
-rw-r--r--java/com/android/dialer/widget/MessageFragment.java29
-rw-r--r--java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png (renamed from java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png)bin2461 -> 2461 bytes
-rw-r--r--java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png (renamed from java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png)bin1778 -> 1778 bytes
-rw-r--r--java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png (renamed from java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png)bin3352 -> 3352 bytes
-rw-r--r--java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png (renamed from java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png)bin3686 -> 3686 bytes
-rw-r--r--java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png (renamed from java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png)bin5204 -> 5204 bytes
-rw-r--r--java/com/android/dialer/widget/res/layout/dialer_toolbar.xml8
-rw-r--r--java/com/android/dialer/widget/res/layout/empty_content_view.xml (renamed from java/com/android/dialer/app/res/layout/empty_content_view.xml)6
-rw-r--r--java/com/android/dialer/widget/res/layout/fragment_message.xml4
-rw-r--r--java/com/android/dialer/widget/res/values-af/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-am/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ar/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-az/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-be/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-bg/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-bn/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-bs/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ca/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-cs/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-da/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-de/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-el/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-en-rAU/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-en-rGB/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-en-rIN/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-es-rUS/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-es/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-et/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-eu/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-fa/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-fi/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-fr-rCA/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-fr/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-gl/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-gu/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-hi/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-hr/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-hu/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-hy/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-in/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-is/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-it/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-iw/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ja/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ka/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-kk/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-km/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-kn/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ko/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ky/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-lo/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-lt/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-lv/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-mk/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ml/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-mn/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-mr/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ms/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-my/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-nb/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ne/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-nl/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-no/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-pa/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-pl/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-pt-rBR/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-pt-rPT/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-pt/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ro/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ru/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-si/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-sk/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-sl/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-sq/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-sr/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-sv/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-sw/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ta/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-te/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-th/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-tl/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-tr/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-uk/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-ur/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-uz/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-vi/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-zh-rCN/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-zh-rHK/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-zh-rTW/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values-zu/strings.xml5
-rw-r--r--java/com/android/dialer/widget/res/values/colors.xml4
-rw-r--r--java/com/android/dialer/widget/res/values/dimens.xml5
-rw-r--r--java/com/android/dialer/widget/res/values/strings.xml15
-rw-r--r--java/com/android/dialershared/bubble/AndroidManifest.xml22
-rw-r--r--java/com/android/dialershared/bubble/Bubble.java667
-rw-r--r--java/com/android/dialershared/bubble/BubbleInfo.java116
-rw-r--r--java/com/android/dialershared/bubble/ChangeOnScreenBounds.java166
-rw-r--r--java/com/android/dialershared/bubble/CheckableImageButton.java101
-rw-r--r--java/com/android/dialershared/bubble/MoveHandler.java250
-rw-r--r--java/com/android/dialershared/bubble/WindowRoot.java55
-rw-r--r--java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml21
-rw-r--r--java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml (renamed from java/com/android/contacts/common/res/drawable/ic_back_arrow.xml)11
-rw-r--r--java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml23
-rw-r--r--java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml23
-rw-r--r--java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml30
-rw-r--r--java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml (renamed from java/com/android/contacts/common/res/drawable/ic_search_video_call.xml)16
-rw-r--r--java/com/android/dialershared/bubble/res/layout/bubble_base.xml116
-rw-r--r--java/com/android/dialershared/bubble/res/values/colors.xml (renamed from java/com/android/incallui/res/drawable/img_conference_automirrored.xml)9
-rw-r--r--java/com/android/dialershared/bubble/res/values/values.xml27
-rw-r--r--java/com/android/incallui/AndroidManifest.xml110
-rw-r--r--java/com/android/incallui/AnswerScreenPresenter.java20
-rw-r--r--java/com/android/incallui/AnswerScreenPresenterStub.java6
-rw-r--r--java/com/android/incallui/AudioRouteSelectorActivity.java47
-rw-r--r--java/com/android/incallui/CallButtonPresenter.java31
-rw-r--r--java/com/android/incallui/CallCardPresenter.java88
-rw-r--r--java/com/android/incallui/CallerInfoUtils.java7
-rw-r--r--java/com/android/incallui/ContactInfoCache.java27
-rw-r--r--java/com/android/incallui/ExternalCallNotifier.java9
-rw-r--r--java/com/android/incallui/InCallActivity.java11
-rw-r--r--java/com/android/incallui/InCallPresenter.java5
-rw-r--r--java/com/android/incallui/InCallServiceImpl.java10
-rw-r--r--java/com/android/incallui/ReturnToCallActionReceiver.java132
-rw-r--r--java/com/android/incallui/ReturnToCallController.java204
-rw-r--r--java/com/android/incallui/StatusBarNotifier.java55
-rw-r--r--java/com/android/incallui/answer/impl/AnswerFragment.java4
-rw-r--r--java/com/android/incallui/answer/impl/PillDrawable.java43
-rw-r--r--java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml3
-rw-r--r--java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java32
-rw-r--r--java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java25
-rw-r--r--java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java47
-rw-r--r--java/com/android/incallui/answer/impl/res/values-af/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-am/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ar/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-az/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-be/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-bg/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-bn/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-bs/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ca/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-cs/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-da/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-de/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-el/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-es/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-et/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-eu/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-fa/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-fi/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-fr/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-gl/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-gu/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-hi/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-hr/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-hu/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-hy/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-in/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-is/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-it/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-iw/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ja/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ka/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-kk/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-km/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-kn/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ko/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ky/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-lo/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-lt/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-lv/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-mk/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ml/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-mn/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-mr/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ms/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-my/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-nb/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ne/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-nl/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-no/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pa/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pl/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pt/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ro/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ru/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-si/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sk/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sl/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sq/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sr/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sv/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sw/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ta/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-te/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-th/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-tl/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-tr/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-uk/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ur/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-uz/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-vi/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values-zu/strings.xml18
-rw-r--r--java/com/android/incallui/answer/impl/res/values/strings.xml17
-rw-r--r--java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java4
-rw-r--r--java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java3
-rw-r--r--java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java11
-rw-r--r--java/com/android/incallui/bindings/InCallUiBindings.java9
-rw-r--r--java/com/android/incallui/bindings/InCallUiBindingsStub.java38
-rw-r--r--java/com/android/incallui/call/CallList.java13
-rw-r--r--java/com/android/incallui/call/DialerCall.java105
-rw-r--r--java/com/android/incallui/call/DialerCallListener.java2
-rw-r--r--java/com/android/incallui/call/TelecomAdapter.java8
-rw-r--r--java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java1
-rw-r--r--java/com/android/incallui/calllocation/impl/LocationHelper.java7
-rw-r--r--java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java1
-rw-r--r--java/com/android/incallui/commontheme/res/anim/blinking.xml10
-rw-r--r--java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.pngbin1010 -> 0 bytes
-rw-r--r--java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.pngbin682 -> 0 bytes
-rw-r--r--java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.pngbin1362 -> 0 bytes
-rw-r--r--java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.pngbin2259 -> 0 bytes
-rw-r--r--java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.pngbin3156 -> 0 bytes
-rw-r--r--java/com/android/incallui/commontheme/res/values-af/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-am/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ar/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-az/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-be/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-bg/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-bn/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-bs/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ca/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-cs/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-da/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-de/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-el/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-es/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-et/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-eu/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-fa/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-fi/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-fr/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-gl/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-gu/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-hi/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-hr/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-hu/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-hy/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-in/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-is/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-it/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-iw/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ja/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ka/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-kk/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-km/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-kn/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ko/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ky/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-lo/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-lt/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-lv/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-mk/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ml/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-mn/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-mr/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ms/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-my/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-nb/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ne/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-nl/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-no/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-pa/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-pl/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-pt/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ro/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ru/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-si/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-sk/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-sl/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-sq/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-sr/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-sv/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-sw/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ta/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-te/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-th/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-tl/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-tr/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-uk/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-ur/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-uz/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-vi/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values-zu/strings.xml18
-rw-r--r--java/com/android/incallui/commontheme/res/values/strings.xml22
-rw-r--r--java/com/android/incallui/contactgrid/BottomRow.java3
-rw-r--r--java/com/android/incallui/contactgrid/ContactGridManager.java50
-rw-r--r--java/com/android/incallui/contactgrid/TopRow.java52
-rw-r--r--java/com/android/incallui/contactgrid/res/values-af/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-am/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ar/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-az/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-be/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-bg/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-bn/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-bs/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ca/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-cs/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-da/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-de/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-el/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-es/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-et/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-eu/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-fa/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-fi/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-fr/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-gl/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-gu/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-hi/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-hr/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-hu/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-hy/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-in/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-is/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-it/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-iw/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ja/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ka/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-kk/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-km/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-kn/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ko/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ky/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-lo/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-lt/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-lv/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-mk/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ml/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-mn/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-mr/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ms/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-my/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-nb/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ne/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-nl/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-no/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-pa/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-pl/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-pt/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ro/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ru/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-si/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-sk/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-sl/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-sq/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-sr/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-sv/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-sw/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ta/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-te/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-th/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-tl/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-tr/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-uk/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-ur/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-uz/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-vi/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values-zu/strings.xml18
-rw-r--r--java/com/android/incallui/contactgrid/res/values/strings.xml21
-rw-r--r--java/com/android/incallui/incall/impl/ButtonChooserFactory.java15
-rw-r--r--java/com/android/incallui/incall/impl/ButtonController.java39
-rw-r--r--java/com/android/incallui/incall/impl/InCallFragment.java3
-rw-r--r--java/com/android/incallui/incall/impl/InCallPagerAdapter.java4
-rw-r--r--java/com/android/incallui/incall/impl/res/values-af/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-am/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ar/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-az/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-be/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-bg/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-bn/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-bs/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ca/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-cs/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-da/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-de/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-el/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-es/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-et/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-eu/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-fa/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-fi/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-fr/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-gl/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-gu/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml4
-rw-r--r--java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml20
-rw-r--r--java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml (renamed from java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml)0
-rw-r--r--java/com/android/incallui/incall/impl/res/values-hi/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-hr/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-hu/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-hy/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-in/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-is/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-it/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-iw/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ja/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ka/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-kk/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-km/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-kn/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ko/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ky/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-lo/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-lt/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-lv/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-mk/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ml/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-mn/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-mr/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ms/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-my/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-nb/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ne/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-nl/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-no/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-pa/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-pl/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-pt/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ro/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ru/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-si/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-sk/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-sl/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-sq/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-sr/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-sv/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-sw/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ta/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-te/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-th/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-tl/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-tr/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-uk/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-ur/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-uz/strings.xml21
-rw-r--r--java/com/android/incallui/incall/impl/res/values-vi/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml7
-rw-r--r--java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml23
-rw-r--r--java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml5
-rw-r--r--java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml21
-rw-r--r--java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values-zu/strings.xml19
-rw-r--r--java/com/android/incallui/incall/impl/res/values/strings.xml28
-rw-r--r--java/com/android/incallui/incall/protocol/PrimaryCallState.java8
-rw-r--r--java/com/android/incallui/res/drawable-hdpi/img_conference.pngbin7037 -> 0 bytes
-rw-r--r--java/com/android/incallui/res/drawable-mdpi/img_conference.pngbin4629 -> 0 bytes
-rw-r--r--java/com/android/incallui/res/drawable-xhdpi/img_conference.pngbin9517 -> 0 bytes
-rw-r--r--java/com/android/incallui/res/drawable-xxhdpi/img_conference.pngbin16306 -> 0 bytes
-rw-r--r--java/com/android/incallui/res/drawable-xxxhdpi/img_conference.pngbin19584 -> 0 bytes
-rw-r--r--java/com/android/incallui/res/values-ca/strings.xml2
-rw-r--r--java/com/android/incallui/res/values-mcc262-mnc01/strings.xml32
-rw-r--r--java/com/android/incallui/res/values-uz/strings.xml2
-rw-r--r--java/com/android/incallui/res/values/dimens.xml2
-rw-r--r--java/com/android/incallui/res/values/styles.xml9
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml6
-rw-r--r--java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml18
-rw-r--r--java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java91
-rw-r--r--java/com/android/incallui/video/impl/SpeakerButtonController.java2
-rw-r--r--java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java11
-rw-r--r--java/com/android/incallui/video/impl/VideoCallFragment.java16
-rw-r--r--java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml33
-rw-r--r--java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml2
-rw-r--r--java/com/android/incallui/video/impl/res/values-land/dimens.xml2
-rw-r--r--java/com/android/incallui/video/impl/res/values-land/styles.xml3
-rw-r--r--java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml2
-rw-r--r--java/com/android/incallui/video/impl/res/values/dimens.xml2
-rw-r--r--java/com/android/incallui/video/impl/res/values/styles.xml3
-rw-r--r--java/com/android/incallui/videotech/ims/ImsVideoTech.java4
-rw-r--r--java/com/android/incallui/videotech/lightbringer/LightbringerTech.java6
-rw-r--r--java/com/android/voicemail/AndroidManifest.xml (renamed from java/com/android/voicemail/permissions.xml)15
-rw-r--r--java/com/android/voicemail/impl/AndroidManifest.xml5
-rw-r--r--java/com/android/voicemail/impl/OmtpReceiver.java105
-rw-r--r--java/com/android/voicemail/impl/TelephonyManagerStub.java40
-rw-r--r--java/com/android/voicemail/impl/VvmPackageInstallReceiver.java80
-rw-r--r--java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java254
-rw-r--r--java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java18
-rw-r--r--java/com/android/voicemail/impl/mail/MailTransport.java3
-rw-r--r--java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java400
-rw-r--r--java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java62
-rw-r--r--java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java105
-rw-r--r--java/com/android/voicemail/impl/transcribe/TranscriptionService.java203
-rw-r--r--java/com/android/voicemail/impl/transcribe/TranscriptionTask.java191
-rw-r--r--java/com/android/voicemail/impl/transcribe/VoicemailCompat.java59
-rw-r--r--java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java61
-rw-r--r--java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java194
-rw-r--r--java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto44
1223 files changed, 17071 insertions, 5831 deletions
diff --git a/Android.mk b/Android.mk
index 984cd286d..c3b1094d4 100644
--- a/Android.mk
+++ b/Android.mk
@@ -4,6 +4,12 @@
# * removed com.google.android.geo.API_KEY key. This should be added to
# the manifest files in java/com/android/incallui/calllocation/impl/
# and /java/com/android/incallui/maps/impl/
+# * b/62417801 removed translation string variant:
+# java/com/android/incallui/res/values-af-mcc262-mnc01/strings.xml
+# * b/62343966 include manually generated GRPC service class:
+# $ protoc --plugin=protoc-gen-grpc-java=prebuilts/tools/common/m2/repository/io/grpc/protoc-gen-grpc-java/1.0.3/protoc-gen-grpc-java-1.0.3-linux-x86_64.exe \
+# --grpc-java_out=lite:"packages/apps/Dialer/java/com/android/voicemail/impl/" \
+# --proto_path="packages/apps/Dialer/java/com/android/voicemail/impl/transcribe/grpc/" "packages/apps/Dialer/java/com/android/voicemail/impl/transcribe
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
@@ -20,6 +26,7 @@ BASE_DIR := java/com/android
SRC_DIRS := \
$(BASE_DIR)/contacts/common \
$(BASE_DIR)/dialer \
+ $(BASE_DIR)/dialershared \
$(BASE_DIR)/incallui \
$(BASE_DIR)/voicemail
@@ -39,7 +46,7 @@ EXCLUDE_FILES := \
$(BASE_DIR)/incallui/calllocation/impl/TrafficStatsTags.java \
$(BASE_DIR)/incallui/maps/impl/MapsImpl.java \
$(BASE_DIR)/incallui/maps/impl/MapsModule.java \
- $(BASE_DIR)/incallui/maps/impl/StaticMapFragment.java
+ $(BASE_DIR)/incallui/maps/impl/StaticMapFragment.java \
# Exclude testing only class, not used anywhere here
EXCLUDE_FILES += \
@@ -62,6 +69,7 @@ RES_DIRS := \
$(BASE_DIR)/dialer/calllog/ui/res \
$(BASE_DIR)/dialer/calllogutils/res \
$(BASE_DIR)/dialer/common/res \
+ $(BASE_DIR)/dialer/contactactions/res \
$(BASE_DIR)/dialer/contactsfragment/res \
$(BASE_DIR)/dialer/dialpadview/res \
$(BASE_DIR)/dialer/interactions/res \
@@ -69,12 +77,14 @@ RES_DIRS := \
$(BASE_DIR)/dialer/oem/res \
$(BASE_DIR)/dialer/phonenumberutil/res \
$(BASE_DIR)/dialer/postcall/res \
+ $(BASE_DIR)/dialer/searchfragment/res \
$(BASE_DIR)/dialer/shortcuts/res \
$(BASE_DIR)/dialer/speeddial/res \
$(BASE_DIR)/dialer/theme/res \
$(BASE_DIR)/dialer/util/res \
$(BASE_DIR)/dialer/voicemailstatus/res \
$(BASE_DIR)/dialer/widget/res \
+ $(BASE_DIR)/dialershared/bubble/res \
$(BASE_DIR)/incallui/answer/impl/affordance/res \
$(BASE_DIR)/incallui/answer/impl/answermethod/res \
$(BASE_DIR)/incallui/answer/impl/hint/res \
@@ -88,6 +98,7 @@ RES_DIRS := \
$(BASE_DIR)/incallui/incall/impl/res \
$(BASE_DIR)/incallui/res \
$(BASE_DIR)/incallui/sessiondata/res \
+ $(BASE_DIR)/incallui/speakerbuttonlogic/res \
$(BASE_DIR)/incallui/telecomeventui/res \
$(BASE_DIR)/incallui/video/impl/res \
$(BASE_DIR)/incallui/video/protocol/res \
@@ -113,6 +124,7 @@ DIALER_MANIFEST_FILES += \
$(BASE_DIR)/dialer/calllog/ui/AndroidManifest.xml \
$(BASE_DIR)/dialer/calllogutils/AndroidManifest.xml \
$(BASE_DIR)/dialer/common/AndroidManifest.xml \
+ $(BASE_DIR)/dialer/contactactions/AndroidManifest.xml \
$(BASE_DIR)/dialer/contactsfragment/AndroidManifest.xml \
$(BASE_DIR)/dialer/dialpadview/AndroidManifest.xml \
$(BASE_DIR)/dialer/interactions/AndroidManifest.xml \
@@ -120,6 +132,7 @@ DIALER_MANIFEST_FILES += \
$(BASE_DIR)/dialer/oem/AndroidManifest.xml \
$(BASE_DIR)/dialer/phonenumberutil/AndroidManifest.xml \
$(BASE_DIR)/dialer/postcall/AndroidManifest.xml \
+ $(BASE_DIR)/dialer/searchfragment/AndroidManifest.xml \
$(BASE_DIR)/dialer/shortcuts/AndroidManifest.xml \
$(BASE_DIR)/dialer/simulator/impl/AndroidManifest.xml \
$(BASE_DIR)/dialer/speeddial/AndroidManifest.xml \
@@ -127,6 +140,7 @@ DIALER_MANIFEST_FILES += \
$(BASE_DIR)/dialer/util/AndroidManifest.xml \
$(BASE_DIR)/dialer/voicemailstatus/AndroidManifest.xml \
$(BASE_DIR)/dialer/widget/AndroidManifest.xml \
+ $(BASE_DIR)/dialershared/bubble/AndroidManifest.xml \
$(BASE_DIR)/incallui/AndroidManifest.xml \
$(BASE_DIR)/incallui/answer/impl/affordance/AndroidManifest.xml \
$(BASE_DIR)/incallui/answer/impl/AndroidManifest.xml \
@@ -139,12 +153,13 @@ DIALER_MANIFEST_FILES += \
$(BASE_DIR)/incallui/hold/AndroidManifest.xml \
$(BASE_DIR)/incallui/incall/impl/AndroidManifest.xml \
$(BASE_DIR)/incallui/sessiondata/AndroidManifest.xml \
+ $(BASE_DIR)/incallui/speakerbuttonlogic/AndroidManifest.xml \
$(BASE_DIR)/incallui/telecomeventui/AndroidManifest.xml \
$(BASE_DIR)/incallui/video/impl/AndroidManifest.xml \
$(BASE_DIR)/incallui/video/protocol/AndroidManifest.xml \
$(BASE_DIR)/incallui/wifi/AndroidManifest.xml \
$(BASE_DIR)/voicemail/impl/AndroidManifest.xml \
- $(BASE_DIR)/voicemail/permissions.xml \
+ $(BASE_DIR)/voicemail/AndroidManifest.xml \
# Merge all manifest files.
@@ -180,6 +195,7 @@ LOCAL_AAPT_FLAGS := \
--extra-packages com.android.dialer.calllog.ui \
--extra-packages com.android.dialer.calllogutils \
--extra-packages com.android.dialer.common \
+ --extra-packages com.android.dialer.contactactions \
--extra-packages com.android.dialer.contactsfragment \
--extra-packages com.android.dialer.dialpadview \
--extra-packages com.android.dialer.interactions \
@@ -187,12 +203,14 @@ LOCAL_AAPT_FLAGS := \
--extra-packages com.android.dialer.oem \
--extra-packages com.android.dialer.phonenumberutil \
--extra-packages com.android.dialer.postcall \
+ --extra-packages com.android.dialer.searchfragment \
--extra-packages com.android.dialer.shortcuts \
--extra-packages com.android.dialer.speeddial \
--extra-packages com.android.dialer.theme \
--extra-packages com.android.dialer.util \
--extra-packages com.android.dialer.voicemailstatus \
--extra-packages com.android.dialer.widget \
+ --extra-packages com.android.dialershared.bubble \
--extra-packages com.android.incallui \
--extra-packages com.android.incallui.answer.impl \
--extra-packages com.android.incallui.answer.impl.affordance \
@@ -209,6 +227,7 @@ LOCAL_AAPT_FLAGS := \
--extra-packages com.android.incallui.incall.impl \
--extra-packages com.android.incallui.maps.impl \
--extra-packages com.android.incallui.sessiondata \
+ --extra-packages com.android.incallui.speakerbuttonlogic \
--extra-packages com.android.incallui.telecomeventui \
--extra-packages com.android.incallui.video \
--extra-packages com.android.incallui.video.impl \
@@ -223,6 +242,7 @@ LOCAL_AAPT_FLAGS := \
LOCAL_STATIC_JAVA_LIBRARIES := \
android-common \
+ android-support-dynamic-animation \
com.android.vcard \
dialer-commons-io-target \
dialer-dagger2-target \
@@ -230,6 +250,11 @@ LOCAL_STATIC_JAVA_LIBRARIES := \
dialer-gifdecoder-target \
dialer-glide-target \
dialer-guava-target \
+ dialer-grpc-all-target \
+ dialer-grpc-core-target \
+ dialer-grpc-okhttp-target \
+ dialer-grpc-protobuf-lite-target \
+ dialer-grpc-stub-target \
dialer-javax-annotation-api-target \
dialer-javax-inject-target \
dialer-libshortcutbadger-target \
@@ -251,6 +276,11 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \
LOCAL_JAVA_LIBRARIES := \
org.apache.http.legacy \
dialer-auto-value \
+ dialer-grpc-all \
+ dialer-grpc-core \
+ dialer-grpc-okhttp \
+ dialer-grpc-protobuf-lite \
+ dialer-grpc-stub \
# Libraries needed by the compiler (JACK) to generate code.
PROCESSOR_LIBRARIES_TARGET := \
@@ -314,6 +344,11 @@ LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
dialer-dagger2:../../../prebuilts/tools/common/m2/repository/com/google/dagger/dagger/2.7/dagger-2.7$(COMMON_JAVA_PACKAGE_SUFFIX) \
dialer-dagger2-producers:../../../prebuilts/tools/common/m2/repository/com/google/dagger/dagger-producers/2.7/dagger-producers-2.7$(COMMON_JAVA_PACKAGE_SUFFIX) \
dialer-guava:../../../prebuilts/tools/common/m2/repository/com/google/guava/guava/20.0/guava-20.0$(COMMON_JAVA_PACKAGE_SUFFIX) \
+ dialer-grpc-all:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-all/1.0.3/grpc-all-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
+ dialer-grpc-core:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-core/1.0.3/grpc-core-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
+ dialer-grpc-okhttp:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-okhttp/1.0.3/grpc-okhttp-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
+ dialer-grpc-protobuf-lite:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-protobuf-lite/1.0.3/grpc-protobuf-lite-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
+ dialer-grpc-stub:../../../prebuilts/tools/common/m2/repository/io/grpc/grpc-stub/1.0.3/grpc-stub-1.0.3$(COMMON_JAVA_PACKAGE_SUFFIX) \
dialer-javax-annotation-api:../../../prebuilts/tools/common/m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2$(COMMON_JAVA_PACKAGE_SUFFIX) \
dialer-javax-inject:../../../prebuilts/tools/common/m2/repository/javax/inject/javax.inject/1/javax.inject-1$(COMMON_JAVA_PACKAGE_SUFFIX)
@@ -432,3 +467,53 @@ LOCAL_UNINSTALLABLE_MODULE := true
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 c04f8bec9..7966a55a4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,8 +16,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
coreApp="true"
package="com.android.dialer"
- android:versionCode="130000"
- android:versionName="10.0">
+ android:versionCode="140000"
+ android:versionName="11.0">
<uses-sdk
android:minSdkVersion="23"
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 000000000..046372d0d
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index 52ff857ba..000000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index a0711d377..000000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 000000000..d25d3888e
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 000000000..6fccf5d09
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index 8df91f236..000000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 000000000..f2c89424e
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 000000000..ec67c6ef9
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index f0bb6f5be..000000000
--- a/assets/quantum/res/drawable-hdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 000000000..ddffcf1f9
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index eff562722..000000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index 65f73299f..000000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 000000000..df063799d
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 000000000..15094d884
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index 1c3e8b987..000000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 000000000..e6f98af95
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 000000000..f2c89424e
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index 63ef73683..000000000
--- a/assets/quantum/res/drawable-mdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 000000000..b494eb361
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index e31fcf350..000000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index 7a5df52bf..000000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 000000000..d7a741b61
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 000000000..bb7915f33
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index ca927f3de..000000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 000000000..a2d78b221
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 000000000..9c002da0a
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index dc0c995c1..000000000
--- a/assets/quantum/res/drawable-xhdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 000000000..d5022d063
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index a8eb2a45e..000000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index 7bd5b1635..000000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 000000000..82db5427b
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 000000000..7a15a9ea9
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index 75469cd85..000000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 000000000..9c002da0a
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 000000000..5bb683f6e
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index 919a872e0..000000000
--- a/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png
new file mode 100644
index 000000000..8e1fa206b
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_bluetooth_audio_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png
deleted file mode 100644
index 7e08f6108..000000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_check_circle_googblue_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png
deleted file mode 100644
index 428009cfe..000000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_forward_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png
new file mode 100644
index 000000000..0f0b2e154
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_headset_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png
new file mode 100644
index 000000000..22ca19ae4
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_mic_off_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png
deleted file mode 100644
index eb284e383..000000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_network_wifi_white_24.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png
new file mode 100644
index 000000000..36be1da99
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png
new file mode 100644
index 000000000..1257e66c5
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_phone_in_talk_white_36.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png
deleted file mode 100644
index aed766804..000000000
--- a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_white_18.png
+++ /dev/null
Binary files differ
diff --git a/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml
new file mode 100644
index 000000000..2989fdada
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_arrow_back_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M20,11H7.83l5.59,-5.59L12,4l-8,8 8,8 1.41,-1.41L7.83,13H20v-2z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml
new file mode 100644
index 000000000..1fbafeb83
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_call_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M6.62,10.79c1.44,2.83 3.76,5.14 6.59,6.59l2.2,-2.2c0.27,-0.27 0.67,-0.36 1.02,-0.24 1.12,0.37 2.33,0.57 3.57,0.57 0.55,0 1,0.45 1,1V20c0,0.55 -0.45,1 -1,1 -9.39,0 -17,-7.61 -17,-17 0,-0.55 0.45,-1 1,-1h3.5c0.55,0 1,0.45 1,1 0,1.25 0.2,2.45 0.57,3.57 0.11,0.35 0.03,0.74 -0.25,1.02l-2.2,2.2z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml
new file mode 100644
index 000000000..3f9973200
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_close_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml
index 4f1fd4920..6495ac7eb 100644
--- a/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml
+++ b/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml
@@ -7,4 +7,4 @@
<path
android:fillColor="@android:color/white"
android:pathData="M14,16.5h-4L10,15L3,15v4c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2v-4h-7v1.5zM20,6h-3.5L16.5,4.5L15,3L9,3L7.5,4.55L7.5,6L4,6c-1.1,0 -2,0.9 -2,2v4c0,1.1 0.9,2 2,2h6v-1.5h4L14,14h6c1.1,0 2,-0.9 2,-2L22,8c0,-1.1 -0.9,-2 -2,-2zM15,6L9,6L9,4.5h6L15,6z"/>
-</vector> \ No newline at end of file
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml
index c67509cbf..b6da8a048 100644
--- a/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml
+++ b/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml
@@ -7,4 +7,4 @@
<path
android:fillColor="@android:color/white"
android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM11,15L9.5,15v-2h-2v2L6,15L6,9h1.5v2.5h2L9.5,9L11,9v6zM13,9h4c0.55,0 1,0.45 1,1v4c0,0.55 -0.45,1 -1,1h-4L13,9zM14.5,13.5h2v-3h-2v3z"/>
-</vector> \ No newline at end of file
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml
new file mode 100644
index 000000000..d8567f54b
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_history_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml
new file mode 100644
index 000000000..280fa262c
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_message_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM18,14L6,14v-2h12v2zM18,11L6,11L6,9h12v2zM18,8L6,8L6,6h12v2z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml
new file mode 100644
index 000000000..cf4e563df
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_person_add_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM6,10L6,7L4,7v3L1,10v2h3v3h2v-3h3v-2L6,10zM15,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml
new file mode 100644
index 000000000..083d63644
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_search_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml
new file mode 100644
index 000000000..429061af0
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_videocam_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M17,10.5V7c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1v-3.5l4,4v-11l-4,4z"/>
+</vector>
diff --git a/java/com/android/contacts/common/ClipboardUtils.java b/java/com/android/contacts/common/ClipboardUtils.java
index 9345b0f9c..3d7683941 100644
--- a/java/com/android/contacts/common/ClipboardUtils.java
+++ b/java/com/android/contacts/common/ClipboardUtils.java
@@ -24,8 +24,6 @@ import android.widget.Toast;
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 169348b25..3e1a78f63 100644
--- a/java/com/android/contacts/common/ContactPhotoManager.java
+++ b/java/com/android/contacts/common/ContactPhotoManager.java
@@ -36,14 +36,6 @@ import com.android.dialer.util.PermissionsUtil;
/** Asynchronously loads contact photos and maintains a cache of photos. */
public abstract class ContactPhotoManager implements ComponentCallbacks2 {
- /** Contact type constants used for default letter images */
- public static final int TYPE_PERSON = LetterTileDrawable.TYPE_PERSON;
-
- public static final int TYPE_SPAM = LetterTileDrawable.TYPE_SPAM;
- public static final int TYPE_BUSINESS = LetterTileDrawable.TYPE_BUSINESS;
- public static final int TYPE_VOICEMAIL = LetterTileDrawable.TYPE_VOICEMAIL;
- public static final int TYPE_DEFAULT = LetterTileDrawable.TYPE_DEFAULT;
- public static final int TYPE_GENERIC_AVATAR = LetterTileDrawable.TYPE_GENERIC_AVATAR;
/** Scale and offset default constants used for default letter images */
public static final float SCALE_DEFAULT = 1.0f;
@@ -88,7 +80,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 {
if (!TextUtils.isEmpty(request.identifier)) {
builder.appendQueryParameter(IDENTIFIER_PARAM_KEY, request.identifier);
}
- if (request.contactType != TYPE_DEFAULT) {
+ if (request.contactType != LetterTileDrawable.TYPE_DEFAULT) {
builder.appendQueryParameter(CONTACT_TYPE_PARAM_KEY, String.valueOf(request.contactType));
}
if (request.scale != SCALE_DEFAULT) {
@@ -114,7 +106,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 {
public static String appendBusinessContactType(String photoUrl) {
Uri uri = Uri.parse(photoUrl);
Builder builder = uri.buildUpon();
- builder.encodedFragment(String.valueOf(TYPE_BUSINESS));
+ builder.encodedFragment(String.valueOf(LetterTileDrawable.TYPE_BUSINESS));
return builder.build().toString();
}
@@ -147,7 +139,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 {
String encodedFragment = photoUri.getEncodedFragment();
return !TextUtils.isEmpty(encodedFragment)
- && encodedFragment.equals(String.valueOf(TYPE_BUSINESS));
+ && encodedFragment.equals(String.valueOf(LetterTileDrawable.TYPE_BUSINESS));
}
protected static DefaultImageRequest getDefaultImageRequestFromUri(Uri uri) {
@@ -378,7 +370,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 {
* be returned.
*/
public static final DefaultImageRequest EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST =
- new DefaultImageRequest(null, null, TYPE_BUSINESS, false);
+ new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, false);
/**
* Used to indicate that a circular drawable that represents a contact without any contact
* details should be returned.
@@ -390,7 +382,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 {
* should be returned.
*/
public static final DefaultImageRequest EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST =
- new DefaultImageRequest(null, null, TYPE_BUSINESS, true);
+ new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, true);
/** The contact's display name. The display name is used to */
public String displayName;
/**
@@ -403,10 +395,9 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 {
/**
* The type of this contact. This contact type may be used to decide the kind of image to use in
* the case where a unique letter cannot be generated from the contact's display name and
- * identifier. See: {@link #TYPE_PERSON} {@link #TYPE_BUSINESS} {@link #TYPE_PERSON} {@link
- * #TYPE_DEFAULT}
+ * identifier.
*/
- public int contactType = TYPE_DEFAULT;
+ public @LetterTileDrawable.ContactType int contactType = LetterTileDrawable.TYPE_DEFAULT;
/**
* The amount to scale the letter or bitmap to, as a ratio of its default size (from a range of
* 0.0f to 2.0f). The default value is 1.0f.
@@ -429,7 +420,13 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 {
public DefaultImageRequest() {}
public DefaultImageRequest(String displayName, String identifier, boolean isCircular) {
- this(displayName, identifier, TYPE_DEFAULT, SCALE_DEFAULT, OFFSET_DEFAULT, isCircular);
+ this(
+ displayName,
+ identifier,
+ LetterTileDrawable.TYPE_DEFAULT,
+ SCALE_DEFAULT,
+ OFFSET_DEFAULT,
+ isCircular);
}
public DefaultImageRequest(
diff --git a/java/com/android/contacts/common/ContactPhotoManagerImpl.java b/java/com/android/contacts/common/ContactPhotoManagerImpl.java
index 2e6ff9fdc..28ecf3421 100644
--- a/java/com/android/contacts/common/ContactPhotoManagerImpl.java
+++ b/java/com/android/contacts/common/ContactPhotoManagerImpl.java
@@ -53,9 +53,9 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.android.contacts.common.util.BitmapUtil;
-import com.android.contacts.common.util.TrafficStatsTags;
import com.android.contacts.common.util.UriUtils;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.constants.TrafficStatsTags;
import com.android.dialer.util.PermissionsUtil;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -634,8 +634,9 @@ class ContactPhotoManagerImpl extends ContactPhotoManager implements Callback {
}
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 97d84c876..c5347e778 100644
--- a/java/com/android/contacts/common/ContactStatusUtil.java
+++ b/java/com/android/contacts/common/ContactStatusUtil.java
@@ -23,8 +23,6 @@ import android.provider.ContactsContract.StatusUpdates;
/** 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 60af44b9a..66ccc90e7 100644
--- a/java/com/android/contacts/common/ContactsUtils.java
+++ b/java/com/android/contacts/common/ContactsUtils.java
@@ -16,184 +16,17 @@
package com.android.contacts.common;
-import android.content.Context;
-import android.content.Intent;
-import android.database.Cursor;
-import android.net.Uri;
-import android.provider.ContactsContract.CommonDataKinds.Im;
-import android.provider.ContactsContract.DisplayPhoto;
+import android.provider.ContactsContract.Contacts;
import android.support.annotation.IntDef;
-import android.text.TextUtils;
-import android.util.Pair;
-import com.android.contacts.common.compat.ContactsCompat;
import com.android.contacts.common.compat.DirectoryCompat;
-import com.android.contacts.common.model.AccountTypeManager;
-import com.android.contacts.common.model.account.AccountWithDataSet;
-import com.android.contacts.common.model.dataitem.ImDataItem;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
-import java.util.List;
public class ContactsUtils {
// Telecomm related schemes are in CallUtil
- public static final String SCHEME_IMTO = "imto";
- public static final String SCHEME_MAILTO = "mailto";
- public static final String SCHEME_SMSTO = "smsto";
public static final long USER_TYPE_CURRENT = 0;
public static final long USER_TYPE_WORK = 1;
- private static final String TAG = "ContactsUtils";
- private static final int DEFAULT_THUMBNAIL_SIZE = 96;
- private static int sThumbnailSize = -1;
-
- /**
- * This looks up the provider name defined in ProviderNames from the predefined IM protocol id.
- * This is used for interacting with the IM application.
- *
- * @param protocol the protocol ID
- * @return the provider name the IM app uses for the given protocol, or null if no provider is
- * defined for the given protocol
- * @hide
- */
- public static String lookupProviderNameFromId(int protocol) {
- switch (protocol) {
- case Im.PROTOCOL_GOOGLE_TALK:
- return ProviderNames.GTALK;
- case Im.PROTOCOL_AIM:
- return ProviderNames.AIM;
- case Im.PROTOCOL_MSN:
- return ProviderNames.MSN;
- case Im.PROTOCOL_YAHOO:
- return ProviderNames.YAHOO;
- case Im.PROTOCOL_ICQ:
- return ProviderNames.ICQ;
- case Im.PROTOCOL_JABBER:
- return ProviderNames.JABBER;
- case Im.PROTOCOL_SKYPE:
- return ProviderNames.SKYPE;
- case Im.PROTOCOL_QQ:
- return ProviderNames.QQ;
- }
- return null;
- }
-
- /**
- * Test if the given {@link CharSequence} contains any graphic characters, first checking {@link
- * TextUtils#isEmpty(CharSequence)} to handle null.
- */
- public static boolean isGraphic(CharSequence str) {
- return !TextUtils.isEmpty(str) && TextUtils.isGraphic(str);
- }
-
- /** Returns true if two objects are considered equal. Two null references are equal here. */
- public static boolean areObjectsEqual(Object a, Object b) {
- return a == b || (a != null && a.equals(b));
- }
-
- /** Returns true if two {@link Intent}s are both null, or have the same action. */
- public static final boolean areIntentActionEqual(Intent a, Intent b) {
- if (a == b) {
- return true;
- }
- if (a == null || b == null) {
- return false;
- }
- return TextUtils.equals(a.getAction(), b.getAction());
- }
-
- public static boolean areGroupWritableAccountsAvailable(Context context) {
- final List<AccountWithDataSet> accounts =
- AccountTypeManager.getInstance(context).getGroupWritableAccounts();
- return !accounts.isEmpty();
- }
-
- /**
- * Returns the size (width and height) of thumbnail pictures as configured in the provider. This
- * can safely be called from the UI thread, as the provider can serve this without performing a
- * database access
- */
- public static int getThumbnailSize(Context context) {
- if (sThumbnailSize == -1) {
- final Cursor c =
- context
- .getContentResolver()
- .query(
- DisplayPhoto.CONTENT_MAX_DIMENSIONS_URI,
- new String[] {DisplayPhoto.THUMBNAIL_MAX_DIM},
- null,
- null,
- null);
- if (c != null) {
- try {
- if (c.moveToFirst()) {
- sThumbnailSize = c.getInt(0);
- }
- } finally {
- c.close();
- }
- }
- }
- return sThumbnailSize != -1 ? sThumbnailSize : DEFAULT_THUMBNAIL_SIZE;
- }
-
- private static Intent getCustomImIntent(ImDataItem im, int protocol) {
- String host = im.getCustomProtocol();
- final String data = im.getData();
- if (TextUtils.isEmpty(data)) {
- return null;
- }
- if (protocol != Im.PROTOCOL_CUSTOM) {
- // Try bringing in a well-known host for specific protocols
- host = ContactsUtils.lookupProviderNameFromId(protocol);
- }
- if (TextUtils.isEmpty(host)) {
- return null;
- }
- final String authority = host.toLowerCase();
- final Uri imUri =
- new Uri.Builder().scheme(SCHEME_IMTO).authority(authority).appendPath(data).build();
- final Intent intent = new Intent(Intent.ACTION_SENDTO, imUri);
- return intent;
- }
-
- /**
- * Returns the proper Intent for an ImDatItem. If available, a secondary intent is stored in the
- * second Pair slot
- */
- public static Pair<Intent, Intent> buildImIntent(Context context, ImDataItem im) {
- Intent intent = null;
- Intent secondaryIntent = null;
- final boolean isEmail = im.isCreatedFromEmail();
-
- if (!isEmail && !im.isProtocolValid()) {
- return new Pair<>(null, null);
- }
-
- final String data = im.getData();
- if (TextUtils.isEmpty(data)) {
- return new Pair<>(null, null);
- }
-
- final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol();
-
- if (protocol == Im.PROTOCOL_GOOGLE_TALK) {
- final int chatCapability = im.getChatCapability();
- if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) {
- intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
- secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
- } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) {
- // Allow Talking and Texting
- intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
- secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call"));
- } else {
- intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message"));
- }
- } else {
- // Build an IM Intent
- intent = getCustomImIntent(im, protocol);
- }
- return new Pair<>(intent, secondaryIntent);
- }
/**
* Determine UserType from directory id and contact id.
@@ -232,27 +65,13 @@ public class ContactsUtils {
: USER_TYPE_CURRENT;
}
// Only check contact id if directory id is null
- if (contactId != null && contactId != 0L && ContactsCompat.isEnterpriseContactId(contactId)) {
+ if (contactId != null && contactId != 0L && Contacts.isEnterpriseContactId(contactId)) {
return USER_TYPE_WORK;
} else {
return USER_TYPE_CURRENT;
}
}
- // TODO find a proper place for the canonical version of these
- public interface ProviderNames {
-
- String YAHOO = "Yahoo";
- String GTALK = "GTalk";
- String MSN = "MSN";
- String ICQ = "ICQ";
- String AIM = "AIM";
- String XMPP = "XMPP";
- String JABBER = "JABBER";
- String SKYPE = "SKYPE";
- String QQ = "QQ";
- }
-
/**
* UserType indicates the user type of the contact. If the contact is from Work User (Work Profile
* in Android Multi-User System), it's {@link #USER_TYPE_WORK}, otherwise, {@link
diff --git a/java/com/android/contacts/common/GeoUtil.java b/java/com/android/contacts/common/GeoUtil.java
deleted file mode 100644
index 50b0cd9e3..000000000
--- a/java/com/android/contacts/common/GeoUtil.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.contacts.common;
-
-import android.app.Application;
-import android.content.Context;
-import com.android.contacts.common.location.CountryDetector;
-import com.google.i18n.phonenumbers.NumberParseException;
-import com.google.i18n.phonenumbers.PhoneNumberUtil;
-import com.google.i18n.phonenumbers.Phonenumber;
-import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
-import java.util.Locale;
-
-/** Static methods related to Geo. */
-public class GeoUtil {
-
- /**
- * Returns the country code of the country the user is currently in. Before calling this method,
- * make sure that {@link CountryDetector#initialize(Context)} has already been called in {@link
- * Application#onCreate()}.
- *
- * @return The ISO 3166-1 two letters country code of the country the user is in.
- */
- public static String getCurrentCountryIso(Context context) {
- // The {@link CountryDetector} should never return null so this is safe to return as-is.
- return CountryDetector.getInstance(context).getCurrentCountryIso();
- }
-
- public static String getGeocodedLocationFor(Context context, String phoneNumber) {
- final PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
- final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
- try {
- final Phonenumber.PhoneNumber structuredPhoneNumber =
- phoneNumberUtil.parse(phoneNumber, getCurrentCountryIso(context));
- final Locale locale = context.getResources().getConfiguration().locale;
- return geocoder.getDescriptionForNumber(structuredPhoneNumber, locale);
- } catch (NumberParseException e) {
- return null;
- }
- }
-}
diff --git a/java/com/android/contacts/common/MoreContactUtils.java b/java/com/android/contacts/common/MoreContactUtils.java
index 028f89971..26241b34f 100644
--- a/java/com/android/contacts/common/MoreContactUtils.java
+++ b/java/com/android/contacts/common/MoreContactUtils.java
@@ -16,7 +16,6 @@
package com.android.contacts.common;
-import android.content.Context;
import android.content.Intent;
import android.graphics.Rect;
import android.net.Uri;
@@ -24,7 +23,6 @@ import android.provider.ContactsContract;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.view.View;
-import android.widget.TextView;
import com.android.contacts.common.model.account.AccountType;
import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
@@ -194,40 +192,6 @@ public class MoreContactUtils {
}
/**
- * 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 39d0b55d3..e0c9b7e53 100644
--- a/java/com/android/contacts/common/compat/ContactsCompat.java
+++ b/java/com/android/contacts/common/compat/ContactsCompat.java
@@ -21,7 +21,6 @@ import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
-import com.android.dialer.compat.CompatUtils;
/** Compatibility class for {@link ContactsContract.Contacts} */
public class ContactsCompat {
@@ -29,8 +28,6 @@ public class ContactsCompat {
// TODO: Use N APIs
private static final Uri ENTERPRISE_CONTENT_FILTER_URI =
Uri.withAppendedPath(Contacts.CONTENT_URI, "filter_enterprise");
- // Copied from ContactsContract.Contacts#ENTERPRISE_CONTACT_ID_BASE, which is hidden.
- private static final long ENTERPRISE_CONTACT_ID_BASE = 1000000000;
/** Not instantiable. */
private ContactsCompat() {}
@@ -41,17 +38,4 @@ public class ContactsCompat {
}
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 6a24ec033..aa22c6861 100644
--- a/java/com/android/contacts/common/compat/PhoneAccountCompat.java
+++ b/java/com/android/contacts/common/compat/PhoneAccountCompat.java
@@ -20,33 +20,10 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.support.annotation.Nullable;
import android.telecom.PhoneAccount;
-import android.util.Log;
-import com.android.dialer.compat.CompatUtils;
/** Compatiblity class for {@link android.telecom.PhoneAccount} */
public class PhoneAccountCompat {
- private static final String TAG = PhoneAccountCompat.class.getSimpleName();
-
- /**
- * Gets the {@link Icon} associated with the given {@link PhoneAccount}
- *
- * @param phoneAccount the PhoneAccount from which to retrieve the Icon
- * @return the Icon, or null
- */
- @Nullable
- public static Icon getIcon(@Nullable PhoneAccount phoneAccount) {
- if (phoneAccount == null) {
- return null;
- }
-
- if (CompatUtils.isMarshmallowCompatible()) {
- return phoneAccount.getIcon();
- }
-
- return null;
- }
-
/**
* Builds and returns an icon {@code Drawable} to represent this {@code PhoneAccount} in a user
* interface.
@@ -61,44 +38,16 @@ public class PhoneAccountCompat {
if (phoneAccount == null || context == null) {
return null;
}
-
- if (CompatUtils.isMarshmallowCompatible()) {
- return createIconDrawableMarshmallow(phoneAccount, context);
- }
-
- if (CompatUtils.isLollipopMr1Compatible()) {
- return createIconDrawableLollipopMr1(phoneAccount, context);
- }
- return null;
+ return createIconDrawableMarshmallow(phoneAccount, context);
}
@Nullable
private static Drawable createIconDrawableMarshmallow(
PhoneAccount phoneAccount, Context context) {
- Icon accountIcon = getIcon(phoneAccount);
+ Icon accountIcon = phoneAccount.getIcon();
if (accountIcon == null) {
return null;
}
return accountIcon.loadDrawable(context);
}
-
- @Nullable
- private static Drawable createIconDrawableLollipopMr1(
- PhoneAccount phoneAccount, Context context) {
- try {
- return (Drawable)
- PhoneAccount.class
- .getMethod("createIconDrawable", Context.class)
- .invoke(phoneAccount, context);
- } catch (ReflectiveOperationException e) {
- return null;
- } catch (Throwable t) {
- Log.e(
- TAG,
- "Unexpected exception when attempting to call "
- + "android.telecom.PhoneAccount#createIconDrawable",
- t);
- return null;
- }
- }
}
diff --git a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
index 960b340d8..a6cfe07cd 100644
--- a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
+++ b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java
@@ -17,13 +17,7 @@
package com.android.contacts.common.compat;
import android.telephony.PhoneNumberUtils;
-import android.text.Spannable;
-import android.text.TextUtils;
import android.text.style.TtsSpan;
-import com.android.dialer.compat.CompatUtils;
-import com.google.i18n.phonenumbers.NumberParseException;
-import com.google.i18n.phonenumbers.PhoneNumberUtil;
-import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
/**
* This class contains static utility methods extracted from PhoneNumberUtils, and the methods were
@@ -37,138 +31,16 @@ public class PhoneNumberUtilsCompat {
/** Not instantiable. */
private PhoneNumberUtilsCompat() {}
- public static String normalizeNumber(String phoneNumber) {
- if (CompatUtils.isLollipopCompatible()) {
- return PhoneNumberUtils.normalizeNumber(phoneNumber);
- } else {
- return normalizeNumberInternal(phoneNumber);
- }
- }
-
- /** Implementation copied from {@link PhoneNumberUtils#normalizeNumber} */
- private static String normalizeNumberInternal(String phoneNumber) {
- if (TextUtils.isEmpty(phoneNumber)) {
- return "";
- }
- StringBuilder sb = new StringBuilder();
- int len = phoneNumber.length();
- for (int i = 0; i < len; i++) {
- char c = phoneNumber.charAt(i);
- // Character.digit() supports ASCII and Unicode digits (fullwidth, Arabic-Indic, etc.)
- int digit = Character.digit(c, 10);
- if (digit != -1) {
- sb.append(digit);
- } else if (sb.length() == 0 && c == '+') {
- sb.append(c);
- } else if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
- return normalizeNumber(PhoneNumberUtils.convertKeypadLettersToDigits(phoneNumber));
- }
- }
- return sb.toString();
- }
-
public static String formatNumber(
String phoneNumber, String phoneNumberE164, String defaultCountryIso) {
- if (CompatUtils.isLollipopCompatible()) {
return PhoneNumberUtils.formatNumber(phoneNumber, phoneNumberE164, defaultCountryIso);
- } else {
- // This method was deprecated in API level 21, so it's only used on pre-L SDKs.
- return PhoneNumberUtils.formatNumber(phoneNumber);
- }
}
public static CharSequence createTtsSpannable(CharSequence phoneNumber) {
- if (CompatUtils.isMarshmallowCompatible()) {
- return PhoneNumberUtils.createTtsSpannable(phoneNumber);
- } else {
- return createTtsSpannableInternal(phoneNumber);
- }
+ return PhoneNumberUtils.createTtsSpannable(phoneNumber);
}
public static TtsSpan createTtsSpan(String phoneNumber) {
- if (CompatUtils.isMarshmallowCompatible()) {
- return PhoneNumberUtils.createTtsSpan(phoneNumber);
- } else if (CompatUtils.isLollipopCompatible()) {
- return createTtsSpanLollipop(phoneNumber);
- } else {
- return null;
- }
- }
-
- /** Copied from {@link PhoneNumberUtils#createTtsSpannable} */
- private static CharSequence createTtsSpannableInternal(CharSequence phoneNumber) {
- if (phoneNumber == null) {
- return null;
- }
- Spannable spannable = Spannable.Factory.getInstance().newSpannable(phoneNumber);
- addTtsSpanInternal(spannable, 0, spannable.length());
- return spannable;
- }
-
- /** Compat method for addTtsSpan, see {@link PhoneNumberUtils#addTtsSpan} */
- public static void addTtsSpan(Spannable s, int start, int endExclusive) {
- if (CompatUtils.isMarshmallowCompatible()) {
- PhoneNumberUtils.addTtsSpan(s, start, endExclusive);
- } else {
- addTtsSpanInternal(s, start, endExclusive);
- }
- }
-
- /** Copied from {@link PhoneNumberUtils#addTtsSpan} */
- private static void addTtsSpanInternal(Spannable s, int start, int endExclusive) {
- s.setSpan(
- createTtsSpan(s.subSequence(start, endExclusive).toString()),
- start,
- endExclusive,
- Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
-
- /** Copied from {@link PhoneNumberUtils#createTtsSpan} */
- private static TtsSpan createTtsSpanLollipop(String phoneNumberString) {
- if (phoneNumberString == null) {
- return null;
- }
-
- // Parse the phone number
- final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
- PhoneNumber phoneNumber = null;
- try {
- // Don't supply a defaultRegion so this fails for non-international numbers because
- // we don't want to TalkBalk to read a country code (e.g. +1) if it is not already
- // present
- phoneNumber = phoneNumberUtil.parse(phoneNumberString, /* defaultRegion */ null);
- } catch (NumberParseException ignored) {
- }
-
- // Build a telephone tts span
- final TtsSpan.TelephoneBuilder builder = new TtsSpan.TelephoneBuilder();
- if (phoneNumber == null) {
- // Strip separators otherwise TalkBack will be silent
- // (this behavior was observed with TalkBalk 4.0.2 from their alpha channel)
- builder.setNumberParts(splitAtNonNumerics(phoneNumberString));
- } else {
- if (phoneNumber.hasCountryCode()) {
- builder.setCountryCode(Integer.toString(phoneNumber.getCountryCode()));
- }
- builder.setNumberParts(Long.toString(phoneNumber.getNationalNumber()));
- }
- return builder.build();
- }
-
- /**
- * Split a phone number using spaces, ignoring anything that is not a digit
- *
- * @param number A {@code CharSequence} before splitting, e.g., "+20(123)-456#"
- * @return A {@code String} after splitting, e.g., "20 123 456".
- */
- private static String splitAtNonNumerics(CharSequence number) {
- StringBuilder sb = new StringBuilder(number.length());
- for (int i = 0; i < number.length(); i++) {
- sb.append(PhoneNumberUtils.isISODigit(number.charAt(i)) ? number.charAt(i) : " ");
- }
- // It is very important to remove extra spaces. At time of writing, any leading or trailing
- // spaces, or any sequence of more than one space, will confuse TalkBack and cause the TTS
- // span to be non-functional!
- return sb.toString().replaceAll(" +", " ").trim();
+ return PhoneNumberUtils.createTtsSpan(phoneNumber);
}
}
diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
index 7e4803ca5..4a16fb855 100644
--- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
+++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
@@ -27,7 +27,6 @@ import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.compat.CompatUtils;
import java.lang.reflect.InvocationTargetException;
public class TelephonyManagerCompat {
@@ -49,31 +48,6 @@ public class TelephonyManagerCompat {
private static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
/**
- * @param telephonyManager The telephony manager instance to use for method calls.
- * @return true if the current device is "voice capable".
- * <p>"Voice capable" means that this device supports circuit-switched (i.e. voice) phone
- * calls over the telephony network, and is allowed to display the in-call UI while a cellular
- * voice call is active. This will be false on "data only" devices which can't make voice
- * calls and don't support any in-call UI.
- * <p>Note: the meaning of this flag is subtly different from the
- * PackageManager.FEATURE_TELEPHONY system feature, which is available on any device with a
- * telephony radio, even if the device is data-only.
- */
- public static boolean isVoiceCapable(@Nullable TelephonyManager telephonyManager) {
- if (telephonyManager == null) {
- return false;
- }
- if (CompatUtils.isLollipopMr1Compatible()
- || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isVoiceCapable")) {
- // isVoiceCapable was unhidden in L-MR1
- return telephonyManager.isVoiceCapable();
- }
- final int phoneType = telephonyManager.getPhoneType();
- return phoneType == TelephonyManager.PHONE_TYPE_CDMA
- || phoneType == TelephonyManager.PHONE_TYPE_GSM;
- }
-
- /**
* Returns the number of phones available. Returns 1 for Single standby mode (Single SIM
* functionality) Returns 2 for Dual standby mode.(Dual SIM functionality)
*
@@ -85,31 +59,7 @@ public class TelephonyManagerCompat {
if (telephonyManager == null) {
return 1;
}
- if (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getPhoneCount")) {
- return telephonyManager.getPhoneCount();
- }
- return 1;
- }
-
- /**
- * Returns the unique device ID of a subscription, for example, the IMEI for GSM and the MEID for
- * CDMA phones. Return null if device ID is not available.
- *
- * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
- *
- * @param telephonyManager The telephony manager instance to use for method calls.
- * @param slotId of which deviceID is returned
- */
- public static String getDeviceId(@Nullable TelephonyManager telephonyManager, int slotId) {
- if (telephonyManager == null) {
- return null;
- }
- if (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.class)) {
- return telephonyManager.getDeviceId(slotId);
- }
- return null;
+ return telephonyManager.getPhoneCount();
}
/**
@@ -119,14 +69,7 @@ public class TelephonyManagerCompat {
* @return {@code true} if the device supports TTY mode, and {@code false} otherwise.
*/
public static boolean isTtyModeSupported(@Nullable TelephonyManager telephonyManager) {
- if (telephonyManager == null) {
- return false;
- }
- if (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isTtyModeSupported")) {
- return telephonyManager.isTtyModeSupported();
- }
- return false;
+ return telephonyManager != null && telephonyManager.isTtyModeSupported();
}
/**
@@ -138,15 +81,7 @@ public class TelephonyManagerCompat {
*/
public static boolean isHearingAidCompatibilitySupported(
@Nullable TelephonyManager telephonyManager) {
- if (telephonyManager == null) {
- return false;
- }
- if (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(
- TELEPHONY_MANAGER_CLASS, "isHearingAidCompatibilitySupported")) {
- return telephonyManager.isHearingAidCompatibilitySupported();
- }
- return false;
+ return telephonyManager != null && telephonyManager.isHearingAidCompatibilitySupported();
}
/**
diff --git a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
index 5687f6fbf..43eae589d 100644
--- a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
+++ b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java
@@ -15,275 +15,19 @@
*/
package com.android.contacts.common.compat.telecom;
-import android.app.Activity;
-import android.content.Intent;
-import android.net.Uri;
import android.support.annotation.Nullable;
-import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
-import android.telephony.PhoneNumberUtils;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-import com.android.dialer.compat.CompatUtils;
-import java.util.ArrayList;
-import java.util.List;
/** Compatibility class for {@link android.telecom.TelecomManager}. */
public class TelecomManagerCompat {
- public static final String TELECOM_MANAGER_CLASS = "android.telecom.TelecomManager";
-
// TODO: remove once this is available in android.telecom.Call
// b/33779976
public static final String EXTRA_LAST_EMERGENCY_CALLBACK_TIME_MILLIS =
"android.telecom.extra.LAST_EMERGENCY_CALLBACK_TIME_MILLIS";
/**
- * Places a new outgoing call to the provided address using the system telecom service with the
- * specified intent.
- *
- * @param activity {@link Activity} used to start another activity for the given intent
- * @param telecomManager the {@link TelecomManager} used to place a call, if possible
- * @param intent the intent for the call
- */
- public static void placeCall(
- @Nullable Activity activity,
- @Nullable TelecomManager telecomManager,
- @Nullable Intent intent) {
- if (activity == null || telecomManager == null || intent == null) {
- return;
- }
- if (CompatUtils.isMarshmallowCompatible()) {
- telecomManager.placeCall(intent.getData(), intent.getExtras());
- return;
- }
- activity.startActivityForResult(intent, 0);
- }
-
- /**
- * Get the URI for running an adn query.
- *
- * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
- * @param accountHandle The handle for the account to derive an adn query URI for or {@code null}
- * to return a URI which will use the default account.
- * @return The URI (with the content:// scheme) specific to the specified {@link PhoneAccount} for
- * the the content retrieve.
- */
- public static Uri getAdnUriForPhoneAccount(
- @Nullable TelecomManager telecomManager, PhoneAccountHandle accountHandle) {
- if (telecomManager != null
- && (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(
- TELECOM_MANAGER_CLASS, "getAdnUriForPhoneAccount", PhoneAccountHandle.class))) {
- return telecomManager.getAdnUriForPhoneAccount(accountHandle);
- }
- return Uri.parse("content://icc/adn");
- }
-
- /**
- * Returns a list of {@link PhoneAccountHandle}s which can be used to make and receive phone
- * calls. The returned list includes only those accounts which have been explicitly enabled by the
- * user.
- *
- * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
- * @return A list of PhoneAccountHandle objects.
- */
- public static List<PhoneAccountHandle> getCallCapablePhoneAccounts(
- @Nullable TelecomManager telecomManager) {
- if (telecomManager != null
- && (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(
- TELECOM_MANAGER_CLASS, "getCallCapablePhoneAccounts"))) {
- return telecomManager.getCallCapablePhoneAccounts();
- }
- return new ArrayList<>();
- }
-
- /**
- * Used to determine the currently selected default dialer package.
- *
- * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
- * @return package name for the default dialer package or null if no package has been selected as
- * the default dialer.
- */
- @Nullable
- public static String getDefaultDialerPackage(@Nullable TelecomManager telecomManager) {
- if (telecomManager != null && CompatUtils.isDefaultDialerCompatible()) {
- return telecomManager.getDefaultDialerPackage();
- }
- return null;
- }
-
- /**
- * Return the {@link PhoneAccount} which will be used to place outgoing calls to addresses with
- * the specified {@code uriScheme}. This PhoneAccount will always be a member of the list which is
- * returned from invoking {@link TelecomManager#getCallCapablePhoneAccounts()}. The specific
- * account returned depends on the following priorities:
- *
- * <p>1. If the user-selected default PhoneAccount supports the specified scheme, it will be
- * returned. 2. If there exists only one PhoneAccount that supports the specified scheme, it will
- * be returned.
- *
- * <p>If no PhoneAccount fits the criteria above, this method will return {@code null}.
- *
- * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
- * @param uriScheme The URI scheme.
- * @return The {@link PhoneAccountHandle} corresponding to the account to be used.
- */
- @Nullable
- public static PhoneAccountHandle getDefaultOutgoingPhoneAccount(
- @Nullable TelecomManager telecomManager, @Nullable String uriScheme) {
- if (telecomManager != null
- && (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(
- TELECOM_MANAGER_CLASS, "getDefaultOutgoingPhoneAccount", String.class))) {
- return telecomManager.getDefaultOutgoingPhoneAccount(uriScheme);
- }
- return null;
- }
-
- /**
- * Return the line 1 phone number for given phone account.
- *
- * @param telecomManager the {@link TelecomManager} to use in the event that {@link
- * TelecomManager#getLine1Number(PhoneAccountHandle)} is available
- * @param telephonyManager the {@link TelephonyManager} to use if TelecomManager#getLine1Number is
- * unavailable
- * @param phoneAccountHandle the phoneAccountHandle upon which to check the line one number
- * @return the line one number
- */
- @Nullable
- public static String getLine1Number(
- @Nullable TelecomManager telecomManager,
- @Nullable TelephonyManager telephonyManager,
- @Nullable PhoneAccountHandle phoneAccountHandle) {
- if (telecomManager != null && CompatUtils.isMarshmallowCompatible()) {
- return telecomManager.getLine1Number(phoneAccountHandle);
- }
- if (telephonyManager != null) {
- return telephonyManager.getLine1Number();
- }
- return null;
- }
-
- /**
- * Return whether a given phone number is the configured voicemail number for a particular phone
- * account.
- *
- * @param telecomManager the {@link TelecomManager} to use for checking the number.
- * @param accountHandle The handle for the account to check the voicemail number against
- * @param number The number to look up.
- */
- public static boolean isVoiceMailNumber(
- @Nullable TelecomManager telecomManager,
- @Nullable PhoneAccountHandle accountHandle,
- @Nullable String number) {
- if (telecomManager != null
- && (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(
- TELECOM_MANAGER_CLASS,
- "isVoiceMailNumber",
- PhoneAccountHandle.class,
- String.class))) {
- return telecomManager.isVoiceMailNumber(accountHandle, number);
- }
- return PhoneNumberUtils.isVoiceMailNumber(number);
- }
-
- /**
- * Return the {@link PhoneAccount} for a specified {@link PhoneAccountHandle}. Object includes
- * resources which can be used in a user interface.
- *
- * @param telecomManager the {@link TelecomManager} used for method calls, if possible.
- * @param account The {@link PhoneAccountHandle}.
- * @return The {@link PhoneAccount} object or null if it doesn't exist.
- */
- @Nullable
- public static PhoneAccount getPhoneAccount(
- @Nullable TelecomManager telecomManager, @Nullable PhoneAccountHandle accountHandle) {
- if (telecomManager != null
- && (CompatUtils.isMethodAvailable(
- TELECOM_MANAGER_CLASS, "getPhoneAccount", PhoneAccountHandle.class))) {
- return telecomManager.getPhoneAccount(accountHandle);
- }
- return null;
- }
-
- /**
- * Return the voicemail number for a given phone account.
- *
- * @param telecomManager The {@link TelecomManager} object to use for retrieving the voicemail
- * number if accountHandle is specified.
- * @param telephonyManager The {@link TelephonyManager} object to use for retrieving the voicemail
- * number if accountHandle is null.
- * @param accountHandle The handle for the phone account.
- * @return The voicemail number for the phone account, and {@code null} if one has not been
- * configured.
- */
- @Nullable
- public static String getVoiceMailNumber(
- @Nullable TelecomManager telecomManager,
- @Nullable TelephonyManager telephonyManager,
- @Nullable PhoneAccountHandle accountHandle) {
- if (telecomManager != null
- && (CompatUtils.isMethodAvailable(
- TELECOM_MANAGER_CLASS, "getVoiceMailNumber", PhoneAccountHandle.class))) {
- return telecomManager.getVoiceMailNumber(accountHandle);
- } else if (telephonyManager != null) {
- return telephonyManager.getVoiceMailNumber();
- }
- return null;
- }
-
- /**
- * Processes the specified dial string as an MMI code. MMI codes are any sequence of characters
- * entered into the dialpad that contain a "*" or "#". Some of these sequences launch special
- * behavior through handled by Telephony.
- *
- * @param telecomManager The {@link TelecomManager} object to use for handling MMI.
- * @param dialString The digits to dial.
- * @return {@code true} if the digits were processed as an MMI code, {@code false} otherwise.
- */
- public static boolean handleMmi(
- @Nullable TelecomManager telecomManager,
- @Nullable String dialString,
- @Nullable PhoneAccountHandle accountHandle) {
- if (telecomManager == null || TextUtils.isEmpty(dialString)) {
- return false;
- }
- if (CompatUtils.isMarshmallowCompatible()) {
- return telecomManager.handleMmi(dialString, accountHandle);
- }
-
- Object handleMmiResult =
- CompatUtils.invokeMethod(
- telecomManager,
- "handleMmi",
- new Class<?>[] {PhoneAccountHandle.class, String.class},
- new Object[] {accountHandle, dialString});
- if (handleMmiResult != null) {
- return (boolean) handleMmiResult;
- }
-
- return telecomManager.handleMmi(dialString);
- }
-
- /**
- * Silences the ringer if a ringing call exists. Noop if {@link TelecomManager#silenceRinger()} is
- * unavailable.
- *
- * @param telecomManager the TelecomManager to use to silence the ringer.
- */
- public static void silenceRinger(@Nullable TelecomManager telecomManager) {
- if (telecomManager != null
- && (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "silenceRinger"))) {
- telecomManager.silenceRinger();
- }
- }
-
- /**
* Returns the current SIM call manager. Apps must be prepared for this method to return null,
* indicating that there currently exists no registered SIM call manager.
*
@@ -292,9 +36,7 @@ public class TelecomManagerCompat {
*/
@Nullable
public static PhoneAccountHandle getSimCallManager(TelecomManager telecomManager) {
- if (telecomManager != null
- && (CompatUtils.isMarshmallowCompatible()
- || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "getSimCallManager"))) {
+ if (telecomManager != null) {
return telecomManager.getSimCallManager();
}
return null;
diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
index 0e7937102..88fac0256 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.QuickContactBadge;
import android.widget.TextView;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.R;
-import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
import com.android.dialer.animation.AnimUtils;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
@@ -154,11 +154,7 @@ public class CallSubjectDialog extends Activity {
.setCallSubject(subject)
.build();
- TelecomManagerCompat.placeCall(
- CallSubjectDialog.this,
- (TelecomManager) getSystemService(Context.TELECOM_SERVICE),
- intent);
-
+ getSystemService(TelecomManager.class).placeCall(intent.getData(), intent.getExtras());
mSubjectHistory.add(subject);
saveSubjectHistory(mSubjectHistory);
finish();
@@ -202,7 +198,7 @@ public class CallSubjectDialog extends Activity {
number /* number */,
null /* displayNumber */,
null /* numberLabel */,
- ContactPhotoManager.TYPE_DEFAULT,
+ LetterTileDrawable.TYPE_DEFAULT,
null /* phoneAccountHandle */);
}
@@ -356,7 +352,7 @@ public class CallSubjectDialog extends Activity {
mNumber = arguments.getString(ARG_NUMBER);
mDisplayNumber = arguments.getString(ARG_DISPLAY_NUMBER);
mNumberLabel = arguments.getString(ARG_NUMBER_LABEL);
- mContactType = arguments.getInt(ARG_CONTACT_TYPE, ContactPhotoManager.TYPE_DEFAULT);
+ mContactType = arguments.getInt(ARG_CONTACT_TYPE, LetterTileDrawable.TYPE_DEFAULT);
mPhoneAccountHandle = arguments.getParcelable(ARG_PHONE_ACCOUNT_HANDLE);
}
diff --git a/java/com/android/contacts/common/format/FormatUtils.java b/java/com/android/contacts/common/format/FormatUtils.java
deleted file mode 100644
index 727c15b83..000000000
--- a/java/com/android/contacts/common/format/FormatUtils.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.common.format;
-
-import android.database.CharArrayBuffer;
-import android.graphics.Typeface;
-import android.support.annotation.VisibleForTesting;
-import android.text.SpannableString;
-import android.text.style.StyleSpan;
-import java.util.Arrays;
-
-/** Assorted utility methods related to text formatting in Contacts. */
-public class FormatUtils {
-
- /**
- * Finds the earliest point in buffer1 at which the first part of buffer2 matches. For example,
- * overlapPoint("abcd", "cdef") == 2.
- */
- public static int overlapPoint(CharArrayBuffer buffer1, CharArrayBuffer buffer2) {
- if (buffer1 == null || buffer2 == null) {
- return -1;
- }
- return overlapPoint(
- Arrays.copyOfRange(buffer1.data, 0, buffer1.sizeCopied),
- Arrays.copyOfRange(buffer2.data, 0, buffer2.sizeCopied));
- }
-
- /**
- * Finds the earliest point in string1 at which the first part of string2 matches. For example,
- * overlapPoint("abcd", "cdef") == 2.
- */
- @VisibleForTesting
- public static int overlapPoint(String string1, String string2) {
- if (string1 == null || string2 == null) {
- return -1;
- }
- return overlapPoint(string1.toCharArray(), string2.toCharArray());
- }
-
- /**
- * Finds the earliest point in array1 at which the first part of array2 matches. For example,
- * overlapPoint("abcd", "cdef") == 2.
- */
- public static int overlapPoint(char[] array1, char[] array2) {
- if (array1 == null || array2 == null) {
- return -1;
- }
- int count1 = array1.length;
- int count2 = array2.length;
-
- // Ignore matching tails of the two arrays.
- while (count1 > 0 && count2 > 0 && array1[count1 - 1] == array2[count2 - 1]) {
- count1--;
- count2--;
- }
-
- int size = count2;
- for (int i = 0; i < count1; i++) {
- if (i + size > count1) {
- size = count1 - i;
- }
- int j;
- for (j = 0; j < size; j++) {
- if (array1[i + j] != array2[j]) {
- break;
- }
- }
- if (j == size) {
- return i;
- }
- }
-
- return -1;
- }
-
- /**
- * Applies the given style to a range of the input CharSequence.
- *
- * @param style The style to apply (see the style constants in {@link Typeface}).
- * @param input The CharSequence to style.
- * @param start Starting index of the range to style (will be clamped to be a minimum of 0).
- * @param end Ending index of the range to style (will be clamped to a maximum of the input
- * length).
- * @param flags Bitmask for configuring behavior of the span. See {@link android.text.Spanned}.
- * @return The styled CharSequence.
- */
- public static CharSequence applyStyleToSpan(
- int style, CharSequence input, int start, int end, int flags) {
- // Enforce bounds of the char sequence.
- start = Math.max(0, start);
- end = Math.min(input.length(), end);
- SpannableString text = new SpannableString(input);
- text.setSpan(new StyleSpan(style), start, end, flags);
- return text;
- }
-
- @VisibleForTesting
- public static void copyToCharArrayBuffer(String text, CharArrayBuffer buffer) {
- if (text != null) {
- char[] data = buffer.data;
- if (data == null || data.length < text.length()) {
- buffer.data = text.toCharArray();
- } else {
- text.getChars(0, text.length(), data, 0);
- }
- buffer.sizeCopied = text.length();
- } else {
- buffer.sizeCopied = 0;
- }
- }
-
- /** Returns a String that represents the content of the given {@link CharArrayBuffer}. */
- @VisibleForTesting
- public static String charArrayBufferToString(CharArrayBuffer buffer) {
- return new String(buffer.data, 0, buffer.sizeCopied);
- }
-
- /**
- * Finds the index of the first word that starts with the given prefix.
- *
- * <p>If not found, returns -1.
- *
- * @param text the text in which to search for the prefix
- * @param prefix the text to find, in upper case letters
- */
- public static int indexOfWordPrefix(CharSequence text, String prefix) {
- if (prefix == null || text == null) {
- return -1;
- }
-
- int textLength = text.length();
- int prefixLength = prefix.length();
-
- if (prefixLength == 0 || textLength < prefixLength) {
- return -1;
- }
-
- int i = 0;
- while (i < textLength) {
- // Skip non-word characters
- while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) {
- i++;
- }
-
- if (i + prefixLength > textLength) {
- return -1;
- }
-
- // Compare the prefixes
- int j;
- for (j = 0; j < prefixLength; j++) {
- if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) {
- break;
- }
- }
- if (j == prefixLength) {
- return i;
- }
-
- // Skip this word
- while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) {
- i++;
- }
- }
-
- return -1;
- }
-}
diff --git a/java/com/android/contacts/common/format/TextHighlighter.java b/java/com/android/contacts/common/format/TextHighlighter.java
index 30c03fdf3..f397f0429 100644
--- a/java/com/android/contacts/common/format/TextHighlighter.java
+++ b/java/com/android/contacts/common/format/TextHighlighter.java
@@ -24,8 +24,6 @@ import android.widget.TextView;
/** Highlights the text in a text field. */
public class TextHighlighter {
- private static final boolean DEBUG = false;
- private final String TAG = TextHighlighter.class.getSimpleName();
private int mTextStyle;
private CharacterStyle mTextStyleSpan;
@@ -81,7 +79,7 @@ public class TextHighlighter {
}
final String trimmedPrefix = prefix.substring(prefixStart);
- int index = FormatUtils.indexOfWordPrefix(text, trimmedPrefix);
+ int index = indexOfWordPrefix(text, trimmedPrefix);
if (index != -1) {
final SpannableString result = new SpannableString(text);
result.setSpan(mTextStyleSpan, index, index + trimmedPrefix.length(), 0 /* flags */);
@@ -90,4 +88,55 @@ public class TextHighlighter {
return text;
}
}
+
+ /**
+ * Finds the index of the first word that starts with the given prefix.
+ *
+ * <p>If not found, returns -1.
+ *
+ * @param text the text in which to search for the prefix
+ * @param prefix the text to find, in upper case letters
+ */
+ public static int indexOfWordPrefix(CharSequence text, String prefix) {
+ if (prefix == null || text == null) {
+ return -1;
+ }
+
+ int textLength = text.length();
+ int prefixLength = prefix.length();
+
+ if (prefixLength == 0 || textLength < prefixLength) {
+ return -1;
+ }
+
+ int i = 0;
+ while (i < textLength) {
+ // Skip non-word characters
+ while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) {
+ i++;
+ }
+
+ if (i + prefixLength > textLength) {
+ return -1;
+ }
+
+ // Compare the prefixes
+ int j;
+ for (j = 0; j < prefixLength; j++) {
+ if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) {
+ break;
+ }
+ }
+ if (j == prefixLength) {
+ return i;
+ }
+
+ // Skip this word
+ while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) {
+ i++;
+ }
+ }
+
+ return -1;
+ }
}
diff --git a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java
deleted file mode 100644
index 293d9d5ad..000000000
--- a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.common.format.testing;
-
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.Html;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.text.TextUtils;
-import android.text.style.StyleSpan;
-import android.widget.TextView;
-import junit.framework.Assert;
-
-/** Utility class to check the value of spanned text in text views. */
-@SmallTest
-public class SpannedTestUtils {
-
- /**
- * Checks that the text contained in the text view matches the given HTML text.
- *
- * @param expectedHtmlText the expected text to be in the text view
- * @param textView the text view from which to get the text
- */
- public static void checkHtmlText(String expectedHtmlText, TextView textView) {
- String actualHtmlText = Html.toHtml((Spanned) textView.getText());
- if (TextUtils.isEmpty(expectedHtmlText)) {
- // If the text is empty, it does not add the <p></p> bits to it.
- Assert.assertEquals("", actualHtmlText);
- } else {
- Assert.assertEquals("<p dir=ltr>" + expectedHtmlText + "</p>\n", actualHtmlText);
- }
- }
-
- /**
- * Assert span exists in the correct location.
- *
- * @param seq The spannable string to check.
- * @param start The starting index.
- * @param end The ending index.
- */
- public static void assertPrefixSpan(CharSequence seq, int start, int end) {
- Assert.assertTrue(seq instanceof Spanned);
- Spanned spannable = (Spanned) seq;
-
- if (start > 0) {
- Assert.assertEquals(0, getNumForegroundColorSpansBetween(spannable, 0, start - 1));
- }
- Assert.assertEquals(1, getNumForegroundColorSpansBetween(spannable, start, end));
- Assert.assertEquals(
- 0, getNumForegroundColorSpansBetween(spannable, end + 1, spannable.length() - 1));
- }
-
- private static int getNumForegroundColorSpansBetween(Spanned value, int start, int end) {
- return value.getSpans(start, end, StyleSpan.class).length;
- }
-
- /**
- * Asserts that the given character sequence is not a Spanned object and text is correct.
- *
- * @param seq The sequence to check.
- * @param expected The expected text.
- */
- public static void assertNotSpanned(CharSequence seq, String expected) {
- Assert.assertFalse(seq instanceof Spanned);
- Assert.assertEquals(expected, seq);
- }
-
- public static int getNextTransition(SpannableString seq, int start) {
- return seq.nextSpanTransition(start, seq.length(), StyleSpan.class);
- }
-}
diff --git a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
index 88522c44b..5e77b696b 100644
--- a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
+++ b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java
@@ -30,8 +30,10 @@ import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.support.annotation.IntDef;
import android.support.annotation.Nullable;
+import android.telecom.TelecomManager;
import android.text.TextUtils;
import com.android.contacts.common.R;
+import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
import com.android.dialer.common.Assert;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -406,4 +408,30 @@ public class LetterTileDrawable extends Drawable {
}
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 18bbae382..064214ef2 100644
--- a/java/com/android/contacts/common/list/ContactEntryListAdapter.java
+++ b/java/com/android/contacts/common/list/ContactEntryListAdapter.java
@@ -26,7 +26,6 @@ import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Directory;
import android.text.TextUtils;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -39,7 +38,10 @@ import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.R;
import com.android.contacts.common.compat.DirectoryCompat;
import com.android.contacts.common.util.SearchUtil;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
import java.util.HashSet;
/**
@@ -354,7 +356,7 @@ public abstract class ContactEntryListAdapter extends IndexerListAdapter {
if (cursor.getCount() == 0) {
// Directory table must have at least local directory, without which this adapter will
// enter very weird state.
- Log.e(
+ LogUtil.e(
TAG,
"Directory search loader returned an empty cursor, which implies we have "
+ "no directory entries.",
@@ -678,6 +680,9 @@ public abstract class ContactEntryListAdapter extends IndexerListAdapter {
// 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 278175c0b..146986f75 100644
--- a/java/com/android/contacts/common/list/ContactEntryListFragment.java
+++ b/java/com/android/contacts/common/list/ContactEntryListFragment.java
@@ -555,7 +555,6 @@ public abstract class ContactEntryListFragment<T extends ContactEntryListAdapter
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 7a3194720..5a2749178 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;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.SearchSnippets;
import android.support.annotation.IntDef;
+import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
-import android.support.v4.graphics.drawable.DrawableCompat;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
@@ -55,7 +55,6 @@ import com.android.contacts.common.format.TextHighlighter;
import com.android.contacts.common.list.PhoneNumberListAdapter.Listener;
import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.contacts.common.util.SearchUtil;
-import com.android.dialer.compat.CompatUtils;
import com.android.dialer.util.ViewUtil;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -81,13 +80,15 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
/** IntDef for indices of ViewPager tabs. */
@Retention(RetentionPolicy.SOURCE)
- @IntDef({NONE, VIDEO, CALL_AND_SHARE})
+ @IntDef({NONE, VIDEO, LIGHTBRINGER, CALL_AND_SHARE})
public @interface CallToAction {}
public static final int NONE = 0;
public static final int VIDEO = 1;
- public static final int CALL_AND_SHARE = 2;
+ public static final int LIGHTBRINGER = 2;
+ public static final int CALL_AND_SHARE = 3;
+ private final PhotoPosition mPhotoPosition = getDefaultPhotoPosition();
private static final Pattern SPLIT_PATTERN =
Pattern.compile("([\\w-\\.]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})|[\\w]+");
static final char SNIPPET_START_MATCH = '[';
@@ -106,7 +107,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
private int mNameTextViewTextSize;
private int mHeaderWidth;
private Drawable mActivatedBackgroundDrawable;
- private int mCallToActionSize = 32;
+ private int mCallToActionSize = 48;
private int mCallToActionMargin = 16;
// Set in onLayout. Represent left and right position of the View on the screen.
private int mLeftOffset;
@@ -122,10 +123,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
private String mHighlightedPrefix;
/** Indicates whether the view should leave room for the "video call" icon. */
private boolean mSupportVideoCall;
- /** Indicates whether the view should leave room for the "call and share" icon. */
- private boolean mSupportCallAndShare;
- private PhotoPosition mPhotoPosition = getDefaultPhotoPosition(false /* normal/non opposite */);
// Header layout data
private TextView mHeaderTextView;
private boolean mIsSectionHeaderEnabled;
@@ -139,7 +137,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
private TextView mSnippetView;
private TextView mStatusView;
private ImageView mPresenceIcon;
- private ImageView mCallToAction;
+ @NonNull private final ImageView mCallToActionView;
private ImageView mWorkProfileIcon;
private ColorStateList mSecondaryTextColor;
private int mDefaultPhotoViewSize = 0;
@@ -181,23 +179,14 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
private Rect mBoundsWithoutHeader = new Rect();
private CharSequence mUnknownNameText;
- public ContactListItemView(Context context) {
- super(context);
+ private String mPhoneNumber;
+ private int mPosition = -1;
+ private @CallToAction int mCallToAction = NONE;
- mTextHighlighter = new TextHighlighter(Typeface.BOLD);
- mNameHighlightSequence = new ArrayList<>();
- mNumberHighlightSequence = new ArrayList<>();
- }
-
- public ContactListItemView(
- Context context,
- AttributeSet attrs,
- boolean supportVideoCallIcon,
- boolean supportCallAndShare) {
+ public ContactListItemView(Context context, AttributeSet attrs, boolean supportVideoCallIcon) {
this(context, attrs);
mSupportVideoCall = supportVideoCallIcon;
- mSupportCallAndShare = supportCallAndShare;
}
public ContactListItemView(Context context, AttributeSet attrs) {
@@ -284,19 +273,20 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mNameHighlightSequence = new ArrayList<>();
mNumberHighlightSequence = new ArrayList<>();
+ mCallToActionView = new ImageView(getContext());
+ mCallToActionView.setId(R.id.call_to_action);
+ mCallToActionView.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize));
+ mCallToActionView.setScaleType(ScaleType.CENTER);
+ mCallToActionView.setImageTintList(
+ ContextCompat.getColorStateList(getContext(), R.color.search_video_call_icon_tint));
+ addView(mCallToActionView);
+
setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
}
- public static PhotoPosition getDefaultPhotoPosition(boolean opposite) {
- final Locale locale = Locale.getDefault();
- final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale);
- switch (layoutDirection) {
- case View.LAYOUT_DIRECTION_RTL:
- return (opposite ? PhotoPosition.LEFT : PhotoPosition.RIGHT);
- case View.LAYOUT_DIRECTION_LTR:
- default:
- return (opposite ? PhotoPosition.RIGHT : PhotoPosition.LEFT);
- }
+ public static PhotoPosition getDefaultPhotoPosition() {
+ int layoutDirection = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault());
+ return layoutDirection == View.LAYOUT_DIRECTION_RTL ? PhotoPosition.RIGHT : PhotoPosition.LEFT;
}
/**
@@ -333,35 +323,47 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
* @param position The position in the adapter of the call to action.
*/
public void setCallToAction(@CallToAction int action, Listener listener, int position) {
- int drawable;
+ mCallToAction = action;
+ mPosition = position;
+
+ Drawable drawable;
int description;
OnClickListener onClickListener;
- if (action == CALL_AND_SHARE && mSupportCallAndShare) {
- drawable = R.drawable.ic_call_and_share;
- description = R.string.description_search_video_call;
+ if (action == CALL_AND_SHARE) {
+ drawable = getContext().getResources().getDrawable(R.drawable.ic_phone_attach);
+ drawable.setAutoMirrored(true);
+ description = R.string.description_search_call_and_share;
onClickListener = v -> listener.onCallAndShareIconClicked(position);
} else if (action == VIDEO && mSupportVideoCall) {
- drawable = R.drawable.ic_search_video_call;
- description = R.string.description_search_call_and_share;
+ drawable =
+ getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+ drawable.setAutoMirrored(true);
+ description = R.string.description_search_video_call;
onClickListener = v -> listener.onVideoCallIconClicked(position);
+ } else if (action == LIGHTBRINGER) {
+ drawable =
+ getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
+ drawable.setAutoMirrored(true);
+ description = R.string.description_search_video_call;
+ onClickListener = v -> listener.onLightbringerIconClicked(position);
} else {
- if (mCallToAction != null) {
- mCallToAction.setVisibility(View.GONE);
- mCallToAction.setOnClickListener(null);
- }
+ mCallToActionView.setVisibility(View.GONE);
+ mCallToActionView.setOnClickListener(null);
return;
}
- if (mCallToAction == null) {
- mCallToAction = new ImageView(getContext());
- mCallToAction.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize));
- mCallToAction.setScaleType(ScaleType.CENTER);
- addView(mCallToAction);
- }
- mCallToAction.setContentDescription(getContext().getString(description));
- mCallToAction.setOnClickListener(onClickListener);
- mCallToAction.setImageResource(drawable);
- mCallToAction.setVisibility(View.VISIBLE);
+ mCallToActionView.setContentDescription(getContext().getString(description));
+ mCallToActionView.setOnClickListener(onClickListener);
+ mCallToActionView.setImageDrawable(drawable);
+ mCallToActionView.setVisibility(View.VISIBLE);
+ }
+
+ public @CallToAction int getCallToAction() {
+ return mCallToAction;
+ }
+
+ public int getPosition() {
+ return mPosition;
}
/**
@@ -376,18 +378,6 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mSupportVideoCall = supportVideoCall;
}
- /**
- * Sets whether the view supports a call and share icon. This is independent of whether the view
- * is actually showing an icon. Support for the icon ensures that the layout leaves space for it,
- * should it be shown.
- *
- * @param supportCallAndShare {@code true} if the call and share icon is supported, {@code false}
- * otherwise.
- */
- public void setSupportCallAndShareIcon(boolean supportCallAndShare) {
- mSupportCallAndShare = supportCallAndShare;
- }
-
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// We will match parent's width and wrap content vertically, but make sure
@@ -423,9 +413,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
effectiveWidth -= mHeaderWidth + mGapBetweenImageAndText;
}
- if (mSupportVideoCall || mSupportCallAndShare) {
- effectiveWidth -= (mCallToActionSize + mCallToActionMargin);
- }
+ effectiveWidth -= (mCallToActionSize + mCallToActionMargin);
// Go over all visible text views and measure actual width of each of them.
// Also calculate their heights to get the total height for this entire view.
@@ -496,11 +484,9 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight();
}
- if ((mSupportVideoCall || mSupportCallAndShare) && isVisible(mCallToAction)) {
- mCallToAction.measure(
- MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
- MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
- }
+ mCallToActionView.measure(
+ MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
+ MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
if (isVisible(mWorkProfileIcon)) {
mWorkProfileIcon.measure(
@@ -629,34 +615,30 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
leftBound += mTextIndent;
}
- if (mSupportVideoCall || mSupportCallAndShare) {
- // Place the call to action at the end of the list (e.g. take into account RTL mode).
- if (isVisible(mCallToAction)) {
- // Center the icon vertically
- final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2;
+ // Place the call to action at the end of the list (e.g. take into account RTL mode).
+ // Center the icon vertically
+ final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2;
- if (!isLayoutRtl) {
- // When photo is on left, icon is placed on the right edge.
- mCallToAction.layout(
- rightBound - mCallToActionSize,
- callToActionTop,
- rightBound,
- callToActionTop + mCallToActionSize);
- } else {
- // When photo is on right, icon is placed on the left edge.
- mCallToAction.layout(
- leftBound,
- callToActionTop,
- leftBound + mCallToActionSize,
- callToActionTop + mCallToActionSize);
- }
- }
+ if (!isLayoutRtl) {
+ // When photo is on left, icon is placed on the right edge.
+ mCallToActionView.layout(
+ rightBound - mCallToActionSize,
+ callToActionTop,
+ rightBound,
+ callToActionTop + mCallToActionSize);
+ } else {
+ // When photo is on right, icon is placed on the left edge.
+ mCallToActionView.layout(
+ leftBound,
+ callToActionTop,
+ leftBound + mCallToActionSize,
+ callToActionTop + mCallToActionSize);
+ }
- if (mPhotoPosition == PhotoPosition.LEFT) {
- rightBound -= (mCallToActionSize + mCallToActionMargin);
- } else {
- leftBound += mCallToActionSize + mCallToActionMargin;
- }
+ if (mPhotoPosition == PhotoPosition.LEFT) {
+ rightBound -= (mCallToActionSize + mCallToActionMargin);
+ } else {
+ leftBound += mCallToActionSize + mCallToActionMargin;
}
// Center text vertically, then apply the top offset.
@@ -901,9 +883,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
}
if (mQuickContact == null) {
mQuickContact = new QuickContactBadge(getContext());
- if (CompatUtils.isLollipopCompatible()) {
- mQuickContact.setOverlay(null);
- }
+ mQuickContact.setOverlay(null);
mQuickContact.setLayoutParams(getDefaultPhotoLayoutParams());
if (mNameTextView != null) {
mQuickContact.setContentDescription(
@@ -1008,9 +988,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mNameTextView.setGravity(Gravity.CENTER_VERTICAL);
mNameTextView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
mNameTextView.setId(R.id.cliv_name_textview);
- if (CompatUtils.isLollipopCompatible()) {
- mNameTextView.setElegantTextHeight(false);
- }
+ mNameTextView.setElegantTextHeight(false);
addView(mNameTextView);
}
return mNameTextView;
@@ -1056,6 +1034,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
* exists.
*/
public void setPhoneNumber(String text) {
+ mPhoneNumber = text;
if (text == null) {
if (mDataView != null) {
mDataView.setVisibility(View.GONE);
@@ -1086,6 +1065,10 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
}
}
+ public String getPhoneNumber() {
+ return mPhoneNumber;
+ }
+
private void setMarqueeText(TextView textView, CharSequence text) {
if (getTextEllipsis() == TruncateAt.MARQUEE) {
// To show MARQUEE correctly (with END effect during non-active state), we need
@@ -1109,9 +1092,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
mDataView.setActivated(isActivated());
mDataView.setId(R.id.cliv_data_view);
- if (CompatUtils.isLollipopCompatible()) {
- mDataView.setElegantTextHeight(false);
- }
+ mDataView.setElegantTextHeight(false);
addView(mDataView);
}
return mDataView;
@@ -1469,28 +1450,17 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
forceLayout();
}
- public void setPhotoPosition(PhotoPosition photoPosition) {
- mPhotoPosition = photoPosition;
- }
-
/**
* Set drawable resources directly for the drawable resource of the photo view.
*
- * @param drawableId Id of drawable resource.
+ * @param drawable A drawable resource.
*/
- public void setDrawableResource(int drawableId) {
+ public void setDrawable(Drawable drawable) {
ImageView photo = getPhotoView();
photo.setScaleType(ImageView.ScaleType.CENTER);
- final Drawable drawable = ContextCompat.getDrawable(getContext(), drawableId);
- final int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
- if (CompatUtils.isLollipopCompatible()) {
- photo.setImageDrawable(drawable);
- photo.setImageTintList(ColorStateList.valueOf(iconColor));
- } else {
- final Drawable drawableWrapper = DrawableCompat.wrap(drawable).mutate();
- DrawableCompat.setTint(drawableWrapper, iconColor);
- photo.setImageDrawable(drawableWrapper);
- }
+ int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color);
+ photo.setImageDrawable(drawable);
+ photo.setImageTintList(ColorStateList.valueOf(iconColor));
}
@Override
diff --git a/java/com/android/contacts/common/list/ContactTileView.java b/java/com/android/contacts/common/list/ContactTileView.java
index 9273b0583..15582d684 100644
--- a/java/com/android/contacts/common/list/ContactTileView.java
+++ b/java/com/android/contacts/common/list/ContactTileView.java
@@ -19,7 +19,6 @@ import android.content.Context;
import android.graphics.Rect;
import android.net.Uri;
import android.util.AttributeSet;
-import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -28,6 +27,9 @@ import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.MoreContactUtils;
import com.android.contacts.common.R;
+import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.callintent.CallSpecificAppData;
+import com.android.dialer.common.LogUtil;
/** A ContactTile displays a contact's picture and name */
public abstract class ContactTileView extends FrameLayout {
@@ -60,8 +62,14 @@ public abstract class ContactTileView extends FrameLayout {
if (mListener == null) {
return;
}
+ CallSpecificAppData callSpecificAppData =
+ CallSpecificAppData.newBuilder()
+ .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
+ .build();
mListener.onContactSelected(
- getLookupUri(), MoreContactUtils.getTargetRectFromView(ContactTileView.this));
+ getLookupUri(),
+ MoreContactUtils.getTargetRectFromView(ContactTileView.this),
+ callSpecificAppData);
}
};
}
@@ -97,7 +105,7 @@ public abstract class ContactTileView extends FrameLayout {
}
} else {
- Log.w(TAG, "contactPhotoManager not set");
+ LogUtil.w(TAG, "contactPhotoManager not set");
}
} else {
setVisibility(View.INVISIBLE);
@@ -163,9 +171,10 @@ public abstract class ContactTileView extends FrameLayout {
public interface Listener {
/** Notification that the contact was selected; no specific action is dictated. */
- void onContactSelected(Uri contactLookupUri, Rect viewRect);
+ void onContactSelected(
+ Uri contactLookupUri, Rect viewRect, CallSpecificAppData callSpecificAppData);
/** Notification that the specified number is to be called. */
- void onCallNumberDirectly(String phoneNumber);
+ void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData);
}
}
diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
index 9a490d78a..65e6f2da2 100644
--- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
+++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
@@ -30,7 +30,6 @@ import android.provider.ContactsContract.Directory;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
-import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.R;
@@ -38,15 +37,17 @@ import com.android.contacts.common.compat.CallableCompat;
import com.android.contacts.common.compat.DirectoryCompat;
import com.android.contacts.common.compat.PhoneCompat;
import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
import com.android.contacts.common.list.ContactListItemView.CallToAction;
import com.android.contacts.common.preference.ContactsPreferences;
import com.android.contacts.common.util.Constants;
-import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.enrichedcall.EnrichedCallManager;
+import com.android.dialer.lightbringer.LightbringerComponent;
import com.android.dialer.location.GeoUtil;
import com.android.dialer.util.CallUtil;
import java.util.ArrayList;
@@ -68,16 +69,15 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
// A list of extended directories to add to the directories from the database
private final List<DirectoryPartition> mExtendedDirectories;
private final CharSequence mUnknownNameText;
- private final boolean mCallAndShareEnabled;
+ private final boolean mIsPresenceEnabled;
+ protected final boolean mIsImsVideoEnabled;
+
// Extended directories will have ID's that are higher than any of the id's from the database,
// so that we can identify them and set them up properly. If no extended directories
// exist, this will be Long.MAX_VALUE
private long mFirstExtendedDirectoryId = Long.MAX_VALUE;
- private ContactListItemView.PhotoPosition mPhotoPosition;
private boolean mUseCallableUri;
private Listener mListener;
- private boolean mIsVideoEnabled;
- private boolean mIsPresenceEnabled;
public PhoneNumberListAdapter(Context context) {
super(context);
@@ -88,11 +88,8 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
PhoneDirectoryExtenderAccessor.get(mContext).getExtendedDirectories(mContext);
int videoCapabilities = CallUtil.getVideoCallingAvailability(context);
- mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0;
+ mIsImsVideoEnabled = CallUtil.isVideoEnabled(context);
mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0;
-
- // TODO
- mCallAndShareEnabled = true;
}
@Override
@@ -249,10 +246,10 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null;
}
- public CallComposerContact getCallComposerContact(int position) {
+ public DialerContact getDialerContact(int position) {
Cursor cursor = (Cursor) getItem(position);
if (cursor == null) {
- LogUtil.e("PhoneNumberListAdapter.getCallComposerContact", "cursor was null.");
+ LogUtil.e("PhoneNumberListAdapter.getDialerContact", "cursor was null.");
return null;
}
@@ -263,11 +260,11 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
Contacts.getLookupUri(
cursor.getLong(PhoneQuery.CONTACT_ID), cursor.getString(PhoneQuery.LOOKUP_KEY));
- CallComposerContact.Builder contact = CallComposerContact.newBuilder();
+ DialerContact.Builder contact = DialerContact.newBuilder();
contact
.setNumber(number)
.setPhotoId(cursor.getLong(PhoneQuery.PHOTO_ID))
- .setContactType(ContactPhotoManager.TYPE_DEFAULT)
+ .setContactType(LetterTileDrawable.TYPE_DEFAULT)
.setNameOrNumber(displayName)
.setNumberLabel(
Phone.getTypeLabel(
@@ -297,7 +294,6 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
ContactListItemView view = super.newView(context, partition, cursor, position, parent);
view.setUnknownNameText(mUnknownNameText);
view.setQuickContactEnabled(isQuickContactEnabled());
- view.setPhotoPosition(mPhotoPosition);
return view;
}
@@ -401,13 +397,17 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE);
boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
- boolean isVideoIconShown = mIsVideoEnabled && (!mIsPresenceEnabled || isPresent);
+ boolean isVideoIconShown = mIsImsVideoEnabled && (!mIsPresenceEnabled || isPresent);
if (isVideoIconShown) {
action = ContactListItemView.VIDEO;
}
}
- if (isCallAndShareEnabled() && action == ContactListItemView.NONE && number != null) {
+ if (LightbringerComponent.get(mContext).getLightbringer().isReachable(mContext, number)) {
+ action = ContactListItemView.LIGHTBRINGER;
+ }
+
+ if (action == ContactListItemView.NONE) {
EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
EnrichedCallCapabilities capabilities = manager.getCapabilities(number);
if (capabilities != null && capabilities.supportsCallComposer()) {
@@ -481,14 +481,6 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
}
}
- public ContactListItemView.PhotoPosition getPhotoPosition() {
- return mPhotoPosition;
- }
-
- public void setPhotoPosition(ContactListItemView.PhotoPosition photoPosition) {
- mPhotoPosition = photoPosition;
- }
-
public void setUseCallableUri(boolean useCallableUri) {
mUseCallableUri = useCallableUri;
}
@@ -570,14 +562,12 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
mListener = listener;
}
- public boolean isCallAndShareEnabled() {
- return mCallAndShareEnabled;
- }
-
public interface Listener {
void onVideoCallIconClicked(int position);
+ void onLightbringerIconClicked(int position);
+
void onCallAndShareIconClicked(int position);
}
@@ -642,18 +632,14 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
static {
final List<String> projectionList =
new ArrayList<>(Arrays.asList(PROJECTION_PRIMARY_INTERNAL));
- if (CompatUtils.isMarshmallowCompatible()) {
- projectionList.add(Phone.CARRIER_PRESENCE); // 9
- }
+ projectionList.add(Phone.CARRIER_PRESENCE); // 9
PROJECTION_PRIMARY = projectionList.toArray(new String[projectionList.size()]);
}
static {
final List<String> projectionList =
new ArrayList<>(Arrays.asList(PROJECTION_ALTERNATIVE_INTERNAL));
- if (CompatUtils.isMarshmallowCompatible()) {
- projectionList.add(Phone.CARRIER_PRESENCE); // 9
- }
+ projectionList.add(Phone.CARRIER_PRESENCE); // 9
PROJECTION_ALTERNATIVE = projectionList.toArray(new String[projectionList.size()]);
}
}
diff --git a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
index 8f25f82a5..79e670010 100644
--- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
+++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
@@ -29,15 +29,18 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import com.android.contacts.common.R;
+import com.android.contacts.common.list.PhoneNumberListAdapter.Listener;
import com.android.contacts.common.util.AccountFilterUtil;
-import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallInitiationType.Type;
import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.enrichedcall.EnrichedCallManager;
+import com.android.dialer.lightbringer.LightbringerComponent;
+import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.protos.ProtoParsers;
import java.util.Set;
@@ -61,9 +64,6 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
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 class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
public PhoneNumberPickerFragment() {
setQuickContactEnabled(false);
setPhotoLoaderEnabled(true);
- setSectionHeaderDisplayEnabled(true);
+ setSectionHeaderDisplayEnabled(false);
setDirectorySearchMode(DirectoryListLoader.SEARCH_MODE_NONE);
// Show nothing instead of letting caller Activity show something.
@@ -85,17 +85,32 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
*/
@Override
public void onVideoCallIconClicked(int position) {
+ Logger.get(getContext()).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_SEARCH);
callNumber(position, true /* isVideoCall */);
}
@Override
+ public void onLightbringerIconClicked(int position) {
+ String phoneNumber = getPhoneNumber(position);
+ Intent intent =
+ LightbringerComponent.get(getContext())
+ .getLightbringer()
+ .getIntent(getContext(), phoneNumber);
+ // DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER
+ // Cannot reference because of cyclic dependencies
+ Logger.get(getContext())
+ .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_SEARCH);
+ int dialactsActivityRequestCode = 3;
+ getActivity().startActivityForResult(intent, dialactsActivityRequestCode);
+ }
+
+ @Override
public void onCallAndShareIconClicked(int position) {
// Required because of cyclic dependencies of everything depending on contacts/common.
String componentName = "com.android.dialer.callcomposer.CallComposerActivity";
Intent intent = new Intent();
intent.setComponent(new ComponentName(getContext(), componentName));
- CallComposerContact contact =
- ((PhoneNumberListAdapter) getAdapter()).getCallComposerContact(position);
+ DialerContact contact = ((PhoneNumberListAdapter) getAdapter()).getDialerContact(position);
ProtoParsers.put(intent, "CALL_COMPOSER_CONTACT", contact);
startActivity(intent);
}
@@ -320,7 +335,27 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
@Override
public void onCapabilitiesUpdated() {
if (getAdapter() != null) {
- getAdapter().notifyDataSetChanged();
+ EnrichedCallManager manager =
+ EnrichedCallComponent.get(getContext()).getEnrichedCallManager();
+ Listener listener = ((PhoneNumberListAdapter) getAdapter()).getListener();
+
+ for (int i = 0; i < getListView().getChildCount(); i++) {
+ if (!(getListView().getChildAt(i) instanceof ContactListItemView)) {
+ continue;
+ }
+
+ // Since call and share is the lowest priority call to action, if any others are set,
+ // do not reset the call to action. Also do not set the call and share call to action if
+ // the number doesn't support call composer.
+ ContactListItemView view = (ContactListItemView) getListView().getChildAt(i);
+ if (view.getCallToAction() != ContactListItemView.NONE
+ || view.getPhoneNumber() == null
+ || manager.getCapabilities(view.getPhoneNumber()) == null
+ || !manager.getCapabilities(view.getPhoneNumber()).supportsCallComposer()) {
+ continue;
+ }
+ view.setCallToAction(ContactListItemView.CALL_AND_SHARE, listener, view.getPosition());
+ }
}
}
@@ -360,12 +395,6 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
if (!isSearchMode() && mFilter != null) {
adapter.setFilter(mFilter);
}
-
- setPhotoPosition(adapter);
- }
-
- protected void setPhotoPosition(ContactEntryListAdapter adapter) {
- ((PhoneNumberListAdapter) adapter).setPhotoPosition(mPhotoPosition);
}
@Override
@@ -389,15 +418,6 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
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 34f623ef4..1e6cf1354 100644
--- a/java/com/android/contacts/common/list/ViewPagerTabs.java
+++ b/java/com/android/contacts/common/list/ViewPagerTabs.java
@@ -33,7 +33,6 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.android.contacts.common.R;
-import com.android.dialer.compat.CompatUtils;
/**
* Lightweight implementation of ViewPager tabs. This looks similar to traditional actionBar tabs,
@@ -43,7 +42,13 @@ import com.android.dialer.compat.CompatUtils;
*/
public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnPageChangeListener {
- private static final ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER;
+ private static final ViewOutlineProvider VIEW_BOUNDS_OUTLINE_PROVIDER =
+ new ViewOutlineProvider() {
+ @Override
+ public void getOutline(View view, Outline outline) {
+ outline.setRect(0, 0, view.getWidth(), view.getHeight());
+ }
+ };
private static final int TAB_SIDE_PADDING_IN_DPS = 10;
// TODO: This should use <declare-styleable> in the future
private static final int[] ATTRS =
@@ -54,20 +59,6 @@ public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnP
android.R.attr.textAllCaps
};
- static {
- if (CompatUtils.isLollipopCompatible()) {
- VIEW_BOUNDS_OUTLINE_PROVIDER =
- new ViewOutlineProvider() {
- @Override
- public void getOutline(View view, Outline outline) {
- outline.setRect(0, 0, view.getWidth(), view.getHeight());
- }
- };
- } else {
- VIEW_BOUNDS_OUTLINE_PROVIDER = null;
- }
- }
-
/**
* Linearlayout that will contain the TextViews serving as tabs. This is the only child of the
* parent HorizontalScrollView.
@@ -111,10 +102,8 @@ public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnP
new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
a.recycle();
- if (CompatUtils.isLollipopCompatible()) {
- // enable shadow casting from view bounds
- setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER);
- }
+ // enable shadow casting from view bounds
+ setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER);
}
public void setViewPager(ViewPager viewPager) {
diff --git a/java/com/android/contacts/common/location/CountryDetector.java b/java/com/android/contacts/common/location/CountryDetector.java
deleted file mode 100644
index 7d9e42b38..000000000
--- a/java/com/android/contacts/common/location/CountryDetector.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.common.location;
-
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.location.Geocoder;
-import android.location.Location;
-import android.location.LocationManager;
-import android.preference.PreferenceManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-import android.util.Log;
-import com.android.dialer.util.PermissionsUtil;
-import java.util.Locale;
-
-/**
- * This class is used to detect the country where the user is. It is a simplified version of the
- * country detector service in the framework. The sources of country location are queried in the
- * following order of reliability:
- *
- * <ul>
- * <li>Mobile network
- * <li>Location manager
- * <li>SIM's country
- * <li>User's default locale
- * </ul>
- *
- * As far as possible this class tries to replicate the behavior of the system's country detector
- * service: 1) Order in priority of sources of country location 2) Mobile network information
- * provided by CDMA phones is ignored 3) Location information is updated every 12 hours (instead of
- * 24 hours in the system) 4) Location updates only uses the {@link
- * LocationManager#PASSIVE_PROVIDER} to avoid active use of the GPS 5) If a location is successfully
- * obtained and geocoded, we never fall back to use of the SIM's country (for the system, the
- * fallback never happens without a reboot) 6) Location is not used if the device does not implement
- * a {@link android.location.Geocoder}
- */
-public class CountryDetector {
-
- public static final String KEY_PREFERENCE_TIME_UPDATED = "preference_time_updated";
- public static final String KEY_PREFERENCE_CURRENT_COUNTRY = "preference_current_country";
- private static final String TAG = "CountryDetector";
- // Wait 12 hours between updates
- private static final long TIME_BETWEEN_UPDATES_MS = 1000L * 60 * 60 * 12;
- // Minimum distance before an update is triggered, in meters. We don't need this to be too
- // exact because all we care about is what country the user is in.
- private static final long DISTANCE_BETWEEN_UPDATES_METERS = 5000;
- private static CountryDetector sInstance;
- private final TelephonyManager mTelephonyManager;
- private final LocationManager mLocationManager;
- private final LocaleProvider mLocaleProvider;
- // Used as a default country code when all the sources of country data have failed in the
- // exceedingly rare event that the device does not have a default locale set for some reason.
- private static final String DEFAULT_COUNTRY_ISO = "US";
- private final Context mContext;
-
- private CountryDetector(Context context) {
- this(
- context,
- (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE),
- (LocationManager) context.getSystemService(Context.LOCATION_SERVICE),
- new LocaleProvider());
- }
-
- private CountryDetector(
- Context context,
- TelephonyManager telephonyManager,
- LocationManager locationManager,
- LocaleProvider localeProvider) {
- mTelephonyManager = telephonyManager;
- mLocationManager = locationManager;
- mLocaleProvider = localeProvider;
- mContext = context;
-
- registerForLocationUpdates(context, mLocationManager);
- }
-
- public static void registerForLocationUpdates(Context context, LocationManager locationManager) {
- if (!PermissionsUtil.hasLocationPermissions(context)) {
- Log.w(TAG, "No location permissions, not registering for location updates.");
- return;
- }
-
- if (!Geocoder.isPresent()) {
- // Certain devices do not have an implementation of a geocoder - in that case there is
- // no point trying to get location updates because we cannot retrieve the country based
- // on the location anyway.
- return;
- }
- final Intent activeIntent = new Intent(context, LocationChangedReceiver.class);
- final PendingIntent pendingIntent =
- PendingIntent.getBroadcast(context, 0, activeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
-
- locationManager.requestLocationUpdates(
- LocationManager.PASSIVE_PROVIDER,
- TIME_BETWEEN_UPDATES_MS,
- DISTANCE_BETWEEN_UPDATES_METERS,
- pendingIntent);
- }
-
- /**
- * Returns the instance of the country detector. {@link #initialize(Context)} must have been
- * called previously.
- *
- * @return the initialized country detector.
- */
- public static synchronized CountryDetector getInstance(Context context) {
- if (sInstance == null) {
- sInstance = new CountryDetector(context.getApplicationContext());
- }
- return sInstance;
- }
-
- /** Factory method for {@link CountryDetector} that allows the caller to provide mock objects. */
- public CountryDetector getInstanceForTest(
- Context context,
- TelephonyManager telephonyManager,
- LocationManager locationManager,
- LocaleProvider localeProvider,
- Geocoder geocoder) {
- return new CountryDetector(context, telephonyManager, locationManager, localeProvider);
- }
-
- public String getCurrentCountryIso() {
- String result = null;
- if (isNetworkCountryCodeAvailable()) {
- result = getNetworkBasedCountryIso();
- }
- if (TextUtils.isEmpty(result)) {
- result = getLocationBasedCountryIso();
- }
- if (TextUtils.isEmpty(result)) {
- result = getSimBasedCountryIso();
- }
- if (TextUtils.isEmpty(result)) {
- result = getLocaleBasedCountryIso();
- }
- if (TextUtils.isEmpty(result)) {
- result = DEFAULT_COUNTRY_ISO;
- }
- return result.toUpperCase(Locale.US);
- }
-
- /** @return the country code of the current telephony network the user is connected to. */
- private String getNetworkBasedCountryIso() {
- return mTelephonyManager.getNetworkCountryIso();
- }
-
- /** @return the geocoded country code detected by the {@link LocationManager}. */
- private String getLocationBasedCountryIso() {
- if (!Geocoder.isPresent() || !PermissionsUtil.hasLocationPermissions(mContext)) {
- return null;
- }
- final SharedPreferences sharedPreferences =
- PreferenceManager.getDefaultSharedPreferences(mContext);
- return sharedPreferences.getString(KEY_PREFERENCE_CURRENT_COUNTRY, null);
- }
-
- /** @return the country code of the SIM card currently inserted in the device. */
- private String getSimBasedCountryIso() {
- return mTelephonyManager.getSimCountryIso();
- }
-
- /** @return the country code of the user's currently selected locale. */
- private String getLocaleBasedCountryIso() {
- Locale defaultLocale = mLocaleProvider.getDefaultLocale();
- if (defaultLocale != null) {
- return defaultLocale.getCountry();
- }
- return null;
- }
-
- private boolean isNetworkCountryCodeAvailable() {
- // On CDMA TelephonyManager.getNetworkCountryIso() just returns the SIM's country code.
- // In this case, we want to ignore the value returned and fallback to location instead.
- return mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM;
- }
-
- /**
- * Class that can be used to return the user's default locale. This is in its own class so that it
- * can be mocked out.
- */
- public static class LocaleProvider {
-
- public Locale getDefaultLocale() {
- return Locale.getDefault();
- }
- }
-
- public static class LocationChangedReceiver extends BroadcastReceiver {
-
- @Override
- public void onReceive(final Context context, Intent intent) {
- if (!intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) {
- return;
- }
-
- final Location location =
- (Location) intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED);
-
- UpdateCountryService.updateCountry(context, location);
- }
- }
-}
diff --git a/java/com/android/contacts/common/location/UpdateCountryService.java b/java/com/android/contacts/common/location/UpdateCountryService.java
deleted file mode 100644
index f23e09e20..000000000
--- a/java/com/android/contacts/common/location/UpdateCountryService.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.contacts.common.location;
-
-import android.app.IntentService;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.SharedPreferences.Editor;
-import android.location.Address;
-import android.location.Geocoder;
-import android.location.Location;
-import android.preference.PreferenceManager;
-import android.util.Log;
-import java.io.IOException;
-import java.util.List;
-
-/**
- * Service used to perform asynchronous geocoding from within a broadcast receiver. Given a {@link
- * Location}, convert it into a country code, and save it in shared preferences.
- */
-public class UpdateCountryService extends IntentService {
-
- private static final String TAG = UpdateCountryService.class.getSimpleName();
-
- private static final String ACTION_UPDATE_COUNTRY = "saveCountry";
-
- private static final String KEY_INTENT_LOCATION = "location";
-
- public UpdateCountryService() {
- super(TAG);
- }
-
- public static void updateCountry(Context context, Location location) {
- final Intent serviceIntent = new Intent(context, UpdateCountryService.class);
- serviceIntent.setAction(ACTION_UPDATE_COUNTRY);
- serviceIntent.putExtra(UpdateCountryService.KEY_INTENT_LOCATION, location);
- context.startService(serviceIntent);
- }
-
- @Override
- protected void onHandleIntent(Intent intent) {
- if (intent == null) {
- Log.d(TAG, "onHandleIntent: could not handle null intent");
- return;
- }
- if (ACTION_UPDATE_COUNTRY.equals(intent.getAction())) {
- final Location location = intent.getParcelableExtra(KEY_INTENT_LOCATION);
- final String country = getCountryFromLocation(getApplicationContext(), location);
-
- if (country == null) {
- return;
- }
-
- final SharedPreferences prefs =
- PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
-
- final Editor editor = prefs.edit();
- editor.putLong(CountryDetector.KEY_PREFERENCE_TIME_UPDATED, System.currentTimeMillis());
- editor.putString(CountryDetector.KEY_PREFERENCE_CURRENT_COUNTRY, country);
- editor.commit();
- }
- }
-
- /**
- * Given a {@link Location}, return a country code.
- *
- * @return the ISO 3166-1 two letter country code
- */
- private String getCountryFromLocation(Context context, Location location) {
- final Geocoder geocoder = new Geocoder(context);
- String country = null;
- try {
- double latitude = location.getLatitude();
- // Latitude has to be between 90 and -90 (latitude of north and south poles wrt equator)
- if (latitude <= 90 && latitude >= -90) {
- final List<Address> addresses =
- geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
- if (addresses != null && addresses.size() > 0) {
- country = addresses.get(0).getCountryCode();
- }
- } else {
- Log.w(TAG, "Invalid latitude");
- }
- } catch (IOException e) {
- Log.w(TAG, "Exception occurred when getting geocoded country from location");
- }
- return country;
- }
-}
diff --git a/java/com/android/contacts/common/model/ContactLoader.java b/java/com/android/contacts/common/model/ContactLoader.java
index 55464b161..7ef3b73a0 100644
--- a/java/com/android/contacts/common/model/ContactLoader.java
+++ b/java/com/android/contacts/common/model/ContactLoader.java
@@ -522,6 +522,7 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
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 8e9ba738c..ccdad3641 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 @@ public abstract class BaseAccountType extends AccountType {
DataKind kind =
addKind(
new DataKind(Phone.CONTENT_ITEM_TYPE, R.string.phoneLabelsGroup, Weight.PHONE, true));
- kind.iconAltRes = R.drawable.quantum_ic_message_white_24;
+ kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24;
kind.iconAltDescriptionRes = R.string.sms;
kind.actionHeader = new PhoneActionInflater();
kind.actionAltHeader = new PhoneActionAltInflater();
@@ -1228,7 +1228,7 @@ public abstract class BaseAccountType extends AccountType {
new PhoneActionInflater(),
new SimpleInflater(Phone.NUMBER));
- kind.iconAltRes = R.drawable.quantum_ic_message_white_24;
+ kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24;
kind.iconAltDescriptionRes = R.string.sms;
kind.actionAltHeader = new PhoneActionAltInflater();
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png
deleted file mode 100644
index d86b2195a..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png
deleted file mode 100644
index ddbb2c459..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png
deleted file mode 100644
index d5942dcad..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png
deleted file mode 100644
index 4dc506515..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png
deleted file mode 100644
index 969552935..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png
deleted file mode 100644
index 540ab4dee..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png
deleted file mode 100644
index 017e4bbf7..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png
deleted file mode 100644
index 703d30b92..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png
deleted file mode 100644
index c7b1113cf..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png
deleted file mode 100644
index deb3a6dc1..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png
deleted file mode 100644
index 06bd18fbb..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png
deleted file mode 100644
index d829d11e2..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png
deleted file mode 100644
index 1ba12950c..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png
deleted file mode 100644
index 5ff3ac574..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png
deleted file mode 100644
index b4ebfc7b2..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png
deleted file mode 100644
index 03fd2fb10..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png
deleted file mode 100644
index e8cb0f5fe..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png
deleted file mode 100644
index 45137967c..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png
deleted file mode 100644
index 1c9bb81fa..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png
deleted file mode 100644
index 56708b0ba..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png
deleted file mode 100644
index ccdda6701..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png
deleted file mode 100644
index 603ddc895..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png
deleted file mode 100644
index 97905c9f5..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png
deleted file mode 100644
index 2121878ae..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png
deleted file mode 100644
index 4ea7afa00..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png
deleted file mode 100644
index cddf9be75..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png
deleted file mode 100644
index 86578be45..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png
deleted file mode 100644
index e9afcc924..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png
deleted file mode 100644
index 2054530ed..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index a0f17568e..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png
deleted file mode 100644
index ae937176e..000000000
--- a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png
deleted file mode 100644
index 4139942d6..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index 569d28f54..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png
deleted file mode 100644
index 5ec4c96a7..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png
deleted file mode 100644
index 4139942d6..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index 065ff62ce..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png
deleted file mode 100644
index 013d5e711..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png
deleted file mode 100644
index 947f03cec..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png
deleted file mode 100644
index 6d09d7278..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png
deleted file mode 100644
index 63c7456f0..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png
deleted file mode 100644
index 4139942d6..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index af5855420..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png
deleted file mode 100644
index cb801ac1b..000000000
--- a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png
deleted file mode 100644
index 3bf8e0362..000000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png
deleted file mode 100644
index 86578be45..000000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png
deleted file mode 100644
index 3226ab760..000000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png
deleted file mode 100644
index 061904c42..000000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index 1d9371de0..000000000
--- a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png
deleted file mode 100644
index 046b24a96..000000000
--- a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png
deleted file mode 100644
index 1ff337370..000000000
--- a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png
deleted file mode 100644
index 2eb7c7ebc..000000000
--- a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png
deleted file mode 100644
index eda10e612..000000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png
deleted file mode 100644
index 86578be45..000000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png
deleted file mode 100644
index 5532e88c2..000000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png
deleted file mode 100644
index f4af92657..000000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png
deleted file mode 100644
index 8fb0636cf..000000000
--- a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png
deleted file mode 100644
index 52c00ddcd..000000000
--- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png
deleted file mode 100644
index 3e4ca684e..000000000
--- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png
deleted file mode 100644
index 230d649bf..000000000
--- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png
deleted file mode 100644
index 1352a1702..000000000
--- a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml b/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml
deleted file mode 100644
index 476212d24..000000000
--- a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2014 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:autoMirrored="true"
- android:src="@drawable/quantum_ic_person_add_white_24"/>
diff --git a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml b/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml
deleted file mode 100644
index 35fff99c2..000000000
--- a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<transition xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:drawable="@drawable/list_pressed_holo_light"/>
- <item android:drawable="@drawable/list_longpressed_holo_light"/>
-</transition>
diff --git a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
index a33b2ac85..df8e8d299 100644
--- a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
+++ b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml
@@ -129,7 +129,7 @@
android:layout_height="25dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
- android:src="@drawable/quantum_ic_history_white_24"
+ android:src="@drawable/quantum_ic_history_vd_theme_24"
android:tint="@color/call_subject_history_icon"/>
<TextView
diff --git a/java/com/android/contacts/common/res/layout/search_bar_expanded.xml b/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
index fa16083e2..7192eb030 100644
--- a/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
+++ b/java/com/android/contacts/common/res/layout/search_bar_expanded.xml
@@ -29,7 +29,7 @@
android:layout_margin="@dimen/search_box_navigation_icon_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/action_menu_back_from_search"
- android:src="@drawable/ic_back_arrow"
+ android:src="@drawable/quantum_ic_arrow_back_vd_theme_24"
android:tint="@color/contactscommon_actionbar_background_color"/>
<EditText
@@ -56,7 +56,7 @@
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:contentDescription="@string/description_clear_search"
- android:src="@drawable/quantum_ic_close_white_24"
+ android:src="@drawable/quantum_ic_close_vd_theme_24"
android:tint="@color/searchbox_icon_tint"/>
</LinearLayout>
diff --git a/java/com/android/contacts/common/res/values-af/strings.xml b/java/com/android/contacts/common/res/values-af/strings.xml
index 52e612da9..48e4158f0 100644
--- a/java/com/android/contacts/common/res/values-af/strings.xml
+++ b/java/com/android/contacts/common/res/values-af/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Tik \'n nota om saam met oproep te stuur …"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"STUUR EN BEL"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-oortjie"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-oortjie <xliff:g id="COUNT_3">%2$d</xliff:g> ongelese items. </item>
diff --git a/java/com/android/contacts/common/res/values-am/strings.xml b/java/com/android/contacts/common/res/values-am/strings.xml
index 0283fbb0a..4121474f0 100644
--- a/java/com/android/contacts/common/res/values-am/strings.xml
+++ b/java/com/android/contacts/common/res/values-am/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"ከጥሪ ጋር ለመላክ የማስታወሻ ጽሑፍ ይተይቡ ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ላክ እና ደውል"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g><xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"የ<xliff:g id="TITLE">%1$s</xliff:g> ትር።"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> የ<xliff:g id="TITLE_2">%1$s</xliff:g> ትር። <xliff:g id="COUNT_3">%2$d</xliff:g> ያልተነበቡ ንጥሎች። </item>
diff --git a/java/com/android/contacts/common/res/values-ar/strings.xml b/java/com/android/contacts/common/res/values-ar/strings.xml
index a3862fe09..98fb057d4 100644
--- a/java/com/android/contacts/common/res/values-ar/strings.xml
+++ b/java/com/android/contacts/common/res/values-ar/strings.xml
@@ -252,7 +252,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"اكتب ملاحظة لإرسالها مع المكالمة ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"إرسال واتصال"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"علامة تبويب <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="zero"> <xliff:g id="TITLE_2">%1$s</xliff:g> علامة تبويب. <xliff:g id="COUNT_3">%2$d</xliff:g> عناصر غير مقروءة. </item>
diff --git a/java/com/android/contacts/common/res/values-az/strings.xml b/java/com/android/contacts/common/res/values-az/strings.xml
index 943377127..813ada7f7 100644
--- a/java/com/android/contacts/common/res/values-az/strings.xml
+++ b/java/com/android/contacts/common/res/values-az/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Zəng ilə göndərmək üçün qeyd yazın..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"GÖNDƏRİN VƏ ZƏNG EDİN"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tabel."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tabel. <xliff:g id="COUNT_3">%2$d</xliff:g> oxunmamış element. </item>
diff --git a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
index fc99567f1..3eccfc654 100644
--- a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
@@ -249,7 +249,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Unesite belešku koju ćete poslati uz poziv..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I POZOVI"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-be/strings.xml b/java/com/android/contacts/common/res/values-be/strings.xml
index a9652a1c1..99922a874 100644
--- a/java/com/android/contacts/common/res/values-be/strings.xml
+++ b/java/com/android/contacts/common/res/values-be/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Увесці нататку для адпраўкі з выклікам…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"АДПРАВІЦЬ І ВЫКЛІКАЦЬ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Укладка <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one">Укладка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрачытаны элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-bg/strings.xml b/java/com/android/contacts/common/res/values-bg/strings.xml
index 0b57eb6a5..c2ebd2736 100644
--- a/java/com/android/contacts/common/res/values-bg/strings.xml
+++ b/java/com/android/contacts/common/res/values-bg/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Напишете придружаваща бележка, която ще се изпрати при извършване на обаждането..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ИЗПРАЩАНЕ И ОБАЖДАНЕ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Раздел „<xliff:g id="TITLE">%1$s</xliff:g>“."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">Раздел „<xliff:g id="TITLE_2">%1$s</xliff:g>“. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочетени елемента. </item>
diff --git a/java/com/android/contacts/common/res/values-bn/strings.xml b/java/com/android/contacts/common/res/values-bn/strings.xml
index 8e783d129..47e9b020e 100644
--- a/java/com/android/contacts/common/res/values-bn/strings.xml
+++ b/java/com/android/contacts/common/res/values-bn/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"কলের সাথে পাঠানোর জন্য একটি নোট লিখুন ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"পাঠান এবং কল করুন"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ট্যাব৷"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ট্যাব৷ <xliff:g id="COUNT_3">%2$d</xliff:g>টি অপঠিত আইটেম৷ </item>
diff --git a/java/com/android/contacts/common/res/values-bs/strings.xml b/java/com/android/contacts/common/res/values-bs/strings.xml
index 278f6a8d0..305a7468a 100644
--- a/java/com/android/contacts/common/res/values-bs/strings.xml
+++ b/java/com/android/contacts/common/res/values-bs/strings.xml
@@ -249,7 +249,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Upišite bilješku koja će se poslati uz poziv ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I POZOVI"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-ca/strings.xml b/java/com/android/contacts/common/res/values-ca/strings.xml
index ad31a01b6..8e8068695 100644
--- a/java/com/android/contacts/common/res/values-ca/strings.xml
+++ b/java/com/android/contacts/common/res/values-ca/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Escriu una nota per enviar-la juntament amb la trucada..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVIA I TRUCA"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Pestanya <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">Pestanya <xliff:g id="TITLE_2">%1$s</xliff:g>: <xliff:g id="COUNT_3">%2$d</xliff:g> elements no llegits </item>
diff --git a/java/com/android/contacts/common/res/values-cs/strings.xml b/java/com/android/contacts/common/res/values-cs/strings.xml
index ab54be93a..7aea200b1 100644
--- a/java/com/android/contacts/common/res/values-cs/strings.xml
+++ b/java/com/android/contacts/common/res/values-cs/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Zadejte poznámku, která se odešle pomocí volání…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ODESLAT A ZAVOLAT"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepřečtené položky. </item>
diff --git a/java/com/android/contacts/common/res/values-da/strings.xml b/java/com/android/contacts/common/res/values-da/strings.xml
index 965d04a73..430895a71 100644
--- a/java/com/android/contacts/common/res/values-da/strings.xml
+++ b/java/com/android/contacts/common/res/values-da/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Indtast en note, som skal sendes ved opkald..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Fanen <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Fanen <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ulæst element. </item>
diff --git a/java/com/android/contacts/common/res/values-de/strings.xml b/java/com/android/contacts/common/res/values-de/strings.xml
index 60c5e6806..a46f278c1 100644
--- a/java/com/android/contacts/common/res/values-de/strings.xml
+++ b/java/com/android/contacts/common/res/values-de/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Notiz eingeben, die beim Anrufen gesendet wird..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SENDEN UND ANRUFEN"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Tab \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">Tab \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> ungelesene Elemente. </item>
diff --git a/java/com/android/contacts/common/res/values-el/strings.xml b/java/com/android/contacts/common/res/values-el/strings.xml
index 9af3bc55a..567b8fb52 100644
--- a/java/com/android/contacts/common/res/values-el/strings.xml
+++ b/java/com/android/contacts/common/res/values-el/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Πληκτρολογήστε μια σημείωση για αποστολή με την κλήση…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ΑΠΟΣΤΟΛΗ ΚΑΙ ΚΛΗΣΗ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Καρτέλα <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Καρτέλα <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> μη αναγνωσμένα στοιχεία. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rAU/strings.xml b/java/com/android/contacts/common/res/values-en-rAU/strings.xml
index 996c6ee18..660993d2e 100644
--- a/java/com/android/contacts/common/res/values-en-rAU/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rAU/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rGB/strings.xml b/java/com/android/contacts/common/res/values-en-rGB/strings.xml
index 996c6ee18..660993d2e 100644
--- a/java/com/android/contacts/common/res/values-en-rGB/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rGB/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-en-rIN/strings.xml b/java/com/android/contacts/common/res/values-en-rIN/strings.xml
index 996c6ee18..660993d2e 100644
--- a/java/com/android/contacts/common/res/values-en-rIN/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rIN/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Type a note to send with call ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SEND &amp; CALL"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> tab."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-es-rUS/strings.xml b/java/com/android/contacts/common/res/values-es-rUS/strings.xml
index acb563cab..1c0339a6a 100644
--- a/java/com/android/contacts/common/res/values-es-rUS/strings.xml
+++ b/java/com/android/contacts/common/res/values-es-rUS/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Escribe una nota para enviar con la llamada…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR Y LLAMAR"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Pestaña <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Pestaña <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos no leídos. </item>
diff --git a/java/com/android/contacts/common/res/values-es/strings.xml b/java/com/android/contacts/common/res/values-es/strings.xml
index def7a447c..b0956ec6a 100644
--- a/java/com/android/contacts/common/res/values-es/strings.xml
+++ b/java/com/android/contacts/common/res/values-es/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Escribe una nota para enviarla con la llamada..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR Y LLAMAR"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Pestaña <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Pestaña <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos no leídos. </item>
diff --git a/java/com/android/contacts/common/res/values-et/strings.xml b/java/com/android/contacts/common/res/values-et/strings.xml
index c80d54214..e152f595a 100644
--- a/java/com/android/contacts/common/res/values-et/strings.xml
+++ b/java/com/android/contacts/common/res/values-et/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Sisestage märkus, mis koos kõnega saata ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SAADA JA HELISTA"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Vahekaart <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Vahekaart <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> lugemata üksust. </item>
diff --git a/java/com/android/contacts/common/res/values-eu/strings.xml b/java/com/android/contacts/common/res/values-eu/strings.xml
index 868d668b5..967b63540 100644
--- a/java/com/android/contacts/common/res/values-eu/strings.xml
+++ b/java/com/android/contacts/common/res/values-eu/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Idatzi deiarekin batera bidali beharreko oharra…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"BIDALI ETA DEITU"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> fitxa."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> fitxa. Irakurri gabeko <xliff:g id="COUNT_3">%2$d</xliff:g> elementu. </item>
diff --git a/java/com/android/contacts/common/res/values-fa/strings.xml b/java/com/android/contacts/common/res/values-fa/strings.xml
index dda10647c..3650e4671 100644
--- a/java/com/android/contacts/common/res/values-fa/strings.xml
+++ b/java/com/android/contacts/common/res/values-fa/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"یادداشتی بنویسید که همراه تماس ارسال شود…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ارسال و تماس"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / ‏<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"برگه «<xliff:g id="TITLE">%1$s</xliff:g>»."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> برگه «<xliff:g id="TITLE_2">%1$s</xliff:g>». <xliff:g id="COUNT_3">%2$d</xliff:g> مورد خوانده‌نشده. </item>
diff --git a/java/com/android/contacts/common/res/values-fi/strings.xml b/java/com/android/contacts/common/res/values-fi/strings.xml
index b8065b2bf..b7739dee8 100644
--- a/java/com/android/contacts/common/res/values-fi/strings.xml
+++ b/java/com/android/contacts/common/res/values-fi/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Kirjoita muistiinpano lähetettäväksi puhelun kanssa…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"LÄHETÄ JA SOITA"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-välilehti."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-välilehti. <xliff:g id="COUNT_3">%2$d</xliff:g> lukematonta kohdetta. </item>
diff --git a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
index 82f549292..c20b8827e 100644
--- a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
+++ b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Tapez une note à envoyer avec l\'appel..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVOYER ET APPELER"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> : <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Onglet <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Onglet <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> élément non lu. </item>
diff --git a/java/com/android/contacts/common/res/values-fr/strings.xml b/java/com/android/contacts/common/res/values-fr/strings.xml
index 474d721dc..93b52dcf9 100644
--- a/java/com/android/contacts/common/res/values-fr/strings.xml
+++ b/java/com/android/contacts/common/res/values-fr/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Saisissez une note pour accompagner l\'appel..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVOYER ET APPELER"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Onglet <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Onglet <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> élément non lu. </item>
diff --git a/java/com/android/contacts/common/res/values-gl/strings.xml b/java/com/android/contacts/common/res/values-gl/strings.xml
index 4a3262a2b..4aa1fc1f7 100644
--- a/java/com/android/contacts/common/res/values-gl/strings.xml
+++ b/java/com/android/contacts/common/res/values-gl/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Escribe unha nota para enviala coa chamada…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E CHAMAR"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Pestana <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Pestana <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementos non lidos. </item>
diff --git a/java/com/android/contacts/common/res/values-gu/strings.xml b/java/com/android/contacts/common/res/values-gu/strings.xml
index 536aceb9c..8bbfb3a2b 100644
--- a/java/com/android/contacts/common/res/values-gu/strings.xml
+++ b/java/com/android/contacts/common/res/values-gu/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"કૉલ સાથે મોકલવા માટે એક નોંધ લખો ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"મોકલો અને કૉલ કરો"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ટૅબ."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ટૅબ. <xliff:g id="COUNT_3">%2$d</xliff:g> વાંચ્યા વગરની આઇટમ. </item>
diff --git a/java/com/android/contacts/common/res/values-hi/strings.xml b/java/com/android/contacts/common/res/values-hi/strings.xml
index c61e195cb..c1af9b7ff 100644
--- a/java/com/android/contacts/common/res/values-hi/strings.xml
+++ b/java/com/android/contacts/common/res/values-hi/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"कॉल के साथ भेजने के लिए नोट लिखें ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"भेजें और कॉल करें"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> टैब."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> टैब. <xliff:g id="COUNT_3">%2$d</xliff:g> नहीं पढ़े गए आइटम. </item>
diff --git a/java/com/android/contacts/common/res/values-hr/strings.xml b/java/com/android/contacts/common/res/values-hr/strings.xml
index 66986dd38..a60c884c1 100644
--- a/java/com/android/contacts/common/res/values-hr/strings.xml
+++ b/java/com/android/contacts/common/res/values-hr/strings.xml
@@ -249,7 +249,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Napišite bilješku koju ćete poslati uz poziv..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"POŠALJI I NAZOVI"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Kartica <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Kartica <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nepročitana stavka. </item>
diff --git a/java/com/android/contacts/common/res/values-hu/strings.xml b/java/com/android/contacts/common/res/values-hu/strings.xml
index 22bf5094c..19fbbe844 100644
--- a/java/com/android/contacts/common/res/values-hu/strings.xml
+++ b/java/com/android/contacts/common/res/values-hu/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Írjon üzenetet, amelyet elküldhetünk a hívással együtt…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"KÜLDÉS ÉS HÍVÁS"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="LIMIT">%2$s</xliff:g>/<xliff:g id="COUNT">%1$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> lap."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> lap. <xliff:g id="COUNT_3">%2$d</xliff:g> olvasatlan elem. </item>
diff --git a/java/com/android/contacts/common/res/values-hy/strings.xml b/java/com/android/contacts/common/res/values-hy/strings.xml
index 85c902347..b3ed5e531 100644
--- a/java/com/android/contacts/common/res/values-hy/strings.xml
+++ b/java/com/android/contacts/common/res/values-hy/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Մուտքագրեք նշում՝ զանգի հետ ուղարկելու համար ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ՈՒՂԱՐԿԵԼ ԵՎ ԶԱՆԳԵԼ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ներդիր:"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-in/strings.xml b/java/com/android/contacts/common/res/values-in/strings.xml
index d7ee8bfb9..13252a5b0 100644
--- a/java/com/android/contacts/common/res/values-in/strings.xml
+++ b/java/com/android/contacts/common/res/values-in/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Ketik catatan untuk dikirim dengan panggilan telepon ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"KIRIM &amp; TELEPON"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> item belum dibaca. </item>
diff --git a/java/com/android/contacts/common/res/values-is/strings.xml b/java/com/android/contacts/common/res/values-is/strings.xml
index 26c1aefd1..569c10f3e 100644
--- a/java/com/android/contacts/common/res/values-is/strings.xml
+++ b/java/com/android/contacts/common/res/values-is/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Sláðu inn texta til að senda með símtalinu..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SENDA OG HRINGJA"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Flipinn <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Flipinn <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ólesið atriði. </item>
diff --git a/java/com/android/contacts/common/res/values-it/strings.xml b/java/com/android/contacts/common/res/values-it/strings.xml
index 8ea564854..342cd61df 100644
--- a/java/com/android/contacts/common/res/values-it/strings.xml
+++ b/java/com/android/contacts/common/res/values-it/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Digita una nota da inviare con la chiamata..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"INVIA E CHIAMA"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Scheda <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Scheda <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elementi da leggere. </item>
diff --git a/java/com/android/contacts/common/res/values-iw/strings.xml b/java/com/android/contacts/common/res/values-iw/strings.xml
index 2a6b2c189..e0d8e5dfb 100644
--- a/java/com/android/contacts/common/res/values-iw/strings.xml
+++ b/java/com/android/contacts/common/res/values-iw/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"הקלד הערה לשליחה עם השיחה..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"שלח והתקשר"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"‎<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>‎"</string>
<string name="tab_title" msgid="3387876802026074288">"הכרטיסייה <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="two">הכרטיסייה <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> פריטים שלא נקראו. </item>
diff --git a/java/com/android/contacts/common/res/values-ja/strings.xml b/java/com/android/contacts/common/res/values-ja/strings.xml
index 3271b46bb..e224a38a2 100644
--- a/java/com/android/contacts/common/res/values-ja/strings.xml
+++ b/java/com/android/contacts/common/res/values-ja/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"発信時に送信するメモを入力..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"送信 / 通話"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g>、<xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> タブ。"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> タブ。<xliff:g id="COUNT_3">%2$d</xliff:g> 件の未読項目。</item>
diff --git a/java/com/android/contacts/common/res/values-ka/strings.xml b/java/com/android/contacts/common/res/values-ka/strings.xml
index ebbee6e33..86273b32e 100644
--- a/java/com/android/contacts/common/res/values-ka/strings.xml
+++ b/java/com/android/contacts/common/res/values-ka/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"აკრიფეთ შენიშვნა ზართან ერთად გასაგზავნად ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"გაგზავნა და დარეკვა"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ცხრ."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ცხრ. <xliff:g id="COUNT_3">%2$d</xliff:g> წაუკითხავი ერთეული. </item>
diff --git a/java/com/android/contacts/common/res/values-kk/strings.xml b/java/com/android/contacts/common/res/values-kk/strings.xml
index 327532abc..45df334f9 100644
--- a/java/com/android/contacts/common/res/values-kk/strings.xml
+++ b/java/com/android/contacts/common/res/values-kk/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Қоңыраумен жіберу үшін ескертпе теріңіз ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ЖІБЕРУ ЖӘНЕ ҚОҢЫРАУ ШАЛУ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> қойындысы."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> қойындысы. <xliff:g id="COUNT_3">%2$d</xliff:g> оқылмаған элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-km/strings.xml b/java/com/android/contacts/common/res/values-km/strings.xml
index 503016792..8d4ba2aff 100644
--- a/java/com/android/contacts/common/res/values-km/strings.xml
+++ b/java/com/android/contacts/common/res/values-km/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"វាយបញ្ចូលចំណាំដែលត្រូវផ្ញើជាមួយការហៅទូរស័ព្ទ ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ផ្ញើ &amp; ហៅ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"ផ្ទាំង <xliff:g id="TITLE">%1$s</xliff:g>។"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">ផ្ទាំង <xliff:g id="TITLE_2">%1$s</xliff:g>។ ធាតុមិនទាន់​អាន <xliff:g id="COUNT_3">%2$d</xliff:g> </item>
diff --git a/java/com/android/contacts/common/res/values-kn/strings.xml b/java/com/android/contacts/common/res/values-kn/strings.xml
index 446e078a6..0dfdaa609 100644
--- a/java/com/android/contacts/common/res/values-kn/strings.xml
+++ b/java/com/android/contacts/common/res/values-kn/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"ಕರೆ ಕಳುಹಿಸಲು ಟಿಪ್ಪಣಿಯನ್ನು ಟೈಪ್ ಮಾಡಿ ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ಕಳುಹಿಸು ಮತ್ತು ಕರೆಮಾಡು"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ಟ್ಯಾಬ್."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ಟ್ಯಾಬ್. <xliff:g id="COUNT_3">%2$d</xliff:g> ಓದದಿರುವ ಐಟಂಗಳು. </item>
diff --git a/java/com/android/contacts/common/res/values-ko/strings.xml b/java/com/android/contacts/common/res/values-ko/strings.xml
index 4c2bd4f62..13edcc11e 100644
--- a/java/com/android/contacts/common/res/values-ko/strings.xml
+++ b/java/com/android/contacts/common/res/values-ko/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"통화에 함께 전송할 메모를 입력하세요..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"보내기 및 전화 걸기"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> 탭"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> 탭. 읽지 않은 항목 <xliff:g id="COUNT_3">%2$d</xliff:g>개 </item>
diff --git a/java/com/android/contacts/common/res/values-ky/strings.xml b/java/com/android/contacts/common/res/values-ky/strings.xml
index e5bab4550..43e12e77e 100644
--- a/java/com/android/contacts/common/res/values-ky/strings.xml
+++ b/java/com/android/contacts/common/res/values-ky/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Чалуу менен жөнөтүлө турган кыска жазууну териңиз …"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ЖӨНӨТҮҮ ЖАНА ЧАЛУУ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"\"<xliff:g id="TITLE">%1$s</xliff:g>\" өтмөгү."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> \"<xliff:g id="TITLE_2">%1$s</xliff:g>\" өтмөгү. <xliff:g id="COUNT_3">%2$d</xliff:g> нерсе окула элек. </item>
diff --git a/java/com/android/contacts/common/res/values-lo/strings.xml b/java/com/android/contacts/common/res/values-lo/strings.xml
index c649539d4..d98ec8b90 100644
--- a/java/com/android/contacts/common/res/values-lo/strings.xml
+++ b/java/com/android/contacts/common/res/values-lo/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"ພິມ​ບັນ​ທຶກ ເພື່ອ​ສົ່ງ​ກັບ​ການ​ໂທ ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ສົ່ງ ແລະ ໂທ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"ແຖບ <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">ແຖບ <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ລາຍການບໍ່ທັນໄດ້ອ່ານ. </item>
diff --git a/java/com/android/contacts/common/res/values-lt/strings.xml b/java/com/android/contacts/common/res/values-lt/strings.xml
index b74bd99ee..53773b25a 100644
--- a/java/com/android/contacts/common/res/values-lt/strings.xml
+++ b/java/com/android/contacts/common/res/values-lt/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Įveskite užrašą, kurį galima išsiųsti skambinant..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SIŲSTI IR SKAMBINTI"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Skirtukas „<xliff:g id="TITLE">%1$s</xliff:g>“."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Skirtukas „<xliff:g id="TITLE_2">%1$s</xliff:g>“. <xliff:g id="COUNT_3">%2$d</xliff:g> neskaitytas elementas. </item>
diff --git a/java/com/android/contacts/common/res/values-lv/strings.xml b/java/com/android/contacts/common/res/values-lv/strings.xml
index c09a27f5d..cc5690176 100644
--- a/java/com/android/contacts/common/res/values-lv/strings.xml
+++ b/java/com/android/contacts/common/res/values-lv/strings.xml
@@ -249,7 +249,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Ierakstiet piezīmi, ko nosūtīt ar zvanu..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SŪTĪT UN ZVANĪT"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> no <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Cilne “<xliff:g id="TITLE">%1$s</xliff:g>”"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="zero"> Cilne “<xliff:g id="TITLE_2">%1$s</xliff:g>”. <xliff:g id="COUNT_3">%2$d</xliff:g> nelasīti vienumi. </item>
diff --git a/java/com/android/contacts/common/res/values-mk/strings.xml b/java/com/android/contacts/common/res/values-mk/strings.xml
index da1530f2a..f6a4af8b1 100644
--- a/java/com/android/contacts/common/res/values-mk/strings.xml
+++ b/java/com/android/contacts/common/res/values-mk/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Напишете белешка да се испрати со повикот..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ИСПРАТИ И ПОВИКАЈ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Картичка <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Картичка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитана ставка. </item>
diff --git a/java/com/android/contacts/common/res/values-ml/strings.xml b/java/com/android/contacts/common/res/values-ml/strings.xml
index 7e927499a..dfc21ffb9 100644
--- a/java/com/android/contacts/common/res/values-ml/strings.xml
+++ b/java/com/android/contacts/common/res/values-ml/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"കോളിനൊപ്പം അയയ്ക്കുന്നതിന് ഒരു കുറിപ്പ് ടൈപ്പുചെയ്യുക ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"അയയ്‌ക്കുകയും വിളിക്കുകയും ചെയ്യുക"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ടാബ്."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ടാബ്. <xliff:g id="COUNT_3">%2$d</xliff:g> വായിക്കാത്ത ഇനങ്ങൾ. </item>
diff --git a/java/com/android/contacts/common/res/values-mn/strings.xml b/java/com/android/contacts/common/res/values-mn/strings.xml
index f0a8c9245..a5c2afd2c 100644
--- a/java/com/android/contacts/common/res/values-mn/strings.xml
+++ b/java/com/android/contacts/common/res/values-mn/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Дуудлаганд илгээх тэмдэглэл бичнэ үү..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ИЛГЭЭХ, ДУУДЛАГА"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> таб."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> таб. <xliff:g id="COUNT_3">%2$d</xliff:g> уншаагүй зүйл. </item>
diff --git a/java/com/android/contacts/common/res/values-mr/strings.xml b/java/com/android/contacts/common/res/values-mr/strings.xml
index 96504c7bc..d632bb1be 100644
--- a/java/com/android/contacts/common/res/values-mr/strings.xml
+++ b/java/com/android/contacts/common/res/values-mr/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"कॉलसह पाठविण्‍यासाठी एक टीप टाइप करा..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"पाठवा आणि कॉल करा"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> टॅब."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> टॅब. <xliff:g id="COUNT_3">%2$d</xliff:g> न वाचलेला आयटम. </item>
diff --git a/java/com/android/contacts/common/res/values-ms/strings.xml b/java/com/android/contacts/common/res/values-ms/strings.xml
index 60d2b7acc..24ff73767 100644
--- a/java/com/android/contacts/common/res/values-ms/strings.xml
+++ b/java/com/android/contacts/common/res/values-ms/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Taip nota untuk dihantar dengan panggilan…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"HANTAR &amp; PANGGIL"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> item belum dibaca. </item>
diff --git a/java/com/android/contacts/common/res/values-my/strings.xml b/java/com/android/contacts/common/res/values-my/strings.xml
index d81e8950d..c0cb020f8 100644
--- a/java/com/android/contacts/common/res/values-my/strings.xml
+++ b/java/com/android/contacts/common/res/values-my/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"ခေါ်ဆိုမှုဖြင့် ပေးပို့ရန် မှတ်စုတစ်ခု ရိုက်ပါ ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ပေးပို့ပြီး ခေါ်ပါ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> တဘ်။"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> တဘ်။ မဖတ်ရသေးသည့် အရာ <xliff:g id="COUNT_3">%2$d</xliff:g> ခု။ </item>
diff --git a/java/com/android/contacts/common/res/values-nb/strings.xml b/java/com/android/contacts/common/res/values-nb/strings.xml
index 7085cb381..80507fce1 100644
--- a/java/com/android/contacts/common/res/values-nb/strings.xml
+++ b/java/com/android/contacts/common/res/values-nb/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Skriv et notat du vil sende med anropet …"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-fanen."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-fanen. <xliff:g id="COUNT_3">%2$d</xliff:g> uleste elementer. </item>
diff --git a/java/com/android/contacts/common/res/values-ne/strings.xml b/java/com/android/contacts/common/res/values-ne/strings.xml
index 1f54232af..2459c8aba 100644
--- a/java/com/android/contacts/common/res/values-ne/strings.xml
+++ b/java/com/android/contacts/common/res/values-ne/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"यस कलसँग पठाउन एक टिप्पणी टाइप गर्नुहोस्"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"पठाउनुहोस् र कल गर्नुहोस्"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ट्याब।"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ट्याब। <xliff:g id="COUNT_3">%2$d</xliff:g> नपढिएका वस्तुहरू। </item>
diff --git a/java/com/android/contacts/common/res/values-nl/strings.xml b/java/com/android/contacts/common/res/values-nl/strings.xml
index 9d41899f1..c92249b61 100644
--- a/java/com/android/contacts/common/res/values-nl/strings.xml
+++ b/java/com/android/contacts/common/res/values-nl/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Typ een notitie om te verzenden met de oproep..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"VERZENDEN EN BELLEN"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Tabblad <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">Tabblad <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> ongelezen items. </item>
diff --git a/java/com/android/contacts/common/res/values-no/strings.xml b/java/com/android/contacts/common/res/values-no/strings.xml
index 7085cb381..80507fce1 100644
--- a/java/com/android/contacts/common/res/values-no/strings.xml
+++ b/java/com/android/contacts/common/res/values-no/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Skriv et notat du vil sende med anropet …"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SEND OG RING"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>-fanen."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>-fanen. <xliff:g id="COUNT_3">%2$d</xliff:g> uleste elementer. </item>
diff --git a/java/com/android/contacts/common/res/values-pa/strings.xml b/java/com/android/contacts/common/res/values-pa/strings.xml
index c96510cc7..6401993c2 100644
--- a/java/com/android/contacts/common/res/values-pa/strings.xml
+++ b/java/com/android/contacts/common/res/values-pa/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"ਕਾਲ ਦੇ ਨਾਲ ਭੇਜਣ ਲਈ ਕੋਈ ਨੋਟ ਟਾਈਪ ਕਰੋ ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ਭੇਜੋ ਅਤੇ ਕਾਲ ਕਰੋ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ਟੈਬ।"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ਟੈਬ। <xliff:g id="COUNT_3">%2$d</xliff:g> ਅਣ-ਪੜ੍ਹੀਆਂ ਆਈਟਮਾਂ। </item>
diff --git a/java/com/android/contacts/common/res/values-pl/strings.xml b/java/com/android/contacts/common/res/values-pl/strings.xml
index c4e65f556..c10bb1fd9 100644
--- a/java/com/android/contacts/common/res/values-pl/strings.xml
+++ b/java/com/android/contacts/common/res/values-pl/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Wpisz notatkę, którą chcesz wysłać razem z połączeniem..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"WYŚLIJ I ZADZWOŃ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> nieprzeczytane elementy. </item>
diff --git a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
index ee2b87c68..95bbb0b5d 100644
--- a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Escreva uma nota para enviar com a chamada..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Guia \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one">Guia \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> item não lido. </item>
diff --git a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
index 44bba149d..c3b50e0bb 100644
--- a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Escrever uma nota para enviar com a chamada..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Separador <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> tab. <xliff:g id="COUNT_3">%2$d</xliff:g> unread items. </item>
diff --git a/java/com/android/contacts/common/res/values-pt/strings.xml b/java/com/android/contacts/common/res/values-pt/strings.xml
index ee2b87c68..95bbb0b5d 100644
--- a/java/com/android/contacts/common/res/values-pt/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Escreva uma nota para enviar com a chamada..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ENVIAR E LIGAR"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Guia \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one">Guia \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> item não lido. </item>
diff --git a/java/com/android/contacts/common/res/values-ro/strings.xml b/java/com/android/contacts/common/res/values-ro/strings.xml
index 358e7af93..da0d5da95 100644
--- a/java/com/android/contacts/common/res/values-ro/strings.xml
+++ b/java/com/android/contacts/common/res/values-ro/strings.xml
@@ -249,7 +249,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Introduceți o notă ca să o trimiteți împreună cu apelul..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"TRIMITEȚI ȘI APELAȚI"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Fila <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="few"> Fila <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> elemente necitite. </item>
diff --git a/java/com/android/contacts/common/res/values-ru/strings.xml b/java/com/android/contacts/common/res/values-ru/strings.xml
index 3442f2c60..f4e1d847b 100644
--- a/java/com/android/contacts/common/res/values-ru/strings.xml
+++ b/java/com/android/contacts/common/res/values-ru/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Введите текст…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ОТПРАВИТЬ И ПОЗВОНИТЬ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Вкладка \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one">Вкладка <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитанный элемент. </item>
diff --git a/java/com/android/contacts/common/res/values-si/strings.xml b/java/com/android/contacts/common/res/values-si/strings.xml
index 72ca32d9c..fc121f6af 100644
--- a/java/com/android/contacts/common/res/values-si/strings.xml
+++ b/java/com/android/contacts/common/res/values-si/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"ඇමතුම සමග යැවීමට සටහනක් ටයිප් කරන්න ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"යවන්න සහ අමතන්න"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ටැබය."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> <xliff:g id="TITLE_2">%1$s</xliff:g> ටැබය. නොකියවූ අයිතම <xliff:g id="COUNT_3">%2$d</xliff:g>. </item>
diff --git a/java/com/android/contacts/common/res/values-sk/strings.xml b/java/com/android/contacts/common/res/values-sk/strings.xml
index b85f63f1b..90a4752fd 100644
--- a/java/com/android/contacts/common/res/values-sk/strings.xml
+++ b/java/com/android/contacts/common/res/values-sk/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Napíšte poznámku, ktorá sa odošle s hovorom..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ODOSLAŤ A VOLAŤ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Karta <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="few"> Karta <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> neprečítané položky. </item>
diff --git a/java/com/android/contacts/common/res/values-sl/strings.xml b/java/com/android/contacts/common/res/values-sl/strings.xml
index f4c39dea9..ef2e1a3f0 100644
--- a/java/com/android/contacts/common/res/values-sl/strings.xml
+++ b/java/com/android/contacts/common/res/values-sl/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Vnesite zapisek, ki ga želite poslati s klicem ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"POŠLJI IN KLIČI"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Zavihek »<xliff:g id="TITLE">%1$s</xliff:g>«."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Zavihek »<xliff:g id="TITLE_2">%1$s</xliff:g>«. <xliff:g id="COUNT_3">%2$d</xliff:g> neprebran element. </item>
diff --git a/java/com/android/contacts/common/res/values-sq/strings.xml b/java/com/android/contacts/common/res/values-sq/strings.xml
index 553c46df5..301149201 100644
--- a/java/com/android/contacts/common/res/values-sq/strings.xml
+++ b/java/com/android/contacts/common/res/values-sq/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Shkruaj një shënim për të dërguar një telefonatë..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"DËRGO DHE TELEFONO"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Skeda <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Skeda <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> artikuj të palexuar. </item>
diff --git a/java/com/android/contacts/common/res/values-sr/strings.xml b/java/com/android/contacts/common/res/values-sr/strings.xml
index 99997e656..25adf7bc5 100644
--- a/java/com/android/contacts/common/res/values-sr/strings.xml
+++ b/java/com/android/contacts/common/res/values-sr/strings.xml
@@ -249,7 +249,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Унесите белешку коју ћете послати уз позив..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ПОШАЉИ И ПОЗОВИ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Картица <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Картица <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитана ставка. </item>
diff --git a/java/com/android/contacts/common/res/values-sv/strings.xml b/java/com/android/contacts/common/res/values-sv/strings.xml
index 79e56e504..ee748a42c 100644
--- a/java/com/android/contacts/common/res/values-sv/strings.xml
+++ b/java/com/android/contacts/common/res/values-sv/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Gör en anteckning som skickas när du ringer …"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"SKICKA OCH RING"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Fliken <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">Fliken <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> olästa poster. </item>
diff --git a/java/com/android/contacts/common/res/values-sw/strings.xml b/java/com/android/contacts/common/res/values-sw/strings.xml
index 4d30271f3..7bd08353f 100644
--- a/java/com/android/contacts/common/res/values-sw/strings.xml
+++ b/java/com/android/contacts/common/res/values-sw/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Andika dokezo litakaloambatana na simu utakayopiga ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"TUMA na UPIGE SIMU"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Kichupo cha <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Kichupo cha <xliff:g id="TITLE_2">%1$s</xliff:g>. Vipengee <xliff:g id="COUNT_3">%2$d</xliff:g> havijasomwa. </item>
diff --git a/java/com/android/contacts/common/res/values-ta/strings.xml b/java/com/android/contacts/common/res/values-ta/strings.xml
index e041a999d..d5b3f9305 100644
--- a/java/com/android/contacts/common/res/values-ta/strings.xml
+++ b/java/com/android/contacts/common/res/values-ta/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"அழைப்புடன் சேர்த்து அனுப்ப, குறிப்பை உள்ளிடவும்..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"அனுப்பி அழை"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> தாவல்."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> தாவல். படிக்காதவை (<xliff:g id="COUNT_3">%2$d</xliff:g>). </item>
diff --git a/java/com/android/contacts/common/res/values-te/strings.xml b/java/com/android/contacts/common/res/values-te/strings.xml
index 6dd0e2143..4126ddc0f 100644
--- a/java/com/android/contacts/common/res/values-te/strings.xml
+++ b/java/com/android/contacts/common/res/values-te/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"కాల్‌తో పాటు పంపడానికి గమనికను టైప్ చేయండి ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"పంపు &amp; కాల్ చేయి"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ట్యాబ్."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ట్యాబ్. <xliff:g id="COUNT_3">%2$d</xliff:g> చదవని అంశాలు. </item>
diff --git a/java/com/android/contacts/common/res/values-th/strings.xml b/java/com/android/contacts/common/res/values-th/strings.xml
index b979e7424..2d52f34fb 100644
--- a/java/com/android/contacts/common/res/values-th/strings.xml
+++ b/java/com/android/contacts/common/res/values-th/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"พิมพ์โน้ตเพื่อส่งพร้อมการโทร ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ส่งและโทร"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"แท็บ <xliff:g id="TITLE">%1$s</xliff:g>"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> แท็บ <xliff:g id="TITLE_2">%1$s</xliff:g> ยังไม่อ่าน <xliff:g id="COUNT_3">%2$d</xliff:g> รายการ </item>
diff --git a/java/com/android/contacts/common/res/values-tl/strings.xml b/java/com/android/contacts/common/res/values-tl/strings.xml
index 62caef820..30978db4e 100644
--- a/java/com/android/contacts/common/res/values-tl/strings.xml
+++ b/java/com/android/contacts/common/res/values-tl/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Mag-type ng isang tala na ipadadala kasama ng tawag ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"IPADALA AT TAWAGAN"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Tab ng <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Tab ng <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> hindi pa nababasang item. </item>
diff --git a/java/com/android/contacts/common/res/values-tr/strings.xml b/java/com/android/contacts/common/res/values-tr/strings.xml
index ce3c109d2..c18097aac 100644
--- a/java/com/android/contacts/common/res/values-tr/strings.xml
+++ b/java/com/android/contacts/common/res/values-tr/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Çağrıyla göndermek için bir not yazın..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"GÖNDER VE ARA"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> sekmesi."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> sekmesi. <xliff:g id="COUNT_3">%2$d</xliff:g> okunmamış öğe. </item>
diff --git a/java/com/android/contacts/common/res/values-uk/strings.xml b/java/com/android/contacts/common/res/values-uk/strings.xml
index f6d1e4731..94d09db12 100644
--- a/java/com/android/contacts/common/res/values-uk/strings.xml
+++ b/java/com/android/contacts/common/res/values-uk/strings.xml
@@ -250,7 +250,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Введіть нотатку, яку хочете надіслати під час дзвінка…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"ЗАТЕЛЕФОНУВАТИ Й НАДІСЛАТИ"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> з <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Вкладка \"<xliff:g id="TITLE">%1$s</xliff:g>\"."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"> Вкладка \"<xliff:g id="TITLE_2">%1$s</xliff:g>\". <xliff:g id="COUNT_3">%2$d</xliff:g> непрочитаний елемент. </item>
diff --git a/java/com/android/contacts/common/res/values-ur/strings.xml b/java/com/android/contacts/common/res/values-ur/strings.xml
index b34c78d95..75c761f2d 100644
--- a/java/com/android/contacts/common/res/values-ur/strings.xml
+++ b/java/com/android/contacts/common/res/values-ur/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"کال کے ساتھ بھیجنے کیلئے ایک نوٹ ٹائپ کریں…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"بھیجیں اور کال کریں"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ٹیب۔"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ٹیب۔ <xliff:g id="COUNT_3">%2$d</xliff:g> بغیر پڑھی ہوئی آئٹمز۔ </item>
diff --git a/java/com/android/contacts/common/res/values-uz/strings.xml b/java/com/android/contacts/common/res/values-uz/strings.xml
index 44bfd9999..69b07d135 100644
--- a/java/com/android/contacts/common/res/values-uz/strings.xml
+++ b/java/com/android/contacts/common/res/values-uz/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Qo‘ng‘iroqqa qo‘shib yuborish uchun izoh yozing ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"YUBORISH va QO‘NG‘IROQ QILISH"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ichki oynasi."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g> ichki oynasi. <xliff:g id="COUNT_3">%2$d</xliff:g> ta o‘qilmagan narsa. </item>
diff --git a/java/com/android/contacts/common/res/values-vi/strings.xml b/java/com/android/contacts/common/res/values-vi/strings.xml
index dadb78a7d..c1675738a 100644
--- a/java/com/android/contacts/common/res/values-vi/strings.xml
+++ b/java/com/android/contacts/common/res/values-vi/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Nhập ghi chú để gửi kèm cuộc gọi..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"GỬI và GỌI"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"Tab <xliff:g id="TITLE">%1$s</xliff:g>."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> Tab <xliff:g id="TITLE_2">%1$s</xliff:g>. <xliff:g id="COUNT_3">%2$d</xliff:g> mục chưa đọc. </item>
diff --git a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
index 161638e66..367b78f1c 100644
--- a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"输入要在拨打电话时发送的备注…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"发送并拨打电话"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g>:<xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>标签。"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>标签。<xliff:g id="COUNT_3">%2$d</xliff:g> 项未读内容。</item>
diff --git a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
index 9952ab626..733d9809c 100644
--- a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"撥號時可以書寫和傳送筆記…"</string>
<string name="send_and_call_button" msgid="4735168294120154013">"傳送和撥號"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"「<xliff:g id="TITLE">%1$s</xliff:g>」標籤。"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other">「<xliff:g id="TITLE_2">%1$s</xliff:g>」標籤 (<xliff:g id="COUNT_3">%2$d</xliff:g> 個未讀取項目)。</item>
diff --git a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
index e5ad61fac..af7843ffd 100644
--- a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"輸入可在撥號時傳送的備註..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"傳送並撥打"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g>/<xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g>分頁。"</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="other"> <xliff:g id="TITLE_2">%1$s</xliff:g>分頁。<xliff:g id="COUNT_3">%2$d</xliff:g> 個未讀項目。</item>
diff --git a/java/com/android/contacts/common/res/values-zu/strings.xml b/java/com/android/contacts/common/res/values-zu/strings.xml
index adca1399c..5906ee175 100644
--- a/java/com/android/contacts/common/res/values-zu/strings.xml
+++ b/java/com/android/contacts/common/res/values-zu/strings.xml
@@ -248,7 +248,7 @@
<string name="call_subject_hint" msgid="7233138753650420800">"Thayipha inothi ukuthumela nekholi ..."</string>
<string name="send_and_call_button" msgid="4735168294120154013">"THUMELA FUTHI YENZA IKHOLI"</string>
<string name="call_subject_limit" msgid="8273208736191593939">"<xliff:g id="COUNT">%1$s</xliff:g> / <xliff:g id="LIMIT">%2$s</xliff:g>"</string>
- <string name="call_subject_type_and_number" msgid="8726132674272173486">"<xliff:g id="TYPE">%1$s</xliff:g> • <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
+ <string name="call_subject_type_and_number" msgid="6338030032554019678">"<xliff:g id="TYPE">%1$s</xliff:g> <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="tab_title" msgid="3387876802026074288">"<xliff:g id="TITLE">%1$s</xliff:g> ithebhu."</string>
<plurals name="tab_title_with_unread_items" formatted="false" msgid="8548492980702182785">
<item quantity="one"><xliff:g id="TITLE_2">%1$s</xliff:g> ithebhu. <xliff:g id="COUNT_3">%2$d</xliff:g> izinto ezingafundiwe. </item>
diff --git a/java/com/android/contacts/common/res/values/ids.xml b/java/com/android/contacts/common/res/values/ids.xml
index 871f5a636..65969c43f 100644
--- a/java/com/android/contacts/common/res/values/ids.xml
+++ b/java/com/android/contacts/common/res/values/ids.xml
@@ -27,4 +27,5 @@
<item name="contact_tile_image" type="id"/>
<item name="contact_tile_name" type="id"/>
+ <item name="call_to_action" type="id"/>
</resources>
diff --git a/java/com/android/contacts/common/res/values/strings.xml b/java/com/android/contacts/common/res/values/strings.xml
index 9ac9fef28..371d5b424 100644
--- a/java/com/android/contacts/common/res/values/strings.xml
+++ b/java/com/android/contacts/common/res/values/strings.xml
@@ -744,9 +744,9 @@
compared to the character limit. Example: 2 / 64 -->
<string name="call_subject_limit"><xliff:g example="4" id="count">%1$s</xliff:g> / <xliff:g example="64" id="limit">%2$s</xliff:g></string>
- <!-- String used to build a phone number bype and phone number string.
- Example: Mobile • 650-555-1212 -->
- <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> • <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string>
+ <!-- String used to build a phone number type and phone number string.
+ Example: Mobile 650-555-1212 -->
+ <string name="call_subject_type_and_number"><xliff:g example="Mobile" id="type">%1$s</xliff:g> <xliff:g example="(650) 555-1212" id="number">%2$s</xliff:g></string>
<!-- String format to describe a tab e.g.call history tab. -->
<string name="tab_title"><xliff:g id="title">%1$s</xliff:g> tab.</string>
diff --git a/java/com/android/contacts/common/res/values/styles.xml b/java/com/android/contacts/common/res/values/styles.xml
index 07d4a0225..bb19afe82 100644
--- a/java/com/android/contacts/common/res/values/styles.xml
+++ b/java/com/android/contacts/common/res/values/styles.xml
@@ -43,7 +43,6 @@ background and text color. See also android:style/Widget.Holo.TextView.ListSepar
<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 18743c65e..25f937c5e 100644
--- a/java/com/android/contacts/common/util/AccountFilterUtil.java
+++ b/java/com/android/contacts/common/util/AccountFilterUtil.java
@@ -16,35 +16,15 @@
package com.android.contacts.common.util;
-import android.app.Activity;
import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.android.contacts.common.R;
import com.android.contacts.common.list.ContactListFilter;
-import com.android.contacts.common.list.ContactListFilterController;
/** Utility class for account filter manipulation. */
public class AccountFilterUtil {
- public static final String EXTRA_CONTACT_LIST_FILTER = "contactListFilter";
- private static final String TAG = AccountFilterUtil.class.getSimpleName();
-
- /**
- * Find TextView with the id "account_filter_header" and set correct text for the account filter
- * header.
- *
- * @param filterContainer View containing TextView with id "account_filter_header"
- * @return true when header text is set in the call. You may use this for conditionally showing or
- * hiding this entire view.
- */
- public static boolean updateAccountFilterTitleForPeople(
- View filterContainer, ContactListFilter filter, boolean showTitleForAllAccounts) {
- return updateAccountFilterTitle(filterContainer, filter, showTitleForAllAccounts, false);
- }
-
/**
* Similar to {@link #updateAccountFilterTitleForPeople(View, ContactListFilter, boolean,
* boolean)}, but for Phone UI.
@@ -78,8 +58,6 @@ public class AccountFilterUtil {
} else if (filter.filterType == ContactListFilter.FILTER_TYPE_CUSTOM) {
headerTextView.setText(R.string.listCustomView);
textWasSet = true;
- } else {
- Log.w(TAG, "Filter type \"" + filter.filterType + "\" isn't expected.");
}
} else {
if (filter.filterType == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
@@ -97,29 +75,9 @@ public class AccountFilterUtil {
} 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 20f916a3f..51f65f280 100644
--- a/java/com/android/contacts/common/util/BitmapUtil.java
+++ b/java/com/android/contacts/common/util/BitmapUtil.java
@@ -24,8 +24,6 @@ import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
/** Provides static functions to decode bitmaps at the optimal size */
public class BitmapUtil {
@@ -91,30 +89,6 @@ public class BitmapUtil {
}
/**
- * 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 1586784db..ff22f2880 100644
--- a/java/com/android/contacts/common/util/ContactDisplayUtils.java
+++ b/java/com/android/contacts/common/util/ContactDisplayUtils.java
@@ -16,21 +16,20 @@
package com.android.contacts.common.util;
-import static android.provider.ContactsContract.CommonDataKinds.Phone;
-
import android.content.Context;
import android.content.res.Resources;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.TtsSpan;
-import android.util.Log;
import android.util.Patterns;
import com.android.contacts.common.R;
import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.dialer.common.LogUtil;
import java.util.Objects;
/** Methods for handling various contact data labels. */
@@ -38,7 +37,6 @@ public class ContactDisplayUtils {
public static final int INTERACTION_CALL = 1;
public static final int INTERACTION_SMS = 2;
- private static final String TAG = ContactDisplayUtils.class.getSimpleName();
/**
* Checks if the given data type is a custom type.
@@ -74,9 +72,9 @@ public class ContactDisplayUtils {
} else {
resId = getPhoneLabelResourceId(type);
if (interactionType != INTERACTION_CALL) {
- Log.e(
- TAG,
- "Un-recognized interaction type: "
+ LogUtil.e(
+ "ContactDisplayUtils.getLabelForCallOrSms",
+ "un-recognized interaction type: "
+ interactionType
+ ". Defaulting to ContactDisplayUtils.INTERACTION_CALL.");
}
diff --git a/java/com/android/contacts/common/util/DateUtils.java b/java/com/android/contacts/common/util/DateUtils.java
index 1935d727a..09d52bce8 100644
--- a/java/com/android/contacts/common/util/DateUtils.java
+++ b/java/com/android/contacts/common/util/DateUtils.java
@@ -16,252 +16,11 @@
package com.android.contacts.common.util;
-import android.content.Context;
-import android.text.format.DateFormat;
import android.text.format.Time;
-import java.text.ParsePosition;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
/** Utility methods for processing dates. */
public class DateUtils {
- public static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone("UTC");
-
- /**
- * When parsing a date without a year, the system assumes 1970, which wasn't a leap-year. Let's
- * add a one-off hack for that day of the year
- */
- public static final String NO_YEAR_DATE_FEB29TH = "--02-29";
-
- // Variations of ISO 8601 date format. Do not change the order - it does affect the
- // result in ambiguous cases.
- private static final SimpleDateFormat[] DATE_FORMATS = {
- CommonDateUtils.FULL_DATE_FORMAT,
- CommonDateUtils.DATE_AND_TIME_FORMAT,
- new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US),
- new SimpleDateFormat("yyyyMMdd", Locale.US),
- new SimpleDateFormat("yyyyMMdd'T'HHmmssSSS'Z'", Locale.US),
- new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'", Locale.US),
- new SimpleDateFormat("yyyyMMdd'T'HHmm'Z'", Locale.US),
- };
-
- static {
- for (SimpleDateFormat format : DATE_FORMATS) {
- format.setLenient(true);
- format.setTimeZone(UTC_TIMEZONE);
- }
- CommonDateUtils.NO_YEAR_DATE_FORMAT.setTimeZone(UTC_TIMEZONE);
- }
-
- /**
- * Parses the supplied string to see if it looks like a date.
- *
- * @param string The string representation of the provided date
- * @param mustContainYear If true, the string is parsed as a date containing a year. If false, the
- * string is parsed into a valid date even if the year field is missing.
- * @return A Calendar object corresponding to the date if the string is successfully parsed. If
- * not, null is returned.
- */
- public static Calendar parseDate(String string, boolean mustContainYear) {
- ParsePosition parsePosition = new ParsePosition(0);
- Date date;
- if (!mustContainYear) {
- final boolean noYearParsed;
- // Unfortunately, we can't parse Feb 29th correctly, so let's handle this day seperately
- if (NO_YEAR_DATE_FEB29TH.equals(string)) {
- return getUtcDate(0, Calendar.FEBRUARY, 29);
- } else {
- synchronized (CommonDateUtils.NO_YEAR_DATE_FORMAT) {
- date = CommonDateUtils.NO_YEAR_DATE_FORMAT.parse(string, parsePosition);
- }
- noYearParsed = parsePosition.getIndex() == string.length();
- }
-
- if (noYearParsed) {
- return getUtcDate(date, true);
- }
- }
- for (int i = 0; i < DATE_FORMATS.length; i++) {
- SimpleDateFormat f = DATE_FORMATS[i];
- synchronized (f) {
- parsePosition.setIndex(0);
- date = f.parse(string, parsePosition);
- if (parsePosition.getIndex() == string.length()) {
- return getUtcDate(date, false);
- }
- }
- }
- return null;
- }
-
- private static final Calendar getUtcDate(Date date, boolean noYear) {
- final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US);
- calendar.setTime(date);
- if (noYear) {
- calendar.set(Calendar.YEAR, 0);
- }
- return calendar;
- }
-
- private static final Calendar getUtcDate(int year, int month, int dayOfMonth) {
- final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US);
- calendar.clear();
- calendar.set(Calendar.YEAR, year);
- calendar.set(Calendar.MONTH, month);
- calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
- return calendar;
- }
-
- public static boolean isYearSet(Calendar cal) {
- // use the Calendar.YEAR field to track whether or not the year is set instead of
- // Calendar.isSet() because doing Calendar.get() causes Calendar.isSet() to become
- // true irregardless of what the previous value was
- return cal.get(Calendar.YEAR) > 1;
- }
-
- /**
- * Same as {@link #formatDate(Context context, String string, boolean longForm)}, with longForm
- * set to {@code true} by default.
- *
- * @param context Valid context
- * @param string String representation of a date to parse
- * @return Returns the same date in a cleaned up format. If the supplied string does not look like
- * a date, return it unchanged.
- */
- public static String formatDate(Context context, String string) {
- return formatDate(context, string, true);
- }
-
- /**
- * Parses the supplied string to see if it looks like a date.
- *
- * @param context Valid context
- * @param string String representation of a date to parse
- * @param longForm If true, return the date formatted into its long string representation. If
- * false, return the date formatted using its short form representation (i.e. 12/11/2012)
- * @return Returns the same date in a cleaned up format. If the supplied string does not look like
- * a date, return it unchanged.
- */
- public static String formatDate(Context context, String string, boolean longForm) {
- if (string == null) {
- return null;
- }
-
- string = string.trim();
- if (string.length() == 0) {
- return string;
- }
- final Calendar cal = parseDate(string, false);
-
- // we weren't able to parse the string successfully so just return it unchanged
- if (cal == null) {
- return string;
- }
-
- final boolean isYearSet = isYearSet(cal);
- final java.text.DateFormat outFormat;
- if (!isYearSet) {
- outFormat = getLocalizedDateFormatWithoutYear(context);
- } else {
- outFormat =
- longForm ? DateFormat.getLongDateFormat(context) : DateFormat.getDateFormat(context);
- }
- synchronized (outFormat) {
- outFormat.setTimeZone(UTC_TIMEZONE);
- return outFormat.format(cal.getTime());
- }
- }
-
- public static boolean isMonthBeforeDay(Context context) {
- char[] dateFormatOrder = DateFormat.getDateFormatOrder(context);
- for (int i = 0; i < dateFormatOrder.length; i++) {
- if (dateFormatOrder[i] == 'd') {
- return false;
- }
- if (dateFormatOrder[i] == 'M') {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Returns a SimpleDateFormat object without the year fields by using a regular expression to
- * eliminate the year in the string pattern. In the rare occurence that the resulting pattern
- * cannot be reconverted into a SimpleDateFormat, it uses the provided context to determine
- * whether the month field should be displayed before the day field, and returns either "MMMM dd"
- * or "dd MMMM" converted into a SimpleDateFormat.
- */
- public static java.text.DateFormat getLocalizedDateFormatWithoutYear(Context context) {
- final String pattern =
- ((SimpleDateFormat) SimpleDateFormat.getDateInstance(java.text.DateFormat.LONG))
- .toPattern();
- // Determine the correct regex pattern for year.
- // Special case handling for Spanish locale by checking for "de"
- final String yearPattern =
- pattern.contains("de") ? "[^Mm]*[Yy]+[^Mm]*" : "[^DdMm]*[Yy]+[^DdMm]*";
- try {
- // Eliminate the substring in pattern that matches the format for that of year
- return new SimpleDateFormat(pattern.replaceAll(yearPattern, ""));
- } catch (IllegalArgumentException e) {
- return new SimpleDateFormat(DateUtils.isMonthBeforeDay(context) ? "MMMM dd" : "dd MMMM");
- }
- }
-
- /**
- * Given a calendar (possibly containing only a day of the year), returns the earliest possible
- * anniversary of the date that is equal to or after the current point in time if the date does
- * not contain a year, or the date converted to the local time zone (if the date contains a year.
- *
- * @param target The date we wish to convert(in the UTC time zone).
- * @return If date does not contain a year (year < 1900), returns the next earliest anniversary
- * that is after the current point in time (in the local time zone). Otherwise, returns the
- * adjusted Date in the local time zone.
- */
- public static Date getNextAnnualDate(Calendar target) {
- final Calendar today = Calendar.getInstance();
- today.setTime(new Date());
-
- // Round the current time to the exact start of today so that when we compare
- // today against the target date, both dates are set to exactly 0000H.
- today.set(Calendar.HOUR_OF_DAY, 0);
- today.set(Calendar.MINUTE, 0);
- today.set(Calendar.SECOND, 0);
- today.set(Calendar.MILLISECOND, 0);
-
- final boolean isYearSet = isYearSet(target);
- final int targetYear = target.get(Calendar.YEAR);
- final int targetMonth = target.get(Calendar.MONTH);
- final int targetDay = target.get(Calendar.DAY_OF_MONTH);
- final boolean isFeb29 = (targetMonth == Calendar.FEBRUARY && targetDay == 29);
- final GregorianCalendar anniversary = new GregorianCalendar();
- // Convert from the UTC date to the local date. Set the year to today's year if the
- // there is no provided year (targetYear < 1900)
- anniversary.set(!isYearSet ? today.get(Calendar.YEAR) : targetYear, targetMonth, targetDay);
- // If the anniversary's date is before the start of today and there is no year set,
- // increment the year by 1 so that the returned date is always equal to or greater than
- // today. If the day is a leap year, keep going until we get the next leap year anniversary
- // Otherwise if there is already a year set, simply return the exact date.
- if (!isYearSet) {
- int anniversaryYear = today.get(Calendar.YEAR);
- if (anniversary.before(today) || (isFeb29 && !anniversary.isLeapYear(anniversaryYear))) {
- // If the target date is not Feb 29, then set the anniversary to the next year.
- // Otherwise, keep going until we find the next leap year (this is not guaranteed
- // to be in 4 years time).
- do {
- anniversaryYear += 1;
- } while (isFeb29 && !anniversary.isLeapYear(anniversaryYear));
- anniversary.set(anniversaryYear, targetMonth, targetDay);
- }
- }
- return anniversary.getTime();
- }
-
/**
* Determine the difference, in days between two dates. Uses similar logic as the {@link
* android.text.format.DateUtils.getRelativeTimeSpanString} method.
diff --git a/java/com/android/contacts/common/util/MaterialColorMapUtils.java b/java/com/android/contacts/common/util/MaterialColorMapUtils.java
index a2d9847ec..bd32faa51 100644
--- a/java/com/android/contacts/common/util/MaterialColorMapUtils.java
+++ b/java/com/android/contacts/common/util/MaterialColorMapUtils.java
@@ -21,7 +21,6 @@ import android.content.res.TypedArray;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Trace;
-import com.android.contacts.common.R;
public class MaterialColorMapUtils {
@@ -35,13 +34,6 @@ public class MaterialColorMapUtils {
resources.obtainTypedArray(com.android.contacts.common.R.array.letter_tile_colors_dark);
}
- public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) {
- final int primaryColor = resources.getColor(R.color.quickcontact_default_photo_tint_color);
- final int secondaryColor =
- resources.getColor(R.color.quickcontact_default_photo_tint_color_dark);
- return new MaterialPalette(primaryColor, secondaryColor);
- }
-
/**
* Returns the hue component of a color int.
*
diff --git a/java/com/android/contacts/common/util/NameConverter.java b/java/com/android/contacts/common/util/NameConverter.java
deleted file mode 100644
index ae3275d14..000000000
--- a/java/com/android/contacts/common/util/NameConverter.java
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.contacts.common.util;
-
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.net.Uri;
-import android.net.Uri.Builder;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.StructuredName;
-import android.text.TextUtils;
-import com.android.contacts.common.model.dataitem.StructuredNameDataItem;
-import java.util.Map;
-import java.util.TreeMap;
-
-/**
- * Utility class for converting between a display name and structured name (and vice-versa), via
- * calls to the contact provider.
- */
-public class NameConverter {
-
- /** The array of fields that comprise a structured name. */
- public static final String[] STRUCTURED_NAME_FIELDS =
- new String[] {
- StructuredName.PREFIX,
- StructuredName.GIVEN_NAME,
- StructuredName.MIDDLE_NAME,
- StructuredName.FAMILY_NAME,
- StructuredName.SUFFIX
- };
-
- /**
- * Converts the given structured name (provided as a map from {@link StructuredName} fields to
- * corresponding values) into a display name string.
- *
- * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
- * database, so it should be safe to call from the UI thread. See ContactsProvider2.completeName()
- * for the underlying method call.
- *
- * @param context Activity context.
- * @param structuredName The structured name map to convert.
- * @return The display name computed from the structured name map.
- */
- public static String structuredNameToDisplayName(
- Context context, Map<String, String> structuredName) {
- Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
- for (String key : STRUCTURED_NAME_FIELDS) {
- if (structuredName.containsKey(key)) {
- appendQueryParameter(builder, key, structuredName.get(key));
- }
- }
- return fetchDisplayName(context, builder.build());
- }
-
- /**
- * Converts the given structured name (provided as ContentValues) into a display name string.
- *
- * @param context Activity context.
- * @param values The content values containing values comprising the structured name.
- */
- public static String structuredNameToDisplayName(Context context, ContentValues values) {
- Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
- for (String key : STRUCTURED_NAME_FIELDS) {
- if (values.containsKey(key)) {
- appendQueryParameter(builder, key, values.getAsString(key));
- }
- }
- return fetchDisplayName(context, builder.build());
- }
-
- /** Helper method for fetching the display name via the given URI. */
- private static String fetchDisplayName(Context context, Uri uri) {
- String displayName = null;
- Cursor cursor =
- context
- .getContentResolver()
- .query(
- uri,
- new String[] {
- StructuredName.DISPLAY_NAME,
- },
- null,
- null,
- null);
-
- if (cursor != null) {
- try {
- if (cursor.moveToFirst()) {
- displayName = cursor.getString(0);
- }
- } finally {
- cursor.close();
- }
- }
- return displayName;
- }
-
- /**
- * Converts the given display name string into a structured name (as a map from {@link
- * StructuredName} fields to corresponding values).
- *
- * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
- * database, so it should be safe to call from the UI thread.
- *
- * @param context Activity context.
- * @param displayName The display name to convert.
- * @return The structured name map computed from the display name.
- */
- public static Map<String, String> displayNameToStructuredName(
- Context context, String displayName) {
- Map<String, String> structuredName = new TreeMap<String, String>();
- Builder builder = ContactsContract.AUTHORITY_URI.buildUpon().appendPath("complete_name");
-
- appendQueryParameter(builder, StructuredName.DISPLAY_NAME, displayName);
- Cursor cursor =
- context
- .getContentResolver()
- .query(builder.build(), STRUCTURED_NAME_FIELDS, null, null, null);
-
- if (cursor != null) {
- try {
- if (cursor.moveToFirst()) {
- for (int i = 0; i < STRUCTURED_NAME_FIELDS.length; i++) {
- structuredName.put(STRUCTURED_NAME_FIELDS[i], cursor.getString(i));
- }
- }
- } finally {
- cursor.close();
- }
- }
- return structuredName;
- }
-
- /**
- * Converts the given display name string into a structured name (inserting the structured values
- * into a new or existing ContentValues object).
- *
- * <p>Note that this operates via a call back to the ContactProvider, but it does not access the
- * database, so it should be safe to call from the UI thread.
- *
- * @param context Activity context.
- * @param displayName The display name to convert.
- * @param contentValues The content values object to place the structured name values into. If
- * null, a new one will be created and returned.
- * @return The ContentValues object containing the structured name fields derived from the display
- * name.
- */
- public static ContentValues displayNameToStructuredName(
- Context context, String displayName, ContentValues contentValues) {
- if (contentValues == null) {
- contentValues = new ContentValues();
- }
- Map<String, String> mapValues = displayNameToStructuredName(context, displayName);
- for (String key : mapValues.keySet()) {
- contentValues.put(key, mapValues.get(key));
- }
- return contentValues;
- }
-
- private static void appendQueryParameter(Builder builder, String field, String value) {
- if (!TextUtils.isEmpty(value)) {
- builder.appendQueryParameter(field, value);
- }
- }
-
- /**
- * Parses phonetic name and returns parsed data (family, middle, given) as ContentValues. Parsed
- * data should be {@link StructuredName#PHONETIC_FAMILY_NAME}, {@link
- * StructuredName#PHONETIC_MIDDLE_NAME}, and {@link StructuredName#PHONETIC_GIVEN_NAME}. If this
- * method cannot parse given phoneticName, null values will be stored.
- *
- * @param phoneticName Phonetic name to be parsed
- * @param values ContentValues to be used for storing data. If null, new instance will be created.
- * @return ContentValues with parsed data. Those data can be null.
- */
- public static StructuredNameDataItem parsePhoneticName(
- String phoneticName, StructuredNameDataItem item) {
- String family = null;
- String middle = null;
- String given = null;
-
- if (!TextUtils.isEmpty(phoneticName)) {
- String[] strings = phoneticName.split(" ", 3);
- switch (strings.length) {
- case 1:
- family = strings[0];
- break;
- case 2:
- family = strings[0];
- given = strings[1];
- break;
- case 3:
- family = strings[0];
- middle = strings[1];
- given = strings[2];
- break;
- }
- }
-
- if (item == null) {
- item = new StructuredNameDataItem();
- }
- item.setPhoneticFamilyName(family);
- item.setPhoneticMiddleName(middle);
- item.setPhoneticGivenName(given);
- return item;
- }
-
- /** Constructs and returns a phonetic full name from given parts. */
- public static String buildPhoneticName(String family, String middle, String given) {
- if (!TextUtils.isEmpty(family) || !TextUtils.isEmpty(middle) || !TextUtils.isEmpty(given)) {
- StringBuilder sb = new StringBuilder();
- if (!TextUtils.isEmpty(family)) {
- sb.append(family.trim()).append(' ');
- }
- if (!TextUtils.isEmpty(middle)) {
- sb.append(middle.trim()).append(' ');
- }
- if (!TextUtils.isEmpty(given)) {
- sb.append(given.trim()).append(' ');
- }
- sb.setLength(sb.length() - 1); // Yank the last space
- return sb.toString();
- } else {
- return null;
- }
- }
-}
diff --git a/java/com/android/contacts/common/util/StopWatch.java b/java/com/android/contacts/common/util/StopWatch.java
index b944b9867..7986d1081 100644
--- a/java/com/android/contacts/common/util/StopWatch.java
+++ b/java/com/android/contacts/common/util/StopWatch.java
@@ -16,7 +16,7 @@
package com.android.contacts.common.util;
-import android.util.Log;
+import com.android.dialer.common.LogUtil;
import java.util.ArrayList;
/** A {@link StopWatch} records start, laps and stop, and print them to logcat. */
@@ -37,11 +37,6 @@ public class StopWatch {
return new StopWatch(label);
}
- /** Return a dummy instance that does no operations. */
- public static StopWatch getNullStopWatch() {
- return NullStopWatch.INSTANCE;
- }
-
/** Record a lap. */
public void lap(String lapLabel) {
mTimes.add(System.currentTimeMillis());
@@ -76,25 +71,6 @@ public class StopWatch {
sb.append(" ");
last = current;
}
- Log.v(TAG, sb.toString());
- }
-
- private static class NullStopWatch extends StopWatch {
-
- public static final NullStopWatch INSTANCE = new NullStopWatch();
-
- public NullStopWatch() {
- super(null);
- }
-
- @Override
- public void lap(String lapLabel) {
- // noop
- }
-
- @Override
- public void stopAndLog(String TAG, int timeThresholdToLog) {
- // noop
- }
+ LogUtil.v(TAG, sb.toString());
}
}
diff --git a/java/com/android/contacts/common/util/TelephonyManagerUtils.java b/java/com/android/contacts/common/util/TelephonyManagerUtils.java
index b664268ca..e4c2c6373 100644
--- a/java/com/android/contacts/common/util/TelephonyManagerUtils.java
+++ b/java/com/android/contacts/common/util/TelephonyManagerUtils.java
@@ -33,13 +33,4 @@ public class TelephonyManagerUtils {
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/dialer/about/AndroidManifest.xml b/java/com/android/dialer/about/AndroidManifest.xml
index e9489ce1e..85c750826 100644
--- a/java/com/android/dialer/about/AndroidManifest.xml
+++ b/java/com/android/dialer/about/AndroidManifest.xml
@@ -1,6 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.dialer.about">
- <application>
+ <application android:theme="@style/Theme.AppCompat">
<activity
android:name="com.android.dialer.about.LicenseMenuActivity"
android:label="@string/licenseActivityLabel"
diff --git a/java/com/android/dialer/about/res/raw/keep.xml b/java/com/android/dialer/about/res/raw/keep.xml
index e41b8b8d0..9215627d1 100644
--- a/java/com/android/dialer/about/res/raw/keep.xml
+++ b/java/com/android/dialer/about/res/raw/keep.xml
@@ -16,4 +16,3 @@
-->
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@raw/*"/>
-
diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml
index de4b48c51..4200082a6 100644
--- a/java/com/android/dialer/app/AndroidManifest.xml
+++ b/java/com/android/dialer/app/AndroidManifest.xml
@@ -39,6 +39,7 @@
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
+ <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL"/>
<uses-permission android:name="com.android.voicemail.permission.WRITE_VOICEMAIL"/>
<uses-permission android:name="com.android.voicemail.permission.READ_VOICEMAIL"/>
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 6e2c6be7d..b5e615075 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -91,6 +91,7 @@ import com.android.dialer.callcomposer.CallComposerActivity;
import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.Assert;
+import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
import com.android.dialer.database.Database;
import com.android.dialer.database.DialerDatabaseHelper;
@@ -106,6 +107,7 @@ import com.android.dialer.p13n.logging.P13nLogger;
import com.android.dialer.p13n.logging.P13nLogging;
import com.android.dialer.postcall.PostCall;
import com.android.dialer.proguard.UsedByReflection;
+import com.android.dialer.searchfragment.NewSearchFragment;
import com.android.dialer.simulator.Simulator;
import com.android.dialer.simulator.SimulatorComponent;
import com.android.dialer.smartdial.SmartDialNameMatcher;
@@ -154,6 +156,7 @@ public class DialtactsActivity extends TransactionSafeActivity
private static final String KEY_FIRST_LAUNCH = "first_launch";
private static final String KEY_WAS_CONFIGURATION_CHANGE = "was_configuration_change";
private static final String KEY_IS_DIALPAD_SHOWN = "is_dialpad_shown";
+ private static final String TAG_NEW_SEARCH_FRAGMENT = "new_search";
private static final String TAG_REGULAR_SEARCH_FRAGMENT = "search";
private static final String TAG_SMARTDIAL_SEARCH_FRAGMENT = "smartdial";
private static final String TAG_FAVORITES_FRAGMENT = "favorites";
@@ -162,6 +165,7 @@ public class DialtactsActivity extends TransactionSafeActivity
private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1;
public static final int ACTIVITY_REQUEST_CODE_CALL_COMPOSE = 2;
+ public static final int ACTIVITY_REQUEST_CODE_LIGHTBRINGER = 3;
private static final int FAB_SCALE_IN_DELAY_MS = 300;
@@ -180,6 +184,9 @@ public class DialtactsActivity extends TransactionSafeActivity
/** Fragment for searching phone numbers using the dialpad. */
private SmartDialSearchFragment mSmartDialSearchFragment;
+ /** new Fragment for search phone numbers using the keyboard and the dialpad. */
+ private NewSearchFragment mNewSearchFragment;
+
/** Animation that slides in. */
private Animation mSlideIn;
@@ -262,6 +269,7 @@ public class DialtactsActivity extends TransactionSafeActivity
}
mSearchQuery = newText;
+ // TODO: show p13n when newText is empty.
// Show search fragment only when the query string is changed to non-empty text.
if (!TextUtils.isEmpty(newText)) {
// Call enterSearchUi only if we are switching search modes, or showing a search
@@ -277,6 +285,8 @@ public class DialtactsActivity extends TransactionSafeActivity
mSmartDialSearchFragment.setQueryString(mSearchQuery);
} else if (mRegularSearchFragment != null && mRegularSearchFragment.isVisible()) {
mRegularSearchFragment.setQueryString(mSearchQuery);
+ } else if (mNewSearchFragment != null) {
+ mNewSearchFragment.setQuery(mSearchQuery);
}
}
@@ -630,6 +640,8 @@ public class DialtactsActivity extends TransactionSafeActivity
} else if (fragment instanceof ListsFragment) {
mListsFragment = (ListsFragment) fragment;
mListsFragment.addOnPageChangeListener(this);
+ } else if (fragment instanceof NewSearchFragment) {
+ mNewSearchFragment = (NewSearchFragment) fragment;
}
if (fragment instanceof SearchFragment) {
final SearchFragment searchFragment = (SearchFragment) fragment;
@@ -785,6 +797,7 @@ public class DialtactsActivity extends TransactionSafeActivity
if (animate) {
mFloatingActionButtonController.scaleOut();
+ maybeEnterSearchUi();
} else {
mFloatingActionButtonController.setVisible(false);
maybeEnterSearchUi();
@@ -1057,7 +1070,11 @@ public class DialtactsActivity extends TransactionSafeActivity
}
final String tag;
- if (smartDialSearch) {
+ boolean useNewSearch =
+ ConfigProviderBindings.get(this).getBoolean("enable_new_search_fragment", false);
+ if (useNewSearch) {
+ tag = TAG_NEW_SEARCH_FRAGMENT;
+ } else if (smartDialSearch) {
tag = TAG_SMARTDIAL_SEARCH_FRAGMENT;
} else {
tag = TAG_REGULAR_SEARCH_FRAGMENT;
@@ -1067,40 +1084,52 @@ public class DialtactsActivity extends TransactionSafeActivity
mFloatingActionButtonController.scaleOut();
- SearchFragment fragment = (SearchFragment) getFragmentManager().findFragmentByTag(tag);
if (animate) {
transaction.setCustomAnimations(android.R.animator.fade_in, 0);
} else {
transaction.setTransition(FragmentTransaction.TRANSIT_NONE);
}
+
+ Fragment fragment = getFragmentManager().findFragmentByTag(tag);
if (fragment == null) {
- if (smartDialSearch) {
+ if (useNewSearch) {
+ fragment = new NewSearchFragment();
+ } else if (smartDialSearch) {
fragment = new SmartDialSearchFragment();
} else {
fragment = Bindings.getLegacy(this).newRegularSearchFragment();
- fragment.setOnTouchListener(
- new View.OnTouchListener() {
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- // Show the FAB when the user touches the lists fragment and the soft
- // keyboard is hidden.
- hideDialpadFragment(true, false);
- showFabInSearchUi();
- v.performClick();
- return false;
- }
- });
+ ((SearchFragment) fragment)
+ .setOnTouchListener(
+ (v, event) -> {
+ // Show the FAB when the user touches the lists fragment and the soft
+ // keyboard is hidden.
+ hideDialpadFragment(true, false);
+ v.performClick();
+ return false;
+ });
}
transaction.add(R.id.dialtacts_frame, fragment, tag);
} else {
+ // TODO: if this is a transition from dialpad to searchbar, animate fragment
+ // down, and vice versa. Perhaps just add a coordinator behavior with the search bar.
transaction.show(fragment);
}
+
// DialtactsActivity will provide the options menu
fragment.setHasOptionsMenu(false);
+
// Will show empty list if P13nRanker is not enabled. Else, re-ranked list by the ranker.
- fragment.setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery());
- if (!smartDialSearch) {
- fragment.setQueryString(query);
+ if (!useNewSearch) {
+ ((SearchFragment) fragment)
+ .setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery());
+ } else {
+ // TODO: add p13n ranker to new search.
+ }
+
+ if (!smartDialSearch && !useNewSearch) {
+ ((SearchFragment) fragment).setQueryString(query);
+ } else if (useNewSearch) {
+ ((NewSearchFragment) fragment).setQuery(query);
}
transaction.commit();
@@ -1146,6 +1175,9 @@ public class DialtactsActivity extends TransactionSafeActivity
if (mRegularSearchFragment != null) {
transaction.remove(mRegularSearchFragment);
}
+ if (mNewSearchFragment != null) {
+ transaction.remove(mNewSearchFragment);
+ }
transaction.commit();
Assert.isNotNull(mListsFragment.getView()).animate().alpha(1).withLayer();
@@ -1477,6 +1509,7 @@ public class DialtactsActivity extends TransactionSafeActivity
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 85c2ea650..20222d68c 100644
--- a/java/com/android/dialer/app/SpecialCharSequenceMgr.java
+++ b/java/com/android/dialer/app/SpecialCharSequenceMgr.java
@@ -47,7 +47,6 @@ import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment.Selec
import com.android.dialer.calllogutils.PhoneAccountUtils;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.compat.CompatUtils;
import com.android.dialer.oem.MotorolaUtils;
import com.android.dialer.telecom.TelecomUtil;
import java.util.ArrayList;
@@ -299,9 +298,7 @@ public class SpecialCharSequenceMgr {
: R.string.meid;
List<String> deviceIds = new ArrayList<String>();
- if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1
- && CompatUtils.isMethodAvailable(
- TelephonyManagerCompat.TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.TYPE)) {
+ if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1) {
for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {
String deviceId = telephonyManager.getDeviceId(slot);
if (!TextUtils.isEmpty(deviceId)) {
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index 2f8a58c8a..3357ee2f1 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -86,6 +86,7 @@ import com.android.dialer.phonenumbercache.ContactInfoHelper;
import com.android.dialer.phonenumberutil.PhoneNumberHelper;
import com.android.dialer.spam.Spam;
import com.android.dialer.util.PermissionsUtil;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -105,11 +106,12 @@ public class CallLogAdapter extends GroupingListAdapter
private static final String KEY_EXPANDED_POSITION = "expanded_position";
private static final String KEY_EXPANDED_ROW_ID = "expanded_row_id";
+ private static final String KEY_ACTION_MODE = "action_mode_selected_items";
public static final String LOAD_DATA_TASK_IDENTIFIER = "load_data";
public static final String ENABLE_CALL_LOG_MULTI_SELECT = "enable_call_log_multiselect";
- public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false;
+ public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = true;
protected final Activity mActivity;
protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
@@ -117,6 +119,7 @@ public class CallLogAdapter extends GroupingListAdapter
protected final CallLogCache mCallLogCache;
private final CallFetcher mCallFetcher;
+ private final MultiSelectRemoveView mMultiSelectRemoveView;
@NonNull private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
private final int mActivityType;
@@ -136,6 +139,8 @@ public class CallLogAdapter extends GroupingListAdapter
private final CallLogAlertManager mCallLogAlertManager;
public ActionMode mActionMode = null;
+ public boolean selectAllMode = false;
+ public boolean deselectAllMode = false;
private final SparseArray<String> selectedItems = new SparseArray<>();
private final ActionMode.Callback mActionModeCallback =
@@ -144,10 +149,16 @@ public class CallLogAdapter extends GroupingListAdapter
// Called when the action mode is created; startActionMode() was called
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
+ if (mActivity != null) {
+ announceforAccessibility(
+ mActivity.getCurrentFocus(),
+ mActivity.getString(R.string.description_entering_bulk_action_mode));
+ }
mActionMode = mode;
// Inflate a menu resource providing context menu items
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.actionbar_delete, menu);
+ mMultiSelectRemoveView.showMultiSelectRemoveView(true);
return true;
}
@@ -165,7 +176,6 @@ public class CallLogAdapter extends GroupingListAdapter
if (selectedItems.size() > 0) {
showDeleteSelectedItemsDialog();
}
- mode.finish();
return true;
} else {
return false;
@@ -175,8 +185,16 @@ public class CallLogAdapter extends GroupingListAdapter
// Called when the user exits the action mode
@Override
public void onDestroyActionMode(ActionMode mode) {
+ if (mActivity != null) {
+ announceforAccessibility(
+ mActivity.getCurrentFocus(),
+ mActivity.getString(R.string.description_leaving_bulk_action_mode));
+ }
selectedItems.clear();
mActionMode = null;
+ selectAllMode = false;
+ deselectAllMode = false;
+ mMultiSelectRemoveView.showMultiSelectRemoveView(false);
notifyDataSetChanged();
}
};
@@ -202,6 +220,7 @@ public class CallLogAdapter extends GroupingListAdapter
@Override
public void onClick(DialogInterface dialog, int id) {
deleteSelectedItems(voicemailsToDeleteOnConfirmation);
+ mActionMode.finish();
dialog.cancel();
}
});
@@ -258,22 +277,15 @@ public class CallLogAdapter extends GroupingListAdapter
return;
}
if (mActionMode != null && viewHolder.voicemailUri != null) {
+ selectAllMode = false;
+ deselectAllMode = false;
+ mMultiSelectRemoveView.setSelectAllModeToFalse();
int id = getVoicemailId(viewHolder.voicemailUri);
if (selectedItems.get(id) != null) {
- selectedItems.delete(id);
- viewHolder.checkBoxView.setVisibility(View.GONE);
- viewHolder.quickContactView.setVisibility(View.VISIBLE);
+ uncheckMarkCallLogEntry(viewHolder, id);
} else {
- viewHolder.quickContactView.setVisibility(View.GONE);
- viewHolder.checkBoxView.setVisibility(View.VISIBLE);
- selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri);
- }
-
- if (selectedItems.size() == 0) {
- mActionMode.finish();
- return;
+ checkMarkCallLogEntry(viewHolder);
}
- mActionMode.setTitle(Integer.toString(selectedItems.size()));
return;
}
@@ -312,6 +324,48 @@ public class CallLogAdapter extends GroupingListAdapter
}
};
+ private void checkMarkCallLogEntry(CallLogListItemViewHolder viewHolder) {
+ announceforAccessibility(
+ mActivity.getCurrentFocus(),
+ mActivity.getString(
+ R.string.description_selecting_bulk_action_mode, viewHolder.nameOrNumber));
+ viewHolder.quickContactView.setVisibility(View.GONE);
+ viewHolder.checkBoxView.setVisibility(View.VISIBLE);
+ selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri);
+ updateActionBar();
+ }
+
+ private void announceforAccessibility(View view, String announcement) {
+ if (view != null) {
+ view.announceForAccessibility(announcement);
+ }
+ }
+
+ private void updateActionBar() {
+ if (mActionMode == null && selectedItems.size() > 0) {
+ mActivity.startActionMode(mActionModeCallback);
+ }
+ if (mActionMode != null) {
+ mActionMode.setTitle(
+ mActivity
+ .getResources()
+ .getString(
+ R.string.voicemailMultiSelectActionBarTitle,
+ Integer.toString(selectedItems.size())));
+ }
+ }
+
+ private void uncheckMarkCallLogEntry(CallLogListItemViewHolder viewHolder, int id) {
+ announceforAccessibility(
+ mActivity.getCurrentFocus(),
+ mActivity.getString(
+ R.string.description_unselecting_bulk_action_mode, viewHolder.nameOrNumber));
+ selectedItems.delete(id);
+ viewHolder.checkBoxView.setVisibility(View.GONE);
+ viewHolder.quickContactView.setVisibility(View.VISIBLE);
+ updateActionBar();
+ }
+
private static int getVoicemailId(String voicemailUri) {
Assert.checkArgument(voicemailUri != null);
Assert.checkArgument(voicemailUri.length() > 0);
@@ -358,6 +412,7 @@ public class CallLogAdapter extends GroupingListAdapter
Activity activity,
ViewGroup alertContainer,
CallFetcher callFetcher,
+ MultiSelectRemoveView multiSelectRemoveView,
CallLogCache callLogCache,
ContactInfoCache contactInfoCache,
VoicemailPlaybackPresenter voicemailPlaybackPresenter,
@@ -367,6 +422,7 @@ public class CallLogAdapter extends GroupingListAdapter
mActivity = activity;
mCallFetcher = callFetcher;
+ mMultiSelectRemoveView = multiSelectRemoveView;
mVoicemailPlaybackPresenter = voicemailPlaybackPresenter;
if (mVoicemailPlaybackPresenter != null) {
mVoicemailPlaybackPresenter.setOnVoicemailDeletedListener(this);
@@ -426,6 +482,14 @@ public class CallLogAdapter extends GroupingListAdapter
public void onSaveInstanceState(Bundle outState) {
outState.putInt(KEY_EXPANDED_POSITION, mCurrentlyExpandedPosition);
outState.putLong(KEY_EXPANDED_ROW_ID, mCurrentlyExpandedRowId);
+
+ ArrayList<String> listOfSelectedItems = new ArrayList<>();
+ if (selectedItems.size() > 0) {
+ for (int i = 0; i < selectedItems.size(); i++) {
+ listOfSelectedItems.add(Integer.toString(selectedItems.keyAt(i)));
+ }
+ }
+ outState.putStringArrayList(KEY_ACTION_MODE, listOfSelectedItems);
}
public void onRestoreInstanceState(Bundle savedInstanceState) {
@@ -434,6 +498,18 @@ public class CallLogAdapter extends GroupingListAdapter
savedInstanceState.getInt(KEY_EXPANDED_POSITION, RecyclerView.NO_POSITION);
mCurrentlyExpandedRowId =
savedInstanceState.getLong(KEY_EXPANDED_ROW_ID, NO_EXPANDED_LIST_ITEM);
+
+ // Restoring multi selected entries
+ ArrayList<String> listOfSelectedItems =
+ savedInstanceState.getStringArrayList(KEY_ACTION_MODE);
+ if (!listOfSelectedItems.isEmpty()) {
+ for (int i = 0; i < listOfSelectedItems.size(); i++) {
+ String voicemailId = listOfSelectedItems.get(i);
+ int id = Integer.parseInt(voicemailId);
+ selectedItems.put(id, voicemailId);
+ }
+ updateActionBar();
+ }
}
}
@@ -559,6 +635,8 @@ public class CallLogAdapter extends GroupingListAdapter
public void onViewRecycled(ViewHolder viewHolder) {
if (viewHolder.getItemViewType() == VIEW_TYPE_CALLLOG) {
CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
+ updateCheckMarkedStatusOfEntry(views);
+
if (views.asyncTask != null) {
views.asyncTask.cancel(true);
}
@@ -591,6 +669,8 @@ public class CallLogAdapter extends GroupingListAdapter
return;
}
CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
+ updateCheckMarkedStatusOfEntry(views);
+
views.isLoaded = false;
int groupSize = getGroupSize(position);
CallDetailsEntries callDetailsEntries = createCallDetailsEntries(c, groupSize);
@@ -609,6 +689,17 @@ public class CallLogAdapter extends GroupingListAdapter
loadAndRender(views, views.rowId, details, callDetailsEntries);
}
+ private void updateCheckMarkedStatusOfEntry(CallLogListItemViewHolder views) {
+ if (selectedItems.size() > 0 && views.voicemailUri != null) {
+ int id = getVoicemailId(views.voicemailUri);
+ if (selectedItems.get(id) != null) {
+ checkMarkCallLogEntry(views);
+ } else {
+ uncheckMarkCallLogEntry(views, id);
+ }
+ }
+ }
+
private void loadAndRender(
final CallLogListItemViewHolder views,
final long rowId,
@@ -917,6 +1008,12 @@ public class CallLogAdapter extends GroupingListAdapter
views.workIconView.setVisibility(
details.contactUserType == ContactsUtils.USER_TYPE_WORK ? View.VISIBLE : View.GONE);
+ if (selectAllMode && views.voicemailUri != null) {
+ selectedItems.put(getVoicemailId(views.voicemailUri), views.voicemailUri);
+ }
+ if (deselectAllMode && views.voicemailUri != null) {
+ selectedItems.delete(getVoicemailId(views.voicemailUri));
+ }
if (views.voicemailUri != null
&& selectedItems.get(getVoicemailId(views.voicemailUri)) != null) {
views.checkBoxView.setVisibility(View.VISIBLE);
@@ -925,7 +1022,6 @@ public class CallLogAdapter extends GroupingListAdapter
views.checkBoxView.setVisibility(View.GONE);
views.quickContactView.setVisibility(View.VISIBLE);
}
-
mCallLogListItemHelper.setPhoneCallDetails(views, details);
if (mCurrentlyExpandedRowId == views.rowId) {
// In case ViewHolders were added/removed, update the expanded position if the rowIds
@@ -1192,9 +1288,41 @@ public class CallLogAdapter extends GroupingListAdapter
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 6e4b23fc1..1571c1aef 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -49,15 +49,16 @@ import com.android.dialer.app.contactinfo.ContactInfoCache.OnContactInfoChangedL
import com.android.dialer.app.contactinfo.ExpirableCacheHeadlessFragment;
import com.android.dialer.app.list.ListsFragment;
import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter;
-import com.android.dialer.app.widget.EmptyContentView;
-import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.database.CallLogQueryHandler;
import com.android.dialer.location.GeoUtil;
+import com.android.dialer.oem.CequintCallerIdManager;
import com.android.dialer.phonenumbercache.ContactInfoHelper;
import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
+import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
/**
* Displays a list of call log entries. To filter for a particular kind of call (all, missed or
@@ -66,6 +67,7 @@ import com.android.dialer.util.PermissionsUtil;
public class CallLogFragment extends Fragment
implements CallLogQueryHandler.Listener,
CallLogAdapter.CallFetcher,
+ CallLogAdapter.MultiSelectRemoveView,
OnEmptyViewActionButtonClickedListener,
FragmentCompat.OnRequestPermissionsResultCallback,
CallLogModalAlertManager.Listener {
@@ -317,6 +319,7 @@ public class CallLogFragment extends Fragment
getActivity(),
mRecyclerView,
this,
+ this,
CallLogCache.getCallLogCache(getActivity()),
mContactInfoCache,
getVoicemailPlaybackPresenter(),
@@ -380,6 +383,16 @@ public class CallLogFragment extends Fragment
}
@Override
+ public void onStart() {
+ super.onStart();
+ CequintCallerIdManager cequintCallerIdManager = null;
+ if (CequintCallerIdManager.isCequintCallerIdEnabled(getContext())) {
+ cequintCallerIdManager = CequintCallerIdManager.createInstanceForCallLog();
+ }
+ mContactInfoCache.setCequintCallerIdManager(cequintCallerIdManager);
+ }
+
+ @Override
public void onStop() {
updateOnTransition();
@@ -451,6 +464,8 @@ public class CallLogFragment extends Fragment
mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL);
} else if (filterType == CallLogQueryHandler.CALL_TYPE_ALL) {
mEmptyListView.setActionLabel(R.string.call_log_all_empty_action);
+ } else {
+ mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL);
}
}
@@ -589,6 +604,16 @@ public class CallLogFragment extends Fragment
}
}
+ @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 1daccd1a4..a9a4d1d42 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -17,6 +17,7 @@
package com.android.dialer.app.calllog;
import android.app.Activity;
+import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
@@ -31,7 +32,6 @@ import android.support.annotation.VisibleForTesting;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
import android.telephony.PhoneNumberUtils;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
@@ -44,10 +44,13 @@ import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.QuickContactBadge;
import android.widget.TextView;
+import android.widget.Toast;
import com.android.contacts.common.ClipboardUtils;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
import com.android.contacts.common.dialog.CallSubjectDialog;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
import com.android.contacts.common.util.UriUtils;
import com.android.dialer.app.DialtactsActivity;
import com.android.dialer.app.R;
@@ -58,15 +61,16 @@ import com.android.dialer.blocking.BlockedNumbersMigrator;
import com.android.dialer.blocking.FilteredNumberCompat;
import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.callcomposer.CallComposerActivity;
-import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.calldetails.CallDetailsEntries;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.lightbringer.Lightbringer;
import com.android.dialer.lightbringer.LightbringerComponent;
import com.android.dialer.logging.ContactSource;
import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.InteractionEvent;
import com.android.dialer.logging.Logger;
import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.phonenumbercache.CachedNumberLookupService;
@@ -251,6 +255,20 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
phoneCallDetailsViews.nameView.setElegantTextHeight(false);
phoneCallDetailsViews.callLocationAndDate.setElegantTextHeight(false);
+ if (mContext instanceof CallLogActivity) {
+ Logger.get(mContext)
+ .logQuickContactOnTouch(
+ quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_HISTORY, true);
+ } else if (mVoicemailPlaybackPresenter == null) {
+ Logger.get(mContext)
+ .logQuickContactOnTouch(
+ quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_LOG, true);
+ } else {
+ Logger.get(mContext)
+ .logQuickContactOnTouch(
+ quickContactView, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_VOICEMAIL, false);
+ }
+
quickContactView.setOverlay(null);
if (CompatUtils.hasPrioritizedMimeType()) {
quickContactView.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
@@ -467,7 +485,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
primaryActionButtonView.setContentDescription(
TextUtils.expandTemplate(
mContext.getString(R.string.description_call_action), validNameOrNumber));
- primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_white_24);
+ primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_vd_theme_24);
primaryActionButtonView.setVisibility(View.VISIBLE);
} else {
primaryActionButtonView.setTag(null);
@@ -717,19 +735,14 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
getContactType());
}
- private int getContactType() {
- int contactType = ContactPhotoManager.TYPE_DEFAULT;
- if (mCallLogCache.isVoicemailNumber(accountHandle, number)) {
- contactType = ContactPhotoManager.TYPE_VOICEMAIL;
- } else if (isSpam) {
- contactType = ContactPhotoManager.TYPE_SPAM;
- } else if (mCachedNumberLookupService != null
- && mCachedNumberLookupService.isBusiness(info.sourceType)) {
- contactType = ContactPhotoManager.TYPE_BUSINESS;
- } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) {
- contactType = ContactPhotoManager.TYPE_GENERIC_AVATAR;
- }
- return contactType;
+ private @ContactType int getContactType() {
+ return LetterTileDrawable.getContactTypeFromPrimitives(
+ mCallLogCache.isVoicemailNumber(accountHandle, number),
+ isSpam,
+ mCachedNumberLookupService != null
+ && mCachedNumberLookupService.isBusiness(info.sourceType),
+ numberPresentation,
+ false);
}
@Override
@@ -795,19 +808,40 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
mVoicemailPlaybackPresenter.shareVoicemail();
} else {
logCallLogAction(view.getId());
+
final IntentProvider intentProvider = (IntentProvider) view.getTag();
- if (intentProvider != null) {
- final Intent intent = intentProvider.getIntent(mContext);
- // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
- if (intent != null) {
- DialerUtils.startActivityWithErrorToast(mContext, intent);
- }
+ if (intentProvider == null) {
+ return;
}
+
+ final Intent intent = intentProvider.getIntent(mContext);
+ // See IntentProvider.getCallDetailIntentProvider() for why this may be null.
+ if (intent == null) {
+ return;
+ }
+
+ // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer
+ // intents need to be started using startActivityForResult instead of the usual startActivity
+ String packageName = intent.getPackage();
+ if (packageName != null && packageName.equals(getLightbringer().getPackageName(mContext))) {
+ startLightbringerActivity(intent);
+ } else {
+ DialerUtils.startActivityWithErrorToast(mContext, intent);
+ }
+ }
+ }
+
+ private 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 CallComposerContact buildContact() {
- CallComposerContact.Builder contact = CallComposerContact.newBuilder();
+ private DialerContact buildContact() {
+ DialerContact.Builder contact = DialerContact.newBuilder();
contact.setPhotoId(info.photoId);
if (info.photoUri != null) {
contact.setPhotoUri(info.photoUri.toString());
diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
index 58fe6fa2c..1f45f7086 100644
--- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
@@ -225,14 +225,18 @@ public class DefaultVoicemailNotifier implements Worker<Void, Void> {
int count,
String voicemailNumber,
PendingIntent callVoicemailIntent,
- PendingIntent voicemailSettingIntent) {
+ PendingIntent voicemailSettingIntent,
+ boolean isRefresh) {
Assert.isNotNull(phoneAccountHandle);
Assert.checkArgument(BuildCompat.isAtLeastO());
TelephonyManager telephonyManager =
context
.getSystemService(TelephonyManager.class)
.createForPhoneAccountHandle(phoneAccountHandle);
- Assert.isNotNull(telephonyManager);
+ if (telephonyManager == null) {
+ LogUtil.e(TAG, "invalid PhoneAccountHandle, ignoring");
+ return;
+ }
LogUtil.i(TAG, "Creating legacy voicemail notification");
PersistableBundle carrierConfig = telephonyManager.getCarrierConfig();
@@ -275,7 +279,8 @@ public class DefaultVoicemailNotifier implements Worker<Void, Void> {
.setSound(telephonyManager.getVoicemailRingtoneUri(phoneAccountHandle))
.setOngoing(
carrierConfig.getBoolean(
- CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL));
+ CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL))
+ .setOnlyAlertOnce(isRefresh);
if (telephonyManager.isVoicemailVibrationEnabled(phoneAccountHandle)) {
builder.setDefaults(Notification.DEFAULT_VIBRATE);
diff --git a/java/com/android/dialer/app/calllog/IntentProvider.java b/java/com/android/dialer/app/calllog/IntentProvider.java
index a94c6781e..9c3c18b60 100644
--- a/java/com/android/dialer/app/calllog/IntentProvider.java
+++ b/java/com/android/dialer/app/calllog/IntentProvider.java
@@ -24,12 +24,14 @@ import android.provider.ContactsContract;
import android.telecom.PhoneAccountHandle;
import com.android.contacts.common.model.Contact;
import com.android.contacts.common.model.ContactLoader;
-import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.calldetails.CallDetailsActivity;
import com.android.dialer.calldetails.CallDetailsEntries;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
+import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.lightbringer.LightbringerComponent;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
import com.android.dialer.util.CallUtil;
import com.android.dialer.util.IntentUtil;
import java.util.ArrayList;
@@ -68,6 +70,7 @@ public abstract class IntentProvider {
return new IntentProvider() {
@Override
public Intent getIntent(Context context) {
+ Logger.get(context).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_CALL_LOG);
return new CallIntentBuilder(number, CallInitiationType.Type.CALL_LOG)
.setPhoneAccountHandle(accountHandle)
.setIsVideoCall(true)
@@ -80,6 +83,8 @@ public abstract class IntentProvider {
return new IntentProvider() {
@Override
public Intent getIntent(Context context) {
+ Logger.get(context)
+ .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG);
return LightbringerComponent.get(context).getLightbringer().getIntent(context, number);
}
};
@@ -112,7 +117,7 @@ public abstract class IntentProvider {
* @return The call details intent provider.
*/
public static IntentProvider getCallDetailIntentProvider(
- CallDetailsEntries callDetailsEntries, CallComposerContact contact) {
+ CallDetailsEntries callDetailsEntries, DialerContact contact) {
return new IntentProvider() {
@Override
public Intent getIntent(Context context) {
diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
index 7645a333e..6728dfb38 100644
--- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
+++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java
@@ -19,7 +19,6 @@ package com.android.dialer.app.calllog.calllogcache;
import android.content.Context;
import android.telecom.PhoneAccountHandle;
import com.android.dialer.app.calllog.CallLogAdapter;
-import com.android.dialer.compat.CompatUtils;
import com.android.dialer.util.CallUtil;
/**
@@ -46,10 +45,7 @@ public abstract class CallLogCache {
/** Return the most compatible version of the TelecomCallLogCache. */
public static CallLogCache getCallLogCache(Context context) {
- if (CompatUtils.isClassAvailable("android.telecom.PhoneAccountHandle")) {
- return new CallLogCacheLollipopMr1(context);
- }
- return new CallLogCacheLollipop(context);
+ return new CallLogCacheLollipopMr1(context);
}
public void reset() {
diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java
deleted file mode 100644
index 78aaa4193..000000000
--- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.app.calllog.calllogcache;
-
-import android.content.Context;
-import android.telecom.PhoneAccount;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.PhoneNumberUtils;
-import android.text.TextUtils;
-
-/**
- * This is a compatibility class for the CallLogCache for versions of dialer before Lollipop Mr1
- * (the introduction of phone accounts).
- *
- * <p>This class should not be initialized directly and instead be acquired from {@link
- * CallLogCache#getCallLogCache}.
- */
-class CallLogCacheLollipop extends CallLogCache {
-
- private String mVoicemailNumber;
-
- /* package */ CallLogCacheLollipop(Context context) {
- super(context);
- }
-
- @Override
- public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) {
- if (TextUtils.isEmpty(number)) {
- return false;
- }
-
- String numberString = number.toString();
-
- if (!TextUtils.isEmpty(mVoicemailNumber)) {
- return PhoneNumberUtils.compare(numberString, mVoicemailNumber);
- }
-
- if (PhoneNumberUtils.isVoiceMailNumber(numberString)) {
- mVoicemailNumber = numberString;
- return true;
- }
-
- return false;
- }
-
- @Override
- public String getAccountLabel(PhoneAccountHandle accountHandle) {
- return null;
- }
-
- @Override
- public int getAccountColor(PhoneAccountHandle accountHandle) {
- return PhoneAccount.NO_HIGHLIGHT_COLOR;
- }
-
- @Override
- public boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle) {
- return false;
- }
-}
diff --git a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
index e561b5607..32bbf06b5 100644
--- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
+++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
@@ -24,6 +24,7 @@ import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import com.android.dialer.common.LogUtil;
import com.android.dialer.logging.ContactSource.Type;
+import com.android.dialer.oem.CequintCallerIdManager;
import com.android.dialer.phonenumbercache.ContactInfo;
import com.android.dialer.phonenumbercache.ContactInfoHelper;
import com.android.dialer.util.ExpirableCache;
@@ -55,6 +56,7 @@ public class ContactInfoCache {
private final OnContactInfoChangedListener mOnContactInfoChangedListener;
private final BlockingQueue<ContactInfoRequest> mUpdateRequests;
private final Handler mHandler;
+ private CequintCallerIdManager mCequintCallerIdManager;
private QueryThread mContactInfoQueryThread;
private volatile boolean mRequestProcessingDisabled = false;
@@ -95,6 +97,10 @@ public class ContactInfoCache {
mHandler = new InnerHandler(new WeakReference<>(this));
}
+ public void setCequintCallerIdManager(CequintCallerIdManager cequintCallerIdManager) {
+ mCequintCallerIdManager = cequintCallerIdManager;
+ }
+
public ContactInfo getValue(
String number,
String countryIso,
@@ -160,7 +166,7 @@ public class ContactInfoCache {
// TODO: Maybe skip look up if it's already available in cached number lookup
// service.
long start = SystemClock.elapsedRealtime();
- mContactInfoHelper.updateFromCequintCallerId(info, request.number);
+ mContactInfoHelper.updateFromCequintCallerId(mCequintCallerIdManager, info, request.number);
long time = SystemClock.elapsedRealtime() - start;
LogUtil.d(
"ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time);
diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java
index e9d57b399..c0b26c91a 100644
--- a/java/com/android/dialer/app/dialpad/DialpadFragment.java
+++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java
@@ -29,6 +29,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
+import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -84,6 +85,7 @@ import com.android.dialer.common.LogUtil;
import com.android.dialer.dialpadview.DialpadKeyButton;
import com.android.dialer.dialpadview.DialpadView;
import com.android.dialer.location.GeoUtil;
+import com.android.dialer.oem.MotorolaUtils;
import com.android.dialer.proguard.UsedByReflection;
import com.android.dialer.telecom.TelecomUtil;
import com.android.dialer.util.CallUtil;
@@ -626,6 +628,14 @@ public class DialpadFragment extends Fragment
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 f71517a44..d98395ec7 100644
--- a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
+++ b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java
@@ -28,6 +28,7 @@ import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
import com.android.contacts.common.util.UriUtils;
import com.android.dialer.app.R;
import com.android.dialer.compat.CompatUtils;
@@ -98,8 +99,8 @@ public class NumbersAdapter extends SimpleCursorAdapter {
info.lookupUri == null ? null : UriUtils.getLookupKeyFromUri(info.lookupUri);
final int contactType =
mContactInfoHelper.isBusiness(info.sourceType)
- ? ContactPhotoManager.TYPE_BUSINESS
- : ContactPhotoManager.TYPE_DEFAULT;
+ ? LetterTileDrawable.TYPE_BUSINESS
+ : LetterTileDrawable.TYPE_DEFAULT;
final DefaultImageRequest request =
new DefaultImageRequest(displayName, lookupKey, contactType, true /* isCircular */);
badge.assignContactUri(info.lookupUri);
diff --git a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
index 1cdeb2175..c208fd57d 100644
--- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
+++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java
@@ -40,6 +40,7 @@ public interface DialerLegacyBindings {
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 6e32843ba..19fa1a70c 100644
--- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
+++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java
@@ -34,6 +34,7 @@ public class DialerLegacyBindingsStub implements DialerLegacyBindings {
Activity activity,
ViewGroup alertContainer,
CallLogAdapter.CallFetcher callFetcher,
+ CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView,
CallLogCache callLogCache,
ContactInfoCache contactInfoCache,
VoicemailPlaybackPresenter voicemailPlaybackPresenter,
@@ -43,6 +44,7 @@ public class DialerLegacyBindingsStub implements DialerLegacyBindings {
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 04609970a..f5fdb9e2d 100644
--- a/java/com/android/dialer/app/list/AllContactsFragment.java
+++ b/java/com/android/dialer/app/list/AllContactsFragment.java
@@ -38,12 +38,14 @@ import com.android.contacts.common.list.ContactEntryListFragment;
import com.android.contacts.common.list.ContactListFilter;
import com.android.contacts.common.list.DefaultContactListAdapter;
import com.android.dialer.app.R;
-import com.android.dialer.app.widget.EmptyContentView;
-import com.android.dialer.app.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.IntentUtil;
import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
+import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
/** Fragments to show all contacts with phone numbers. */
public class AllContactsFragment extends ContactEntryListFragment<ContactEntryListAdapter>
@@ -149,6 +151,8 @@ public class AllContactsFragment extends ContactEntryListFragment<ContactEntryLi
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 537f488d5..04927cf7a 100644
--- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
+++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
@@ -19,6 +19,7 @@ package com.android.dialer.app.list;
import android.content.Context;
import android.content.res.Resources;
import android.database.Cursor;
+import android.graphics.drawable.Drawable;
import android.telephony.PhoneNumberUtils;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
@@ -29,7 +30,6 @@ import com.android.contacts.common.list.PhoneNumberListAdapter;
import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.dialer.app.R;
import com.android.dialer.location.GeoUtil;
-import com.android.dialer.util.CallUtil;
/**
* {@link PhoneNumberListAdapter} with the following added shortcuts, that are displayed as list
@@ -50,7 +50,6 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT];
private final BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
- private final boolean mVideoCallingEnabled;
private final String mCountryIso;
private String mFormattedQueryString;
@@ -59,7 +58,6 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
super(context);
mCountryIso = GeoUtil.getCurrentCountryIso(context);
- mVideoCallingEnabled = CallUtil.isVideoEnabled(context);
}
@Override
@@ -110,8 +108,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
return convertView;
} else {
final ContactListItemView v =
- new ContactListItemView(
- getContext(), null, mVideoCallingEnabled, isCallAndShareEnabled());
+ new ContactListItemView(getContext(), null, mIsImsVideoEnabled);
assignShortcutToView(v, shortcutType);
return v;
}
@@ -125,8 +122,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
- view.setSupportVideoCallIcon(mVideoCallingEnabled);
- view.setSupportCallAndShareIcon(isCallAndShareEnabled());
+ view.setSupportVideoCallIcon(mIsImsVideoEnabled);
return view;
}
@@ -171,7 +167,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
private void assignShortcutToView(ContactListItemView v, int shortcutType) {
final CharSequence text;
- final int drawableId;
+ final Drawable drawable;
final Resources resources = getContext().getResources();
final String number = getFormattedQueryString();
switch (shortcutType) {
@@ -181,34 +177,39 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
resources,
R.string.search_shortcut_call_number,
mBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR));
- drawableId = R.drawable.ic_search_phone;
+ drawable = getContext().getResources().getDrawable(R.drawable.quantum_ic_call_vd_theme_24);
break;
case SHORTCUT_CREATE_NEW_CONTACT:
text = resources.getString(R.string.search_shortcut_create_new_contact);
- drawableId = R.drawable.ic_search_add_contact;
+ drawable =
+ getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
+ drawable.setAutoMirrored(true);
break;
case SHORTCUT_ADD_TO_EXISTING_CONTACT:
text = resources.getString(R.string.search_shortcut_add_to_contact);
- drawableId = R.drawable.quantum_ic_person_white_24;
+ drawable =
+ getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24);
break;
case SHORTCUT_SEND_SMS_MESSAGE:
text = resources.getString(R.string.search_shortcut_send_sms_message);
- drawableId = R.drawable.quantum_ic_message_white_24;
+ drawable =
+ getContext().getResources().getDrawable(R.drawable.quantum_ic_message_vd_theme_24);
break;
case SHORTCUT_MAKE_VIDEO_CALL:
text = resources.getString(R.string.search_shortcut_make_video_call);
- drawableId = R.drawable.quantum_ic_videocam_white_24;
+ drawable =
+ getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24);
break;
case SHORTCUT_BLOCK_NUMBER:
text = resources.getString(R.string.search_shortcut_block_number);
- drawableId = R.drawable.ic_not_interested_googblue_24dp;
+ drawable =
+ getContext().getResources().getDrawable(R.drawable.ic_not_interested_googblue_24dp);
break;
default:
throw new IllegalArgumentException("Invalid shortcut type");
}
- v.setDrawableResource(drawableId);
+ v.setDrawable(drawable);
v.setDisplayName(text);
- v.setPhotoPosition(super.getPhotoPosition());
v.setAdjustSelectionBoundsEnabled(false);
}
diff --git a/java/com/android/dialer/app/list/DialerViewPager.java b/java/com/android/dialer/app/list/DialerViewPager.java
new file mode 100644
index 000000000..ae99f0521
--- /dev/null
+++ b/java/com/android/dialer/app/list/DialerViewPager.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.app.list;
+
+import android.content.Context;
+import android.support.v4.view.ViewPager;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+
+/** Class that handles enabling/disabling swiping between @{ViewPagerTabs}. */
+public class DialerViewPager extends ViewPager {
+
+ private boolean enableSwipingPages;
+
+ public DialerViewPager(Context context, AttributeSet attributeSet) {
+ super(context, attributeSet);
+ enableSwipingPages = true;
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent event) {
+ if (enableSwipingPages) {
+ return super.onInterceptTouchEvent(event);
+ }
+
+ return false;
+ }
+
+ @Override
+ public boolean onTouchEvent(MotionEvent event) {
+ if (enableSwipingPages) {
+ return super.onTouchEvent(event);
+ }
+
+ return false;
+ }
+
+ public void setEnableSwipingPages(boolean enabled) {
+ enableSwipingPages = enabled;
+ }
+}
diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java
index 8dd52a9d4..32501d556 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -31,19 +31,23 @@ import android.os.Handler;
import android.os.Trace;
import android.preference.PreferenceManager;
import android.provider.VoicemailContract;
-import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
import com.android.contacts.common.list.ViewPagerTabs;
import com.android.dialer.app.R;
import com.android.dialer.app.calllog.CallLogFragment;
import com.android.dialer.app.calllog.CallLogNotificationsService;
+import com.android.dialer.app.calllog.VisualVoicemailCallLogFragment;
import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler;
import com.android.dialer.app.voicemail.error.VoicemailStatusCorruptionHandler.Source;
import com.android.dialer.common.LogUtil;
import com.android.dialer.database.CallLogQueryHandler;
+import com.android.dialer.database.CallLogQueryHandler.Listener;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.logging.ScreenEvent;
@@ -61,24 +65,28 @@ import java.util.ArrayList;
* containing the lists up above the search bar and pin it against the top of the screen.
*/
public class ListsFragment extends Fragment
- implements ViewPager.OnPageChangeListener, CallLogQueryHandler.Listener {
+ implements OnPageChangeListener, Listener, OnClickListener {
private static final String TAG = "ListsFragment";
- private ViewPager mViewPager;
+ private DialerViewPager mViewPager;
private ViewPagerTabs mViewPagerTabs;
private DialtactsPagerAdapter mAdapter;
private RemoveView mRemoveView;
private View mRemoveViewContent;
+ private View mMultiSelectSelectAllViewContent;
+ private TextView mSelectUnselectAllViewText;
+ private ImageView mSelectUnselectAllIcon;
private Fragment mCurrentPage;
private SharedPreferences mPrefs;
private boolean mHasFetchedVoicemailStatus;
+ private boolean selectAllMode;
private boolean mShowVoicemailTabAfterVoicemailStatusIsFetched;
private VoicemailStatusHelper mVoicemailStatusHelper;
private final ArrayList<OnPageChangeListener> mOnPageChangeListeners = new ArrayList<>();
/** The position of the currently selected tab. */
private int mTabIndex = TAB_INDEX_SPEED_DIAL;
- private boolean mPaused;
+ private boolean mPaused;
private CallLogQueryHandler mCallLogQueryHandler;
private final ContentObserver mVoicemailStatusObserver =
@@ -163,7 +171,7 @@ public class ListsFragment extends Fragment
tabIcons[TAB_INDEX_ALL_CONTACTS] = R.drawable.quantum_ic_people_white_24;
tabIcons[TAB_INDEX_VOICEMAIL] = R.drawable.quantum_ic_voicemail_white_24;
- mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager);
+ mViewPager = (DialerViewPager) parentView.findViewById(R.id.lists_pager);
mAdapter =
new DialtactsPagerAdapter(
getContext(),
@@ -180,9 +188,15 @@ public class ListsFragment extends Fragment
mViewPagerTabs.configureTabIcons(tabIcons);
mViewPagerTabs.setViewPager(mViewPager);
addOnPageChangeListener(mViewPagerTabs);
-
mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
+ mMultiSelectSelectAllViewContent =
+ parentView.findViewById(R.id.multi_select_select_all_view_content);
+ mSelectUnselectAllViewText = (TextView) parentView.findViewById(R.id.select_all_view_text);
+ mSelectUnselectAllIcon = (ImageView) parentView.findViewById(R.id.select_all_view_icon);
+ mMultiSelectSelectAllViewContent.setOnClickListener(null);
+ mSelectUnselectAllIcon.setOnClickListener(this);
+ mSelectUnselectAllViewText.setOnClickListener(this);
if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
&& PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
@@ -191,7 +205,7 @@ public class ListsFragment extends Fragment
.registerContentObserver(
VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
} else {
- LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions");
+ LogUtil.w("ListsFragment.onCreateView", "no voicemail read permissions");
}
Trace.endSection();
@@ -385,6 +399,13 @@ public class ListsFragment extends Fragment
mRemoveView.animate().alpha(show ? 1 : 0).start();
}
+ public void showMultiSelectRemoveView(boolean show) {
+ mMultiSelectSelectAllViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
+ mMultiSelectSelectAllViewContent.setAlpha(show ? 0 : 1);
+ mMultiSelectSelectAllViewContent.animate().alpha(show ? 1 : 0).start();
+ mViewPager.setEnableSwipingPages(!show);
+ }
+
public boolean hasFrequents() {
Fragment page = mAdapter.getItem(mAdapter.getRtlPosition(TAB_INDEX_SPEED_DIAL));
return page instanceof OldSpeedDialFragment
@@ -424,4 +445,28 @@ public class ListsFragment extends Fragment
}
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 40fe74565..1ddc0f4e1 100644
--- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java
+++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
@@ -50,12 +50,11 @@ import com.android.contacts.common.ContactTileLoaderFactory;
import com.android.contacts.common.list.ContactTileView;
import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
import com.android.dialer.app.R;
-import com.android.dialer.app.widget.EmptyContentView;
-import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.LogUtil;
import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.util.ViewUtil;
+import com.android.dialer.widget.EmptyContentView;
import java.util.ArrayList;
/** This fragment displays the user's favorite/frequent contacts in a grid. */
@@ -430,7 +429,7 @@ public class OldSpeedDialFragment extends Fragment
void showAllContactsTab();
}
- private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
+ class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks<Cursor> {
@Override
public CursorLoader onCreateLoader(int id, Bundle args) {
@@ -460,24 +459,17 @@ public class OldSpeedDialFragment extends Fragment
private class ContactTileAdapterListener implements ContactTileView.Listener {
@Override
- public void onContactSelected(Uri contactUri, Rect targetRect) {
+ public void onContactSelected(
+ Uri contactUri, Rect targetRect, CallSpecificAppData callSpecificAppData) {
if (mPhoneNumberPickerActionListener != null) {
- CallSpecificAppData callSpecificAppData =
- CallSpecificAppData.newBuilder()
- .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
- .build();
mPhoneNumberPickerActionListener.onPickDataUri(
contactUri, false /* isVideoCall */, callSpecificAppData);
}
}
@Override
- public void onCallNumberDirectly(String phoneNumber) {
+ public void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData) {
if (mPhoneNumberPickerActionListener != null) {
- CallSpecificAppData callSpecificAppData =
- CallSpecificAppData.newBuilder()
- .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
- .build();
mPhoneNumberPickerActionListener.onPickPhoneNumber(
phoneNumber, false /* isVideoCall */, callSpecificAppData);
}
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteListView.java b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
index 9516f0611..f4f395ff0 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteListView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteListView.java
@@ -1,6 +1,5 @@
/*
- * Copyright (C) 2012 Google Inc.
- * Licensed to The Android Open Source Project.
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,7 +23,6 @@ import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.os.Handler;
import android.util.AttributeSet;
-import android.util.Log;
import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.View;
@@ -33,6 +31,7 @@ import android.widget.GridView;
import android.widget.ImageView;
import com.android.dialer.app.R;
import com.android.dialer.app.list.DragDropController.DragItemContainer;
+import com.android.dialer.common.LogUtil;
/** Viewgroup that presents the user's speed dial contacts in a grid. */
public class PhoneFavoriteListView extends GridView
@@ -40,14 +39,14 @@ public class PhoneFavoriteListView extends GridView
public static final String LOG_TAG = PhoneFavoriteListView.class.getSimpleName();
final int[] mLocationOnScreen = new int[2];
- private final long SCROLL_HANDLER_DELAY_MILLIS = 5;
- private final int DRAG_SCROLL_PX_UNIT = 25;
- private final float DRAG_SHADOW_ALPHA = 0.7f;
+ private static final long SCROLL_HANDLER_DELAY_MILLIS = 5;
+ private static final int DRAG_SCROLL_PX_UNIT = 25;
+ private static final float DRAG_SHADOW_ALPHA = 0.7f;
/**
* {@link #mTopScrollBound} and {@link mBottomScrollBound} will be offseted to the top / bottom by
* {@link #getHeight} * {@link #BOUND_GAP_RATIO} pixels.
*/
- private final float BOUND_GAP_RATIO = 0.2f;
+ private static final float BOUND_GAP_RATIO = 0.2f;
private float mTouchSlop;
private int mTopScrollBound;
@@ -67,7 +66,6 @@ public class PhoneFavoriteListView extends GridView
}
};
private boolean mIsDragScrollerRunning = false;
- private int mTouchDownForDragStartX;
private int mTouchDownForDragStartY;
private Bitmap mDragShadowBitmap;
private ImageView mDragShadowOverlay;
@@ -98,7 +96,7 @@ public class PhoneFavoriteListView extends GridView
}
public PhoneFavoriteListView(Context context, AttributeSet attrs) {
- this(context, attrs, -1);
+ this(context, attrs, 0);
}
public PhoneFavoriteListView(Context context, AttributeSet attrs, int defStyle) {
@@ -121,7 +119,6 @@ public class PhoneFavoriteListView extends GridView
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
- mTouchDownForDragStartX = (int) ev.getX();
mTouchDownForDragStartY = (int) ev.getY();
}
@@ -287,7 +284,7 @@ public class PhoneFavoriteListView extends GridView
try {
bitmap = cache.copy(Bitmap.Config.ARGB_8888, false);
} catch (final OutOfMemoryError e) {
- Log.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
+ LogUtil.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e);
bitmap = null;
}
}
diff --git a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
index 5a18d039b..40f23ea6f 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java
@@ -26,6 +26,8 @@ import android.widget.TextView;
import com.android.contacts.common.list.ContactEntry;
import com.android.dialer.app.R;
import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
/** Displays the contact's picture overlaid with their name and number type in a tile. */
public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView {
@@ -87,6 +89,8 @@ public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView {
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 db89cf3dc..835b448bd 100644
--- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
+++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java
@@ -18,16 +18,22 @@ package com.android.dialer.app.list;
import android.content.ClipData;
import android.content.Context;
+import android.provider.ContactsContract.PinnedPositions;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
-import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.MoreContactUtils;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
import com.android.contacts.common.list.ContactEntry;
import com.android.contacts.common.list.ContactTileView;
import com.android.dialer.app.R;
+import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.callintent.CallSpecificAppData;
+import com.android.dialer.callintent.SpeedDialContactType;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
/**
* A light version of the {@link com.android.contacts.common.list.ContactTileView} that is used in
@@ -42,7 +48,6 @@ public abstract class PhoneFavoriteTileView extends ContactTileView {
// tile is long pressed.
static final String DRAG_PHONE_FAVORITE_TILE = "PHONE_FAVORITE_TILE";
private static final String TAG = PhoneFavoriteTileView.class.getSimpleName();
- private static final boolean DEBUG = false;
// These parameters instruct the photo manager to display the default image/letter at 70% of
// its normal size, and vertically offset upwards 12% towards the top of the letter tile, to
// make room for the contact name and number label at the bottom of the image.
@@ -55,6 +60,8 @@ public abstract class PhoneFavoriteTileView extends ContactTileView {
private View mShadowOverlay;
/** Users' most frequent phone number. */
private String mPhoneNumberString;
+ private boolean isPinned;
+ private boolean isStarred;
public PhoneFavoriteTileView(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -83,6 +90,8 @@ public abstract class PhoneFavoriteTileView extends ContactTileView {
super.loadFromContact(entry);
// Set phone number to null in case we're reusing the view.
mPhoneNumberString = null;
+ isPinned = (entry.pinned != PinnedPositions.UNPINNED);
+ isStarred = entry.isFavorite;
if (entry != null) {
// Grab the phone-number to call directly. See {@link onClick()}.
mPhoneNumberString = entry.phoneNumber;
@@ -113,16 +122,35 @@ public abstract class PhoneFavoriteTileView extends ContactTileView {
if (mListener == null) {
return;
}
+
+ CallSpecificAppData.Builder callSpecificAppData =
+ CallSpecificAppData.newBuilder()
+ .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL)
+ .setSpeedDialContactPosition(
+ ((PhoneFavoriteListView) v.getParent()).getPositionForView(v));
+ if (isStarred) {
+ callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.STARRED_CONTACT);
+ } else {
+ callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.FREQUENT_CONTACT);
+ }
+ if (isPinned) {
+ callSpecificAppData.addSpeedDialContactType(SpeedDialContactType.Type.PINNED_CONTACT);
+ }
+
if (TextUtils.isEmpty(mPhoneNumberString)) {
// Copy "superclass" implementation
+ Logger.get(getContext())
+ .logInteraction(InteractionEvent.Type.SPEED_DIAL_CLICK_CONTACT_WITH_AMBIGUOUS_NUMBER);
mListener.onContactSelected(
- getLookupUri(), MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this));
+ getLookupUri(),
+ MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this),
+ callSpecificAppData.build());
} else {
// When you tap a frequently-called contact, you want to
// call them at the number that you usually talk to them
// at (i.e. the one displayed in the UI), regardless of
// whether that's their default number.
- mListener.onCallNumberDirectly(mPhoneNumberString);
+ mListener.onCallNumberDirectly(mPhoneNumberString, callSpecificAppData.build());
}
}
};
@@ -133,7 +161,7 @@ public abstract class PhoneFavoriteTileView extends ContactTileView {
return new DefaultImageRequest(
displayName,
lookupKey,
- ContactPhotoManager.TYPE_DEFAULT,
+ LetterTileDrawable.TYPE_DEFAULT,
DEFAULT_IMAGE_LETTER_SCALE,
DEFAULT_IMAGE_LETTER_OFFSET,
false);
diff --git a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
index c692ecac7..ce8598261 100644
--- a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
+++ b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java
@@ -30,7 +30,6 @@ import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.PinnedPositions;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
-import android.util.Log;
import android.util.LongSparseArray;
import android.view.View;
import android.view.ViewGroup;
@@ -41,6 +40,11 @@ import com.android.contacts.common.list.ContactEntry;
import com.android.contacts.common.list.ContactTileView;
import com.android.contacts.common.preference.ContactsPreferences;
import com.android.dialer.app.R;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.lightbringer.Lightbringer;
+import com.android.dialer.lightbringer.LightbringerComponent;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
import com.android.dialer.shortcuts.ShortcutRefresher;
import com.google.common.collect.ComparisonChain;
import java.util.ArrayList;
@@ -190,6 +194,14 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
// Track the length of {@link #mContactEntries} and compare to {@link #TILES_SOFT_LIMIT}.
int counter = 0;
+ // Data for logging
+ int starredContactsCount = 0;
+ int pinnedContactsCount = 0;
+ int multipleNumbersContactsCount = 0;
+ int contactsWithPhotoCount = 0;
+ int contactsWithNameCount = 0;
+ int duoReachableContactsCount = 0;
+
// The cursor should not be closed since this is invoked from a CursorLoader.
if (cursor.moveToFirst()) {
int starredColumn = cursor.getColumnIndexOrThrow(Contacts.STARRED);
@@ -262,6 +274,22 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
contact.pinned = pinned;
mContactEntries.add(contact);
+ // Set counts for logging
+ if (isStarred) {
+ // mNumStarred might be larger than the number of visible starred contact,
+ // since it includes invisible ones (starred contact with no phone number).
+ starredContactsCount++;
+ }
+ if (pinned != PinnedPositions.UNPINNED) {
+ pinnedContactsCount++;
+ }
+ if (!TextUtils.isEmpty(name)) {
+ contactsWithNameCount++;
+ }
+ if (photoUri != null) {
+ contactsWithPhotoCount++;
+ }
+
duplicates.put(id, contact);
counter++;
@@ -274,6 +302,47 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
ShortcutRefresher.refresh(mContext, mContactEntries);
notifyDataSetChanged();
+
+ Lightbringer lightbringer = LightbringerComponent.get(mContext).getLightbringer();
+ for (ContactEntry contact : mContactEntries) {
+ if (contact.phoneNumber == null) {
+ multipleNumbersContactsCount++;
+ } else if (lightbringer.isReachable(mContext, contact.phoneNumber)) {
+ duoReachableContactsCount++;
+ }
+ }
+
+ Logger.get(mContext)
+ .logSpeedDialContactComposition(
+ counter,
+ starredContactsCount,
+ pinnedContactsCount,
+ multipleNumbersContactsCount,
+ contactsWithPhotoCount,
+ contactsWithNameCount,
+ duoReachableContactsCount);
+ // Logs for manual testing
+ LogUtil.v("PhoneFavoritesTileAdapter.saveCursorToCache", "counter: %d", counter);
+ LogUtil.v(
+ "PhoneFavoritesTileAdapter.saveCursorToCache",
+ "starredContactsCount: %d",
+ starredContactsCount);
+ LogUtil.v(
+ "PhoneFavoritesTileAdapter.saveCursorToCache",
+ "pinnedContactsCount: %d",
+ pinnedContactsCount);
+ LogUtil.v(
+ "PhoneFavoritesTileAdapter.saveCursorToCache",
+ "multipleNumbersContactsCount: %d",
+ multipleNumbersContactsCount);
+ LogUtil.v(
+ "PhoneFavoritesTileAdapter.saveCursorToCache",
+ "contactsWithPhotoCount: %d",
+ contactsWithPhotoCount);
+ LogUtil.v(
+ "PhoneFavoritesTileAdapter.saveCursorToCache",
+ "contactsWithNameCount: %d",
+ contactsWithNameCount);
}
/** Iterates over the {@link Cursor} Returns position of the first NON Starred Contact */
@@ -347,7 +416,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
@Override
public void notifyDataSetChanged() {
if (DEBUG) {
- Log.v(TAG, "notifyDataSetChanged");
+ LogUtil.v(TAG, "notifyDataSetChanged");
}
super.notifyDataSetChanged();
}
@@ -355,7 +424,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (DEBUG) {
- Log.v(TAG, "get view for " + String.valueOf(position));
+ LogUtil.v(TAG, "get view for " + position);
}
PhoneFavoriteTileView tileView = null;
@@ -455,8 +524,9 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
// update the database here with the new pinned positions
try {
mContext.getContentResolver().applyBatch(ContactsContract.AUTHORITY, operations);
+ Logger.get(mContext).logInteraction(InteractionEvent.Type.SPEED_DIAL_PIN_CONTACT);
} catch (RemoteException | OperationApplicationException e) {
- Log.e(TAG, "Exception thrown when pinning contacts", e);
+ LogUtil.e(TAG, "Exception thrown when pinning contacts", e);
}
}
}
@@ -609,6 +679,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop
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 02896793b..4f032032f 100644
--- a/java/com/android/dialer/app/list/RegularSearchFragment.java
+++ b/java/com/android/dialer/app/list/RegularSearchFragment.java
@@ -25,12 +25,12 @@ import android.view.ViewGroup;
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 3b917db43..1d566c5a0 100644
--- a/java/com/android/dialer/app/list/RemoveView.java
+++ b/java/com/android/dialer/app/list/RemoveView.java
@@ -41,7 +41,7 @@ public class RemoveView extends FrameLayout {
}
public RemoveView(Context context, AttributeSet attrs) {
- this(context, attrs, -1);
+ this(context, attrs, 0);
}
public RemoveView(Context context, AttributeSet attrs, int defStyle) {
diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java
index fcf8236e3..7f2d17650 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -34,19 +34,18 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Space;
import com.android.contacts.common.list.ContactEntryListAdapter;
-import com.android.contacts.common.list.ContactListItemView;
import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
import com.android.contacts.common.list.PhoneNumberPickerFragment;
import com.android.dialer.animation.AnimUtils;
import com.android.dialer.app.R;
import com.android.dialer.app.dialpad.DialpadFragment.ErrorDialogFragment;
import com.android.dialer.app.widget.DialpadSearchEmptyContentView;
-import com.android.dialer.app.widget.EmptyContentView;
import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.LogUtil;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.IntentUtil;
import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
public class SearchFragment extends PhoneNumberPickerFragment {
@@ -80,7 +79,6 @@ public class SearchFragment extends PhoneNumberPickerFragment {
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 eb1508c72..fc21c8bc3 100644
--- a/java/com/android/dialer/app/list/SmartDialSearchFragment.java
+++ b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
@@ -29,11 +29,11 @@ import android.support.v13.app.FragmentCompat;
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 ca93da0de..7c6df9448 100644
--- a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
+++ b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
@@ -19,7 +19,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.dialer.app">
- <application>
+ <application android:theme="@style/Theme.AppCompat">
<activity
android:exported="false"
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png
new file mode 100644
index 000000000..eeed895f1
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png
new file mode 100644
index 000000000..b041a74bd
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png
new file mode 100644
index 000000000..2c5ba8d58
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png
deleted file mode 100644
index 3a1a7a790..000000000
--- a/java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png
new file mode 100644
index 000000000..f3b76be4c
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png
deleted file mode 100644
index 74ccf14b8..000000000
--- a/java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png
new file mode 100644
index 000000000..01a3bbe06
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png
deleted file mode 100644
index 0e24fa45c..000000000
--- a/java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png
new file mode 100644
index 000000000..204327950
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png
deleted file mode 100644
index 9594619cb..000000000
--- a/java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png
new file mode 100644
index 000000000..bfbe69e35
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png b/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png
deleted file mode 100644
index 395652cdf..000000000
--- a/java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable/ic_search_phone.xml b/java/com/android/dialer/app/res/drawable/ic_search_phone.xml
deleted file mode 100644
index 5d449ee56..000000000
--- a/java/com/android/dialer/app/res/drawable/ic_search_phone.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2014 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:src="@drawable/ic_results_phone"
- android:tint="@color/search_shortcut_icon_color"/>
diff --git a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml
new file mode 100644
index 000000000..968713376
--- /dev/null
+++ b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:tint="?attr/colorControlNormal"
+ android:viewportHeight="30"
+ android:viewportWidth="30"
+ android:width="24dp">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M14.88,16.3h0L25,3.66a16.51,16.51 0,0 0,-20.3 0L14.88,16.3Z"/>
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M26.42,18.88a1.25,1.25 0,0 0,-0.89 -0.36,1.28 1.28,0 0,0 -0.87,0.35 14.26,14.26 0,0 1,-3.32 2.31,1.24 1.24,0 0,0 -0.7,1.12v3.87a18.27,18.27 0,0 1,-5.75 0.91,18.63 18.63,0 0,1 -5.75,-0.9v-3.87a1.26,1.26 0,0 0,-0.7 -1.12,14.73 14.73,0 0,1 -3.34,-2.31 1.23,1.23 0,0 0,-0.87 -0.35,1.25 1.25,0 0,0 -0.89,0.36L0.24,22a1.24,1.24 0,0 0,-0.36 0.89,1.23 1.23,0 0,0 0.37,0.87 21.26,21.26 0,0 0,29.26 0,1.27 1.27,0 0,0 0,-1.77Z"/>
+</vector> \ No newline at end of file
diff --git a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
index 5f8068067..59d13636a 100644
--- a/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
+++ b/java/com/android/dialer/app/res/layout-land/empty_content_view_dialpad_search.xml
@@ -26,14 +26,14 @@
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageView
- android:id="@+id/emptyListViewImage"
+ android:id="@+id/empty_list_view_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:importantForAccessibility="no"/>
<TextView
- android:id="@+id/emptyListViewMessage"
+ android:id="@+id/empty_list_view_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
@@ -45,7 +45,7 @@
android:textSize="@dimen/empty_list_message_text_size"/>
<TextView
- android:id="@+id/emptyListViewAction"
+ android:id="@+id/empty_list_view_action"
style="@style/TextActionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/layout/action_mode_close_button.xml b/java/com/android/dialer/app/res/layout/action_mode_close_button.xml
new file mode 100644
index 000000000..4cb85d458
--- /dev/null
+++ b/java/com/android/dialer/app/res/layout/action_mode_close_button.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/action_mode_close_button"
+ style="?attr/actionModeCloseButtonStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_marginEnd="16dip"
+ android:layout_marginRight="16dip"
+ android:paddingStart="8dp"
+ android:paddingLeft="8dp"
+ android:clickable="true"
+ android:contentDescription="@string/description_cancel_multi_select"
+ android:focusable="true"
+ android:src="@drawable/quantum_ic_close_white_24"/>
+
+
diff --git a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
index 17a45208d..422c52991 100644
--- a/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/all_contacts_fragment.xml
@@ -45,7 +45,7 @@
android:cropToPadding="false"
android:clipToPadding="false"/>
- <com.android.dialer.app.widget.EmptyContentView
+ <com.android.dialer.widget.EmptyContentView
android:id="@+id/empty_list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/layout/call_log_fragment.xml b/java/com/android/dialer/app/res/layout/call_log_fragment.xml
index 64f7c10e6..8ed2d5b8a 100644
--- a/java/com/android/dialer/app/res/layout/call_log_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_fragment.xml
@@ -37,7 +37,7 @@
android:background="@color/background_dialer_call_log"
android:clipToPadding="false"/>
- <com.android.dialer.app.widget.EmptyContentView
+ <com.android.dialer.widget.EmptyContentView
android:id="@+id/empty_list_view"
android:layout_width="match_parent"
android:layout_height="0dp"
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item.xml b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
index 0fbbb9dd1..4a3a83683 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item.xml
@@ -80,7 +80,7 @@
android:layout_width="@dimen/contact_photo_size"
android:layout_height="@dimen/contact_photo_size"
android:visibility="gone"
- android:src="@drawable/quantum_ic_check_circle_googblue_24" />
+ android:src="@drawable/ic_check_mark_48dp" />
</FrameLayout>
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
index d3a553130..504638348 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
@@ -50,7 +50,7 @@
<TextView
android:id="@+id/call_action_text"
style="@style/CallLogActionTextStyle"
- android:text="@string/description_call_log_call_action"/>
+ android:text="@string/call"/>
<TextView
android:id="@+id/call_type_or_location_text"
@@ -135,7 +135,7 @@
<ImageView
style="@style/CallLogActionIconStyle"
- android:src="@drawable/ic_call_and_share"/>
+ android:src="@drawable/ic_phone_attach"/>
<TextView
style="@style/CallLogActionTextStyle"
diff --git a/java/com/android/dialer/app/res/layout/dialpad_fragment.xml b/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
index dd6dab747..9b95e1fbf 100644
--- a/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/dialpad_fragment.xml
@@ -21,42 +21,42 @@
android:orientation="horizontal">
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
<!-- spacer view -->
<View
- android:id="@+id/spacer"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"
- android:background="#00000000"/>
+ android:id="@+id/spacer"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:background="#00000000"/>
<!-- Dialpad shadow -->
<View
- android:layout_width="match_parent"
- android:layout_height="@dimen/shadow_length"
- android:background="@drawable/shadow_fade_up"/>
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/shadow_length"
+ android:background="@drawable/shadow_fade_up"/>
<include layout="@layout/dialpad_view"/>
<!-- "Dialpad chooser" UI, shown only when the user brings up the
Dialer while a call is already in progress.
When this UI is visible, the other Dialer elements
(the textfield/button and the dialpad) are hidden. -->
<ListView
- android:id="@+id/dialpadChooser"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@color/background_dialer_light"
- android:visibility="gone"/>
+ android:id="@+id/dialpadChooser"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@color/background_dialer_light"
+ android:visibility="gone"/>
</LinearLayout>
<!-- Margin bottom and alignParentBottom don't work well together, so use a Space instead. -->
<Space
- android:id="@+id/dialpad_floating_action_button_margin_bottom"
- android:layout_width="match_parent"
- android:layout_height="@dimen/floating_action_button_margin_bottom"
- android:layout_alignParentBottom="true"/>
+ android:id="@+id/dialpad_floating_action_button_margin_bottom"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/floating_action_button_margin_bottom"
+ android:layout_alignParentBottom="true"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/dialpad_floating_action_button"
@@ -64,8 +64,9 @@
android:layout_height="@dimen/floating_action_button_height"
android:layout_above="@id/dialpad_floating_action_button_margin_bottom"
android:layout_centerHorizontal="true"
- android:src="@drawable/quantum_ic_call_white_24"
android:contentDescription="@string/description_dial_button"
- app:elevation="@dimen/floating_action_button_translation_z"
- app:backgroundTint="@color/dialpad_fab_green"/>
+ android:src="@drawable/quantum_ic_call_vd_theme_24"
+ app:backgroundTint="@color/dialpad_fab_green"
+ app:colorControlNormal="#ffffff"
+ app:elevation="@dimen/floating_action_button_translation_z"/>
</view>
diff --git a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
index e245aaca0..1d2047982 100644
--- a/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
+++ b/java/com/android/dialer/app/res/layout/empty_content_view_dialpad_search.xml
@@ -16,7 +16,7 @@
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
- android:id="@+id/emptyListViewImage"
+ android:id="@+id/empty_list_view_image"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
@@ -24,7 +24,7 @@
android:gravity="center_horizontal" />
<TextView
- android:id="@+id/emptyListViewMessage"
+ android:id="@+id/empty_list_view_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|top"
@@ -36,7 +36,7 @@
android:paddingBottom="8dp"/>
<TextView
- android:id="@+id/emptyListViewAction"
+ android:id="@+id/empty_list_view_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
diff --git a/java/com/android/dialer/app/res/layout/lists_fragment.xml b/java/com/android/dialer/app/res/layout/lists_fragment.xml
index 442b428f2..71867d705 100644
--- a/java/com/android/dialer/app/res/layout/lists_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/lists_fragment.xml
@@ -15,41 +15,41 @@
-->
<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/lists_frame"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:animateLayoutChanges="true">
-
- <LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/lists_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical">
+ android:animateLayoutChanges="true">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
<!-- TODO: Apply background color to ActionBar instead of a FrameLayout. For now, this is
the easiest way to preserve correct pane scrolling and searchbar collapse/expand
behaviors. -->
<FrameLayout
- android:layout_width="match_parent"
- android:layout_height="@dimen/action_bar_height_large"
- android:background="@color/actionbar_background_color"
- android:elevation="@dimen/tab_elevation"/>
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/action_bar_height_large"
+ android:background="@color/actionbar_background_color"
+ android:elevation="@dimen/tab_elevation"/>
<com.android.contacts.common.list.ViewPagerTabs
- android:id="@+id/lists_pager_header"
- style="@style/DialtactsActionBarTabTextStyle"
- android:layout_width="match_parent"
- android:layout_height="@dimen/tab_height"
- android:layout_gravity="top"
- android:elevation="@dimen/tab_elevation"
- android:orientation="horizontal"
- android:textAllCaps="true"/>
-
- <android.support.v4.view.ViewPager
- android:id="@+id/lists_pager"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="1"/>
+ 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"/>
</LinearLayout>
@@ -58,41 +58,80 @@
This is required since drag and drop event is only sent to views are visible when drag
starts. -->
<com.android.dialer.app.list.RemoveView
- android:id="@+id/remove_view"
- android:layout_width="match_parent"
- android:layout_height="@dimen/tab_height"
- android:layout_marginTop="@dimen/action_bar_height_large"
- android:contentDescription="@string/remove_contact"
- android:importantForAccessibility="no">
+ android:id="@+id/remove_view"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/tab_height"
+ android:layout_marginTop="@dimen/action_bar_height_large"
+ android:contentDescription="@string/remove_contact"
+ android:importantForAccessibility="no">
<LinearLayout
- android:id="@+id/remove_view_content"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/actionbar_background_color"
- android:gravity="center"
- android:orientation="horizontal"
- android:visibility="gone">
+ android:id="@+id/remove_view_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/actionbar_background_color"
+ android:gravity="center"
+ android:orientation="horizontal"
+ android:visibility="gone">
<ImageView
- android:id="@+id/remove_view_icon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:layout_marginBottom="8dp"
- android:src="@drawable/ic_remove"
- android:tint="@color/remove_text_color"/>
+ android:id="@+id/remove_view_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
+ android:src="@drawable/ic_remove"
+ android:tint="@color/remove_text_color"/>
<TextView
- android:id="@+id/remove_view_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/remove_contact"
- android:textColor="@color/remove_text_color"
- android:textSize="@dimen/remove_text_size"/>
+ android:id="@+id/remove_view_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/remove_contact"
+ android:textColor="@color/remove_text_color"
+ android:textSize="@dimen/remove_text_size"/>
</LinearLayout>
</com.android.dialer.app.list.RemoveView>
+ <FrameLayout
+ android:id="@+id/multi_select_view"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/tab_height"
+ android:layout_marginTop="@dimen/action_bar_height_large"
+ android:contentDescription="@string/remove_contact"
+ android:importantForAccessibility="no">
+
+ <LinearLayout
+ android:id="@+id/multi_select_select_all_view_content"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_gravity="center"
+ android:background="@color/actionbar_background_color"
+ android:orientation="horizontal"
+ android:visibility="gone">
+
+ <ImageView
+ android:id="@+id/select_all_view_icon"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingLeft="12dp"
+ android:gravity="center_vertical"
+ android:src="@drawable/ic_empty_check_mark_white_24dp"/>
+ <TextView
+ android:id="@+id/select_all_view_text"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:paddingLeft="30dp"
+ android:gravity="center_vertical"
+ android:text="@string/select_all"
+ android:textAllCaps="true"
+ android:textStyle="bold"
+ android:textColor="@color/remove_text_color"
+ android:textSize="@dimen/remove_text_size"/>
+ </LinearLayout>
+
+ </FrameLayout>
+
</FrameLayout>
diff --git a/java/com/android/dialer/app/res/layout/search_edittext.xml b/java/com/android/dialer/app/res/layout/search_edittext.xml
index c02512d80..bb6a5f7de 100644
--- a/java/com/android/dialer/app/res/layout/search_edittext.xml
+++ b/java/com/android/dialer/app/res/layout/search_edittext.xml
@@ -29,7 +29,7 @@
android:padding="@dimen/search_box_search_icon_padding"
android:importantForAccessibility="no"
android:scaleType="center"
- android:src="@drawable/quantum_ic_search_white_24"
+ android:src="@drawable/quantum_ic_search_vd_theme_24"
android:tint="@color/searchbox_icon_tint"/>
<TextView
diff --git a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
index c778c6bc4..3fa3be229 100644
--- a/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
+++ b/java/com/android/dialer/app/res/layout/speed_dial_fragment.xml
@@ -41,7 +41,7 @@
android:numColumns="@integer/contact_tile_column_count_in_favorites"/>
</FrameLayout>
- <com.android.dialer.app.widget.EmptyContentView
+ <com.android.dialer.widget.EmptyContentView
android:id="@+id/empty_list_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/app/res/values-af/strings.xml b/java/com/android/dialer/app/res/values-af/strings.xml
index 2eb462b1c..4f4c65b8a 100644
--- a/java/com/android/dialer/app/res/values-af/strings.xml
+++ b/java/com/android/dialer/app/res/values-af/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Keer terug na oproep wat besig is"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Voeg oproep by"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Inkomende oproepe"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Gaan tans grootmaathandelingmodus in"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Het grootmaathandelingmodus verlaat"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Het <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> gekies"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Het <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ontkies"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Speel stemboodskap"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Bekyk kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Bel <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Stemboodskap"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Kanselleer grootmaathandelingmodus"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"stemboodskap"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"stemboodskappe"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nee"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vee geselekteerde <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> uit?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> gekies"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laai tans van SIM-kaart af…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM-kaartkontakte"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Geen kontakte-program beskikbaar nie"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Stemsoektog is nie beskikbaar nie"</string>
<string name="call_not_available" msgid="7850148370757361155">"Kan nie \'n foonoproep maak nie want die Foon-program is gedeaktiveer."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Deursoek kontakte"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nuwe gemiste oproepe"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Daar is nog niemand op jou spoedbel nie"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Voeg \'n gunsteling by"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Jy het nog nie enige kontakte nie"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Voeg \'n kontak by"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Raak aan prent om al die nommers te sien of raak en hou om te herorganiseer"</string>
<string name="remove_contact" msgid="2353580570488923668">"Verwyder"</string>
+ <string name="select_all" msgid="408601760696146245">"Kies alles"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Video-oproep"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Stuur \'n boodskap"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Oproepbesonderhede"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Geblokkeerde nommers"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is reeds geblokkeer."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Oproeprekeninge"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Skakel aan"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Stel toestemmings"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Skakel die kontaktetoestemming aan om spoedbel te aktiveer."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Skakel die foontoestemming aan om jou oproeprekord te sien."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Skakel die foontoestemming aan om na jou stemboodskapdiens te gaan."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Skakel die foontoestemming aan om \'n oproep te maak."</string>
diff --git a/java/com/android/dialer/app/res/values-am/strings.xml b/java/com/android/dialer/app/res/values-am/strings.xml
index 82303019c..7f4a622d7 100644
--- a/java/com/android/dialer/app/res/values-am/strings.xml
+++ b/java/com/android/dialer/app/res/values-am/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"በመካሄድ ላይ ወዳለው ጥሪ ተመለስ"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"ጥሪ ያክሉ"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ገቢ ጥሪዎች"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ወደ የጅምላ እርምጃ ሁነታ በመግባት ላይ"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ከጅምላ እርምጃ ሁነታ ለቀው ወጥተዋል"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ተመርጧል"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> አልተመረጠም"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"የድምፅ መልዕክት አጫውት"</string>
<string name="description_view_contact" msgid="3940984937384372665">"ዕውቂያ <xliff:g id="NAME">%1$s</xliff:g> ዕይ"</string>
<string name="description_call" msgid="1532402285334775372">"ጥሪ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"የድምፅ መልዕክት"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ሰከንድ"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ደቂቃ <xliff:g id="SECONDS">%s</xliff:g> ሴከ"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"የጅምላ እርምጃ ሁነታ ይቅር"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"የድምፅ መልዕክት"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"የድምፅ መልዕክቶች"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"አዎ"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"አይ"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"የተመረጠው <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ይሰረዝ?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ተመርጠዋል"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ላይ"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"ከSIM ካርድ ላይ በመጫን ላይ..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"የSIM ካርድ ዕውቂያዎች"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"ምንም የእውቂያዎች መተግበሪያ አይገኝም"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"የድምጽ ፍለጋ አይገኝም"</string>
<string name="call_not_available" msgid="7850148370757361155">"የስልክ መተግበሪያው ስለተሰናከለ የስልክ ጥሪ ማድረግ አይቻልም።"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"ዕውቅያዎችን ፈልግ"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> አዲስ ያልተመለሱ ጥሪዎች"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"በፈጥኖ መደወያ ላይ ገና ማንም የለዎትም"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ተወዳጅ አክል"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"ገና ምንም እውቂያዎች የሉዎትም"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ዕውቂያ አክል"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"ሁሉንም ቁጥሮች ለማየት ምስል ይንኩ ወይም ዳግም ለመደርደር ነክተው ይያዙት"</string>
<string name="remove_contact" msgid="2353580570488923668">"አስወግድ"</string>
+ <string name="select_all" msgid="408601760696146245">"ሁሉንም ምረጥ"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"የቪዲዮ ጥሪ"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"መልእክት ላክ"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"የጥሪ ዝርዝሮች"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"የታገዱ ቁጥሮች"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ቀድሞውኑ ታግዷል።"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"የመደወያ መለያዎች"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"አብራ"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"ፍቃዶችን አዋቅር"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"ፈጥኖ መደወያን ለማንቃት የእውቂያዎች ፍቃዱን ያብሩ።"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"የጥሪ ምዝግብ ማስታወአሽዎን ለማየት የስልክ ፍቃዱን ያብሩ።"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"የእርስዎን እውቂያዎች ለማየት የእውቂያዎች ፍቃዱን ያብሩ።"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"የድምፅ መልዕክትዎን ለመድረስ የስልክ ፍቃዱን ያብሩ።"</string>
<string name="permission_no_search" msgid="2424710404207193826">"የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።"</string>
<string name="permission_place_call" msgid="8686908130349369423">"ስልክ ለመደወል የስልክ ፍቃዱን ያብሩ።"</string>
diff --git a/java/com/android/dialer/app/res/values-ar/strings.xml b/java/com/android/dialer/app/res/values-ar/strings.xml
index e4dfb4d9e..3687d0bcb 100644
--- a/java/com/android/dialer/app/res/values-ar/strings.xml
+++ b/java/com/android/dialer/app/res/values-ar/strings.xml
@@ -89,6 +89,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"عودة إلى المكالمة الجارية"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"إضافة مكالمة"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"المكالمات الواردة"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"يتم الدخول إلى وضع الإجراء المجمَّع"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"تمت مغادرة وضع الإجراء المجمَّع"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"تم تحديد <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"تم إلغاء تحديد <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"تشغيل البريد الصوتي"</string>
<string name="description_view_contact" msgid="3940984937384372665">"عرض جهة الاتصال <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"الاتصال بـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -103,11 +107,13 @@
<string name="voicemail" msgid="8899540969000957954">"البريد الصوتي"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> دقيقة <xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"إلغاء وضع الإجراءات المجمَّع"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"البريد الصوتي"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"رسائل البريد الصوتي"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"نعم"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"لا"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"حذف رسائل <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> المحددة؟"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"تم تحديد <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> في <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -120,7 +126,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏جارٍ التحميل من شريحة SIM…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"‏شريحة SIM وجهات الاتصال"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"لا يتوفر تطبيق لجهات الاتصال"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"البحث الصوتي غير متاح"</string>
<string name="call_not_available" msgid="7850148370757361155">"يتعذر إجراء مكالمة هاتفية نظرًا لأنه تم تعطيل تطبيق الهاتف."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"البحث في جهات الاتصال"</string>
@@ -149,10 +154,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> من المكالمات الجديدة الفائتة"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"لم تتم إضافة أية جهة اتصال إلى قائمة الاتصال السريع حتى الآن"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"إضافة مفضلة"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"ليست لديك أية جهات اتصال حتى الآن"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"إضافة جهة اتصال"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"المس الصورة للاطلاع على جميع الأرقام أو المس مع الاستمرار لإعادة الترتيب"</string>
<string name="remove_contact" msgid="2353580570488923668">"إزالة"</string>
+ <string name="select_all" msgid="408601760696146245">"تحديد الكل"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"مكالمة فيديو"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"إرسال رسالة"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"تفاصيل المكالمة"</string>
@@ -221,11 +225,9 @@
<string name="block_list" msgid="4701585783411870782">"الأرقام المحظورة"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"تم حظر <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"حسابات الاتصال"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"تشغيل"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"تعيين الأذونات"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"لتمكين الاتصال السريع، شغِّل إذن جهات الاتصال."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"للاطلاع على سجل المكالمات، شغِّل إذن الهاتف."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"للوصول إلى البريد الصوتي، شغِّل إذن الهاتف."</string>
<string name="permission_no_search" msgid="2424710404207193826">"للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال."</string>
<string name="permission_place_call" msgid="8686908130349369423">"لإجراء مكالمة، شغِّل إذن الهاتف."</string>
diff --git a/java/com/android/dialer/app/res/values-az/strings.xml b/java/com/android/dialer/app/res/values-az/strings.xml
index 62bc117ba..b6681c9e2 100644
--- a/java/com/android/dialer/app/res/values-az/strings.xml
+++ b/java/com/android/dialer/app/res/values-az/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Davam edən zəngə qayıdın"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Zəng əlavə edin"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Gələn zənglər"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Toplu əməliyyat rejiminə daxil olunur"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Toplu əməliyyat rejimi tərk edilir"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seçildi"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seçilmədi"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Səsli məktubu oxudun"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> adlı kontakta baxın"</string>
<string name="description_call" msgid="1532402285334775372">"Zəng <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Səsli poçt"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> san"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> dəq <xliff:g id="SECONDS">%s</xliff:g> san"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Qrup əməliyyatları rejimini ləğv edin"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"səsli e-məktub"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"səsli e-məktublar"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Bəli"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Xeyr"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Seçilmiş <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> silinsin?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seçilib"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> tarixində <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM kartdan yüklənir..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM kart kontaktları"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Əlaqələr proqramı mövcud deyil"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Səsli axtarış mövcud deyil"</string>
<string name="call_not_available" msgid="7850148370757361155">"Telefon tətbiqi deaktiv edildiyinə görə telefon zəngi etmək mümkün deyil."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kontakt axtarın"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> yeni buraxılmış zəng"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Hələ sürətli zəng siyahınızda hec kim yoxdur"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Sevimlilərə əlavə edin"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Hələ heç bir kontaktınız yoxdur"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kontakt əlavə edin"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Bütün nömrələri görmək üçün təsvirə toxunun və ya yenidən qaydaya salmaq üçün basıb saxlayın"</string>
<string name="remove_contact" msgid="2353580570488923668">"Yığışdır"</string>
+ <string name="select_all" msgid="408601760696146245">"Hamısını seçin"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Video zəng"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Mesaj göndərin"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Zəng detalları"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Bloklanmış nömrələr"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> artıq bloklanıb."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Hesabların çağrılması"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktiv edin"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"İcazələri quraşdırın"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Sürətli yığımı aktivləşdirmək üçün, Kontakt icazələrini aktivləşdirin."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Çağrı jurnalınızı görmək üçün Telefon icazəsini aktivləşdirin."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktlarınızı görmək üçün Kontakt icazəsini aktivləşdirin."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Səsli poçta daxil olmaq üçün, Telefon icazəsini aktivləşdirin."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Zəng etmək üçün, Telefon icazəsini aktivləşdirin."</string>
diff --git a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
index 9df729108..40c0886c8 100644
--- a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
@@ -86,6 +86,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vrati se na poziv koji je u toku"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazite u režim grupnih radnji"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Izašli ste iz režima grupnih radnji"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Izabrano je <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Opozvan je izbor <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Puštanje govorne pošte"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Pozovi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
<string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkažite režim grupnih radnji"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"govornu poruku"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"govorne poruke"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite li da izbrišete izabranu(e) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Izabranih: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitava se sa SIM kartice…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakti na SIM kartici"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nema dostupne aplikacije za kontakte"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Glasovna pretraga nije dostupna"</string>
<string name="call_not_available" msgid="7850148370757361155">"Nije moguće uputiti telefonski poziv jer je aplikacija Telefon onemogućena."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pretraži kontakte"</string>
@@ -146,10 +151,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Nemate nijedan kontakt na brzom biranju"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj omiljen kontakt"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Još uvek nemate nijedan kontakt"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da biste videli sve brojeve ili dodirnite i zadržite da biste im promenili raspored"</string>
<string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
+ <string name="select_all" msgid="408601760696146245">"Izaberi sve"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Video poziv"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalji poziva"</string>
@@ -215,11 +219,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Nalozi za pozivanje"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Podesi dozvole"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Da biste omogućili brzo biranje, uključite dozvolu za Kontakte."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Da biste videli evidenciju poziva, uključite dozvolu za Telefon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Da biste pristupili govornoj pošti, uključite dozvolu za Telefon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Da biste pretražili kontakte, uključite dozvole za Kontakte."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Da biste uputili poziv, uključite dozvolu za Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-be/strings.xml b/java/com/android/dialer/app/res/values-be/strings.xml
index aac3df2bd..f2ad3342b 100644
--- a/java/com/android/dialer/app/res/values-be/strings.xml
+++ b/java/com/android/dialer/app/res/values-be/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Звярнуцца да бягучага выкліку"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Дадаць выклік"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Уваходныя выклікі"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Уваход у рэжым групавога дзеяння"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Выхад з рэжыму групавога дзеяння"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Выбрана: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Выбар скасаваны: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Прайграць паведамленне галасавой пошты"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Прагледзець кантакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Выклікаць карыстальнiка <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"Галасавая пошта"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> с"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Скасаваць рэжым пакетных дзеянняў"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"галасавая пошта"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"галасавая пошта"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Так"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Выдаліць вылучанае: <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Выбрана: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Загрузка з SIM-карты..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Кантакты SIM-карты"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Праграмы для аперацый з кантактамі няма"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Галасавы пошук недаступны"</string>
<string name="call_not_available" msgid="7850148370757361155">"Немагчыма зрабіць выклік па тэлефоне, таму што праграма Тэлефон была адключана."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пошук кантактаў"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Новых прапушчаных выклікаў: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"У вас пакуль нікога няма на хуткім наборы"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Дадаць улюбёны"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"У вас пакуль няма ніякіх кантактаў"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Дадаць кантакт"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Дакраніцеся да відарыса, каб прагледзець усе нумары, або дакраніцеся і ўтрымлівайце, каб змяніць парадак"</string>
<string name="remove_contact" msgid="2353580570488923668">"Выдаліць"</string>
+ <string name="select_all" msgid="408601760696146245">"Выбраць усё"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Відэавыклік"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Адправiць паведамленне"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Падрабязнасці выкліку"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"Заблакіраваныя нумары"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ужо заблакіраваны."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Уліковыя запісы для выклікаў"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Уключыць"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задаць дазволы"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Каб уключыць хуткі набор, уключыце дазвол для Кантактаў."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Каб прагледзець свой журнал выклікаў, уключыце дазволы Тэлефона."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Каб бачыць свае кантакты, уключыце дазвол для Кантактаў."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Каб атрымаць доступ да галасавой пошты, уключыце дазвол для Тэлефона."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Каб шукаць свае кантакты, уключыце дазвол для Кантактаў."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Каб зрабіць выклік, уключыце дазвол для Тэлефона."</string>
diff --git a/java/com/android/dialer/app/res/values-bg/strings.xml b/java/com/android/dialer/app/res/values-bg/strings.xml
index 7bab71f3b..8083f4828 100644
--- a/java/com/android/dialer/app/res/values-bg/strings.xml
+++ b/java/com/android/dialer/app/res/values-bg/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Назад към текущото обаждане"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Добавяне на обаждане"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Вх. обаждания"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Влизате в режима на групови действия"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Излязохте от режима на групови действия"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Избрахте <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Премахнахте избора от <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Пускане на гласовата поща"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Преглед на контактa <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Обаждане на <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Гласова поща"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Анулиране на режима на групови действия"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"гласово съобщение"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"гласови съобщения"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Избрахте <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> – да се изтрие ли избраното?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Избрахте <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Зарежда се от SIM карта..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Контакти от SIM карта"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Няма налично приложение за контакти"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Гласовото търсене не е налице"</string>
<string name="call_not_available" msgid="7850148370757361155">"Не може да се осъществи телефонно обаждане, защото приложението Телефон е деактивирано."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Търсене в контактите"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуснати обаждания"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Още нямате контакти за бързо набиране"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Добавяне на любим контакт"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Още нямате контакти"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Добавяне на контакт"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Докоснете изображението, за да видите всички номера, или го натиснете и задръжте за пренареждане"</string>
<string name="remove_contact" msgid="2353580570488923668">"Премахване"</string>
+ <string name="select_all" msgid="408601760696146245">"Избиране на всички"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Видеообаждане"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Изпращане на съобщение"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Подробности за обаждането"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Блокирани номера"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> вече е блокиран."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Профили за обаждане"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Включване"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задаване на разрешенията"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"За да активирате бързото набиране, включете разрешението за Контакти."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"За да видите списъка с обажданията си, включете разрешението за Телефон."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"За да видите контактите си, включете разрешението за Контакти."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"За да осъществите достъп до гласовата си поща, включете разрешението за Телефон."</string>
<string name="permission_no_search" msgid="2424710404207193826">"За да търсите в контактите си, включете разрешенията за тях."</string>
<string name="permission_place_call" msgid="8686908130349369423">"За да извършите обаждане, включете разрешението за Телефон."</string>
diff --git a/java/com/android/dialer/app/res/values-bn/strings.xml b/java/com/android/dialer/app/res/values-bn/strings.xml
index 271247be3..4d2d7cc1e 100644
--- a/java/com/android/dialer/app/res/values-bn/strings.xml
+++ b/java/com/android/dialer/app/res/values-bn/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"প্রগতিতে থাকা কলে প্রত্যাবর্তন"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"কল যোগ করুন"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ইনকামিং কলগুলি"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"বাল্ক অ্যাকশন মোডে প্রবেশ করা হচ্ছে"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"বাল্ক অ্যাকশন মোড ত্যাগ করুন"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> নির্বাচন করা হয়েছে"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> অনির্বাচন করা হয়েছে"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"ভয়েসমেল প্লে করুন"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> পরিচিতি দেখুন"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> কে কল করুন"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"ভয়েসমেল"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> মিনিট <xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"ব্যাচ অ্যাকশন মোড বাতিল করুন"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ভয়েসমেল"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ভয়েসমেলগুলি"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"হ্যাঁ"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"না"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"নির্বাচিত <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> মুছে ফেলতে চান?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g>টি নির্বাচিত"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> তারিখে <xliff:g id="TIME">%2$s</xliff:g>\'টায়"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"সিম কার্ড থেকে লোড করা হচ্ছে…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"সিম কার্ডের পরিচিতিগুলি"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"ভয়েস অনুসন্ধান অনুপলব্ধ"</string>
<string name="call_not_available" msgid="7850148370757361155">"কোনো ফোন কল করা যাবে না কারণ ফোন অ্যাপ্লিকেশানটি অক্ষম করা হয়েছে৷"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"পরিচিতিগুলি খুঁজুন"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>টি নতুন মিসড কল"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"আপনার স্পীড ডায়ালে এখনও পর্যন্ত কেউ নেই"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"একটি পছন্দসই যোগ করুন"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"একটি পরিচিতি যোগ করুন"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"সমস্ত নম্বর দেখতে ছবিতে স্পর্শ করুন বা রেকর্ড করতে স্পর্শ করে ধরে রাখুন"</string>
<string name="remove_contact" msgid="2353580570488923668">"সরান"</string>
+ <string name="select_all" msgid="408601760696146245">"সবগুলি নির্বাচন করুন"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"ভিডিও কল"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"একটি বার্তা পাঠান"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"কলের বিশদ বিবরণ"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"ব্লক করা নাম্বারগুলি"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ইতিমধ্যেই অববোধ করা রয়েছে৷"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"কলিং অ্যাকাউন্টগুলি"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"চালু করুন"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"অনুমতিগুলি সেট করুন"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"স্পীড ডায়াল সক্ষম করতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"আপনার কল লগ দেখতে, ফোনের অনুমতি চালু করুন।"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"আপনার ভয়েসমেল অ্যাক্সেস করতে, ফোনের অনুমতি চালু করুন।"</string>
<string name="permission_no_search" msgid="2424710404207193826">"আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।"</string>
<string name="permission_place_call" msgid="8686908130349369423">"একটি কল করতে, ফোনের অনুমতি চালু করুন।"</string>
diff --git a/java/com/android/dialer/app/res/values-bs/strings.xml b/java/com/android/dialer/app/res/values-bs/strings.xml
index 92c9c14e0..d8347723d 100644
--- a/java/com/android/dialer/app/res/values-bs/strings.xml
+++ b/java/com/android/dialer/app/res/values-bs/strings.xml
@@ -86,6 +86,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Povratak na poziv u toku"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazak u način rada za skupnu radnju"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Napuštanje načina rada za skupnu radnju"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Odabrano <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Poništen odabir <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Pokretanje govorne pošte"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Pozovi kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
<string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkaži način rada za grupnu radnju"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"poruka govorne pošte"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"poruke govorne pošte"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Izbrisati izabranu/e <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Odabrano <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitavanje sa SIM kartice…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakti sa SIM kartice"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nije dostupna nijedna aplikacija za kontakte"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Glasovna pretraga nije dostupna"</string>
<string name="call_not_available" msgid="7850148370757361155">"Nije moguće uputiti poziv jer je aplikacija Telefon onemogućena."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Traži kontakte"</string>
@@ -146,10 +151,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Nemate nikog na brzom biranju"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj u favorite"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Još nemate nijedan kontakt"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da vidite sve brojeve ili dodirnite i držite da promijenite raspored."</string>
<string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
+ <string name="select_all" msgid="408601760696146245">"Izaberi sve"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videopoziv"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalji o pozivu"</string>
@@ -215,11 +219,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Računi za pozivanje"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Postavi dozvole"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Da omogućite brzo biranje, uključite dozvolu za Kontakte."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Da vidite popis poziva, uključite dozvolu za Telefon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Da vidite kontakte, uključite dozvolu za Kontakte."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Da pristupite govornoj pošti,uključite dozvolu za telefon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Da pretražujete kontakte, uključite dozvole za Kontakte."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Da uputite poziv, uključite dozvolu za Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-ca/strings.xml b/java/com/android/dialer/app/res/values-ca/strings.xml
index fa04dd980..7b12e0dbd 100644
--- a/java/com/android/dialer/app/res/values-ca/strings.xml
+++ b/java/com/android/dialer/app/res/values-ca/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Torna a la trucada en curs"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Afegeix una trucada"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Trucades entrants"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"S\'està accedint al mode d\'acció massiva"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"S\'ha sortit del mode d\'acció massiva"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"S\'ha seleccionat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"S\'ha desseleccionat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Reprodueix el missatge de veu"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Visualitza el contacte <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Truca a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Bústia de veu"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel·la el mode d\'accions en lot"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"missatge de veu"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"missatges de veu"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vols suprimir l\'element o elements seleccionats (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seleccionades"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> a les <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"S\'està carregant des de la targeta SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contactes de la targeta SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"No hi ha cap contacte disponible."</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"La cerca per veu no està disponible."</string>
<string name="call_not_available" msgid="7850148370757361155">"No es pot fer una trucada telefònica perquè s\'ha desactivat l\'aplicació de telèfon."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cerca als contactes"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> trucades perdudes noves"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Encara no tens cap contacte al marcatge ràpid"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Afegeix un preferit"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Encara no tens cap contacte"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Afegeix un contacte"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Toca la imatge per veure\'n tots els números o bé mantén-la premuda per canviar-ne l\'ordre"</string>
<string name="remove_contact" msgid="2353580570488923668">"Suprimeix"</string>
+ <string name="select_all" msgid="408601760696146245">"Selecciona-ho tot"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videotrucada"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Envia un missatge"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalls de la trucada"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Números bloquejats"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ja està bloquejat."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes de trucades"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Activa"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Defineix els permisos"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Activa el permís Contactes per activar el marcatge ràpid."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Activa el permís Telèfon per veure el teu registre de trucades."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Activa el permís Contactes per veure els teus contactes."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Activa el permís Telèfon per accedir a la bústia de veu."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Per cercar els teus contactes, activa els permisos de Contactes."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Activa el permís Telèfon per fer una trucada."</string>
diff --git a/java/com/android/dialer/app/res/values-cs/strings.xml b/java/com/android/dialer/app/res/values-cs/strings.xml
index 5a3e42913..bbcb35847 100644
--- a/java/com/android/dialer/app/res/values-cs/strings.xml
+++ b/java/com/android/dialer/app/res/values-cs/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Návrat k probíhajícímu hovoru"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Přidat hovor"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Příchozí volání"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Vstupování do režimu hromadných akcí"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Opustili jste režim hromadných akcí"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> je vybrána"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> není vybrána"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Přehrát hlasovou schránku"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Zobrazit kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Volat kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"Hlasová schránka"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Zrušit režim hromadných akcí"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"vybranou hlasovou zprávu"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"vybrané hlasové zprávy"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ano"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Smazat <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Vybráno: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> v <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Načítání ze SIM karty..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakty na SIM kartě"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Není k dispozici žádná aplikace pro práci s kontakty."</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Hlasové vyhledávání není k dispozici."</string>
<string name="call_not_available" msgid="7850148370757361155">"Telefonický hovor nelze uskutečnit, protože aplikace Telefon byla zakázána."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Vyhledat kontakty"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"V rychlém vytáčení zatím nemáte žádný kontakt."</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Přidat oblíbený kontakt"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Zatím nemáte žádné kontakty"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Přidat kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Klepnutím na obrázek zobrazíte všechna čísla. Podržením můžete změnit pořadí."</string>
<string name="remove_contact" msgid="2353580570488923668">"Odstranit"</string>
+ <string name="select_all" msgid="408601760696146245">"Vybrat všechny"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videohovor"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Odeslat zprávu"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti hovoru"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokovaná čísla"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je již blokováno."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Účty pro volání"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Zapnout"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastavit oprávnění"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Chcete-li povolit rychlé vytáčení, aktivujte oprávnění Kontakty."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Chcete-li zobrazit seznam hovorů, aktivujte oprávnění Telefon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Chcete-li zobrazit kontakty, aktivujte oprávnění Kontakty."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Chcete-li přejít do hlasové schránky, aktivujte oprávnění Telefon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Chcete-li uskutečnit hovor, aktivujte oprávnění Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-da/strings.xml b/java/com/android/dialer/app/res/values-da/strings.xml
index 42aa66378..31cf8e33d 100644
--- a/java/com/android/dialer/app/res/values-da/strings.xml
+++ b/java/com/android/dialer/app/res/values-da/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vend tilbage til igangværende opkald"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tilføj opkald"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Indgående opkald"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Massehandlingstilstanden startes"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingstilstanden blev afsluttet"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Vælg <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Fravælg <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Afspil telefonsvarerbesked"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Vis kontaktpersonen <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuller massehandlingstilstand"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talebesked"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talebeskeder"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nej"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vil du slette de valgte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Indlæser fra SIM-kort ..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Der er ingen app til kontaktpersoner"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Talesøgning er ikke tilgængelig"</string>
<string name="call_not_available" msgid="7850148370757361155">"Det er ikke muligt at foretage et telefonopkald, fordi applikationen Telefon er deaktiveret."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søg i kontakter"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye ubesvarede opkald"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Der er endnu ingen kontaktpersoner i Hurtigopkald"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Angiv en kontaktperson som foretrukken"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Du har endnu ikke nogen kontaktpersoner"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tilføj en kontaktperson"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Tryk på billedet for at se alle numre, eller tryk og hold nede på billedet for at omarrangere"</string>
<string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
+ <string name="select_all" msgid="408601760696146245">"Vælg alt"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videoopkald"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Send en sms-besked"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Opkaldsinfo"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokerede telefonnumre"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokeret."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Opkaldskonti"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivér"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angiv tilladelser"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Slå tilladelsen Kontaktpersoner til for at aktivere hurtigopkald."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Slå tilladelsen Telefon til for at se din opkaldsliste."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Slå tilladelsen Telefon til for at få adgang til din telefonsvarer,"</string>
<string name="permission_no_search" msgid="2424710404207193826">"Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Slå tilladelsen Telefon til for at foretage et opkald."</string>
diff --git a/java/com/android/dialer/app/res/values-de/strings.xml b/java/com/android/dialer/app/res/values-de/strings.xml
index 5653e0f12..c1f644119 100644
--- a/java/com/android/dialer/app/res/values-de/strings.xml
+++ b/java/com/android/dialer/app/res/values-de/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Zurück zum aktuellen Anruf"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Anruf hinzufügen"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Eingehende Anrufe"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Es wird in den Modus für Bulk-Aktionen gewechselt"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Der Modus für Bulk-Aktionen wurde verlassen"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ausgewählt"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Auswahl für <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> aufgehoben"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Mailbox abhören"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> anzeigen"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> anrufen"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Mailbox"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Modus für Batch-Aktionen abbrechen"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"Mailboxnachricht"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"Mailboxnachrichten"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nein"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ausgewählte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> löschen?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ausgewählt"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> um <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ladevorgang von SIM-Karte läuft..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakte auf SIM-Karte"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Keine Kontakte-App verfügbar"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Sprachsuche nicht verfügbar"</string>
<string name="call_not_available" msgid="7850148370757361155">"Es kann kein Anruf getätigt werden, da die App \"Telefon\" deaktiviert wurde."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"In Kontakten suchen"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> neue entgangene Anrufe"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Du hast für noch niemanden eine Kurzwahl festgelegt"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Favoriten hinzufügen"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Du hast noch keine Kontakte."</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kontakt hinzufügen"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Tippe auf das Bild, um alle Nummern zu sehen, oder halte das Bild länger gedrückt, um sie neu anzuordnen"</string>
<string name="remove_contact" msgid="2353580570488923668">"Entfernen"</string>
+ <string name="select_all" msgid="408601760696146245">"Alle auswählen"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanruf"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"SMS senden"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Anrufdetails"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blockierte Nummern"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ist bereits blockiert."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Anrufkonten"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivieren"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Berechtigungen festlegen"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Aktiviere die Berechtigung \"Kontakte\", um die Kurzwahlfunktion zu verwenden."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Aktiviere die Berechtigung \"Telefon\", um dein Anrufprotokoll abzurufen."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Aktiviere die Berechtigung \"Telefon\", um auf deine Mailbox zuzugreifen."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Aktiviere die Berechtigung \"Telefon\", um einen Anruf zu tätigen."</string>
diff --git a/java/com/android/dialer/app/res/values-el/strings.xml b/java/com/android/dialer/app/res/values-el/strings.xml
index 847f60a26..c4ba02d0f 100644
--- a/java/com/android/dialer/app/res/values-el/strings.xml
+++ b/java/com/android/dialer/app/res/values-el/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Επιστροφή στην κλήση που βρίσκεται σε εξέλιξη"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Προσθήκη κλήσης"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Εισερχόμενες κλήσεις"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Εισαγωγή στη λειτουργία μαζικών ενεργειών"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Αποχώρηση από τη λειτουργία μαζικών ενεργειών"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Έγινε επιλογή <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Καταργήθηκε η επιλογή <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Αναπαραγωγή μηνύματος αυτόματου τηλεφωνητή"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Προβολή επαφής <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Κλήση <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Αυτόματος τηλεφωνητής"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> λεπτά <xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Ακύρωση λειτουργίας μαζικών ενεργειών"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"φωνητικού μηνύματος αυτόματου τηλεφωνητή"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"φωνητικών μηνυμάτων αυτόματου τηλεφωνητή"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ναι"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Όχι"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Διαγραφή επιλεγμ. <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>;"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Έχουν επιλεγεί <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> στις <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Φόρτωση από κάρτα SIM…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Επαφές στην κάρτα SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Δεν υπάρχουν διαθέσιμες εφαρμογές επαφών"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Η φωνητική αναζήτηση δεν είναι διαθέσιμη"</string>
<string name="call_not_available" msgid="7850148370757361155">"Δεν είναι δυνατή η πραγματοποίηση τηλεφωνικής κλήσης επειδή η εφαρμογή \"Τηλέφωνο\" έχει απενεργοποιηθεί."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Αναζήτηση επαφών"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> νέες αναπάντητες κλήσεις"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Δεν έχετε ορίσει ακόμη κάποια επαφή στις ταχείες κλήσεις"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Προσθέστε ένα αγαπημένο"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Δεν έχετε επαφές ακόμη"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Προσθήκη επαφής"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Αγγίξτε την εικόνα για να δείτε όλους τους αριθμούς ή αγγίξτε παρατεταμένα για αναδιάταξη"</string>
<string name="remove_contact" msgid="2353580570488923668">"Κατάργηση"</string>
+ <string name="select_all" msgid="408601760696146245">"Επιλογή όλων"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Βιντεοκλήση"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Αποστολή μηνύματος"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Λεπτομέρειες κλήσης"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Αποκλεισμένοι αριθμοί"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> αποκλείστηκε ήδη."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Λογαριασμοί κλήσης"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Ενεργοποίηση"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ορισμός αδειών"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Για να ενεργοποιήσετε την ταχεία κλήση, ενεργοποιήστε την άδεια επαφών."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Για να δείτε το αρχείο καταγραφής κλήσεών σας, ενεργοποιήστε την άδεια τηλεφώνου."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια επαφών."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Για να αποκτήσετε πρόσβαση στον τηλεφωνητή σας, ενεργοποιήστε την άδεια τηλεφώνου."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Για να πραγματοποιήσετε μια κλήση, ενεργοποιήστε την άδεια τηλεφώνου."</string>
diff --git a/java/com/android/dialer/app/res/values-en-rAU/strings.xml b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
index 28eea8b4d..cb7e912c7 100644
--- a/java/com/android/dialer/app/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
<string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
<string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
<string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
+ <string name="select_all" msgid="408601760696146245">"Select all"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
<string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
<string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
diff --git a/java/com/android/dialer/app/res/values-en-rGB/strings.xml b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
index 28eea8b4d..cb7e912c7 100644
--- a/java/com/android/dialer/app/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
<string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
<string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
<string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
+ <string name="select_all" msgid="408601760696146245">"Select all"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
<string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
<string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
diff --git a/java/com/android/dialer/app/res/values-en-rIN/strings.xml b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
index 28eea8b4d..cb7e912c7 100644
--- a/java/com/android/dialer/app/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Return to call in progress"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Add call"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Incoming calls"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entering bulk action mode"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Left bulk action mode"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Selected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Unselected <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Play voicemail"</string>
<string name="description_view_contact" msgid="3940984937384372665">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancel batch actions mode"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Delete selected <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selected"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Loading from SIM card…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM card contacts"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"No contacts app available"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Voice search not available"</string>
<string name="call_not_available" msgid="7850148370757361155">"Cannot make a phone call because the Phone application has been disabled."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Search contacts"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"No one is on your speed dial yet"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Add a favourite"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"You don\'t have any contacts yet"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Add a contact"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Touch image to see all numbers, or touch &amp; hold to re-arrange"</string>
<string name="remove_contact" msgid="2353580570488923668">"Remove"</string>
+ <string name="select_all" msgid="408601760696146245">"Select all"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Video call"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Send a message"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Call details"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blocked numbers"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Calling accounts"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Turn on"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Set permissions"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"To enable speed dial, turn on the Contacts permission."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"To see your call log, turn on the Phone permission."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"To see your contacts, turn on the Contacts permission."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"To access your voicemail, turn on the Phone permission."</string>
<string name="permission_no_search" msgid="2424710404207193826">"To search your contacts, turn on the Contacts permissions."</string>
<string name="permission_place_call" msgid="8686908130349369423">"To place a call, turn on the Phone permission."</string>
diff --git a/java/com/android/dialer/app/res/values-es-rUS/strings.xml b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
index 9d80bc9e2..79d607fc7 100644
--- a/java/com/android/dialer/app/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Regresar a la llamada en curso"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Agregar llamada"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Llamadas entrantes"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando al modo de acción masiva"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saliendo del modo de acción masiva"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Se seleccionó <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Se anuló la selección de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir mensaje de voz"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Correo de voz"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar el modo de acción masiva"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"el mensaje de voz"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"los mensajes de voz"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"¿Deseas borrar <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> que seleccionaste?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> seleccionada(s)"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"El <xliff:g id="DATE">%1$s</xliff:g> a la hora <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando desde tarjeta SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contactos de tarjeta SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"No hay aplicaciones de contactos disponibles."</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Búsqueda por voz no disponible"</string>
<string name="call_not_available" msgid="7850148370757361155">"No se pueden realizar llamadas porque se inhabilitó la aplicación Teléfono."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Aún no tienes contactos en la opción de marcado rápido"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Agregar un favorito"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Aún no tienes contactos"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Agregar un contacto"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Toca la imagen para ver todos los números o mantenla presionada para reorganizar"</string>
<string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
+ <string name="select_all" msgid="408601760696146245">"Seleccionar todo"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videollamada"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar un mensaje"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalles de la llamada"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Cuentas telefónicas"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Configurar permisos"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Para habilitar el marcado rápido, activa el permiso Contactos."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Para ver el registro de llamadas, activa el permiso Teléfono."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver los contactos, activa el permiso Contactos."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder al buzón de voz, activa el permiso Teléfono."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Para buscar contactos, activa el permiso Contactos."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Para realizar una llamada, activa el permiso Teléfono."</string>
diff --git a/java/com/android/dialer/app/res/values-es/strings.xml b/java/com/android/dialer/app/res/values-es/strings.xml
index b7383d970..170edc8ca 100644
--- a/java/com/android/dialer/app/res/values-es/strings.xml
+++ b/java/com/android/dialer/app/res/values-es/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Volver a la llamada"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Añadir llamada"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Llamadas entrantes"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando en el modo de acción en bloque"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Se ha salido del modo de acción en bloque"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> seleccionado"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Selección de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> anulada"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir mensaje de voz"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Buzón de voz"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min y <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar el modo de acciones en lote"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mensaje de voz"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mensajes de voz"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sí"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"¿Eliminar la selección de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Se han seleccionado <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> a las <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando desde tarjeta SIM…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contactos de tarjeta SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"No hay aplicaciones de contactos disponibles"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"La búsqueda por voz no está disponible"</string>
<string name="call_not_available" msgid="7850148370757361155">"No se puede hacer llamadas porque se ha inhabilitado la aplicación Teléfono."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Aún no tienes contactos en la función de marcación rápida"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Añadir un favorito"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Aún no tienes contactos"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Añadir un contacto"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Tocar la imagen para ver todos los números o mantenerla pulsada para cambiar el orden"</string>
<string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
+ <string name="select_all" msgid="408601760696146245">"Seleccionar todo"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videollamada"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar un mensaje"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalles de la llamada"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Cuentas de llamadas"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Establecer permisos"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Para habilitar la marcación rápida, activa el permiso la aplicación Contactos."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Para ver el registro de llamadas, activa el permiso de la aplicación Teléfono."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver tus contactos, activa el permiso de la aplicación Contactos."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder al buzón de voz, activa el permiso de la aplicación Teléfono."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Para poder buscar tus contactos, activa los permisos de contactos."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Para hacer una llamada, activa el permiso de la aplicación Teléfono."</string>
diff --git a/java/com/android/dialer/app/res/values-et/strings.xml b/java/com/android/dialer/app/res/values-et/strings.xml
index d4e4faa59..e32b10403 100644
--- a/java/com/android/dialer/app/res/values-et/strings.xml
+++ b/java/com/android/dialer/app/res/values-et/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Tagasi käimasolevale kõnele"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lisa kõne"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Sissetulevad kõned"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Sisenemine hulgitoimingute režiimi"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Lahkumine hulgitoimingute režiimist"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> on valitud"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> on valimata"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Esita kõnepostisõnum"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Kuva kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Helista kasutajale <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Kõnepost"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Mitme toimigu režiimi tühistamine"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"kõnepostisõnum"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"kõnepostisõnumid"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Jah"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ei"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Kas kustutada valitud kõnepostisõnumid <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> on valitud"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kell <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laadimine SIM-kaardilt ..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM-kaardi kontaktid"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Kontaktide rakendus pole saadaval"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Häälotsing ei ole saadaval"</string>
<string name="call_not_available" msgid="7850148370757361155">"Helistada ei saa, sest telefonirakendus on keelatud."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Otsige kontakte"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> uus/uut vastamata kõne(t)"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Te pole veel kedagi kiirvalimisse lisanud"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lisa lemmik"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Teil pole veel kontakte"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lisa kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Puudutage kujutist kõigi numbrite nägemiseks või puudutage pikalt järjestuse muutmiseks"</string>
<string name="remove_contact" msgid="2353580570488923668">"Eemalda"</string>
+ <string name="select_all" msgid="408601760696146245">"Vali kõik"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videokõne"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Saada sõnum"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Kõne üksikasjad"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokeeritud numbrid"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> on juba blokeeritud."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Helistamiskontod"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Lülita sisse"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Määra load"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Kiirvalimise lubamiseks lülitage sisse kontaktiluba."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Kõnelogi vaatamiseks lülitage sisse telefoniluba."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktide vaatamiseks lülitage sisse kontaktiluba."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Kõnepostile juurdepääsemiseks lülitage sisse telefoniluba."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Kontaktide otsimiseks lülitage sisse kontaktiload."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Helistamiseks lülitage sisse telefoniluba."</string>
diff --git a/java/com/android/dialer/app/res/values-eu/strings.xml b/java/com/android/dialer/app/res/values-eu/strings.xml
index 95f4621a4..57ef67d88 100644
--- a/java/com/android/dialer/app/res/values-eu/strings.xml
+++ b/java/com/android/dialer/app/res/values-eu/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Itzuli abian den deira"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Gehitu deia"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Sarrerako deiak"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ekintzak multzoka gauzatzeko modua aktibatzen"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ekintzak multzoka gauzatzeko modua desaktibatu da"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> hautatu da"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> desautatu da"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Erreproduzitu erantzungailuko ahots-mezuak"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Ikusi <xliff:g id="NAME">%1$s</xliff:g> kontaktua"</string>
<string name="description_call" msgid="1532402285334775372">"Deitu <xliff:g id="NAME">%1$s</xliff:g> erabiltzaileari"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Erantzungailua"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Utzi bertan behera ekintzak multzoka gauzatzeko modua"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ahots-mezua"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ahots-mezuak"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Bai"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ez"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Hautatutako <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ezabatu?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> hautatu dira"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> (<xliff:g id="TIME">%2$s</xliff:g>)"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM txarteletik kargatzen…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM txarteleko kontaktuak"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Ez dago kontaktuen aplikaziorik erabilgarri"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Ahozko bilaketa ez dago erabilgarri"</string>
<string name="call_not_available" msgid="7850148370757361155">"Ezin da telefono-deirik egin Telefonoa aplikazioa desgaitu egin delako."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Bilatu kontaktuetan"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> dei galdu berri"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Ez duzu inor markatze bizkorrean oraindik"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Gehitu gogokoak"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Ez duzu kontakturik oraindik"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Gehitu kontaktua"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Ukitu irudia zenbaki guztiak ikusteko, edo eduki ezazu sakatuta berrantolatzeko"</string>
<string name="remove_contact" msgid="2353580570488923668">"Kendu"</string>
+ <string name="select_all" msgid="408601760696146245">"Hautatu guztiak"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Bideo-deia"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Bidali mezua"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Deiaren xehetasunak"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokeatutako zenbakiak"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatuta dago dagoeneko."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Deiak egiteko kontuak"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktibatu"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ezarri baimenak"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Markatze bizkorra gaitzeko, aktibatu Kontaktuak erabiltzeko baimena."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Deien erregistroa ikusteko, aktibatu Telefonoa erabiltzeko baimena."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktuak ikusteko, aktibatu Kontaktuak erabiltzeko baimena."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Erantzungailuan sartzeko, aktibatu Telefonoa erabiltzeko baimena."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Deiak egiteko, aktibatu Telefonoa erabiltzeko baimena."</string>
diff --git a/java/com/android/dialer/app/res/values-fa/strings.xml b/java/com/android/dialer/app/res/values-fa/strings.xml
index 9c8c01b64..eadb0dcb7 100644
--- a/java/com/android/dialer/app/res/values-fa/strings.xml
+++ b/java/com/android/dialer/app/res/values-fa/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"برگشت به تماس درحال انجام"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"افزودن تماس"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"تماس‌های ورودی"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"درحال ورود به حالت اقدام انبوه"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"خروج از حالت اقدام انبوه"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> انتخاب شد"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> از حالت انتخاب خارج شد"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"پخش پست صوتی"</string>
<string name="description_view_contact" msgid="3940984937384372665">"مشاهده مخاطب <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"تماس با <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"پست صوتی"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> دقیقه <xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"لغو حالت اقدام‌ دسته‌ای"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"پست صوتی"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"پست‌های صوتی"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"بله"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"نه"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> انتخاب‌شده حذف شود؟"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> مورد انتخاب شد"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ساعت <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"در حال بارگیری سیم کارت..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"مخاطبین سیم کارت"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"هیچ برنامه مخاطبی در دسترس نیست"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"جستجوی گفتاری در دسترس نیست"</string>
<string name="call_not_available" msgid="7850148370757361155">"برقراری تماس تلفنی ممکن نیست، زیرا برنامه تلفن غیرفعال شده است."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"جستجوی مخاطبین"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> تماس‌ بی‌پاسخ جدید"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"هنوز کسی در فهرست شماره‌گیری سریع شما نیست"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"افزودن مورد دلخواه"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"هنوز هیچ مخاطبی ندارید"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"افزودن مخاطب"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"برای مشاهده همه شماره‌ها، تصویر را لمس کنید، یا برای ترتیب مجدد، لمس کنید و نگه‌دارید"</string>
<string name="remove_contact" msgid="2353580570488923668">"حذف"</string>
+ <string name="select_all" msgid="408601760696146245">"انتخاب همه"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"تماس ویدئویی"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"ارسال پیام"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"جزئیات تماس"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"شماره‌های مسدود‌شده"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> درحال‌حاضر مسدود شده است."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"حساب‌های تماس"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"روشن کردن"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"تنظیم مجوزها"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"برای فعال کردن شماره‌گیری سریع، مجوز «مخاطبین» را روشن کنید."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"برای دیدن گزارش تماستان، مجوز «تلفن» را روشن کنید."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"برای دسترسی به پست صوتی‌تان، مجوز «تلفن» را روشن کنید."</string>
<string name="permission_no_search" msgid="2424710404207193826">"برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید."</string>
<string name="permission_place_call" msgid="8686908130349369423">"برای برقراری تماس، مجوز «تلفن» را روشن کنید."</string>
diff --git a/java/com/android/dialer/app/res/values-fi/strings.xml b/java/com/android/dialer/app/res/values-fi/strings.xml
index c5a103d48..951095908 100644
--- a/java/com/android/dialer/app/res/values-fi/strings.xml
+++ b/java/com/android/dialer/app/res/values-fi/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Palaa käynnissä olevaan puheluun"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lisää puhelu"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Saapuvat puhelut"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Siirrytään joukkotoimintotilaan."</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Poistuttiin joukkotoimintotilasta."</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> valittiin."</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ei ole enää valittuna."</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Toista vastaajaviesti"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Näytä yhteystieto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Soita: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Vastaaja"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Peruuta joukkotoimintotila."</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"vastaajaviesti"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"vastaajaviestit"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Kyllä"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ei"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Poistetaanko <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> valittu"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> klo <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ladataan SIM-kortilta…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM-kortin yhteystiedot"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Ei käytettävissä olevaa yhteystietosovellusta"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Puhehaku ei ole käytettävissä"</string>
<string name="call_not_available" msgid="7850148370757361155">"Puhelua ei voi soittaa, koska Puhelin-sovellus on poistettu käytöstä."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Hae yhteystiedoista"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> uutta vastaamatonta puhelua"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Pikavalinnassa ei ole vielä yhtään yhteystietoa."</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lisää suosikki"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Sinulla ei ole yhteystietoja."</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lisää yhteystieto"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Katso kaikki numerot koskettamalla kuvaa tai järjestele tietoja koskettamalla kuvaa pitkään."</string>
<string name="remove_contact" msgid="2353580570488923668">"Poista"</string>
+ <string name="select_all" msgid="408601760696146245">"Valitse kaikki"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videopuhelu"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Lähetä viesti"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Puhelun tiedot"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Estetyt numerot"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> on jo estetty."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Puhelutilit"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Ota käyttöön"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Määritä käyttöoikeudet"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Jos haluat käyttää pikavalintaa, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Jos haluat katsella puhelulokiasi, ota Puhelin-käyttöoikeus käyttöön."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Jos haluat käyttää puhelinvastaajaa, ota Puhelin-käyttöoikeus käyttöön."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Jos haluat soittaa puheluja, ota Puhelin-käyttöoikeus käyttöön."</string>
diff --git a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
index d557d7442..6aa285c50 100644
--- a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reprendre l\'appel en cours"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Autre appel"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Appels entrants"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrée du mode d\'action groupée en cours…"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Mode d\'action groupée quitté"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Sélection : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Désélection : <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Écouter le message vocal"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Messagerie vocale"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuler le mode d\'action par lots"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"message vocal"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messages vocaux"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oui"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Supprimer la sélection (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> sélection(s)"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Chargement depuis la carte SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contacts de carte SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Aucune application de gestion des contacts n\'est disponible"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Recherche vocale non disponible"</string>
<string name="call_not_available" msgid="7850148370757361155">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Rechercher des contacts"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Aucun contact ne figure dans vos numéros de composition abrégée"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ajouter un favori"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Vous n\'avez pas encore de contacts"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ajouter un contact"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Touchez l\'image pour afficher tous les numéros, ou maintenez le doigt dessus pour les réorganiser"</string>
<string name="remove_contact" msgid="2353580570488923668">"Supprimer"</string>
+ <string name="select_all" msgid="408601760696146245">"Tout sélectionner"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Appel vidéo"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Envoyer un message"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Détails de l\'appel"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Numéros bloqués"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Le numéro <xliff:g id="NUMBER">%1$s</xliff:g> est déjà bloqué."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes d\'appel"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Activer"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Définir les autorisations"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Pour activer la composition abrégée, activez l\'autorisation Contacts."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Pour faire un appel, activez l\'autorisation Téléphone."</string>
diff --git a/java/com/android/dialer/app/res/values-fr/strings.xml b/java/com/android/dialer/app/res/values-fr/strings.xml
index d8a59395b..f539d2e55 100644
--- a/java/com/android/dialer/app/res/values-fr/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reprendre l\'appel en cours"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Autre appel"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Appels entrants"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Activation du mode d\'action groupée"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Désactivation du mode d\'action groupée"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> sélectionné"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> désélectionné"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Écouter le message vocal"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Messagerie vocale"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secondes"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annuler le mode d\'actions groupées"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"message vocal"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messages vocaux"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oui"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Supprimer les messages vocaux sélectionnés (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>) ?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> sélectionnés"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Chargement depuis la carte SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contacts de carte SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Aucune application de gestion des contacts n\'est disponible."</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Recherche vocale non disponible"</string>
<string name="call_not_available" msgid="7850148370757361155">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Rech. des contacts"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Nouveaux appels manqués : <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Aucun contact pour la numérotation abrégée"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ajouter un favori"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Vous n\'avez pas encore de contacts."</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ajouter un contact"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Appuyer sur l\'image pour afficher tous les numéros, ou appuyer dessus de manière prolongée pour réorganiser ces derniers"</string>
<string name="remove_contact" msgid="2353580570488923668">"Supprimer"</string>
+ <string name="select_all" msgid="408601760696146245">"Tout sélectionner"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Appel vidéo"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Envoyer un message"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Informations sur l\'appel"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Numéros bloqués"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est déjà bloqué."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Comptes téléphoniques"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Activer"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Définir les autorisations"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Pour activer la numérotation abrégée, activez l\'autorisation Contacts."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Pour rechercher vos contacts, activez l\'autorisation Contacts."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Pour passer un appel, activez l\'autorisation Téléphone."</string>
diff --git a/java/com/android/dialer/app/res/values-gl/strings.xml b/java/com/android/dialer/app/res/values-gl/strings.xml
index 33b55a740..ca31c5e47 100644
--- a/java/com/android/dialer/app/res/values-gl/strings.xml
+++ b/java/com/android/dialer/app/res/values-gl/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Volver á chamada en curso"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Engadir chamada"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Chamadas entrantes"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de acción masiva"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saíu do modo de acción masiva"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Seleccionouse: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Anulouse a selección de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Reproducir correo de voz"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Chamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Correo de voz"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancela o modo de accións en lote"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correo de voz"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correos de voz"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Si"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Non"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Queres eliminar a selección (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Cantidade seleccionada: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ás <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Cargando da tarxeta SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contactos da tarxeta SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Non hai aplicacións de contactos dispoñibles"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Busca por voz non dispoñible"</string>
<string name="call_not_available" msgid="7850148370757361155">"Non se pode facer unha chamada telefónica porque se desactivou a aplicación de teléfono."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Buscar contactos"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> chamadas perdidas novas"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Aínda non tes ningún contacto na marcación directa"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Engade un favorito para a marcación directa"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Aínda non tes contactos"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Engade un contacto"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Toca a imaxe para ver todos os números ou mantena premida para reordenalos"</string>
<string name="remove_contact" msgid="2353580570488923668">"Eliminar"</string>
+ <string name="select_all" msgid="408601760696146245">"Seleccionar todos"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar unha mensaxe"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalles da chamada"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"O <xliff:g id="NUMBER">%1$s</xliff:g> xa está bloqueado."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Activar"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Establecer permisos"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Para activar a marcación rápida, activa o permiso de Contactos."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Para ver o teu rexistro de chamadas, activa o permiso de Teléfono."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver os teus contactos, activa o permiso de Contactos."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Para acceder ao correo de voz, activa o permiso de Teléfono."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Para buscar os teus contactos, activa os permisos de Contactos."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Para facer unha chamada, activa o permiso de Teléfono."</string>
diff --git a/java/com/android/dialer/app/res/values-gu/strings.xml b/java/com/android/dialer/app/res/values-gu/strings.xml
index 1df18269e..fbe4d0aaa 100644
--- a/java/com/android/dialer/app/res/values-gu/strings.xml
+++ b/java/com/android/dialer/app/res/values-gu/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"કૉલ પર પાછા આવવું પ્રગતિ પર છે"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"કૉલ ઉમેરો"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ઇનકમિંગ કૉલ્સ"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"બલ્ક ક્રિયા મોડમાં દાખલ થઈ રહ્યાં છે"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"બલ્ક ક્રિયા મોડ છોડી દીધો"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> પસંદ કર્યો"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> પસંદગીમાંથી દૂર કર્યો"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"વૉઇસમેઇલ ચલાવો"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> સંપર્ક જુઓ"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ને કૉલ કરો"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"વૉઇસમેઇલ"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> સેકંડ"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> મિ <xliff:g id="SECONDS">%s</xliff:g> સે"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"બૅચ ક્રિયા મોડ રદ કરો"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"વૉઇસમેઇલ"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"વૉઇસમેઇલ"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"હા"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"નહીં"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"પસંદ કરેલ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ને કાઢી નાખીએ?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> પસંદ કરી"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> નાં રોજ <xliff:g id="TIME">%2$s</xliff:g> વાગ્યે"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM કાર્ડમાંથી લોડ કરી રહ્યું છે…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM કાર્ડ સંપર્કો"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"વૉઇસ શોધ ઉપલબ્ધ નથી"</string>
<string name="call_not_available" msgid="7850148370757361155">"ફોન કૉલ કરી શકાતો નથી કારણ કે ફોન ઍપ્લિકેશન અક્ષમ કરવામાં આવી છે."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"સંપર્કો શોધો"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> નવા છૂટેલા કૉલ્સ"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"તમારા ઝડપી ડાયલ પર હજી સુધી કોઇ નથી"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"એક મનપસંદ ઉમેરો"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"સંપર્ક ઉમેરો"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"બધા નંબર્સ જોવા માટે છબી ટચ કરો અથવા પુનઃક્રમાંકિત કરવા માટે ટચ કરો અને પકડી રાખો"</string>
<string name="remove_contact" msgid="2353580570488923668">"દૂર કરો"</string>
+ <string name="select_all" msgid="408601760696146245">"તમામ પસંદ કરો"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"વિડિઓ કૉલ"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"એક સંદેશ મોકલો"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"કૉલની વિગતો"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"અવરોધિત નંબરો"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ને પહેલેથી અવરોધિત કરવામાં આવ્યો છે."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"કૉલિંગ એકાઉન્ટ્સ"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ચાલુ કરો"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"પરવાનગીઓ સેટ કરો"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"ઝડપી ડાયલ સક્ષમ કરવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"તમારો કૉલ લૉગ જોવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"તમારી વૉઇસમેઇલને ઍક્સેસ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
<string name="permission_no_search" msgid="2424710404207193826">"તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો."</string>
<string name="permission_place_call" msgid="8686908130349369423">"કૉલ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
diff --git a/java/com/android/dialer/app/res/values-hi/strings.xml b/java/com/android/dialer/app/res/values-hi/strings.xml
index 84d2d974a..c998e4402 100644
--- a/java/com/android/dialer/app/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/res/values-hi/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"कॉल पर लौटना प्रगति पर है"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"कॉल जोड़ें"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"इनकमिंग कॉल"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"बल्क कार्रवाई मोड में प्रवेश कर रहे हैं"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"बल्क कार्रवाई मोड छोड़ा"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को चुना गया"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को नहीं चुना गया"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"ध्‍वनिमेल चलाएं"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क देखें"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> को कॉल करें"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"वॉयस मेल"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकंड"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मि. <xliff:g id="SECONDS">%s</xliff:g> से."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"बैच कार्रवाई मोड रद्द करें"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"वॉयसमेल"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"वॉयसमेल"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"हां"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"नहीं"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"क्या चुने गए <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> हटाना चाहते हैं?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> चयनित"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> को <xliff:g id="TIME">%2$s</xliff:g> बजे"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"सिम कार्ड से लोड हो रहा है…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"सिम कार्ड के संपर्क"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"कोई भी संपर्क ऐप उपलब्‍ध नहीं है"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"बोलकर खोजना उपलब्‍ध नहीं है"</string>
<string name="call_not_available" msgid="7850148370757361155">"फ़ोन कॉल नहीं किया जा सकता क्योंकि फ़ोन ऐप्लिकेशन अक्षम कर दिया गया है."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"संपर्क खोजें"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> छूटे हुए नए कॉल"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"आपके स्‍पीड डायल पर अभी तक कोई भी नहीं है"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"कोई पसंदीदा जोड़ें"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"आपके पास अभी कोई भी संपर्क नहीं है"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"कोई संपर्क जोड़ें"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"सभी नंबर देखने के लिए चित्र को स्‍पर्श करें या पुन: क्रमित करने के लिए स्‍पर्श करके रखें"</string>
<string name="remove_contact" msgid="2353580570488923668">"निकालें"</string>
+ <string name="select_all" msgid="408601760696146245">"सभी चुनें"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"वीडियो कॉल"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"संदेश भेजें"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"कॉल विवरण"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"अवरोधित नंबर"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> पहले से अवरोधित है."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"कॉलिंग खाते"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"चालू करें"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"अनुमतियां सेट करें"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"स्पीड डायल सक्षम करने के लिए, संपर्क अनुमति चालू करें."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"अपना कॉल लॉग देखने के लिए, फ़ोन अनुमति चालू करें."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"अपना वॉइसमेल ऐक्सेस करने के लिए, फ़ोन अनुमति चालू करें."</string>
<string name="permission_no_search" msgid="2424710404207193826">"अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें."</string>
<string name="permission_place_call" msgid="8686908130349369423">"कॉल करने के लिए, फ़ोन अनुमति चालू करें."</string>
diff --git a/java/com/android/dialer/app/res/values-hr/strings.xml b/java/com/android/dialer/app/res/values-hr/strings.xml
index cd3535372..5261cfb0d 100644
--- a/java/com/android/dialer/app/res/values-hr/strings.xml
+++ b/java/com/android/dialer/app/res/values-hr/strings.xml
@@ -86,6 +86,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Natrag na poziv u tijeku"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj poziv"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Dolazni pozivi"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Ulazak u način skupne radnje"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Napuštanje načina skupne radnje"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Odabrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Poništen odabir: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Reprodukcija govorne pošte"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Prikaz kontakta <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Nazovi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
<string name="voicemail" msgid="8899540969000957954">"Govorna pošta"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Otkaži način skupnih radnji"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"poruka govorne pošte"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"poruke govorne pošte"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite li izbrisati odabranu poruku/e govorne pošte <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Odabrano: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Učitavanje sa SIM kartice..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakti SIM kartice"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nije dostupna nijedna aplikacija za kontakte"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Glasovno pretraživanje nije dostupno"</string>
<string name="call_not_available" msgid="7850148370757361155">"Telefoniranje nije moguće jer je aplikacija Telefon onemogućena."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pretraži kontakte"</string>
@@ -146,10 +151,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Još nemate nikog na brzom biranju"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj omiljeni kontakt"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Još nemate nijedan kontakt"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodajte kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Dodirnite sliku da biste vidjeli sve brojeve ili dodirnite i zadržite da biste promijenili redoslijed"</string>
<string name="remove_contact" msgid="2353580570488923668">"Ukloni"</string>
+ <string name="select_all" msgid="408601760696146245">"Odaberi sve"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videopoziv"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Pošalji poruku"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Pojedinosti poziva"</string>
@@ -215,11 +219,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokirani brojevi"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Broj <xliff:g id="NUMBER">%1$s</xliff:g> već je blokiran."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Pozivanje računa"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Uključi"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Postavi dopuštenja"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Da biste omogućili brzo biranje, uključite dopuštenje za kontakte."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Da biste vidjeli zapisnik poziva, uključite dopuštenje za telefon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Da biste pristupili govornoj pošti, uključite dopuštenje za telefon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Da biste pretraživali kontakte, uključite dopuštenja za kontakte."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Da biste nazvali nekog, uključite dopuštenje za telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-hu/strings.xml b/java/com/android/dialer/app/res/values-hu/strings.xml
index 2e64d745d..452f0da47 100644
--- a/java/com/android/dialer/app/res/values-hu/strings.xml
+++ b/java/com/android/dialer/app/res/values-hu/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Vissza a folyamatban lévő híváshoz"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Hívás hozzáadása"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Bejövő hívások"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Belépés tömeges műveleti módba"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Kilépett a tömeges műveleti módból"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Kijelölés: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Kijelölés megszüntetve: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Hangposta lejátszása"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> névjegyének megtekintése"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> hívása"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Hangposta"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> perc <xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Köteges művelet mód leállítva"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"hangpostaüzenetet"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"hangpostaüzeneteket"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Igen"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nem"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Törli a kiválasztott <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> kiválasztva"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Betöltés a SIM kártyáról..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Névjegyek a SIM kártyán"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nincs elérhető névjegyek alkalmazás"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"A hangalapú keresés nem érhető el"</string>
<string name="call_not_available" msgid="7850148370757361155">"Nem lehet telefonhívást kezdeményezni, mert a Telefon alkalmazást letiltották."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Keresés a névjegyek között"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> új nem fogadott hívás"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Még semelyik telefonszám sincs gyorshívón"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Kedvenc hozzáadása"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Még nem rendelkezik egyetlen névjeggyel sem"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Névjegy hozzáadása"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Koppintson a képre az összes szám megjelenítéséhez, vagy tartsa nyomva az átrendezéshez"</string>
<string name="remove_contact" msgid="2353580570488923668">"Eltávolítás"</string>
+ <string name="select_all" msgid="408601760696146245">"Az összes kijelölése"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videohívás"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Üzenet küldése"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Hívás adatai"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Letiltott számok"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"A következő szám már le van tiltva: <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Telefonos fiókok"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Engedélyezés"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Engedélyek beállítása"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Gyorshívás engedélyezéséhez kapcsolja be a Névjegyek engedélyt."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"A hívásnapló megtekintéséhez kapcsolja be a Telefon engedélyt."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"A hangposta eléréséhez kapcsolja be a Telefon engedélyt."</string>
<string name="permission_no_search" msgid="2424710404207193826">"A névjegyek kereséséhez adja meg a Névjegyek engedélyeket."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Hívásindításhoz kapcsolja be a Telefon engedélyt."</string>
diff --git a/java/com/android/dialer/app/res/values-hy/strings.xml b/java/com/android/dialer/app/res/values-hy/strings.xml
index 6f3931c9f..97a84f2fe 100644
--- a/java/com/android/dialer/app/res/values-hy/strings.xml
+++ b/java/com/android/dialer/app/res/values-hy/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Վերադառնալ ընթացիկ զանգին"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ավելացնել զանգ"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Մուտքային զանգեր"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Մուտք զանգվածային գործողությունների ռեժին"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Դուք դուրս եկաք զանգվածային գործողությունների ռեժիմից"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Ընտրվեց՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Ապընտրվեց՝ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Նվագարկել ձայնային փոստը"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string>
<string name="description_call" msgid="1532402285334775372">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Ձայնային փոստ"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> վրկ"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> րոպե <xliff:g id="SECONDS">%s</xliff:g> վայրկյան"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Չեղարկել փաթեթային գործողությունների ռեժիմը"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ձայնային հաղորդագրություն"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ձայնային հաղորդագրություններ"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Այո"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ոչ"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ջնջե՞լ նշված <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ը"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Ընտրվել է՝ <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>-ին, ժամը <xliff:g id="TIME">%2$s</xliff:g>-ին"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM քարտը բեռնվում է..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM քարտի կոնտակտները"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Կոնտակտների հավելված չկա"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Ձայնային որոնումը հասանելի չէ"</string>
<string name="call_not_available" msgid="7850148370757361155">"Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Կոնտակտների որոնում"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Արագ համարահավաքման ցանկը դատարկ է"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ավելացնել կոնտակտ"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Դեռ կոնտակտներ չունեք"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ավելացնել կոնտակտ"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Բոլոր համարները տեսնելու համար հպեք պատկերին: Վերադասավորելու համար հպեք և պահեք:"</string>
<string name="remove_contact" msgid="2353580570488923668">"Հեռացնել"</string>
+ <string name="select_all" msgid="408601760696146245">"Ընտրել բոլորը"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Տեսազանգ"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Ուղարկել հաղորդագրություն"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Զանգի մանրամասները"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Արգելափակված համարներ"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> համարն արդեն արգելափակված է:"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Հաշիվներ զանգերի համար"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Միացնել"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Թույլտվությունների սահմանում"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Արագ համարահավաքը թույլատրելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Ձեր զանգերի մատյանը տեսնելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Ձայնային փոստն օգտագործելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
<string name="permission_no_search" msgid="2424710404207193826">"Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:"</string>
<string name="permission_place_call" msgid="8686908130349369423">"Զանգ կատարելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
diff --git a/java/com/android/dialer/app/res/values-in/strings.xml b/java/com/android/dialer/app/res/values-in/strings.xml
index c0de9b3b4..f309f927b 100644
--- a/java/com/android/dialer/app/res/values-in/strings.xml
+++ b/java/com/android/dialer/app/res/values-in/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kembali ke panggilan sedang berlangsung"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tambahkan panggilan"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Panggilan masuk"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Masuk ke mode tindakan massal"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Keluar dari mode tindakan massal"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dipilih"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tidak dipilih"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Putar pesan suara"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Lihat kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Telepon <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Kotak Pesan"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> mnt <xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Membatalkan mode tindakan kelompok"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"pesan suara"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"pesan suara"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ya"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Tidak"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Hapus <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> yang dipilih?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> dipilih"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> pukul <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>.<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Memuat dari kartu SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontak pada kartu SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Aplikasi kontak tidak tersedia"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Penelusuran suara tidak tersedia"</string>
<string name="call_not_available" msgid="7850148370757361155">"Tidak dapat melakukan panggilan telepon karena aplikasi Telepon telah dinonaktifkan."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Telusuri kontak"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> panggilan tidak terjawab baru"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Daftar panggilan cepat masih kosong"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tambahkan favorit"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Anda belum memiliki kontak"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tambahkan kontak"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Sentuh foto untuk melihat semua nomor atau sentuh &amp; tahan untuk menyusun ulang"</string>
<string name="remove_contact" msgid="2353580570488923668">"Hapus"</string>
+ <string name="select_all" msgid="408601760696146245">"Pilih semua"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Panggilan video"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Kirim pesan"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detail panggilan"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Nomor yang diblokir"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah diblokir."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Akun panggilan"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktifkan"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setel izin"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Untuk mengaktifkan panggilan cepat, aktifkan izin Kontak."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Untuk melihat log panggilan, aktifkan izin Telepon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Untuk melihat kontak, aktifkan izin Kontak."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Untuk mengakses pesan suara, aktifkan izin Telepon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Untuk menelusuri kontak, aktifkan izin Kontak."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Untuk melakukan panggilan, aktifkan izin Telepon."</string>
diff --git a/java/com/android/dialer/app/res/values-is/strings.xml b/java/com/android/dialer/app/res/values-is/strings.xml
index fdd635668..b291eae84 100644
--- a/java/com/android/dialer/app/res/values-is/strings.xml
+++ b/java/com/android/dialer/app/res/values-is/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Fara aftur í símtal í gangi"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Bæta við símtali"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Móttekin símtöl"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Opnar fjöldaaðgerðastillingu"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Fjöldaaðgerðastillingu lokað"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Valdi <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Fjarlægði val á <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Spila talhólfsskilaboð"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Skoða tengiliðinn <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Hringja í <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Talhólf"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> mín. og <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Hætta við runuaðgerðastillingu"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talhólfsskilaboð"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talhólfsskilaboð"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Já"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Eyða völdum <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> valin"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Hleður af SIM-kortinu…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Tengiliðir á SIM-korti"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Ekkert tengiliðaforrit í boði"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Raddleit er ekki í boði"</string>
<string name="call_not_available" msgid="7850148370757361155">"Ekki er hægt að hringja vegna þess að forritið Sími hefur verið gert óvirkt."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Leita í tengiliðum"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ný ósvöruð símtöl"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Þú ert ekki með neinn í hraðvali enn sem komið er"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Bæta uppáhaldi við"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Þú ert ekki með neina tengiliði enn sem komið er"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Bæta tengilið við"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Snertu myndina til að sjá öll númer eða haltu henni inni til að endurraða"</string>
<string name="remove_contact" msgid="2353580570488923668">"Fjarlægja"</string>
+ <string name="select_all" msgid="408601760696146245">"Velja allt"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Myndsímtal"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Senda skilaboð"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Símtalsupplýsingar"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Númer á bannlista"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er nú þegar á bannlista."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Símtalareikningar"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Kveikja"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Stilla heimildir"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Kveiktu á tengiliðaheimildinni til að gera hraðval virkt."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Kveiktu á heimild símaforritsins til að sjá símtalaskrána þína."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Kveiktu á heimild símaforritsins til að fá aðgang að talhólfinu þínu."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Kveiktu á heimild símaforritsins til að hringja símtal."</string>
diff --git a/java/com/android/dialer/app/res/values-it/strings.xml b/java/com/android/dialer/app/res/values-it/strings.xml
index 9bd8cd359..711ab26ee 100644
--- a/java/com/android/dialer/app/res/values-it/strings.xml
+++ b/java/com/android/dialer/app/res/values-it/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Torna alla chiamata in corso"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Aggiungi chiamata"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Chiamate in arrivo"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Attivazione della modalità di azione collettiva"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Disttivazione della modalità di azione collettiva"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selezionato"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> deselezionato"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Riproduci messaggio vocale"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Visualizza <xliff:g id="NAME">%1$s</xliff:g> contatto"</string>
<string name="description_call" msgid="1532402285334775372">"Chiama <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Segreteria"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secondi"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Annulla modalità di azione collettiva"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"messaggio vocale"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"messaggi vocali"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sì"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Eliminare i <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selezionati?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selezionate"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> alle ore <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Caricamento da SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contatti SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nessuna app di contatti disponibile"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Ricerca vocale non disponibile"</string>
<string name="call_not_available" msgid="7850148370757361155">"Impossibile effettuare una telefonata perché l\'applicazione Telefono è stata disattivata."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cerca contatti"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nuove chiamate perse"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Nessun preferito disponibile nella Composizione rapida"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Aggiungi un preferito"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Nessun contatto disponibile"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Aggiungi un contatto"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Tocca l\'immagine per visualizzare tutti i numeri oppure tieni premuto per cambiare l\'ordine"</string>
<string name="remove_contact" msgid="2353580570488923668">"Rimuovi"</string>
+ <string name="select_all" msgid="408601760696146245">"Seleziona tutto"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videochiamata"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Invia un messaggio"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Dettagli chiamata"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Numeri bloccati"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> è già bloccato."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Account di chiamata"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Attiva"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Imposta autorizzazioni"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Per attivare la composizione rapida, attiva l\'autorizzazione Contatti."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Per accedere al registro chiamate, attiva l\'autorizzazione sul telefono."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Per accedere alla segreteria, attiva l\'autorizzazione sul telefono."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Per fare una chiamata, attiva l\'autorizzazione sul telefono."</string>
diff --git a/java/com/android/dialer/app/res/values-iw/strings.xml b/java/com/android/dialer/app/res/values-iw/strings.xml
index bb115e2f8..bd2a05aec 100644
--- a/java/com/android/dialer/app/res/values-iw/strings.xml
+++ b/java/com/android/dialer/app/res/values-iw/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"חזור לשיחה פעילה"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"הוסף שיחה"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"שיחות נכנסות"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"עברת למצב של ביצוע פעולות בכמות גדולה"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"עזבת את המצב של ביצוע פעולות בכמות גדולה"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"בחרת את <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ביטלת את הבחירה של <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"הפעל דואר קולי"</string>
<string name="description_view_contact" msgid="3940984937384372665">"הצג את איש הקשר <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"התקשר אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"דואר קולי"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> שניות"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> דק\' <xliff:g id="SECONDS">%s</xliff:g> שנ\'"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"ביטול המצב של ביצוע פעולות בכמות גדולה"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ההודעה הקולית"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ההודעות הקוליות"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"כן"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"לא"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"האם למחוק את <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> שבחרת?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> נבחרו"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ב-<xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏טוען מכרטיס SIM…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"‏אנשי קשר בכרטיס SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"אין אפליקציה זמינה עבור אנשי קשר"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"חיפוש קולי אינו זמין"</string>
<string name="call_not_available" msgid="7850148370757361155">"לא ניתן לבצע שיחת טלפון מפני שאפליקציית הטלפון הושבתה."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"חפש אנשי קשר"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> שיחות חדשות שלא נענו"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"עדיין לא הוגדר חיוג מהיר לאף איש קשר"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"הוסף פריט מועדף"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"עדיין אין לך אנשי קשר"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"הוסף איש קשר"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"גע בתמונה כדי להציג את כל המספרים או גע והחזק כדי לשנות את הסדר"</string>
<string name="remove_contact" msgid="2353580570488923668">"הסר"</string>
+ <string name="select_all" msgid="408601760696146245">"בחירת הכל"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"שיחת וידאו"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"שלח הודעה"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"פרטי שיחה"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"מספרים חסומים"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> כבר חסום."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"חשבונות לביצוע שיחות"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"הפעל"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"הגדר הרשאות"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"כדי להפעיל חיוג מהיר, הפעל את ההרשאה \'אנשי קשר\'."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"כדי לראות את יומן השיחות, הפעל את ההרשאה \'טלפון\'."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"כדי להציג את אנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"כדי לגשת לדואר הקולי, הפעל את ההרשאה \'טלפון\'."</string>
<string name="permission_no_search" msgid="2424710404207193826">"כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
<string name="permission_place_call" msgid="8686908130349369423">"כדי להתקשר, הפעל את ההרשאה \'טלפון\'."</string>
diff --git a/java/com/android/dialer/app/res/values-ja/strings.xml b/java/com/android/dialer/app/res/values-ja/strings.xml
index 63b15cbed..9ba40fb8f 100644
--- a/java/com/android/dialer/app/res/values-ja/strings.xml
+++ b/java/com/android/dialer/app/res/values-ja/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"通話に戻る"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"別の通話を追加"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"着信"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"一括操作モードを開始します"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"一括操作モードを終了しました"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> を選択しました"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> を選択解除しました"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"ボイスメールを再生"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g>の連絡先を表示"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>に発信"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"ボイスメール"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g>秒"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g>分<xliff:g id="SECONDS">%s</xliff:g>秒"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"一括操作モードをキャンセルします"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ボイスメール"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ボイスメール"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"はい"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"いいえ"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"選択した<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>を削除しますか?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> 件選択済み"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>、<xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g> 分 <xliff:g id="SECONDS">%2$02d</xliff:g> 秒"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIMカードから読み取り中..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIMカードの連絡先"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"連絡先アプリがありません"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"音声検索を利用できません"</string>
<string name="call_not_available" msgid="7850148370757361155">"電話アプリが無効になっているため発信できません。"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"連絡先を検索"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>件の不在着信"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"クイックアクセスに登録済みの連絡先はまだありません"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"お気に入りを追加"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"連絡先はまだありません"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"連絡先を追加"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"画像をタップするとすべての番号が表示され、押し続けると番号を並べ替えることができます"</string>
<string name="remove_contact" msgid="2353580570488923668">"削除"</string>
+ <string name="select_all" msgid="408601760696146245">"すべて選択"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"ビデオハングアウト"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"メッセージを送信"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"通話の詳細"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"ブロックした番号"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>は既にブロックしています。"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"通話アカウント"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ONにする"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"権限を設定"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"クイックアクセスを有効にするには、連絡先権限をONにしてください。"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"通話履歴を表示するには、電話権限をONにしてください。"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"連絡先を表示するには、連絡先権限をONにしてください。"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"ボイスメールにアクセスするには、電話権限をONにしてください。"</string>
<string name="permission_no_search" msgid="2424710404207193826">"連絡先を検索するには、連絡先権限をONにしてください。"</string>
<string name="permission_place_call" msgid="8686908130349369423">"電話をかけるには、電話権限をONにしてください。"</string>
diff --git a/java/com/android/dialer/app/res/values-ka/strings.xml b/java/com/android/dialer/app/res/values-ka/strings.xml
index ae89505b5..dbb48f4f5 100644
--- a/java/com/android/dialer/app/res/values-ka/strings.xml
+++ b/java/com/android/dialer/app/res/values-ka/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"მიმდინარე ზარზე დაბრუნება"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"ზარის დამატება"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"შემომავალი ზარები"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"მიმდინარეობს ერთიანი ქმედების რეჟიმში შესვლა"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ერთიანი ქმედების რეჟიმიდან გამოხვედით"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"არჩეულია <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის არჩევა გაუქმდა"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"ხმოვანი ფოსტის ჩართვა"</string>
<string name="description_view_contact" msgid="3940984937384372665">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"ხმოვანი ფოსტა"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> წმ"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> მინ <xliff:g id="SECONDS">%s</xliff:g> წამ"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"ერთიანი ქმედების რეჟიმის გაუქმება"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ხმოვანი ფოსტა"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ხმოვანი ფოსტა"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"დიახ"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"არა"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"გსურთ, წაშალოთ არჩეული <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"არჩეულია <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"იტვირთება SIM ბარათიდან…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM ბარათის კონტაქტები"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"კონტაქტების აპლიკაცია არ არის ხელმისაწვდომი"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"ხმოვანი ძიება არ არის ხელმისაწვდომი"</string>
<string name="call_not_available" msgid="7850148370757361155">"სატელეფონო ზარის განხორციელება ვერ ხერხდება, ვინაიდან ტელეფონის აპლიკაცია გაუქმებულია."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"კონტაქტებში ძიება"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ახალი გაცდენილი ზარი"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"სწრაფი აკრეფისთვის რჩეულები ჯერ არ გყავთ"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"რჩეული კონტაქტის დამატება"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"კონტაქტები ჯერ არ გაქვთ"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"კონტაქტის დამატება"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"ყველა ნომრის სანახავად შეეხეთ სურათს ან შეეხეთ და დააყოვნეთ მიმდევრობის შესაცვლელად"</string>
<string name="remove_contact" msgid="2353580570488923668">"ამოშლა"</string>
+ <string name="select_all" msgid="408601760696146245">"ყველას არჩევა"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"ვიდეო ზარი"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"შეტყობინების გაგზავნა"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"ზარის მონაცემები"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"დაბლოკილი ნომრები"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> უკვე დაბლოკილია."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"ანგარიშების გამოძახება"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ჩართვა"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"ნებართვების დაყენება"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"სწრაფი აკრეფის გასააქტიურებლად, ჩართეთ კონტაქტების ნებართვა."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"ზარების ჟურნალის სანახავად, ჩართეთ ტელეფონის ნებართვა."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"კონტაქტების სანახავად, ჩართეთ კონტაქტების ნებართვა."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"ხმოვან ფოსტაზე წვდომისთვის, ჩართეთ ტელეფონის ნებართვა."</string>
<string name="permission_no_search" msgid="2424710404207193826">"თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები."</string>
<string name="permission_place_call" msgid="8686908130349369423">"ზარის განსახორციელებლად, ჩართეთ ტელეფონის ნებართვა."</string>
diff --git a/java/com/android/dialer/app/res/values-kk/strings.xml b/java/com/android/dialer/app/res/values-kk/strings.xml
index ba4238692..8dfe531a1 100644
--- a/java/com/android/dialer/app/res/values-kk/strings.xml
+++ b/java/com/android/dialer/app/res/values-kk/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Қосылып тұрған қоңырауға оралу"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Қоңырау қосу"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Келген қоңыраулар"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Жаппай әрекет режиміне өту"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Жаппай әрекет режиімінен шығу"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> таңдалды"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> таңдауы алынды"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Дауыс-хабарды ойнату"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> контактісін көру"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> нөміріне қоңырау шалу"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Дауыстық пошта"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Топтама әрекеттер режимін жабу"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"дауыстық хабар"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"дауыстық хабарлар"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Иә"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Жоқ"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Таңдалған <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> хабарларын жою қажет пе?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> таңдалды"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID (ұялы жабдық анықтағыш)"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картасынан жүктеу…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM картасының контактілері"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Контактілер қолданбасы қол жетімді емес"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Дауыс арқылы іздеу қол жетімді емес"</string>
<string name="call_not_available" msgid="7850148370757361155">"Телефон қоңырауын шалу мүмкін емес, өйткені «Телефон» қолданбасы өшірілген."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Контактілерді іздеу"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> жаңа қабылданбаған қоңыраулар"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Жылдам теруде әлі ешкім жоқ"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Таңдаулыны қосу"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Әлі ешқандай контактілер жоқ"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Контакт қосу"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Барлық нөмірлерді көру үшін кескінді түртіңіз, ал ретін өзгерту үшін түртіп, ұстап тұрыңыз"</string>
<string name="remove_contact" msgid="2353580570488923668">"Алып тастау"</string>
+ <string name="select_all" msgid="408601760696146245">"Барлығын таңдау"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Бейне қоңырау"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Хабар жіберу"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Қоңырау мәліметтері"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Бөгелген нөмірлер"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеліп қойылған."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Қоңырау шалу есептік жазбалары"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Қосу"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Рұқсаттар орнату"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Жылдам теруді қосу үшін \"Контактілер\" рұқсатын қосыңыз."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Қоңыраулар журналы көру үшін \"Телефон\" рұқсатын қосыңыз."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Дауыс поштасына қатынасу үшін \"Телефон\" рұқсатын қосыңыз."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Қоңырауды шалу үшін \"Телефон\" рұқсатын қосыңыз."</string>
diff --git a/java/com/android/dialer/app/res/values-km/strings.xml b/java/com/android/dialer/app/res/values-km/strings.xml
index bdc91cf0b..ed0db05e2 100644
--- a/java/com/android/dialer/app/res/values-km/strings.xml
+++ b/java/com/android/dialer/app/res/values-km/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"កំពុង​ត្រឡប់​ទៅកាន់​ការ​ហៅ"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"បន្ថែម​ការ​ហៅ"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ការ​ហៅ​ចូល"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ចូល​មុខងារ​សកម្មភាព​ច្រើន"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"បាន​ចាកចេញ​ពី​មុខងារ​សកម្មភាព​ច្រើន"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"បាន​ជ្រើសរើស <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"បាន​ដក​ការជ្រើសរើស <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"ចាក់​សារ​ជា​សំឡេង"</string>
<string name="description_view_contact" msgid="3940984937384372665">"មើល​ទំ​នាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"សារ​ជា​សំឡេង"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> នាទី <xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"បោះបង់​មុខងារ​សកម្មភាព​ជា​ក្រុម"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"សារ​ជា​សំឡេង"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"សារ​ជា​សំឡេង"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"បាទ/ចាស"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ទេ"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"លុប <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ដែល​បាន​ជ្រើសរើស?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"បាន​ជ្រើសរើស <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> នៅម៉ោង <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"កំពុង​ផ្ទុក​ពី​ស៊ីម​កាត..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"ទំនាក់ទំនង​នៅ​ក្នុង​ស៊ីម​កាត"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"មិនមានកម្មវិធីទំនាក់ទំនងទេ"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"ការស្វែងរកជាសម្លេងមិនមានទេ"</string>
<string name="call_not_available" msgid="7850148370757361155">"មិន​អាច​ហៅ​បាន​ទេ​ ព្រោះ​កម្មវិធី​ទូរស័ព្ទ​ត្រូវ​បាន​បិទ។"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"រក​ទំនាក់ទំនង"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"ខកខាន​ទទួល​ថ្មី <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"គ្មាននរណាម្នាក់នៅក្នុងការហៅរហ័សរបស់អ្នកនៅឡើយទេ"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"បញ្ចូលសំណព្វ"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"បន្ថែមទំនាក់ទំនង"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"ប៉ះរូបភាពដើម្បីមើលលេខទាំងអស់ ឬប៉ះ &amp; សង្កត់ឲ្យជាប់ដើម្បីតម្រៀបឡើងវិញ"</string>
<string name="remove_contact" msgid="2353580570488923668">"លុបចេញ"</string>
+ <string name="select_all" msgid="408601760696146245">"ជ្រើសរើស​​ទាំងអស់"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"ហៅជាវីដេអូ"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"ផ្ញើសារ"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"ព័ត៌មានលម្អិតអំពីការហៅ"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"លេខបានរារាំង"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ត្រូវបានទប់ស្កាត់រួចហើយ"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"គណនីហៅទូរសព្ទ"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"បើក"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"កំណត់សិទ្ធិអនុញ្ញាត"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"ដើម្បីបើកដំណើរការហៅរហ័ស សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"ដើម្បីមើលកំណត់ហេតុហៅទូរស័ព្ទរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"ដើម្បីចូលដំណើរការសារជាសំឡេងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
<string name="permission_no_search" msgid="2424710404207193826">"ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។"</string>
<string name="permission_place_call" msgid="8686908130349369423">"ដើម្បីធ្វើការហៅទូរស័ព្ទ សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
diff --git a/java/com/android/dialer/app/res/values-kn/strings.xml b/java/com/android/dialer/app/res/values-kn/strings.xml
index dae544d3f..932bc4035 100644
--- a/java/com/android/dialer/app/res/values-kn/strings.xml
+++ b/java/com/android/dialer/app/res/values-kn/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ಪ್ರತ್ಯತ್ತರ ಕರೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ಒಳಬರುವ ಕರೆಗಳು"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್‌ಗೆ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್ ತೊರೆಯಲಾಗಿದೆ"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"ಧ್ವನಿಮೇಲ್‌ ಪ್ಲೇ ಮಾಡಿ"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"ಧ್ವನಿಮೇಲ್"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ನಿಮಿ <xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"ಬ್ಯಾಚ್ ಕ್ರಿಯೆಗಳ ಮೋಡ್ ಅನ್ನು ರದ್ದುಮಾಡಿ"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ಧ್ವನಿಮೇಲ್"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ಧ್ವನಿಮೇಲ್‌ಗಳು"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ಹೌದು"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ಇಲ್ಲ"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ಆಯ್ಕೆ ಮಾಡಲಾದ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ಅನ್ನು ಅಳಿಸುವುದೇ?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ರಂದು <xliff:g id="TIME">%2$s</xliff:g> ಗಂಟೆಗೆ"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಂಪರ್ಕಗಳು"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"ಧ್ವನಿ ಹುಡುಕಾಟ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="call_not_available" msgid="7850148370757361155">"ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುವುದರಿಂದ ಫೋನ್ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ಹೊಸ ಮಿಸ್ಡ್‌ ಕರೆಗಳು"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"ನಿಮ್ಮ ತ್ವರಿತ ಡಯಲ್‌ನಲ್ಲಿ ಇದುವರೆಗೆ ಯಾರೂ ಇಲ್ಲ"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ಮೆಚ್ಚಿನದನ್ನು ಸೇರಿಸಿ"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"ಎಲ್ಲಾ ಸಂಖ್ಯೆಗಳನ್ನು ನೋಡಲು ಚಿತ್ರವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌‌ ಮಾಡಿ"</string>
<string name="remove_contact" msgid="2353580570488923668">"ತೆಗೆದುಹಾಕು"</string>
+ <string name="select_all" msgid="408601760696146245">"ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿ"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"ವೀಡಿಯೊ ಕರೆ"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"ಕರೆಯ ವಿವರಗಳು"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"ನಿರ್ಬಂಧಿಸಲಾದ ಸಂಖ್ಯೆಗಳು"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ಈಗಾಗಲೇ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ಆನ್‌ ಮಾಡಿ"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸು"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"ವೇಗ ಡಯಲ್ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಪ್ರವೇಶಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
<string name="permission_no_search" msgid="2424710404207193826">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ."</string>
<string name="permission_place_call" msgid="8686908130349369423">"ಕರೆ ಮಾಡಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
diff --git a/java/com/android/dialer/app/res/values-ko/strings.xml b/java/com/android/dialer/app/res/values-ko/strings.xml
index 1850b6ce1..de6b93c01 100644
--- a/java/com/android/dialer/app/res/values-ko/strings.xml
+++ b/java/com/android/dialer/app/res/values-ko/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"진행 중인 통화로 돌아가기"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"통화 추가"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"수신전화"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"일괄 작업 모드 시작 중"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"일괄 작업 모드 종료됨"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 선택됨"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> 선택 취소됨"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"음성사서함 재생"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g>님의 연락처 보기"</string>
<string name="description_call" msgid="1532402285334775372">"전화걸기: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"음성사서함"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g>초"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g>분 <xliff:g id="SECONDS">%s</xliff:g>초"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"일괄 작업 모드 취소"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"음성사서함"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"음성사서함"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"예"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"아니요"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"선택한 <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>을(를) 삭제하시겠습니까?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g>개 선택됨"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>분 <xliff:g id="SECONDS">%2$02d</xliff:g>초"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM 카드에서 로딩 중..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM 카드 주소록"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"사용할 수 있는 주소록 앱이 없습니다."</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"음성검색이 지원되지 않습니다."</string>
<string name="call_not_available" msgid="7850148370757361155">"전화 애플리케이션을 사용 중지했으므로 전화를 걸 수 없습니다."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"주소록 검색"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"새로운 부재중 전화 <xliff:g id="NUMBER">%s</xliff:g>건"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"아직 단축 다이얼이 설정된 연락처가 없습니다."</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"단축 다이얼 추가"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"아직 연락처가 없습니다."</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"연락처 추가"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"이미지를 터치하여 모든 번호를 확인하거나 길게 터치하여 재정렬합니다."</string>
<string name="remove_contact" msgid="2353580570488923668">"삭제"</string>
+ <string name="select_all" msgid="408601760696146245">"모두 선택"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"화상 통화"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"메시지 보내기"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"통화 세부정보"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"차단된 번호"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>번은 이미 차단되었습니다."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"통화 계정"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"사용"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"권한 설정"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"단축번호를 사용하려면 주소록 권한을 사용하도록 설정하세요."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"통화 기록을 보려면 전화 권한을 사용하도록 설정하세요."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"주소록을 보려면 주소록 권한을 사용하도록 설정하세요."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"음성사서함에 액세스하려면 전화 권한을 사용하도록 설정하세요."</string>
<string name="permission_no_search" msgid="2424710404207193826">"주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요."</string>
<string name="permission_place_call" msgid="8686908130349369423">"전화를 걸려면 전화 권한을 사용하도록 설정하세요."</string>
diff --git a/java/com/android/dialer/app/res/values-ky/strings.xml b/java/com/android/dialer/app/res/values-ky/strings.xml
index 9e80e29ee..ac9a617ed 100644
--- a/java/com/android/dialer/app/res/values-ky/strings.xml
+++ b/java/com/android/dialer/app/res/values-ky/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Токтотулган чалууга кайтуу"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Чалууну кошуу"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Кирүүчү чалуулар"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Жапырт аракет режимине кирдиңиз"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Жапырт аракет режиминен чыктыңыз"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> объект тандалды"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> объект тандоодон чыгарылды"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Үнкатты угуу"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Байланышты кароо <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Чалуу <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Үн почтасы"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мүн. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Жапырт аракет режимин жокко чыгаруу"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"үн почтасы"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"үн почталары"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ооба"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Жок"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Тандалган <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> жок кылынсынбы?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> тандалды"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> саат <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картадан жүктөлүүдө..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM картадагы байланыштар"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Жеткиликтүү байланыштар колдонмосу жок"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Үн менен издөө жеткиликтүү эмес"</string>
<string name="call_not_available" msgid="7850148370757361155">"Телефон колдонмосу өчүрүлгөндүктөн, чалуу мүмкүн болбой жатат."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Байланыштарды издөө"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> жаңы өткөзүлгөн чалуу"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Азырынча тез териле турган номерлер жок"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Сүйүктүү номер кошуу"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Азырынча бир дагы байланышыңыз жок"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Байланыш кошуу"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Бардык номерлерди көрүү үчүн, сүрөткө тийип коюңуз же коё бербей басып туруп иретин өзгөртсөңүз болот."</string>
<string name="remove_contact" msgid="2353580570488923668">"Алып салуу"</string>
+ <string name="select_all" msgid="408601760696146245">"Баарын тандоо"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Видео чалуу"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Билдирүү жөнөтүү"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Чалуунун чоо-жайы"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Бөгөттөлгөн номерлер"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> мурунтан эле бөгөттөлгөн."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Чалуу каттоо эсептери"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Күйгүзүү"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Уруксаттарды берүү"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Тез терүүнү иштетүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Чалуулар таржымалыңызды көрүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Байланыштар тизмесин көрүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Үн почтаңызга кирүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Чалуу үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
diff --git a/java/com/android/dialer/app/res/values-lo/strings.xml b/java/com/android/dialer/app/res/values-lo/strings.xml
index 8284e8de0..2a829730f 100644
--- a/java/com/android/dialer/app/res/values-lo/strings.xml
+++ b/java/com/android/dialer/app/res/values-lo/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"ເພີ່ມການໂທ"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ສາຍໂທເຂົ້າ"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ກຳລັງເຂົ້າໂໝດຄຳສັ່ງຈຳນວນຫຼາຍ"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ອອກຈາກໂໝດຄຳສັ່ງຈຳນວນຫຼາຍແລ້ວ"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"ເລືອກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ແລ້ວ"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ເຊົາເລືອກ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ແລ້ວ"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"ເປີດຂໍ້ຄວາມສຽງ"</string>
<string name="description_view_contact" msgid="3940984937384372665">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"ຂໍ້ຄວາມສຽງ"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ວິນາທີ"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ນ​ທ <xliff:g id="SECONDS">%s</xliff:g> ວິ"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"ຍົກເລີກໂໝດຄຳສັ່ງເປັນຊຸດ"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ຂໍ້ຄວາມສຽງ"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ຂໍ້ຄວາມສຽງ"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ແມ່ນແລ້ວ"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ບໍ່"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ລຶບ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ທີ່ເລືອກອອກໄປບໍ?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"ເລືອກ <xliff:g id="NUMBER">%1$s</xliff:g> ລາຍການແລ້ວ"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ເວລາ <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"ກຳລັງໂຫລດຈາກ SIM card..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"ບໍ່​ມີ​ແອັບຯ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຢູ່"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"ບໍ່​ມີ​ການ​ຊອກ​ຫາ​ດ້ວຍ​ສຽງ​ຢູ່"</string>
<string name="call_not_available" msgid="7850148370757361155">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ​້​ເນື່ອງ​ຈາກ​ແອັບ​ພ​ລິ​ເຄ​ຊັນ​ໂທ​ລະ​ສັບ​ຖືກ​ປິດ​ການ​ນຳ​ໃຊ້​ໄວ້."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"ບໍ່​ມີ​ຜູ້​ໃດ​ຢູ່​ໃນ​ການ​ໂທ​ດ່ວນ​ຂອງ​ທ່ານ​ເທື່ອ"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ເພີ່ມ​ລາຍ​ການ​ທີ່​ມັກ"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"ທ່ານ​ບໍ່​ມີ​ລາຍ​ຊື່​ໃດ​ເທື່ອ"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ເພີ່ມ​ລາຍ​ຊື່"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"ແຕະຮູບເພື່ອເບິ່ງເບີໂທທັງໝົດ ຫຼື ແຕະຄ້າງໄວ້ເພື່ອຈັດລຳດັບໃໝ່"</string>
<string name="remove_contact" msgid="2353580570488923668">"​ລຶບ​ອອກ"</string>
+ <string name="select_all" msgid="408601760696146245">"ເລືອກທັງໝົດ"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"​ໂທ​ດ້ວຍ​ວິ​ດີ​ໂອ"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"ສົ່ງຂໍ້ຄວາມ"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"ລາຍລະອຽດ​ການໂທ"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"ເບີໂທລະສັບທີ່ບລັອກໄວ້"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກ​ບ​ລັອກ​ແລ້ວ."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"ບັນ​ຊີ​ໂທ"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ເປີດ​"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"ຕັ້ງ​ການ​ອະ​ນຸ​ຍາດ"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"ເພື່ອ​ເປີດ​ໃຊ້​ງານ​ການໂທດ່ວນ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"ເພື່ອ​ເບິ່ງ​ບັນ​ທຶກ​ການ​ໂທ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"ເພື່ອ​ເບິ່ງ​ລາຍ​ຊື່​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"ເພື່ອ​ເຂົ້າ​ຫາ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
<string name="permission_no_search" msgid="2424710404207193826">"ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່."</string>
<string name="permission_place_call" msgid="8686908130349369423">"ເພື່ອ​ເຮັດການໂທ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
diff --git a/java/com/android/dialer/app/res/values-lt/strings.xml b/java/com/android/dialer/app/res/values-lt/strings.xml
index a346d5d0a..367c928f4 100644
--- a/java/com/android/dialer/app/res/values-lt/strings.xml
+++ b/java/com/android/dialer/app/res/values-lt/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Grįžti prie vykdomo skambučio"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pridėti skambutį"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Gaunami skambučiai"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Įjungiamas masinių veiksmų režimas"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Masinių veiksmų režimas išjungtas"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Pasirinkta: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Pasirinkimas atšauktas: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Paleisti balso pašto pranešimus"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Žiūrėti kontaktą <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Skambinti <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"Balso paštas"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Atšaukti masinių veiksmų režimą"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"balso pašto praneš."</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"balso pašto praneš."</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Taip"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ištrinti pasir. <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Pasirinkta: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Įkeliama iš SIM kortelės..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM kortelės adresatai"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nepasiekiama jokia kontaktų programa"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Paieška balsu nepasiekiama"</string>
<string name="call_not_available" msgid="7850148370757361155">"Negalima skambinti telefonu, nes Telefono programa išjungta."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Ieškoti adresatų"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Naujų praleistų skambučių: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Dar nieko neįtraukėte į sparčiojo rinkimo sąrašą"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pridėti mėgstamiausią"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Dar neturite kontaktų"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pridėti kontaktą"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Palieskite vaizdą, kad peržiūrėtumėte visus numerius, arba palieskite ir palaikykite, kad pertvarkytumėte"</string>
<string name="remove_contact" msgid="2353580570488923668">"Pašalinti"</string>
+ <string name="select_all" msgid="408601760696146245">"Pasirinkti viską"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Vaizdo skambutis"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Siųsti pranešimą"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Išsami skambučio informacija"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"Užblokuoti numeriai"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> jau užblokuotas."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Skambinimo paskyros"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Įjungti"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nustatyti leidimus"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Jei norite įgalinti spartųjį rinkimą, įjunkite Kontaktų programos leidimą."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Jei norite peržiūrėti skambučių žurnalą, įjunkite Telefono programos leidimą."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų programos leidimą."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Jei norite pasiekti balso paštą, įjunkite Telefono programos leidimą."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Jei norite paskambinti, įjunkite Telefono programos leidimą."</string>
diff --git a/java/com/android/dialer/app/res/values-lv/strings.xml b/java/com/android/dialer/app/res/values-lv/strings.xml
index 808d7bfb7..2713b91b6 100644
--- a/java/com/android/dialer/app/res/values-lv/strings.xml
+++ b/java/com/android/dialer/app/res/values-lv/strings.xml
@@ -86,6 +86,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Atgriezties pie pašreizējā zvana"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pievienot zvanu"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Ienākošie zvani"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Tiek atvērts lielapjoma darbību režīms"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Tika aizvērts lielapjoma darbību režīms"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Atlasīt: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Noņemt atlasi: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Atskaņot balss pasta ziņojumu"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Skatīt kontaktpersonu <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Zvanīt: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
<string name="voicemail" msgid="8899540969000957954">"Balss pasts"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Iziet no grupas darbību režīma"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"balss pasta ziņojums"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"balss pasta ziņojumi"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Jā"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nē"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vai dzēst atlasi: <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Atlasīti: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> plkst. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Notiek ielāde no SIM kartes..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontaktpersonas SIM kartē"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nav pieejama neviena kontaktpersonu lietotne."</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Meklēšana ar balsi nav pieejama."</string>
<string name="call_not_available" msgid="7850148370757361155">"Nevar veikt tālruņa zvanu, jo lietojumprogramma Tālrunis tika atspējota."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Meklēt kontaktpersonas"</string>
@@ -146,10 +151,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Jauni neatbildēti zvani: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Ātro zvanu sarakstā vēl nav nevienas kontaktpersonas."</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pievienot izlasei"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Jums vēl nav nevienas kontaktpersonas."</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pievienot kontaktpersonu"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Pieskarieties attēlam, lai skatītu visus numurus, vai pieskarieties attēlam un turiet to, lai veiktu pārkārtošanu."</string>
<string name="remove_contact" msgid="2353580570488923668">"Noņemt"</string>
+ <string name="select_all" msgid="408601760696146245">"Atlasīt visu"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videozvans"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Sūtīt ziņojumu"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Informācija par zvanu"</string>
@@ -215,11 +219,9 @@
<string name="block_list" msgid="4701585783411870782">"Bloķētie numuri"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> jau ir bloķēts."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Zvanu konti"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Ieslēgt"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Iestatīt atļaujas"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Lai iespējotu ātros zvanus, ieslēdziet atļauju Kontaktpersonas."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Lai skatītu zvanu žurnālu, ieslēdziet atļauju Tālrunis."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Lai skatītu kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Lai piekļūtu balss pastam, ieslēdziet atļauju Tālrunis."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Lai veiktu zvanu, ieslēdziet atļauju Tālrunis."</string>
diff --git a/java/com/android/dialer/app/res/values-mk/strings.xml b/java/com/android/dialer/app/res/values-mk/strings.xml
index 6d2e533a5..09725a642 100644
--- a/java/com/android/dialer/app/res/values-mk/strings.xml
+++ b/java/com/android/dialer/app/res/values-mk/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Врати се на повик во тек"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додај повик"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Дојдовни повици"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Влегувате во режим на групно дејство"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Излеговте од режим на групно дејство"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Избрано е <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Поништен е изборот на <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Преслушај говорна пошта"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Повикај <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Говорна пошта"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Откажи го режимот на групни дејства"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"говорна пошта"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"говорни пораки"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Да се избришат избраните <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Избрани се <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> во <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Вчитување од SIM картичка..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Контакти од SIM картичка"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Не е достапна апликација за контакти"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Гласовното пребарување не е достапно"</string>
<string name="call_not_available" msgid="7850148370757361155">"Не може да се воспостави телефонски повик, бидејќи апликацијата Телефон е оневозможена."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пребарај контакти"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуштени повици"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Сè уште немате никого на брзо бирање"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додај омилено"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Сè уште немате контакти"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додај контакт"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Допрете ја сликата за да ги видите сите броеви или допрете и држете за промена на редоследот"</string>
<string name="remove_contact" msgid="2353580570488923668">"Отстрани"</string>
+ <string name="select_all" msgid="408601760696146245">"Изберете ги сите"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Видеоповик"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Испрати порака"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Детали на повик"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Блокирани броеви"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> веќе е блокиран."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Сметки за повикување"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Вклучи"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Постави дозволи"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"За да овозможите брзо бирање, вклучете ја дозволата за контакти."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"За да ја видите евиденцијата на повици, вклучете ја дозволата за телефон."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"За да ги видите контактите, вклучете ја дозволата за контакти."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"За да пристапите кон говорната пошта, вклучете ја дозволата за телефон."</string>
<string name="permission_no_search" msgid="2424710404207193826">"За да ги пребарувате контактите, вклучете ги дозволите за контакти."</string>
<string name="permission_place_call" msgid="8686908130349369423">"За да воспоставите повик, вклучете ја дозволата за телефон."</string>
diff --git a/java/com/android/dialer/app/res/values-ml/strings.xml b/java/com/android/dialer/app/res/values-ml/strings.xml
index 91accf442..7655dbe23 100644
--- a/java/com/android/dialer/app/res/values-ml/strings.xml
+++ b/java/com/android/dialer/app/res/values-ml/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"വിളിച്ചുകൊണ്ടിരിക്കുന്ന കോളിലേക്ക് മടങ്ങുക"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"കോൾ ചേർക്കുക"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ഇൻകമിംഗ് കോളുകൾ"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ബൾക്ക് പ്രവർത്തന മോഡിലേക്ക് പ്രവേശിക്കുന്നു"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ബൾക്ക് പ്രവർത്തന മോഡ് വിട്ടു"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> തിരഞ്ഞെടുത്തു"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> തിരഞ്ഞെടുത്തത് മാറ്റി"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"വോയ്‌സ്‌മെയിൽ പ്ലേ ചെയ്യുക"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> എന്ന കോൺടാക്റ്റ് കാണുക"</string>
<string name="description_call" msgid="1532402285334775372">"വിളിക്കുക <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"വോയ്‌സ്‌മെയിൽ"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> സെക്കൻഡ്"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> മി. <xliff:g id="SECONDS">%s</xliff:g> സെ."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"\'ബാച്ച് പ്രവർത്തനങ്ങൾ\' മോഡ് റദ്ദാക്കുക"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"വോയ്‌സ്‌മെയിൽ"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"വോയ്‌സ്മെയിലുകൾ"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"അതെ"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ഇല്ല"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"തിരഞ്ഞെടുത്ത <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ഇല്ലാതാക്കണോ?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> എണ്ണം തിരഞ്ഞെടുത്തു"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>-ന്"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"സിം കാർഡിൽ നിന്നും ലോഡുചെയ്യുന്നു…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"സിം കാർഡ് കോൺടാക്റ്റുകൾ"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"വോയ്‌സ് തിരയൽ ലഭ്യമല്ല"</string>
<string name="call_not_available" msgid="7850148370757361155">"ഫോൺ അപ്ലിക്കേഷൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നതിനാൽ ഫോൺ കോൾ ചെയ്യാനാകില്ല."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> പുതിയ മിസ്‌ഡ് കോളുകൾ"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"ഇതുവരെ ആരും നിങ്ങളുടെ സ്പീഡ് ഡയലിൽ ഇല്ല"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"പ്രിയപ്പെട്ടത് ചേർക്കുക"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"എല്ലാ നമ്പറുകളും കാണാൻ ചിത്രം സ്‌പർശിക്കുക അല്ലെങ്കിൽ വീണ്ടും ക്രമീകരിക്കാൻ സ്‌പർശിച്ച് പിടിക്കുക"</string>
<string name="remove_contact" msgid="2353580570488923668">"നീക്കംചെയ്യുക"</string>
+ <string name="select_all" msgid="408601760696146245">"എല്ലാം തിരഞ്ഞെടുക്കുക"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"വീഡിയോ കോള്‍"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"ഒരു സന്ദേശം അയയ്‌ക്കുക"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"കോൾ വിശദാംശങ്ങൾ"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"ഇതിനകം തന്നെ <xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്തിരിക്കുന്നു"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"കോളിംഗ് അക്കൗണ്ട്"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ഓണാക്കുക"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"അനുമതികൾ സജ്ജമാക്കുക"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"സ്പീഡ് ഡയൽ പ്രവർത്തനക്ഷമാക്കുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"നിങ്ങളുടെ കോൾ ലോഗ് കാണുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"നിങ്ങളുടെ വോയ്‌സ്‌മെയിൽ ആക്സസ് ചെയ്യുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
<string name="permission_no_search" msgid="2424710404207193826">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക."</string>
<string name="permission_place_call" msgid="8686908130349369423">"കോൾ വിളിക്കുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
diff --git a/java/com/android/dialer/app/res/values-mn/strings.xml b/java/com/android/dialer/app/res/values-mn/strings.xml
index a07a826d5..29bd8af42 100644
--- a/java/com/android/dialer/app/res/values-mn/strings.xml
+++ b/java/com/android/dialer/app/res/values-mn/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Үргэлжилж буй дуудлага руу буцах"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Дуудлага нэмэх"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Ирж буй дуудлага"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Багц үйлдлийн горимд орж байна"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Багц үйлдлийн горимоос гарсан"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> сонгосон"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> сонголтыг болиулсан"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Дуут шууданг тоглуулах"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Дуут шуудан"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> минут <xliff:g id="SECONDS">%s</xliff:g> секунд"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Багц үйлдлийн горимыг цуцлах"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"дуут шуудан"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"дуут шуудан"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Тийм"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Үгүй"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Сонгосон <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>-г устгах уу?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> сонгосон"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>-д"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM картаас уншиж байна…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM картны харилцагчид"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Ямар ч харилцагчдын апликейшн байхгүй байна."</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Дуут хайлт хийх боломжгүй байна"</string>
<string name="call_not_available" msgid="7850148370757361155">"Утас аппликешныг идэвхгүйжүүлсэн тул утасны дуудлага хийх боломжгүй."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Харилцагчдаас хайх"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> шинэ аваагүй дуудлага"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Таны яаралтай залгах тохиргоон дээр одоогоор харилцагч байхгүй байна"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Таалагдсан хэсэгт нэмэх"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Танд одоогоор харилцагч байхгүй байна"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Харилцагч нэмэх"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Бүх дугаарыг харахын тулд зурганд хүрнэ үү эсвэл жагсаалтыг өөрчлөхийн тулд удаан дарна уу."</string>
<string name="remove_contact" msgid="2353580570488923668">"Хасах"</string>
+ <string name="select_all" msgid="408601760696146245">"Бүгдийг сонгох"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Видео дуудлага"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Зурвас илгээх"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Дуудлагын мэдээлэл"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Блоклосон дугаар"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g>-г аль хэдийн блоклосон байна."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Дуудах бүртгэл"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Идэвхжүүлэх"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Зөвшөөрөл тохируулах"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Яаралтай дуудлагыг идэвхжүүлэхийн тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Дуудлагын жагсаалтыг харахын тулд утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Дуут шууданд хандахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Залгахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
diff --git a/java/com/android/dialer/app/res/values-mr/strings.xml b/java/com/android/dialer/app/res/values-mr/strings.xml
index 5aca7a5e2..ee21291e8 100644
--- a/java/com/android/dialer/app/res/values-mr/strings.xml
+++ b/java/com/android/dialer/app/res/values-mr/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"चालू असलेल्या कॉलवर परत जा"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"कॉल जोडा"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"येणारे कॉल"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"मोठ्या प्रमाणात क्रिया मोडमध्ये प्रवेश करीत आहे"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"मोठ्या प्रमाणात क्रिया मोड सोडत आहे"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> निवडले"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ची निवड रद्द केली"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"व्हॉइसमेल प्ले करा"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क पहा"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ला कॉल करा"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"व्हॉइसमेल"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मिनिट <xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"बॅच क्रिया मोड रद्द करा"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"व्हॉइसमेल"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"व्हॉइसमेल"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"होय"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"नाही"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"निवडलेले <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> हटवायचेे?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> निवडले"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> रोजी <xliff:g id="TIME">%2$s</xliff:g> वाजता"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"सिम कार्ड मधून लोड करीत आहे..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"सिम कार्ड संपर्क"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"कोणताही संपर्क अॅप उपलब्ध नाही"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"व्हॉइस शोध उपलब्ध नाही"</string>
<string name="call_not_available" msgid="7850148370757361155">"फोन अनुप्रयोग अक्षम केला गेला असल्याने फोन कॉल करणे शक्य नाही."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"संपर्क शोधा"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> नवीन सुटलेले कॉल"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"अद्याप आपल्‍या स्पीड डायलवर कोणीही नाही"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"एक आवडते जोडा"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"एक संपर्क जोडा"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"सर्व नंबर पाहण्यासाठी प्रतिमेस स्पर्श करा किंवा पुन्हा क्रम लावण्यासाठी स्पर्श करा आणि धरून ठेवा"</string>
<string name="remove_contact" msgid="2353580570488923668">"काढा"</string>
+ <string name="select_all" msgid="408601760696146245">"सर्व निवडा"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"व्हिडिओ कॉल"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"एक संदेश पाठवा"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"कॉल तपशील"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"अवरोधित केलेले नंबर"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> आधीच अवरोधित केलेला आहे."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"कॉल करण्याची खाती"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"चालू करा"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"परवानग्या सेट करा"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"स्पीड डायल सक्षम करण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"आपला कॉल लॉग पाहण्‍यासाठी, फोन परवानगी चालू करा."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"आपल्‍या व्हॉइसमेलमध्‍ये प्रवेश करण्‍यासाठी, फोन परवानगी चालू करा."</string>
<string name="permission_no_search" msgid="2424710404207193826">"आपले संपर्क शोधण्‍यासाठी, संपर्क परवानग्या चालू करा."</string>
<string name="permission_place_call" msgid="8686908130349369423">"कॉल करण्यासाठी, फोन परवानगी चालू करा."</string>
diff --git a/java/com/android/dialer/app/res/values-ms/strings.xml b/java/com/android/dialer/app/res/values-ms/strings.xml
index 9dbe541d9..dbb021359 100644
--- a/java/com/android/dialer/app/res/values-ms/strings.xml
+++ b/java/com/android/dialer/app/res/values-ms/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kembali ke panggilan yang sedang berlangsung"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Tambah panggilan"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Panggilan masuk"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Memasuki mod tindakan pukal"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Meninggalkan mod tindakan pukal"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dipilih"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> dinyahpilih"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Mainkan mel suara"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Lihat kenalan <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Mel suara"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> saat"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> saat"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Batalkan mod tindakan kelompok"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mel suara"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mel suara"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ya"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Tidak"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Padam <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> yang dipilih?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> dipilih"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> pada <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Memuatkan dari kad SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kenalan kad SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Tiada apl kenalan tersedia"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Carian suara tidak tersedia"</string>
<string name="call_not_available" msgid="7850148370757361155">"Tidak boleh membuat panggilan telefon kerana aplikasi Telefon telah dilumpuhkan."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Cari dalam kenalan"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> panggilan terlepas baharu"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Belum ada sesiapa pada dail pantas anda"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tambahkan kegemaran"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Anda belum mempunyai sebarang kenalan"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Tambahkan kenalan"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Sentuh imej untuk melihat semua nombor atau sentuh &amp; tahan untuk menyusun semula"</string>
<string name="remove_contact" msgid="2353580570488923668">"Alih keluar"</string>
+ <string name="select_all" msgid="408601760696146245">"Pilih semua"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Panggilan video"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Hantar mesej"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Butiran panggilan"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Nombor yang disekat"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah disekat."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Akaun panggilan"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Hidupkan"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Tetapkan kebenaran"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Untuk mendayakan dail laju, hidupkan kebenaran Kenalan."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Untuk melihat log panggilan anda, hidupkan kebenaran Telefon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Untuk mengakses mel suara anda, hidupkan kebenaran Telefon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Untuk mencari kenalan anda, hidupkan kebenaran Kenalan."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Untuk membuat panggilan, hidupkan kebenaran Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-my/strings.xml b/java/com/android/dialer/app/res/values-my/strings.xml
index 2b51b2054..eecfeb234 100644
--- a/java/com/android/dialer/app/res/values-my/strings.xml
+++ b/java/com/android/dialer/app/res/values-my/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ဖုန်းပြန်ခေါ်မှု ပြုလုပ်နေစဉ်"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"ဖုန်းခေါ်မှု ထပ်ထည့်ပါ"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"အဝင်ခေါ်ဆိုမှုများ"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်ကို ထည့်သွင်းခြင်း"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်မှ ထွက်လိုက်သည်"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"ရွေးချယ်ထားသော <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"မရွေးချယ်ထားသော <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"အသံပို့စာ နားထောင်ရန်"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> လိပ်စာကြည့်ရန်"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ကိုခေါ်ပါ"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"အသံစာပို့စနစ်"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> မိနစ် <xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်များမုဒ်ကိ ပယ်ဖျက်ရန်"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"အသံမေးလ်"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"အသံမေးလ်များ"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yes"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"No"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ရွေးထားသော <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ကို ဖျက်လိုပါသလား။"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ကို ရွေးချယ်ထားသည်"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ၌"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEIDနံပါတ်"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"ဆင်းမ်ကဒ်မှ ဖွင့်နေပါသည်..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"ဆင်းမ်ကဒ်မှ အဆက်အသွယ်များ"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"အဆက်အသွယ်များ app မရှိ"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"အသံဖြင့် ရှာဖွေမှု မရှိ"</string>
<string name="call_not_available" msgid="7850148370757361155">"ဖုန်း အပလီကေးရှင်းကို ပိတ်ထား၍ ဖုန်း ခေါ်ဆိုမှု မပြုလုပ်နိုင်ခဲ့ပါ။"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"အဆက်အသွယ်များရှာပါ"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"လွတ်သွားသောဖုန်း <xliff:g id="NUMBER">%s</xliff:g> ခါ"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"သင်၏အမြန်ခေါ်စာရင်းတွင် မည်သူမျှ မရှိသေးပါ"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"အနှစ်သက်ဆုံးတစ်ခု ထည့်ရန်"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"နံပါတ်အားလုံးကိုကြည့်ရန် ပုံကိုထိပါ (သို့) ပြန်စီရန် ထိပြီးဖိထားပါ"</string>
<string name="remove_contact" msgid="2353580570488923668">"ဖယ်ရှာခြင်း"</string>
+ <string name="select_all" msgid="408601760696146245">"အားလုံးကို ရွေးချယ်ပါ"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"စာ တစ်စောင် ပို့ပါ"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"ဖုန်းခေါ်မှု အသေးစိတ်အချက်အလက်"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"ပိတ်ထားသည့် နံပါတ်များ"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> အားပိတ်ဆို့ထားပြီးပါပြီ။"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"ခေါ်ဆိုသော အကောင့်များ"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ဖွင့်ထားရန်"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"ခွင့်ပြုချက်များ သတ်မှတ်မည်"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"မြန်နှုန်းမြင့်ဖုန်းခေါ်ဆိုမှုကို ဖွင့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ရန်၊ ဖုန်းခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"အသံမေးလ်ကိုအသုံးပြုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
<string name="permission_no_search" msgid="2424710404207193826">"သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။"</string>
<string name="permission_place_call" msgid="8686908130349369423">"ဖုန်းခေါ်ဆိုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
diff --git a/java/com/android/dialer/app/res/values-nb/strings.xml b/java/com/android/dialer/app/res/values-nb/strings.xml
index d92edc649..bda4915b5 100644
--- a/java/com/android/dialer/app/res/values-nb/strings.xml
+++ b/java/com/android/dialer/app/res/values-nb/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Gå tilbake til aktiv samtale"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Legg til en samtale"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Innkommende samtaler"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Starter massehandlingsmodus"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingsmodus er avsluttet"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Du har valgt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Du har valgt bort <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Spill av talemelding"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt massehandlinsmodus"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talepost"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talepost"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Slett markert <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Henter fra SIM-kort…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Ingen kontaktapper er tilgjengelige"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Talesøk er ikke tilgjengelig"</string>
<string name="call_not_available" msgid="7850148370757361155">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søk i kontakter"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen på hurtigoppringning ennå"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Legg til en favoritt"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Du har ingen kontakter ennå"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Legg til en kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere"</string>
<string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
+ <string name="select_all" msgid="408601760696146245">"Velg alle"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanrop"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Send en melding"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Samtaleinformasjon"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokkerte numre"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Ringekontoer"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Slå på"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angi tillatelser"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string>
<string name="permission_no_search" msgid="2424710404207193826">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
<string name="permission_place_call" msgid="8686908130349369423">"For å ringe, slå på Telefon-tillatelsen."</string>
diff --git a/java/com/android/dialer/app/res/values-ne/strings.xml b/java/com/android/dialer/app/res/values-ne/strings.xml
index 90a3016e2..8262a316c 100644
--- a/java/com/android/dialer/app/res/values-ne/strings.xml
+++ b/java/com/android/dialer/app/res/values-ne/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"हुदै गरेको कलमा फर्कनुहोस्"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"कल थप्नुहोस्"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"आगमन कलहरू"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"बल्क कारबाही सम्बन्धी मोडमा प्रवेश गर्दै"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"बल्क कारबाही सम्बन्धी मोड छोडियो"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> चयन गरियो"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> चयन हटाइयो"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"भ्वाइसमेल बजाउनुहोस्"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> सम्पर्क हेर्नुहोस्"</string>
<string name="description_call" msgid="1532402285334775372">"कल <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"भ्वाइसमेल"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> सेकेन्ड"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> मिनेट <xliff:g id="SECONDS">%s</xliff:g> सकेन्ड"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"ब्याच सम्बन्धी कारबाहीको मोडलाई रद्द गर्नुहोस्"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"भ्वाइस मेल"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"भ्वाइस मेलहरू"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"हो"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"होइन"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"चयन गरिएका <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> लाई मेटाउने हो?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> चयन गरियो"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> मा <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM कार्डबाट लोड हुँदै"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM कार्ड सम्पर्कहरू"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"कुनै पनि सम्पर्क अनुप्रयोग उपलब्ध छैन"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"आवाज खोजी उपलब्ध छैन"</string>
<string name="call_not_available" msgid="7850148370757361155">"फोन अनुप्रयोग असक्षम गरिएकोले फोन गर्न सकिँदैन।"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"सम्पर्कहरू खोज्नुहोस्"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> नयाँ छुटेका कलहरु"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"तपाईँको स्पिड डायलमा अझसम्म कोही छैन"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"एक मनपर्ने थप्नुहोस्"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"तपाईँसँग अझसम्म कुनै सम्पर्कहरू छैनन्"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"एउटा सम्पर्क थप्नुहोस्"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"सबै नम्बरहरू हेर्न छविलाई छुनुहोस् वा पुन:क्रमबद्ध गर्न छोइराख्नुहोस्"</string>
<string name="remove_contact" msgid="2353580570488923668">"हटाउँनुहोस्"</string>
+ <string name="select_all" msgid="408601760696146245">"सबैलाई चयन गर्नुहोस्"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"भिडियो कल"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"सन्देश पठाउनुहोस्"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"कल विवरणहरु"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"रोकिएका नम्बरहरू"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> पहिले नै रोकिएको छ।"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"खाता कलिङ"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"सक्रिय पार्नुहोस्"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"अनुमतिहरू सेट गर्नुहोस्"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"तीव्र डायल सक्षम गर्न, सम्पर्क अनुमति सक्षम गर्नुहोस्।"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"आफ्नो कल लग हेर्न, फोन अनुमति सक्रिय गर्नुहोस्।"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"आफ्नो सम्पर्क हेर्न सम्पर्क अनुमति सक्रिय गर्नुहोस्।"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"आफ्नो भ्वाइस मेल पहुँच गर्न, फोन अनुमति सक्रिय गर्नुहोस्"</string>
<string name="permission_no_search" msgid="2424710404207193826">"तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।"</string>
<string name="permission_place_call" msgid="8686908130349369423">"कल गर्न फोन अनुमति सक्रिय गर्नुहोस्।"</string>
diff --git a/java/com/android/dialer/app/res/values-nl/strings.xml b/java/com/android/dialer/app/res/values-nl/strings.xml
index 5f41b8063..eed412d69 100644
--- a/java/com/android/dialer/app/res/values-nl/strings.xml
+++ b/java/com/android/dialer/app/res/values-nl/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Terug naar actief gesprek"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Oproep toevoegen"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Inkomende oproepen"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Modus voor bulkacties openen"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Modus voor bulkacties verlaten"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> geselecteerd"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Selectie van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> opgeheven"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Voicemail afspelen"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Contact <xliff:g id="NAME">%1$s</xliff:g> bekijken"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> bellen"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Modus voor batchacties annuleren"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"voicemails"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nee"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Geselecteerde <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> verwijderen?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> geselecteerd"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Laden vanaf SIM-kaart..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contacten op SIM-kaart"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Geen app voor contacten beschikbaar"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Gesproken zoekopdracht niet beschikbaar"</string>
<string name="call_not_available" msgid="7850148370757361155">"Kan niet bellen omdat de Telefoon-app is uitgeschakeld."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Contacten zoeken"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nieuwe gemiste oproepen"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Er staat nog niemand in je snelkeuzelijst"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Een favoriet toevoegen"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Je hebt nog geen contacten"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Contact toevoegen"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Tik op de afbeelding om alle nummers te bekijken of tik op de afbeelding en houd vast om opnieuw te rangschikken"</string>
<string name="remove_contact" msgid="2353580570488923668">"Verwijderen"</string>
+ <string name="select_all" msgid="408601760696146245">"Alles selecteren"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videogesprek"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Een bericht verzenden"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Oproepdetails"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Geblokkeerde nummers"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> is al geblokkeerd."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Oproepaccounts"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Inschakelen"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Toestemmingen instellen"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Als je de snelkeuzefunctie wilt inschakelen, schakel je de machtiging voor Contacten in."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Als je je gesprekkenlijst wilt bekijken, schakel je de machtiging voor Telefoon in."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Als je je voicemail wilt beluisteren, schakel je de machtiging voor Telefoon in."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Als je naar contacten wilt zoeken, schakel je de contacttoestemming in."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Als je iemand wilt bellen, schakel je de machtiging voor Telefoon in."</string>
diff --git a/java/com/android/dialer/app/res/values-no/strings.xml b/java/com/android/dialer/app/res/values-no/strings.xml
index d92edc649..bda4915b5 100644
--- a/java/com/android/dialer/app/res/values-no/strings.xml
+++ b/java/com/android/dialer/app/res/values-no/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Gå tilbake til aktiv samtale"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Legg til en samtale"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Innkommende samtaler"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Starter massehandlingsmodus"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Massehandlingsmodus er avsluttet"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Du har valgt <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Du har valgt bort <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Spill av talemelding"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Telefonsvarer"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt massehandlinsmodus"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"talepost"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"talepost"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nei"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Slett markert <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> er valgt"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Henter fra SIM-kort…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakter på SIM-kort"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Ingen kontaktapper er tilgjengelige"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Talesøk er ikke tilgjengelig"</string>
<string name="call_not_available" msgid="7850148370757361155">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Søk i kontakter"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen på hurtigoppringning ennå"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Legg til en favoritt"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Du har ingen kontakter ennå"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Legg til en kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere"</string>
<string name="remove_contact" msgid="2353580570488923668">"Fjern"</string>
+ <string name="select_all" msgid="408601760696146245">"Velg alle"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videoanrop"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Send en melding"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Samtaleinformasjon"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokkerte numre"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Ringekontoer"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Slå på"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Angi tillatelser"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string>
<string name="permission_no_search" msgid="2424710404207193826">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
<string name="permission_place_call" msgid="8686908130349369423">"For å ringe, slå på Telefon-tillatelsen."</string>
diff --git a/java/com/android/dialer/app/res/values-pa/strings.xml b/java/com/android/dialer/app/res/values-pa/strings.xml
index 76d4b9b70..8e6540727 100644
--- a/java/com/android/dialer/app/res/values-pa/strings.xml
+++ b/java/com/android/dialer/app/res/values-pa/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ਪ੍ਰਗਤੀ ਵਿੱਚ ਕਾਲ ਤੇ ਵਾਪਸ ਜਾਓ"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"ਕਾਲ ਜੋੜੋ"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ਇਨਕਮਿੰਗ ਕਾਲਾਂ"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਇਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਨੂੰ ਛੱਡਿਆ"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਨੂੰ ਅਣ-ਚੁਣਿਆ ਕੀਤਾ ਗਿਆ"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"ਵੌਇਸਮੇਲ ਪਲੇ ਕਰੋ"</string>
<string name="description_view_contact" msgid="3940984937384372665">"ਸੰਪਰਕ <xliff:g id="NAME">%1$s</xliff:g> ਦੇਖੋ"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"ਵੌਇਸਮੇਲ"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> ਮਿੰਟ <xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"ਬੈਚ ਕਾਰਵਾਈਆਂ ਮੋਡ ਨੂੰ ਰੱਦ ਕਰੋ"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ਵੌਇਸਮੇਲ"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ਵੌਇਸਮੇਲਾਂ"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ਹਾਂ"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ਨਹੀਂ"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ਕੀ ਚੁਣੀ(ਆਂ) ਹੋਈ(ਆਂ) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ਨੂੰ ਚੁਣਿਆ ਗਿਆ"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ਨੂੰ <xliff:g id="TIME">%2$s</xliff:g> ਵਜੇ"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM ਕਾਰਡ ਵਿੱਚੋਂ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM ਕਾਰਡ ਸੰਪਰਕ"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"ਵੌਇਸ ਖੋਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string name="call_not_available" msgid="7850148370757361155">"ਇੱਕ ਫੋਨ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿਉਂਕਿ ਫੋਨ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"ਸੰਪਰਕ ਖੋਜੋ"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ਨਵੀਆਂ ਮਿਸਡ ਕਾਲਾਂ"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"ਅਜੇ ਤੁਹਾਡੇ ਸਪੀਡ ਡਾਇਲ \'ਤੇ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਨਹੀਂ ਹੈ"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ਕੋਈ ਮਨਪਸੰਦ ਸ਼ਾਮਲ ਕਰੋ"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"ਸਾਰੇ ਨੰਬਰਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਚਿਤਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ ਜਾਂ ਦੁਬਾਰਾ ਕ੍ਰਮਬੱਧ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ"</string>
<string name="remove_contact" msgid="2353580570488923668">"ਹਟਾਓ"</string>
+ <string name="select_all" msgid="408601760696146245">"ਸਭ ਚੁਣੋ"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"ਵੀਡੀਓ ਕਾਲ"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"ਕਾਲ ਵੇਰਵੇ"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰ"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ਪਹਿਲਾਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"ਕਾਲਿੰਗ ਖਾਤੇ"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ਚਾਲੂ ਕਰੋ"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"ਅਨੁਮਤੀਆਂ ਸੈੱਟ ਕਰੋ"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"ਸਪੀਡ ਡਾਇਲ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"ਆਪਣਾ ਕਾਲ ਲੌਗ ਵੇਖਣ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"ਆਪਣੀ ਵੌਇਸਮੇਲ ਐਕਸੈਸ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
<string name="permission_no_search" msgid="2424710404207193826">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
<string name="permission_place_call" msgid="8686908130349369423">"ਕਾਲ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
diff --git a/java/com/android/dialer/app/res/values-pl/strings.xml b/java/com/android/dialer/app/res/values-pl/strings.xml
index 76adfe579..8f57a82b4 100644
--- a/java/com/android/dialer/app/res/values-pl/strings.xml
+++ b/java/com/android/dialer/app/res/values-pl/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Wróć do aktywnego połączenia"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj połączenie"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Połączenia przychodzące"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Włączono tryb działań zbiorczych"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Wyłączono tryb działań zbiorczych"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Wybrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Anulowano wybór: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Odtwórz pocztę głosową"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Wyświetl kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Zadzwoń do: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"Poczta głosowa"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anuluj tryb działań zbiorczych"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"wiadomości głosowe"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"wiadomości głosowe"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Tak"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nie"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Usunąć wybrane <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Wybrane: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"Numer MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Wczytuję z karty SIM…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakty z karty SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nie jest dostępna aplikacja do obsługi kontaktów"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Wyszukiwanie głosowe jest niedostępne"</string>
<string name="call_not_available" msgid="7850148370757361155">"Nie można zadzwonić, ponieważ aplikacja Telefon została wyłączona."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Przeszukuj kontakty"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Nowe nieodebrane połączenia: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Lista szybkiego wybierania jest pusta"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodaj do ulubionych"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Nie masz jeszcze żadnych kontaktów"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodaj kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Kliknij obraz, by zobaczyć wszystkie numery, lub kliknij go i przytrzymaj, by zmienić kolejność"</string>
<string name="remove_contact" msgid="2353580570488923668">"Usuń"</string>
+ <string name="select_all" msgid="408601760696146245">"Zaznacz wszystkie"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Rozmowa wideo"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Wyślij wiadomość"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Szczegóły połączenia"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"Zablokowane numery"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Numer <xliff:g id="NUMBER">%1$s</xliff:g> jest już zablokowany."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Konta telefoniczne"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Włącz"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ustaw uprawnienia"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Aby włączyć szybkie wybieranie, włącz uprawnienie Kontakty."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Aby zobaczyć swój rejestr połączeń, włącz uprawnienie Telefon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Aby zobaczyć swoje kontakty, włącz uprawnienie Kontakty."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Aby uzyskać dostęp do poczty głosowej, włącz uprawnienie Telefon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Aby wyszukać kontakty, włącz uprawnienia Kontakty."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Aby nawiązać połączenie, włącz uprawnienie Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
index 780ca07db..eb61923e9 100644
--- a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Retornar para a chamada em espera"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ad. cham."</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de ação em massa"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saindo do modo de ação em massa"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de voz"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correio de voz"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correios de voz"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Excluir a seleção de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Itens selecionados: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Carregando do cartão SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contatos do cartão SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nenhum app de contatos disponível"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"A pesquisa por voz não está disponível"</string>
<string name="call_not_available" msgid="7850148370757361155">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contatos"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não há ninguém na sua discagem rápida"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar favorito"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Você ainda não tem contatos"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contato"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string>
<string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
+ <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir permissões"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
diff --git a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
index 95fa75c7e..493f846c4 100644
--- a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Voltar à chamada em curso"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Adicionar chamada"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"A entrar no modo de ação em massa…"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saiu do modo de ação em massa"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de correio de voz"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Ver o contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Ligar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> seg."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mensagem de correio de voz"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mensagens de correio de voz"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Pretende eliminar a(s) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selecionada(s)?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selecionada(s)"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"A carregar a partir do cartão SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contactos no cartão SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Não existe nenhuma aplicação de contactos disponível"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Pesquisa por voz não disponível"</string>
<string name="call_not_available" msgid="7850148370757361155">"Não é possível efetuar uma chamada porque a aplicação Telefone foi desativada."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contactos"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> chamadas não atendidas novas"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não tem ninguém na marcação rápida"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar um favorito"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Ainda não tem nenhum contacto"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contacto"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque sem soltar para reordenar"</string>
<string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
+ <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir autorizações"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a marcação rápida, ative a autorização Contactos."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Para ver o registo de chamadas, ative a autorização Telemóvel."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver os seus contactos, ative a autorização Contactos."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Para aceder ao correio de voz, ative a autorização Telemóvel."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar os seus contactos, ative as autorizações Contactos."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Para efetuar uma chamada, ative a autorização Telemóvel."</string>
diff --git a/java/com/android/dialer/app/res/values-pt/strings.xml b/java/com/android/dialer/app/res/values-pt/strings.xml
index 780ca07db..eb61923e9 100644
--- a/java/com/android/dialer/app/res/values-pt/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Retornar para a chamada em espera"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ad. cham."</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Chamadas recebidas"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Entrando no modo de ação em massa"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Saindo do modo de ação em massa"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> selecionado"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> não selecionado"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Reproduzir mensagem de voz"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Correio de voz"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Cancelar modo de ações em lote"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"correio de voz"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"correios de voz"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Sim"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Não"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Excluir a seleção de <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Itens selecionados: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Carregando do cartão SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Contatos do cartão SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nenhum app de contatos disponível"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"A pesquisa por voz não está disponível"</string>
<string name="call_not_available" msgid="7850148370757361155">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Pesquisar contatos"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Ainda não há ninguém na sua discagem rápida"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adicionar favorito"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Você ainda não tem contatos"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adicionar um contato"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string>
<string name="remove_contact" msgid="2353580570488923668">"Remover"</string>
+ <string name="select_all" msgid="408601760696146245">"Selecionar tudo"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videochamada"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Enviar uma mensagem"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detalhes da chamada"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Números bloqueados"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Contas de chamadas"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Ativar"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Definir permissões"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
diff --git a/java/com/android/dialer/app/res/values-ro/strings.xml b/java/com/android/dialer/app/res/values-ro/strings.xml
index 725ff4a3c..93d01888a 100644
--- a/java/com/android/dialer/app/res/values-ro/strings.xml
+++ b/java/com/android/dialer/app/res/values-ro/strings.xml
@@ -86,6 +86,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Reveniți la apelul în curs"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Adăugați un apel"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Apeluri de intrare"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Se intră în modul acțiune în bloc"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ați ieșit din modul acțiune în bloc"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"S-a selectat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"S-a deselectat <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Redați mesajul vocal"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Afișați persoana din agendă <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Apelați <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
<string name="voicemail" msgid="8899540969000957954">"Mesagerie vocală"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> secunde"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anulați modul de acțiuni în lot"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"mesagerie vocală"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mesaje vocale"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nu"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Ștergeți cele <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> selectate?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> selectate"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> la <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Se încarcă de pe cardul SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Persoanele din agendă de pe cardul SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nu este disponibilă nicio aplicație pentru agendă"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Căutarea vocală nu este disponibilă"</string>
<string name="call_not_available" msgid="7850148370757361155">"Nu se poate efectua un apel telefonic, deoarece aplicația Telefon a fost dezactivată."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Căutați în Agendă"</string>
@@ -146,10 +151,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> apeluri nepreluate noi"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Nicio persoană de contact setată pentru apelarea rapidă"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Adăugați o persoană de contact preferată"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Nu aveți încă persoane de contact"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Adăugați o persoană de contact"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Atingeți imaginea pentru a vedea toate numerele sau atingeți lung pentru reordonare"</string>
<string name="remove_contact" msgid="2353580570488923668">"Eliminați"</string>
+ <string name="select_all" msgid="408601760696146245">"Selectați tot"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Apel video"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Trimiteți un mesaj"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detaliile apelului"</string>
@@ -215,11 +219,9 @@
<string name="block_list" msgid="4701585783411870782">"Numere blocate"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> este deja blocat."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Conturi pentru apelare"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Activați"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setați permisiunile"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Pentru a activa apelarea rapidă, activați permisiunea Agendă."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Pentru a vedea jurnalul de apeluri, activați permisiunea Telefon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Pentru a vedea persoanele de contact, activați permisiunea Agendă."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Pentru a accesa mesageria vocală, activați permisiunea Telefon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Pentru a căuta în persoanele de contact, activați permisiunea Agendă."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Pentru a apela, activați permisiunea Telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-ru/strings.xml b/java/com/android/dialer/app/res/values-ru/strings.xml
index 557832bcd..54278c40b 100644
--- a/java/com/android/dialer/app/res/values-ru/strings.xml
+++ b/java/com/android/dialer/app/res/values-ru/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Вернуться к текущему вызову"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Добавить вызов"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Входящие вызовы"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Вы вошли в режим массового действия"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Вы вышли из режима массового действия"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Выбран объект <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Выбор объекта <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> отменен"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Прослушать голосовую почту"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Просмотреть данные: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Вызов: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"Голосовая почта"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Отмена режима массового действия"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"голосовое сообщение"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"голосовые сообщения"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Нет"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Удалить <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Выбрано: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Загрузка с SIM-карты…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Контакты на SIM-карте"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Нет приложения для работы с контактами"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Голосовой поиск недоступен"</string>
<string name="call_not_available" msgid="7850148370757361155">"Нельзя совершать телефонные звонки, поскольку приложение \"Телефон\" отключено."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Поиск в контактах"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Пропущенных вызовов: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Нет номеров для быстрого набора"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Настроить быстрый набор"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Нет контактов"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Добавить контакт"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Коснитесь изображения, чтобы увидеть все номера, или нажмите и удерживайте, чтобы изменить порядок"</string>
<string name="remove_contact" msgid="2353580570488923668">"Удалить"</string>
+ <string name="select_all" msgid="408601760696146245">"Выбрать все"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Видеовстреча"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Отправить сообщение"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Сведения о вызове"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"Заблокированные номера"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> уже заблокирован."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Аккаунты для звонков"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Включить"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Задать разрешения"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Чтобы настроить быстрый набор, предоставьте приложению разрешение \"Контакты\"."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Чтобы открыть список вызовов, предоставьте приложению разрешение \"Телефон\"."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Чтобы получить доступ к голосовой почте, предоставьте приложению разрешение \"Телефон\"."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Для поиска контактов включите разрешение \"Контакты\"."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Чтобы позвонить, предоставьте приложению разрешение \"Телефон\"."</string>
diff --git a/java/com/android/dialer/app/res/values-si/strings.xml b/java/com/android/dialer/app/res/values-si/strings.xml
index 329d89e8d..63634577f 100644
--- a/java/com/android/dialer/app/res/values-si/strings.xml
+++ b/java/com/android/dialer/app/res/values-si/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"පවතින ඇමතුමට නැවත යන්න"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"ඇමතුමක් එක් කරන්න"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"එන ඇමතුම්"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"තොග ක්‍රියා ප්‍රකාරය ඇතුළු කරමින්"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"තොග ක්‍රියා ප්‍රකාරය හැර යන ලදී"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> තෝරා ගන්නා ලදී"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> තෝරා ගැනීම ඉවත් කරන ලදී"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"හඬ තැපෑල ධාවනය කිරීම"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> සම්බන්ධතාවය බලන්න"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> අමතන්න"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"හඬ තැපෑල"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"මිනි <xliff:g id="MINUTES">%s</xliff:g> තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"කාණ්ඩ ක්‍රියා ප්‍රකාරය අවලංගු කරන්න"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"හඬ තැපෑල"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"හඬ තැපැල්"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ඔව්"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"නැත"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"තෝරා ගත් <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> මකන්නද?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> තෝරා ගන්නා ලදි"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> දින <xliff:g id="TIME">%2$s</xliff:g>ට"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM පතෙන් පූරණය කරමින්…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM පත් සම්බන්ධතා"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"සබඳතා යෙදුමක් ලබාගත නොහැකිය"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"හඬ සෙවුම ලබාගත නොහැකිය"</string>
<string name="call_not_available" msgid="7850148370757361155">"දුරකථන යෙදුම අබල කර ඇති නිසා දුරකථන ඇමතුම ලබාගැනීම කළ නොහැක."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"සම්බන්ධතා සෙවීම"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"නව මඟ හැරුණු ඇමතුම් <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"ඔබගේ වේග ඩයල් එකේ තවමත් කවුරුවත් නැහැ"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ප්‍රියතම ලෙස එක් කරන්න"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"ඔබ තවමත් සම්බන්ධතා නැහැ"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"සම්බන්ධතාවයක් එක් කරන්න"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"සියලු අංක බැලීමට රූපය ස්පර්ශ කරන්න නැතහොත් නැවත අනුපිළිවෙළට සැකසීමට ස්පර්ශ කර අල්ලාගෙන සිටින්න"</string>
<string name="remove_contact" msgid="2353580570488923668">"ඉවත් කරන්න"</string>
+ <string name="select_all" msgid="408601760696146245">"සියල්ල තෝරන්න"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"වීඩියෝ ඇමතුම"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"පණිවිඩයක් යවන්න"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"ඇමතුම් විස්තර"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"අවහිර කළ අංක"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> දැනටමත් අවහිර කර ඇත."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"ගිණුම් ඇමතීම"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ක්‍රියාත්මක කරන්න"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"අවසර සකසන්න"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"වේග ඩයල් කිරීම සබල කිරීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"ඔබේ ඇමතුම් ලොගය බැලීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"ඔබේ හඬ තැපෑල වෙත ප්‍රවේශ වීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
<string name="permission_no_search" msgid="2424710404207193826">"ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්‍රියාත්මක කරන්න."</string>
<string name="permission_place_call" msgid="8686908130349369423">"ඇමතුමක් ලබා ගැනීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
diff --git a/java/com/android/dialer/app/res/values-sk/strings.xml b/java/com/android/dialer/app/res/values-sk/strings.xml
index 60b63d520..f7bf4237c 100644
--- a/java/com/android/dialer/app/res/values-sk/strings.xml
+++ b/java/com/android/dialer/app/res/values-sk/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Návrat k prebiehajúcemu hovoru"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Pridať hovor"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Prichádzajúce hovory"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Vstupuje sa do režimu hromadných akcií"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Odišli ste z režimu hromadných akcií"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Položka <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> bola vybraná"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Výber položky <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> bol zrušený"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Prehrať hlasovú správu"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Zobraziť kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Zavolať kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"Hlasová schránka"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Zrušiť režim hromadných akcií"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"hlasová správa"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"hlasové správy"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Áno"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nie"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Chcete odstrániť vybraté položky (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Vybraté: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Prebieha načítavanie z SIM karty..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakty na SIM karte"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nie je k dispozícii žiadna aplikácia na kontakty"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Hlasové vyhľadávanie nie je k dispozícii"</string>
<string name="call_not_available" msgid="7850148370757361155">"Nie je možné volať, pretože aplikácia Telefón bola deaktivovaná."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Hľadať v kontaktoch"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"V rýchlej voľbe zatiaľ nemáte žiadny kontakt"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Pridať obľúbený kontakt"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Zatiaľ nemáte žiadne kontakty"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Pridať kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Klepnutím na obrázok môžete zobraziť všetky čísla. Pridržaním obrázka môžete zmeniť poradie."</string>
<string name="remove_contact" msgid="2353580570488923668">"Odstrániť"</string>
+ <string name="select_all" msgid="408601760696146245">"Vybrať všetko"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videohovor"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Odoslať správu"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti hovoru"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokované čísla"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je už blokované."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Telefónne účty"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Zapnúť"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastaviť povolenia"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Ak chcete aktivovať rýchlu voľbu, zapnite povolenie Kontakty."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Ak si chcete zobraziť denník hovorov, zapnite povolenie Telefón."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Ak chcete používať hlasovú schránku, zapnite povolenie Telefón."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Ak chcete hľadať kontakty, zapnite povolenie Kontakty."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Ak chcete volať, zapnite povolenie Telefón."</string>
diff --git a/java/com/android/dialer/app/res/values-sl/strings.xml b/java/com/android/dialer/app/res/values-sl/strings.xml
index b46b99ab5..d3c57dd92 100644
--- a/java/com/android/dialer/app/res/values-sl/strings.xml
+++ b/java/com/android/dialer/app/res/values-sl/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Nazaj na klic, ki poteka"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Dodaj klic"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Dohodni klici"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Prehod v način množičnega dejanja"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Prehod iz načina množičnega dejanja"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Izbrano: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Preklican izbor: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Predvajanje sporočil glasovne pošte"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Ogled stika <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Pokliči <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"Glasovna pošta"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Prekliči način množičnega dejanja"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"sporočilo v odzivniku"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"sporočila v odzivniku"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Da"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ne"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Želite izbrisati <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Št. izbranih: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ob <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Nalaganje s kartice SIM ..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Stiki na kartici SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Ni aplikacije za stike"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Glasovno iskanje ni na voljo"</string>
<string name="call_not_available" msgid="7850148370757361155">"Ni mogoče opraviti telefonskega klica, ker je aplikacija Telefon onemogočena."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Iskanje stikov"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Št. novih zgrešenih klicev: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Na seznamu za hitro klicanje nimate še nikogar"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Dodajte priljubljenega"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Nimate še stikov"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Dodajte stik"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Dotaknite se slike, da prikažete vse številke, ali pa se je dotaknite in pridržite, da spremenite vrstni red."</string>
<string name="remove_contact" msgid="2353580570488923668">"Odstrani"</string>
+ <string name="select_all" msgid="408601760696146245">"Izberi vse"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videoklic"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Pošljite sporočilo"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Podrobnosti klica"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"Blokirane številke"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Telefonska številka <xliff:g id="NUMBER">%1$s</xliff:g> je že blokirana."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Računi za klicanje"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Vklop"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Nastavi dovoljenja"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Če želite omogočiti hitro klicanje, vklopite dovoljenje za stike."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Če si želite ogledati dnevnik klicev, vklopite dovoljenje za telefon."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Če želite dostopati do sporočil v odzivniku, vklopite dovoljenje za telefon."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Če želite iskati po stikih, vklopite dovoljenje za stike."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Če želite klicati, vklopite dovoljenje za telefon."</string>
diff --git a/java/com/android/dialer/app/res/values-sq/strings.xml b/java/com/android/dialer/app/res/values-sq/strings.xml
index 6a274fcd2..84704459c 100644
--- a/java/com/android/dialer/app/res/values-sq/strings.xml
+++ b/java/com/android/dialer/app/res/values-sq/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Kthehu te telefonata"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Shto një telefonatë"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Telefonatat hyrëse"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Po hyn në modalitetin e veprimit në masë"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"U largove nga modaliteti i veprimit në masë"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"U zgjodh <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Zgjedhja e <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> u anulua"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Luaj postën zanore"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Shiko kontaktin <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Telefono <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Posta zanore"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sekonda"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min. e <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Anulo modalitetin e veprimeve në grup"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"posta zanore"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"postat zanore"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Po"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Jo"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Të fshihen <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> të zgjedhura?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> të zgjedhura"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> në <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Po ngarkon nga karta SIM…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontaktet e kartës SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Nuk mund të përdoret asnjë aplikacion për kontaktet"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Kërkimi me zë nuk mundësohet"</string>
<string name="call_not_available" msgid="7850148370757361155">"Telefonata nuk mund të bëhet sepse aplikacioni \"Telefoni\" është i çaktivizuar."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kërko për kontakte"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> telefonata të reja të humbura"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Askush nuk është ende në thirrjen tënde të shpejtuar"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Shto një të preferuar"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Nuk ke ende kontakte"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Shto një kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Prek imazhin për të parë të gjithë numrat ose mbaje të shtypur për ta pozicionuar përsëri"</string>
<string name="remove_contact" msgid="2353580570488923668">"Hiq"</string>
+ <string name="select_all" msgid="408601760696146245">"Zgjidh të gjitha"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Telefonatë me video"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Dërgo një mesazh"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Detajet e telefonatës"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Numrat e bllokuar"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> është i bllokuar tashmë."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Llogaritë e telefonatave"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivizo"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Cakto lejet"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Për të aktivizuar thirrjen e shpejtuar, aktivizo lejen e Kontakteve."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Për të parë evidencën e telefonatave, aktivizo lejen e Telefonit."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Për të pasur qasje në postën zanore, aktivizo lejen e Telefonit."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Për të kërkuar kontaktet, aktivizo lejet e Kontakteve"</string>
<string name="permission_place_call" msgid="8686908130349369423">"Për të kryer një telefonatë, aktivizo lejen e Telefonit."</string>
diff --git a/java/com/android/dialer/app/res/values-sr/strings.xml b/java/com/android/dialer/app/res/values-sr/strings.xml
index 0def958d4..6cf7a7c85 100644
--- a/java/com/android/dialer/app/res/values-sr/strings.xml
+++ b/java/com/android/dialer/app/res/values-sr/strings.xml
@@ -86,6 +86,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Врати се на позив који је у току"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додај позив"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Долазни позиви"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Улазите у режим групних радњи"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Изашли сте из режима групних радњи"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Изабрано је <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Опозван је избор <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Пуштање говорне поште"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Позови <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -100,11 +104,13 @@
<string name="voicemail" msgid="8899540969000957954">"Говорна пошта"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Откажите режим групних радњи"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"говорну поруку"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"говорне поруке"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Да"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Не"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Желите ли да избришете изабрану(е) <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Изабраних: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -117,7 +123,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Учитава се са SIM картице…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Контакти на SIM картици"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Нема доступне апликације за контакте"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Гласовна претрага није доступна"</string>
<string name="call_not_available" msgid="7850148370757361155">"Није могуће упутити телефонски позив јер је апликација Телефон онемогућена."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Претражи контакте"</string>
@@ -146,10 +151,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Нових пропуштених позива: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Немате ниједан контакт на брзом бирању"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додај омиљен контакт"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Још увек немате ниједан контакт"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додај контакт"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Додирните слику да бисте видели све бројеве или додирните и задржите да бисте им променили распоред"</string>
<string name="remove_contact" msgid="2353580570488923668">"Уклони"</string>
+ <string name="select_all" msgid="408601760696146245">"Изабери све"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Видео позив"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Пошаљи поруку"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Детаљи позива"</string>
@@ -215,11 +219,9 @@
<string name="block_list" msgid="4701585783411870782">"Блокирани бројеви"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> је већ блокиран."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Налози за позивање"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Укључи"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Подеси дозволе"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Да бисте омогућили брзо бирање, укључите дозволу за Контакте."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Да бисте видели евиденцију позива, укључите дозволу за Телефон."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Да бисте видели контакте, укључите дозволу за Контакте."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Да бисте приступили говорној пошти, укључите дозволу за Телефон."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Да бисте претражили контакте, укључите дозволе за Контакте."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Да бисте упутили позив, укључите дозволу за Телефон."</string>
diff --git a/java/com/android/dialer/app/res/values-sv/strings.xml b/java/com/android/dialer/app/res/values-sv/strings.xml
index 75aa731f9..71ef3e55b 100644
--- a/java/com/android/dialer/app/res/values-sv/strings.xml
+++ b/java/com/android/dialer/app/res/values-sv/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Återvänd till pågående samtal"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Lägg t. samt."</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Inkommande samtal"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Öppnar läget för massåtgärd"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Stängde läget för massåtgärd"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Markerade <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Avmarkerade <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Spela upp röstmeddelande"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Visa kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Röstbrevlåda"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sekund"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Avbryt läget för massåtgärd"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"röstbrevlåda"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"röstmeddelanden"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ja"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Nej"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Vill du radera markerade <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> har markerats"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Läser in från SIM-kort…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Kontakter från SIM-kort"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Det finns inga appar för kontakter"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Röstsökning är inte tillgänglig"</string>
<string name="call_not_available" msgid="7850148370757361155">"Det går inte att ringa eftersom appen Telefon har inaktiverats."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Sök efter kontakter"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> nya missade samtal"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Du har ingen kontakt som snabbval ännu"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Lägg till en favorit"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Du har inga kontakter ännu"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Lägg till en kontakt"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Tryck på bilden för att visa alla nummer eller tryck länge för att ändra ordningen"</string>
<string name="remove_contact" msgid="2353580570488923668">"Ta bort"</string>
+ <string name="select_all" msgid="408601760696146245">"Markera alla"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Videosamtal"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Skicka ett meddelande"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Samtalsinfo"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Blockerade nummer"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> är redan blockerat."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Konton för samtal"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Aktivera"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ange behörigheter"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Du måste aktivera behörigheten Kontakter för att kunna använda snabbuppringning."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Du måste aktivera behörigheten Telefon för att kunna visa samtalsloggen."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Du måste aktivera behörigheten Kontakter för att kunna visa kontakterna."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Du måste aktivera behörigheten Telefon för att kunna komma åt röstmeddelanden."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Aktivera behörigheter för Kontakter om du vill söka bland kontakterna."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Du måste aktivera behörigheten Telefon för att kunna ringa."</string>
diff --git a/java/com/android/dialer/app/res/values-sw/strings.xml b/java/com/android/dialer/app/res/values-sw/strings.xml
index d3b8392d4..9cbdd3e8e 100644
--- a/java/com/android/dialer/app/res/values-sw/strings.xml
+++ b/java/com/android/dialer/app/res/values-sw/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Rudi kwa simu inayoendelea"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Ongeza simu"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Simu zinazoingia"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Unaingia katika hali ya kutekeleza vitendo vingi"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Umeondoka katika hali ya kutekeleza vitendo vingi"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Umeteua <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Umebatilisha uteuzi wa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Sikiliza ujumbe wa sauti"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Angalia anwani <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Pigia <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Ujumbe wa sauti"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"Sekunde <xliff:g id="SECONDS">%s</xliff:g>"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"Dak <xliff:g id="MINUTES">%s</xliff:g> sek <xliff:g id="SECONDS">%s</xliff:g>"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Ghairi hali ya kutekeleza vitendo vingi"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ujumbe wa sauti"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ujumbe wa sauti"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ndiyo"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hapana"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Je, ungependa kufuta <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> uliochagua?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> zimechaguliwa"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> saa <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Inapakia kutoka SIM kadi..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Anwani za SIM kadi"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Hakuna programu za mawasiliano zinazopatikana"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Kutafuta kwa kutamka hakupatikani"</string>
<string name="call_not_available" msgid="7850148370757361155">"Haiwezi kupiga simu kwa sababu programu ya Simu imezimwa."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Tafuta anwani"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Simu <xliff:g id="NUMBER">%s</xliff:g> za karibuni ambazo hazikujibiwa"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Hakuna mtu aliye katika orodha yako ya watu unaowasiliana nao zaidi"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Ongeza anwani unazopenda zaidi"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Bado huna anwani zozote"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Ongeza anwani"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Gusa picha ili uone nambari zote ama uguse na kushikilia ili upange upya"</string>
<string name="remove_contact" msgid="2353580570488923668">"Ondoa"</string>
+ <string name="select_all" msgid="408601760696146245">"Chagua zote"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Hangout ya Video"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Tuma SMS"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Maelezo ya simu"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Nambari zilizozuiwa"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> tayari imezuiwa."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Akaunti za simu"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Washa"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Weka ruhusa"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Ili kuwasha kipengele cha unaowasiliana nao zaidi, washa ruhusa ya Anwani."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Ili uone rekodi yako ya nambari za simu, washa ruhusa ya Simu."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Ili uone anwani zako, washa ruhusa ya Anwani."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Ili ufikie ujumbe wako wa sauti, washa ruhusa ya Simu."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Ili utafute anwani zako, washa ruhusa za Anwani."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Ili upige simu, washa ruhusa ya Simu."</string>
diff --git a/java/com/android/dialer/app/res/values-ta/strings.xml b/java/com/android/dialer/app/res/values-ta/strings.xml
index afb852b6d..a91088c4f 100644
--- a/java/com/android/dialer/app/res/values-ta/strings.xml
+++ b/java/com/android/dialer/app/res/values-ta/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"செயலிலுள்ள அழைப்பிற்குத் திரும்பு"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"அழைப்பைச் சேர்"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"உள்வரும் அழைப்புகள்"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"மொத்தச் செயல் பயன்முறையில் நுழைகிறீர்கள்"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"மொத்தச் செயல் பயன்முறையிலிருந்து வெளியேறிவிட்டீர்கள்"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"தேர்ந்தெடுத்த <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"தேர்வுநீக்கிய <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"குரலஞ்சலை இயக்கு"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> தொடர்பைக் காட்டு"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> ஐ அழை"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"குரலஞ்சல்"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> வி"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> நிமிடம் <xliff:g id="SECONDS">%s</xliff:g> வினாடி"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"தொகுப்புச் செயல்கள் பயன்முறையை ரத்துசெய்யும்"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"குரலஞ்சல்"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"குரலஞ்சல்கள்"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ஆம்"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"வேண்டாம்"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"தேர்ந்தெடுத்த <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ஐ நீக்கவா?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> தேர்ந்தெடுக்கப்பட்டன"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> அன்று <xliff:g id="TIME">%2$s</xliff:g> மணிக்கு"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"சிம் கார்டிலிருந்து ஏற்றுகிறது…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"சிம் கார்டின் தொடர்புகள்"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"தொடர்புகள் பயன்பாடு எதுவுமில்லை"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"குரல் தேடல் இல்லை"</string>
<string name="call_not_available" msgid="7850148370757361155">"Phone பயன்பாடு முடக்கப்பட்டுள்ளதால், ஃபோன் அழைப்பைச் செய்ய முடியாது."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"தொடர்புகளைத் தேடு"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> புதிய தவறிய அழைப்புகள்"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"இன்னும் விரைவு டயலில் யாரையும் சேர்க்கவில்லை"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"முக்கியமானவர்களைச் சேர்"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"இதுவரை எந்தத் தொடர்புகளும் இல்லை"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ஒரு தொடர்பைச் சேர்க்கவும்"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"எல்லா எண்களையும் பார்க்க, படத்தைத் தொடவும் அல்லது மறுவரிசைப்படுத்த, தொட்டுப் பிடித்திருக்கவும்"</string>
<string name="remove_contact" msgid="2353580570488923668">"அகற்று"</string>
+ <string name="select_all" msgid="408601760696146245">"அனைத்தையும் தேர்ந்தெடு"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"வீடியோ அழைப்பு"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"செய்தி அனுப்பவும்"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"அழைப்பு விவரங்கள்"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"தடுக்கப்பட்ட எண்கள்"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ஏற்கனவே தடுக்கப்பட்டுள்ளது."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"அழைப்பு கணக்குகள்"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"இயக்கு"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"அனுமதிகளை அமை"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"விரைவு டயலை இயக்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"அழைப்புப் பதிவைப் பார்க்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"குரலஞ்சலை அணுக, ஃபோன் அனுமதியை இயக்கவும்."</string>
<string name="permission_no_search" msgid="2424710404207193826">"தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்."</string>
<string name="permission_place_call" msgid="8686908130349369423">"அழைக்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
diff --git a/java/com/android/dialer/app/res/values-te/strings.xml b/java/com/android/dialer/app/res/values-te/strings.xml
index ffc046f69..aecc1c4b9 100644
--- a/java/com/android/dialer/app/res/values-te/strings.xml
+++ b/java/com/android/dialer/app/res/values-te/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"ప్రోగ్రెస్‌లో ఉన్న కాల్‌కు వెళ్లు"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"కాల్‌ను జోడించు"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"ఇన్‌కమింగ్ కాల్‌లు"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"బల్క్ చర్య మోడ్‌లోకి ప్రవేశిస్తున్నారు"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"బల్క్ చర్య మోడ్ నుండి నిష్క్రమించారు"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ఎంచుకోబడింది"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ఎంపిక తీసివేయబడింది"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"వాయిస్ మెయిల్ ప్లే చేయండి"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> పరిచయాన్ని వీక్షించండి"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g>కు కాల్ చేయి"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"వాయిస్ మెయిల్"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> నిమి <xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"సమూహ చర్యల మోడ్‌ను రద్దు చేస్తుంది"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"వాయిస్ మెయిల్"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"వాయిస్ మెయిల్‌లు"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"అవును"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"వద్దు"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ఎంచుకున్న <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ను తొలగించాలా?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ఎంచుకోబడ్డాయి"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>కి"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"సిమ్ కార్డు నుండి లోడ్ చేస్తోంది…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"సిమ్ కార్డు పరిచయాలు"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"వాయిస్ శోధన అందుబాటులో లేదు"</string>
<string name="call_not_available" msgid="7850148370757361155">"ఫోన్ అనువర్తనం నిలిపివేయబడినందున ఫోన్ కాల్ చేయలేరు."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"పరిచయాలను శోధించు"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> కొత్త సమాధానం ఇవ్వని కాల్‌లు"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"మీ స్పీడ్ డయల్‌లో ఇంకా ఎవరూ లేరు"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ఇష్టమైన వారిని జోడించండి"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"పరిచయాన్ని జోడించండి"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"అన్ని నంబర్‌లను చూడటానికి చిత్రాన్ని తాకండి లేదా క్రమం మార్చడానికి తాకి, కాసేపు అలాగే ఉంచండి"</string>
<string name="remove_contact" msgid="2353580570488923668">"తీసివేయి"</string>
+ <string name="select_all" msgid="408601760696146245">"అన్నీ ఎంచుకోండి"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"వీడియో కాల్"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"సందేశాన్ని పంపు"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"కాల్ వివరాలు"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"బ్లాక్ చేయబడిన నంబర్‌లు"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ఇప్పటికే బ్లాక్ చేయబడింది."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"కాల్ చేసే ఖాతాలు"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"ఆన్ చేయి"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"అనుమతులను సెట్ చేయి"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"స్పీడ్ డయల్‌ను ప్రారంభించడానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"మీ కాల్ లాగ్‌ను చూడటానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"మీ వాయిస్ మెయిల్‌ను ప్రాప్యత చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
<string name="permission_no_search" msgid="2424710404207193826">"మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి."</string>
<string name="permission_place_call" msgid="8686908130349369423">"కాల్ చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
diff --git a/java/com/android/dialer/app/res/values-th/strings.xml b/java/com/android/dialer/app/res/values-th/strings.xml
index 13916a51d..58507b49e 100644
--- a/java/com/android/dialer/app/res/values-th/strings.xml
+++ b/java/com/android/dialer/app/res/values-th/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"กลับไปคุยสายต่อ"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"เพิ่มการโทร"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"สายโทรเข้า"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"กำลังเข้าสู่โหมดการดำเนินการแบบกลุ่ม"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"ออกจากโหมดการทำงานแบบกลุ่มแล้ว"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"เลือก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> แล้ว"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"ยกเลิกการเลือก <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> แล้ว"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"เล่นข้อความเสียง"</string>
<string name="description_view_contact" msgid="3940984937384372665">"ดูรายชื่อติดต่อ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"โทรหา <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"ข้อความเสียง"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> นาที <xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"ยกเลิกโหมดการทำงานแบบกลุ่ม"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ข้อความเสียง"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ข้อความเสียง"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ใช่"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"ไม่"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"ลบ<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>ที่เลือกหรือไม่"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"เลือกไว้ <xliff:g id="NUMBER">%1$s</xliff:g> รายการ"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"วันที่ <xliff:g id="DATE">%1$s</xliff:g> เวลา <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"กำลังโหลดจากซิมการ์ด…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"รายชื่อบนซิมการ์ด"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"การค้นหาด้วยเสียงไม่พร้อมใช้งาน"</string>
<string name="call_not_available" msgid="7850148370757361155">"ไม่สามารถโทรศัพท์ได้เนื่องจากแอปพลิเคชันโทรศัพท์ถูกปิดใช้งาน"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"ค้นหารายชื่อติดต่อ"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"สายที่ไม่ได้รับใหม่ <xliff:g id="NUMBER">%s</xliff:g> สาย"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"ยังไม่ได้กำหนดผู้ใดในการโทรด่วน"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"เพิ่มรายการโปรด"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"คุณยังไม่มีรายชื่อติดต่อ"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"เพิ่มรายชื่อติดต่อ"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือแตะค้างไว้เพื่อจัดเรียงใหม่"</string>
<string name="remove_contact" msgid="2353580570488923668">"ลบ"</string>
+ <string name="select_all" msgid="408601760696146245">"เลือกทั้งหมด"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"แฮงเอาท์วิดีโอ"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"ส่งข้อความ"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"รายละเอียดการโทร"</string>
@@ -201,7 +205,7 @@
<string name="voicemail_settings_label" msgid="4594299554519920570">"ข้อความเสียง"</string>
<string name="voicemail_settings_select_sim_title" msgid="129296966967476845">"เลือกซิมสำหรับการตั้งค่าข้อความเสียง"</string>
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"การบล็อกสายเรียกเข้าปิดชั่วคราว"</string>
- <string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้ฟีเจอร์นี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"นำเข้าหมายเลข"</string>
<string name="blocked_call_settings_import_description" msgid="1819412052545228965">"ก่อนหน้านี้คุณได้ทำเครื่องหมายว่าให้ส่งผู้โทรบางคนไปยังข้อความเสียงโดยอัตโนมัติผ่านแอปอื่นๆ"</string>
<string name="blocked_call_settings_view_numbers_button" msgid="3332727948554356704">"ดูหมายเลข"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"หมายเลขที่ถูกบล็อก"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> ถูกบล็อกอยู่แล้ว"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"บัญชีการโทร"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"เปิด"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"ตั้งค่าสิทธิ์"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"หากต้องการเปิดใช้การโทรด่วน ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"หากต้องการดูประวัติการโทร ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"หากต้องการเข้าถึงข้อความเสียง ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
<string name="permission_no_search" msgid="2424710404207193826">"หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
<string name="permission_place_call" msgid="8686908130349369423">"หากต้องการโทรออก ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
diff --git a/java/com/android/dialer/app/res/values-tl/strings.xml b/java/com/android/dialer/app/res/values-tl/strings.xml
index cc44cb5f2..9a8157fea 100644
--- a/java/com/android/dialer/app/res/values-tl/strings.xml
+++ b/java/com/android/dialer/app/res/values-tl/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Bumalik sa kasalukuyang tawag"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Mag-add: tawag"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Mga paparating na tawag"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Pumapasok sa bulk action mode"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Umalis sa bulk action mode"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Napili <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Inalis sa pagkakapili <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"I-play ang voicemail"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Tingnan ang contact na si <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Tawagan si <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Voicemail"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Kanselahin ang batch actions mode"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"voicemail"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"mga voicemail"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Oo"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hindi"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"I-delete ang napiling <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> ang napili"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ng <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Naglo-load mula sa SIM card…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Mga contact sa SIM card"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Walang available na app ng mga contact"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Hindi available ang paghahanap gamit ang boses"</string>
<string name="call_not_available" msgid="7850148370757361155">"Hindi makagawa ng tawag sa telepono dahil naka-disable ang application na Telepono."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Maghanap ng mga contact"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> (na) bagong hindi nasagot na tawag"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Wala pang tao sa iyong speed dial"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Magdagdag ng paborito"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Wala ka pang sinumang mga contact"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Magdagdag ng contact"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Pindutin ang larawan upang makita ang lahat ng numero o pindutin nang matagal upang ayusing muli"</string>
<string name="remove_contact" msgid="2353580570488923668">"Alisin"</string>
+ <string name="select_all" msgid="408601760696146245">"Piliin lahat"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Mag-video call"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Magpadala ng mensahe"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Mga detalye ng tawag"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Mga naka-block na numero"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Naka-block na ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Account sa pagtawag"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"I-on"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Magtakda ng mga pahintulot"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Upang i-enable ang speed dial, i-on ang pahintulot ng Mga Contact."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Upang makita ang iyong log ng tawag, i-on ang pahintulot ng Telepono."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Upang ma-access ang iyong voicemail, i-on ang pahintulot ng Telepono."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Upang tumawag, i-on ang pahintulot ng Telepono."</string>
diff --git a/java/com/android/dialer/app/res/values-tr/strings.xml b/java/com/android/dialer/app/res/values-tr/strings.xml
index 2f6f704f8..17bd6645c 100644
--- a/java/com/android/dialer/app/res/values-tr/strings.xml
+++ b/java/com/android/dialer/app/res/values-tr/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Çağrıya dön"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Çağrı ekle"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Gelen çağrılar"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Toplu işlem moduna giriliyor"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Toplu işlem modundan çıkıldı"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Seçildi: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Seçimi kaldırıldı: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Sesli mesajı oynat"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Kişiyi görüntüle: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Ara: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Sesli Mesaj"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> sn."</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> dk. <xliff:g id="SECONDS">%s</xliff:g> sn."</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Toplu işlemler modu iptal edilir"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"sesli mesaj"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"sesli mesajlar"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Evet"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Hayır"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Seçili <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> silinsin mi?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> öğe seçildi"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM karttan yükleniyor..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM kart kişileri"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Kullanılabilir rehber uygulaması yok"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Sesli arama kullanılamaz"</string>
<string name="call_not_available" msgid="7850148370757361155">"Telefon uygulaması devre dışı bırakıldığından telefon edilemiyor."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kişilerde ara"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> yeni cevapsız çağrı"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Hızlı arama listenizde henüz kimse yok"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Favori ekle"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Henüz kayıtlı kişi yok"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Kişi ekle"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Tüm numaraları görmek için resme dokunun veya yeniden sıralamak için dokunup basılı tutun"</string>
<string name="remove_contact" msgid="2353580570488923668">"Kaldır"</string>
+ <string name="select_all" msgid="408601760696146245">"Tümünü seç"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Video görüşmesi"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"İleti gönder"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Çağrı ayrıntıları"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Engellenen numaralar"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon zaten engellendi."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Çağrı hesapları"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Aç"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"İzinleri ayarla"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Hızlı aramayı etkinleştirmek için Kişiler iznini açın."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Çağrı günlüğünüzü görmek için Telefon iznini açın."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Kişilerinizi görmek için Kişiler iznini açın."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Sesli mesajınıza erişmek için Telefon iznini açın."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Kişilerinizde arama yapmak için Kişiler izinlerini açın."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Telefon etmek için Telefon iznini açın."</string>
diff --git a/java/com/android/dialer/app/res/values-uk/strings.xml b/java/com/android/dialer/app/res/values-uk/strings.xml
index 9a790125b..a020a1f1b 100644
--- a/java/com/android/dialer/app/res/values-uk/strings.xml
+++ b/java/com/android/dialer/app/res/values-uk/strings.xml
@@ -87,6 +87,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Повернутися до поточного виклику"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Додати виклик"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Вхідні виклики"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Перехід у режим масових дій"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ви вийшли з режиму масових дій"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Вибрано користувача <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Скасовано вибір користувача <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Відтворити голосову пошту"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Переглянути контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Набрати <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -101,11 +105,13 @@
<string name="voicemail" msgid="8899540969000957954">"Голосова пошта"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> с"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Скасувати режим масових дій"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"голосова пошта"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"голосова пошта"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Так"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Ні"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Видалити вибране (<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>)?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Вибрано <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> о <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -118,7 +124,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Завантаж. із SIM-карти…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Контакти SIM-карти"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Немає додатка з контактами"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Голосовий пошук недоступний"</string>
<string name="call_not_available" msgid="7850148370757361155">"Не вдається здійснити дзвінок, оскільки додаток Телефон вимкнено."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Пошук контактів"</string>
@@ -147,10 +152,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"Нових пропущених дзвінків: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Немає номерів для швидкого набору"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Додати номер"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Ще немає контактів"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Додати контакт"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок."</string>
<string name="remove_contact" msgid="2353580570488923668">"Видалити"</string>
+ <string name="select_all" msgid="408601760696146245">"Вибрати все"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Відеодзвінок"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Надіслати повідомлення"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Деталі виклику"</string>
@@ -217,11 +221,9 @@
<string name="block_list" msgid="4701585783411870782">"Заблоковані номери"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> уже заблоковано."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Обл. записи для дзвінків"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Увімкнути"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Налаштувати дозволи"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Щоб активувати швидкий набір, увімкніть дозвіл \"Контакти\"."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Щоб переглянути журнал викликів, увімкніть дозвіл \"Телефон\"."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Щоб користуватися голосовою поштою, увімкніть дозвіл \"Телефон\"."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Щоб шукати контакти, увімкніть дозвіл \"Контакти\"."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Щоб зателефонувати, увімкніть дозвіл \"Телефон\"."</string>
diff --git a/java/com/android/dialer/app/res/values-ur/strings.xml b/java/com/android/dialer/app/res/values-ur/strings.xml
index 25198711b..d696bd54c 100644
--- a/java/com/android/dialer/app/res/values-ur/strings.xml
+++ b/java/com/android/dialer/app/res/values-ur/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"جاری کال پر واپس لوٹیں"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"کال شامل کریں"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"آنے والی کالیں"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"بلک کاروائی موڈ میں داخل ہو رہا ہے"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"بلک کاروائی موڈ چھوڑ دیا"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"منتخب کردہ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"غیر منتخب کردہ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"صوتی میل چلائیں"</string>
<string name="description_view_contact" msgid="3940984937384372665">"رابطہ <xliff:g id="NAME">%1$s</xliff:g> دیکھیں"</string>
<string name="description_call" msgid="1532402285334775372">"<xliff:g id="NAME">%1$s</xliff:g> کو کال کریں"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"صوتی میل"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> منٹ <xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"بیچ کاروائی موڈ منسوخ کریں"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"صوتی میل"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"صوتی میلز"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"ہاں"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"نہیں"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"منتخب کردہ <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> حذف کریں؟"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"<xliff:g id="NUMBER">%1$s</xliff:g> منتخب کردہ"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> بوقت <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"‏SIM کارڈ سے لوڈ ہو رہا ہے…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"‏SIM کارڈ کے رابطے"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"رابطوں کی کوئی ایپ دستیاب نہیں ہے"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"صوتی تلاش دستیاب نہیں ہے"</string>
<string name="call_not_available" msgid="7850148370757361155">"فون کال نہیں کی جا سکتی ہے کیونکہ فون ایپلیکیشن کو غیر فعال کر دیا گیا ہے۔"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"رابطے تلاش کریں"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> نئی چھوٹی ہوئی کالیں"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"آپ کے اسپیڈ ڈائل پر ابھی تک کوئی نہیں ہے"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"ایک پسندیدہ شامل کریں"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"ایک رابطہ شامل کریں"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"سبھی نمبرز دیکھنے کیلئے تصویر ٹچ کریں یا دوبارہ ترتیب دینے کیلئے ٹچ کریں اور پکڑے رہیں"</string>
<string name="remove_contact" msgid="2353580570488923668">"ہٹائیں"</string>
+ <string name="select_all" msgid="408601760696146245">"سبھی کو منتخب کریں"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"ویڈیو کال"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"پیغام بھیجیں"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"کال کی تفصیلات"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"مسدود کردہ نمبرز"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> پہلے ہی مسدود ہے۔"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"کالنگ اکاؤنٹس"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"آن کریں"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"اجازتیں طے کریں"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"اسپیڈ ڈائل کو فعال کرنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"اپنا کال لاگ دیکھنے کیلئے فون کی اجازت آن کریں۔"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"اپنی صوتی میل تک رسائی کیلئے فون کی اجازت آن کریں۔"</string>
<string name="permission_no_search" msgid="2424710404207193826">"اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔"</string>
<string name="permission_place_call" msgid="8686908130349369423">"کال کرنے کیلئے فون کی اجازت آن کریں۔"</string>
diff --git a/java/com/android/dialer/app/res/values-uz/strings.xml b/java/com/android/dialer/app/res/values-uz/strings.xml
index 705cae765..aa645bf88 100644
--- a/java/com/android/dialer/app/res/values-uz/strings.xml
+++ b/java/com/android/dialer/app/res/values-uz/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Amaldagi chaqiruvga qaytish"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Chaqiruv qo‘shish"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Kiruvchi qo‘ng‘iroqlar"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Yoppasiga bajariladigan amallar rejimiga o‘tilmoqda"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Yoppasiga bajariladigan amallar rejimidan chiqib ketildi"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tanlandi"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> tanlovi bekor qilindi"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Ovozli xabarni eshitish"</string>
<string name="description_view_contact" msgid="3940984937384372665">"<xliff:g id="NAME">%1$s</xliff:g> kontaktini ko‘rish"</string>
<string name="description_call" msgid="1532402285334775372">"Qo‘ng‘iroq: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Ovozli pochta"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> soniya"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> daq <xliff:g id="SECONDS">%s</xliff:g> son"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Yoppasiga bajariladigan amallar rejimini bekor qilish"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ovozli xabar"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ovozli xabarlar"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Ha"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Yo‘q"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Tanlangan <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> o‘chirib tashlansinmi?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Tanlandi: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"SIM kartadan yuklanmoqda…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM karta kontaktlari"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Hech qanday kontakt ilovasi yo‘q"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Ovozli qidiruv mavjud emas"</string>
<string name="call_not_available" msgid="7850148370757361155">"Telefon ilovasi o‘chirib qo‘yilgani sababli telefon qo‘ng‘iroqlarini amalga oshirib bo‘lmaydi."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Kontaktlar ichidan qidirish"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> ta javobsiz chaqiruv"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Tezkor terish uchun hech kim yo‘q"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Tezkor raqam terishni sozlang"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Sizda hali hech qanday kontakt yo‘q"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Yangi kontakt qo‘shing"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Barcha raqamlarni ko‘rish uchun rasm ustiga bosing yoki joyini o‘zgartirish uchun rasmni bosib turing."</string>
<string name="remove_contact" msgid="2353580570488923668">"O‘chirish"</string>
+ <string name="select_all" msgid="408601760696146245">"Hammasini tanlash"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Video qo‘ng‘iroq"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Xabar yuborish"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Chaqiruv tafsilotlari"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Bloklangan raqamlar"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami allaqachon bloklangan."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Chaqiruv uchun hisoblar"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Yoqish"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Ruxsatnomalarni sozlash"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Tezkor raqam terish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Qo‘ng‘iroqlaringiz ro‘yxatini ko‘rish uchun “Telefon” ruxsatnomasini yoqing."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Kontaktlaringizni ko‘rish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Ovozli pochtaga kirish uchun “Telefon” ruxsatnomasini yoqing."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Qo‘ng‘iroq qilish uchun “Telefon” ruxsatnomasini yoqing."</string>
diff --git a/java/com/android/dialer/app/res/values-vi/strings.xml b/java/com/android/dialer/app/res/values-vi/strings.xml
index 5a60e0ac3..dda7c1523 100644
--- a/java/com/android/dialer/app/res/values-vi/strings.xml
+++ b/java/com/android/dialer/app/res/values-vi/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Quay lại cuộc gọi đang thực hiện"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Thêm cuộc gọi"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Cuộc gọi đến"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Truy cập chế độ tác vụ hàng loạt"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Đã rời khỏi chế độ tác vụ hàng loạt"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Đã chọn <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Đã bỏ chọn <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Phát thư thoại"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Xem thông tin liên hệ của <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Gọi <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Thư thoại"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> giây"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> phút <xliff:g id="SECONDS">%s</xliff:g> giây"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Hủy chế độ tác vụ hàng loạt"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"thư thoại"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"thư thoại"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Có"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Không"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Xóa <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g> đã chọn?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Đã chọn <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> lúc <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Đang tải từ thẻ SIM…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"Danh bạ trên thẻ SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Không có ứng dụng danh bạ"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Không có tính năng tìm kiếm bằng giọng nói"</string>
<string name="call_not_available" msgid="7850148370757361155">"Không thể thực hiện cuộc gọi điện thoại vì ứng dụng Điện thoại đã bị tắt."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Tìm kiếm trong danh bạ"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> cuộc gọi nhỡ mới"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Chưa có ai trong danh bạ quay số nhanh của bạn"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Thêm liên hệ quay số nhanh yêu thích"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Bạn chưa có bất kỳ liên hệ nào"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Thêm liên hệ"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Chạm vào hình ảnh để xem tất cả các số hoặc chạm và giữ để sắp xếp lại"</string>
<string name="remove_contact" msgid="2353580570488923668">"Xóa"</string>
+ <string name="select_all" msgid="408601760696146245">"Chọn tất cả"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Cuộc gọi điện video"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Gửi tin nhắn"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Chi tiết cuộc gọi"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Số bị chặn"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> đã bị chặn."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Tài khoản gọi"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Bật"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Đặt quyền"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Để bật quay số nhanh, bật quyền đối với Danh bạ."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Để xem nhật ký cuộc gọi của bạn, bật quyền đối với Điện thoại."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Để truy cập thư thoại của bạn, bật quyền đối với Điện thoại."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Để thực hiện cuộc gọi, bật quyền đối với Điện thoại."</string>
diff --git a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
index 98abc396a..672614e48 100644
--- a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回正在进行的通话"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"添加通话"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"来电"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"正在进入批量操作模式"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已退出批量操作模式"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已选择 <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消选择 <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"播放语音邮件"</string>
<string name="description_view_contact" msgid="3940984937384372665">"查看联系人<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"呼叫<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"语音信箱"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分钟 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批量操作模式"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"语音邮件"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"语音邮件"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要删除所选的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>吗?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已选择 <xliff:g id="NUMBER">%1$s</xliff:g> 封"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"正从 SIM 卡中加载..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM卡联系人"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"没有可用的通讯录应用"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"无法使用语音搜索"</string>
<string name="call_not_available" msgid="7850148370757361155">"“电话”应用已被停用,因此无法拨打电话。"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜索联系人"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g>个新的未接电话"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"尚未给任何联系人设定快速拨号"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"添加常用联系人"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"您还没有任何联系人"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"添加联系人"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"触摸图片可查看所有号码,触摸并按住可重新排序"</string>
<string name="remove_contact" msgid="2353580570488923668">"移除"</string>
+ <string name="select_all" msgid="408601760696146245">"全选"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"视频通话"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"发送短信"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"通话详情"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"已屏蔽的号码"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> 已被屏蔽。"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"通话帐号"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"开启"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"设置权限"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"要启用快速拨号功能,请开启“通讯录”权限。"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"要查看您的通话记录,请开启“电话”权限。"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"要查看您的联系人,请开启“通讯录”权限。"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"要使用您的语音信箱,请开启“电话”权限。"</string>
<string name="permission_no_search" msgid="2424710404207193826">"要搜索您的联系人,请开启“通讯录”权限。"</string>
<string name="permission_place_call" msgid="8686908130349369423">"要拨打电话,请开启“电话”权限。"</string>
diff --git a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
index 2a96ce045..f3dc44baf 100644
--- a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回進行中的通話"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"新增通話"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"來電"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"正在進入大量操作模式"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已離開大量操作模式"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已選取<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消選取<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"播放語音留言"</string>
<string name="description_view_contact" msgid="3940984937384372665">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"打電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"留言"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批量操作模式"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"留言"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"留言"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要刪除所選的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>嗎?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已選取 <xliff:g id="NUMBER">%1$s</xliff:g> 個"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"正在從 SIM 卡載入..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM 卡聯絡人"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"沒有可用的聯絡人應用程式"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"無法使用語音搜尋"</string>
<string name="call_not_available" msgid="7850148370757361155">"由於「電話」應用程式已停用,因此無法打電話。"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜尋聯絡人"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> 個新的未接來電"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"快速撥號名單中沒有聯絡人"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"新增常用聯絡人"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"暫時沒有聯絡人"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"新增聯絡人"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"輕觸圖片以查看所有電話號碼,或輕觸並按住圖片以重新排序"</string>
<string name="remove_contact" msgid="2353580570488923668">"移除"</string>
+ <string name="select_all" msgid="408601760696146245">"全選"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"視像通話"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"傳送訊息"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"通話詳情"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"已封鎖的號碼"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>。"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"通話帳戶"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"開放權限"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"設定權限"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"如要啟用快速撥號功能,請開放「通訊錄」權限。"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"如要查看通話記錄,請開放「手機」權限。"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"如要查看聯絡人,請開放「通訊錄」權限。"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"如要存取留言信箱,請開放「手機」權限。"</string>
<string name="permission_no_search" msgid="2424710404207193826">"如要搜尋聯絡人,請開啟「通訊錄」權限。"</string>
<string name="permission_place_call" msgid="8686908130349369423">"如要撥打電話,請開放「手機」權限。"</string>
diff --git a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
index 917452133..473955c5d 100644
--- a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"返回進行中的通話"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"新增通話"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"來電"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"已進入大量操作模式"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"已離開大量操作模式"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"已選取:<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"已取消選取:<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"播放語音留言"</string>
<string name="description_view_contact" msgid="3940984937384372665">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"撥電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"語音留言"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"取消批次操作模式"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"語音留言"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"語音留言"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"是"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"否"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"要刪除選取的<xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>嗎?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"已選取 <xliff:g id="NUMBER">%1$s</xliff:g> 個"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"從 SIM 卡讀取中…"</string>
<string name="simContacts_title" msgid="7961069730386378887">"SIM 卡聯絡人"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"沒有可用的聯絡人應用程式"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"無法使用語音搜尋"</string>
<string name="call_not_available" msgid="7850148370757361155">"「電話」應用程式已遭停用,因此無法撥打電話。"</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"搜尋聯絡人"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> 通新的未接來電"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"您的快速撥號功能尚未設定任何聯絡人"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"新增常用聯絡人"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"您尚未加入任何聯絡人"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"新增聯絡人"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"輕觸圖片即可查看所有號碼,按住則可重新排序"</string>
<string name="remove_contact" msgid="2353580570488923668">"移除"</string>
+ <string name="select_all" msgid="408601760696146245">"全選"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"視訊通話"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"傳送簡訊"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"通話詳細資料"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"已封鎖的號碼"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> 已在封鎖清單中。"</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"通話帳戶"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"開啟"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"設定權限"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"如要啟用快速撥號,請開啟「聯絡人」存取權限。"</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"如要查看您的通話紀錄,請開啟「電話」存取權限。"</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"如要查看您的聯絡人,請開啟「聯絡人」存取權限。"</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"如要存取您的語音信箱,請開啟「電話」存取權限。"</string>
<string name="permission_no_search" msgid="2424710404207193826">"如要搜尋您的聯絡人,請開啟「聯絡人」存取權限。"</string>
<string name="permission_place_call" msgid="8686908130349369423">"如要撥打電話,請開啟「電話」存取權限。"</string>
diff --git a/java/com/android/dialer/app/res/values-zu/strings.xml b/java/com/android/dialer/app/res/values-zu/strings.xml
index 9c8a6b8e1..93843aa2c 100644
--- a/java/com/android/dialer/app/res/values-zu/strings.xml
+++ b/java/com/android/dialer/app/res/values-zu/strings.xml
@@ -85,6 +85,10 @@
<string name="dialer_returnToInCallScreen" msgid="3487191628252824117">"Buyela kukholi eqhubekayo"</string>
<string name="dialer_addAnotherCall" msgid="3132945651710234674">"Yengeza ikholi"</string>
<string name="actionIncomingCall" msgid="891346596090030558">"Amakholi angenayo"</string>
+ <string name="description_entering_bulk_action_mode" msgid="6134916000015585401">"Kungenwa kumodi yesenzo senqwaba"</string>
+ <string name="description_leaving_bulk_action_mode" msgid="4355853387639765529">"Ishiye imodi yesenzo senqwaba"</string>
+ <string name="description_selecting_bulk_action_mode" msgid="7228565941043117618">"Kukhethwe i-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_unselecting_bulk_action_mode" msgid="6450971299622386060">"Akukhethiwe i-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
<string name="description_call_log_play_button" msgid="2349845005022431438">"Dlala i-imeyli yezwi"</string>
<string name="description_view_contact" msgid="3940984937384372665">"Bheka oxhumana naye <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="1532402285334775372">"Shayela <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -99,11 +103,13 @@
<string name="voicemail" msgid="8899540969000957954">"Ivoyisimeyili"</string>
<string name="callDetailsShortDurationFormat" msgid="8517030531054801588">"<xliff:g id="SECONDS">%s</xliff:g> isekhondi"</string>
<string name="callDetailsDurationFormat" msgid="6826204822350034578">"<xliff:g id="MINUTES">%s</xliff:g> amaminithi <xliff:g id="SECONDS">%s</xliff:g> amasekhondi"</string>
+ <string name="description_cancel_multi_select" msgid="3930475950253360461">"Khansela imodi lezenzo zeqoqo"</string>
<string name="voicemailMultiSelectVoicemail" msgid="7792569522692927527">"ivoyisimeyili"</string>
<string name="voicemailMultiSelectVoicemails" msgid="3901723179158415509">"ama-meyli ezwi"</string>
<string name="voicemailMultiSelectDeleteConfirm" msgid="5904880853422397390">"Yebo"</string>
<string name="voicemailMultiSelectDeleteCancel" msgid="7340110543555172665">"Cha"</string>
<string name="voicemailMultiSelectDialogTitle" msgid="150612124416146690">"Susa okukhethiwe <xliff:g id="VOICEMAILORVOICEMAILS">%1$s</xliff:g>?"</string>
+ <string name="voicemailMultiSelectActionBarTitle" msgid="5840745438559612431">"Engu-<xliff:g id="NUMBER">%1$s</xliff:g> ekhethiwe"</string>
<string name="voicemailCallLogToday" msgid="709034597866788854">@string/call_log_header_today</string>
<string name="voicemailCallLogDateTimeFormat" msgid="4998985002074131268">"<xliff:g id="DATE">%1$s</xliff:g> ngo-<xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="voicemailDurationFormat" msgid="5649961568550898382">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
@@ -116,7 +122,6 @@
<string name="meid" msgid="3333779521535224028">"I-MEID"</string>
<string name="simContacts_emptyLoading" msgid="6205424276735652071">"Ilayisha kusuka ekhadini le-SIM..."</string>
<string name="simContacts_title" msgid="7961069730386378887">"Othintana nabo bekhadi le-SIM"</string>
- <string name="add_contact_not_available" msgid="7065884447935173347">"Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo"</string>
<string name="voice_search_not_available" msgid="6546240433719732905">"Usesho lwezwi alutholakali"</string>
<string name="call_not_available" msgid="7850148370757361155">"Ayikwazi ukwenza ikholi yefoni ngoba uhlelo lokusebenza lwefoni likhutshaziwe."</string>
<string name="dialer_hint_find_contact" msgid="2023214799381149808">"Sesha othintana nabo"</string>
@@ -145,10 +150,9 @@
<string name="num_missed_calls" msgid="5171791753696317082">"<xliff:g id="NUMBER">%s</xliff:g> amakholi amasha owaphuthelwe"</string>
<string name="speed_dial_empty" msgid="3346406399966039505">"Akekho umuntu osekudayeleni kwakho okusheshayo okwamanje"</string>
<string name="speed_dial_empty_add_favorite_action" msgid="3470360584638103033">"Engeza intandokazi"</string>
- <string name="all_contacts_empty" msgid="243071567853617177">"Awunabo oxhumana nabo okwamanje"</string>
- <string name="all_contacts_empty_add_contact_action" msgid="2907328217206743952">"Engeza oxhumana naye"</string>
<string name="contact_tooltip" msgid="8871614660967439999">"Thinta isithombe ukuze ubone zonke izinombolo noma thinta bese ubambe ukuze uhlele kabusha"</string>
<string name="remove_contact" msgid="2353580570488923668">"Susa"</string>
+ <string name="select_all" msgid="408601760696146245">"Khetha konke"</string>
<string name="call_log_action_video_call" msgid="7565549950343850819">"Ikholi yevidiyo"</string>
<string name="call_log_action_send_message" msgid="6948727362660115554">"Thumela umlayezo"</string>
<string name="call_log_action_details" msgid="2091370737371449501">"Imininingwane yekholi"</string>
@@ -213,11 +217,9 @@
<string name="block_list" msgid="4701585783411870782">"Izinombolo ezivinjiwe"</string>
<string name="alreadyBlocked" msgid="5483253180532475653">"<xliff:g id="NUMBER">%1$s</xliff:g> isivinjiwe kakade."</string>
<string name="phone_account_settings_label" msgid="8372485478006965920">"Ama-akhawunti wokushaya"</string>
- <string name="permission_single_turn_on" msgid="8014796118294187894">"Vula"</string>
<string name="permission_multiple_turn_on" msgid="5679888820253829400">"Setha izimvume"</string>
<string name="permission_no_speeddial" msgid="8487215628510596753">"Nika amandla ukudayela okusheshayo, vula imvume yoxhumana nabo."</string>
<string name="permission_no_calllog" msgid="4053705651238775784">"Ukuze ubone irekhodi lakho lamakholi, vuma imvume yefoni."</string>
- <string name="permission_no_contacts" msgid="8995025765862026771">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string>
<string name="permission_no_voicemail" msgid="1908142679289209291">"Ukuze ufinyelele ivoyisimeyili, vula imvume yefoni."</string>
<string name="permission_no_search" msgid="2424710404207193826">"Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo."</string>
<string name="permission_place_call" msgid="8686908130349369423">"Ukuze ubeke ikholi, vula imvume yefoni."</string>
diff --git a/java/com/android/dialer/app/res/values/colors.xml b/java/com/android/dialer/app/res/values/colors.xml
index cf6b926be..2f6d87b49 100644
--- a/java/com/android/dialer/app/res/values/colors.xml
+++ b/java/com/android/dialer/app/res/values/colors.xml
@@ -52,8 +52,6 @@
<!-- Colour of voicemail progress bar to the left of position indicator. -->
<color name="voicemail_playback_seek_bar_already_played">@color/dialer_theme_color</color>
- <!-- Background color of new dialer activity -->
- <color name="background_dialer_light">#fafafa</color>
<!-- Background color for search results and call details -->
<color name="background_dialer_results">#f9f9f9</color>
<color name="background_dialer_call_log">@color/background_dialer_light</color>
@@ -69,8 +67,6 @@
<!-- Undo dialogue color -->
<color name="undo_dialogue_text_color">#4d4d4d</color>
- <color name="empty_list_text_color">#b2b2b2</color>
-
<color name="remove_text_color">#ffffff</color>
<!-- Text color for the "Remove" text when a contact is dragged on top of the remove view -->
diff --git a/java/com/android/dialer/app/res/values/dimens.xml b/java/com/android/dialer/app/res/values/dimens.xml
index 7da29c7a3..57c43ebbd 100644
--- a/java/com/android/dialer/app/res/values/dimens.xml
+++ b/java/com/android/dialer/app/res/values/dimens.xml
@@ -105,9 +105,6 @@
<!-- Length of dialpad's shadows in dialer. -->
<dimen name="shadow_length">10dp</dimen>
- <dimen name="empty_list_message_top_padding">20dp</dimen>
- <dimen name="empty_list_message_text_size">16sp</dimen>
-
<!-- Dimensions for individual preference cards -->
<dimen name="preference_padding_top">16dp</dimen>
<dimen name="preference_padding_bottom">16dp</dimen>
diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml
index 9e1fdeb5a..6110601d8 100644
--- a/java/com/android/dialer/app/res/values/strings.xml
+++ b/java/com/android/dialer/app/res/values/strings.xml
@@ -279,6 +279,34 @@
<!-- Description for incoming calls going to voice mail vs. not -->
<string name="actionIncomingCall">Incoming calls</string>
+ <!-- String describing the user entering bulk action mode.
+
+ Note: AccessibilityServices use this attribute to announce what the view represents.
+ This is especially valuable for views without textual representation like ImageView.
+-->
+ <string name="description_entering_bulk_action_mode">Entering bulk action mode</string>
+
+ <!-- String describing the user leaving bulk action mode.
+
+ Note: AccessibilityServices use this attribute to announce what the view represents.
+ This is especially valuable for views without textual representation like ImageView.
+-->
+ <string name="description_leaving_bulk_action_mode">Left bulk action mode</string>
+
+ <!-- String describing the button to select an entry for bulk action.
+
+ Note: AccessibilityServices use this attribute to announce what the view represents.
+ This is especially valuable for views without textual representation like ImageView.
+ -->
+ <string name="description_selecting_bulk_action_mode">Selected <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
+
+ <!-- String describing the button to unselect an entry for bulk action.
+
+ Note: AccessibilityServices use this attribute to announce what the view represents.
+ This is especially valuable for views without textual representation like ImageView.
+ -->
+ <string name="description_unselecting_bulk_action_mode">Unselected <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
+
<!-- String describing the icon in the call log used to play a voicemail.
Note: AccessibilityServices use this attribute to announce what the view represents.
@@ -362,12 +390,19 @@
<!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
<string name="callDetailsDurationFormat"><xliff:g example="42" id="minutes">%s</xliff:g> min <xliff:g example="28" id="seconds">%s</xliff:g> sec</string>
+ <!-- String describing the cancel button in multi select.
+ Note: AccessibilityServices uses this attribute to announce what the view represents.
+ [CHAR LIMIT=NONE] -->
+ <string name="description_cancel_multi_select">Cancel batch actions mode</string>
+
<string name="voicemailMultiSelectVoicemail">voicemail</string>
<string name="voicemailMultiSelectVoicemails">voicemails</string>
<string name="voicemailMultiSelectDeleteConfirm">Yes</string>
<string name="voicemailMultiSelectDeleteCancel">No</string>
<string name="voicemailMultiSelectDialogTitle">Delete selected <xliff:g id="voicemailorvoicemails">%1$s</xliff:g>?</string>
+ <string name="voicemailMultiSelectActionBarTitle"><xliff:g id="number">%1$s</xliff:g> selected</string>
+
<!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
current day -->
@@ -411,9 +446,6 @@
<!-- Dialog title displayed when loading a phone number from the SIM card for speed dial -->
<string name="simContacts_title">SIM card contacts</string>
- <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
- <string name="add_contact_not_available">No contacts app available</string>
-
<!-- Message displayed when there is no application available to handle voice search. [CHAR LIMIT=NONE] -->
<string name="voice_search_not_available">Voice search not available</string>
@@ -514,12 +546,6 @@
<!-- Shown as an action when there are no speed dial favorites -->
<string name="speed_dial_empty_add_favorite_action">Add a favorite</string>
- <!-- Shown when there are no contacts in the all contacts list. -->
- <string name="all_contacts_empty">You don\'t have any contacts yet</string>
-
- <!-- Shown as an action when the all contacts list is empty -->
- <string name="all_contacts_empty_add_contact_action">Add a contact</string>
-
<!-- Shows up as a tooltip to provide a hint to the user that the profile pic in a contact
card can be tapped to bring up a list of all numbers, or long pressed to start reordering
[CHAR LIMIT=NONE]
@@ -529,6 +555,9 @@
<!-- Remove button that shows up when contact is long-pressed. [CHAR LIMIT=NONE] -->
<string name="remove_contact">Remove</string>
+ <!-- Select all text that shows up when in multi select mode. [CHAR LIMIT=NONE] -->
+ <string name="select_all">Select all</string>
+
<!-- Button text for the "video call" displayed underneath an entry in the call log.
Tapping causes a video call to be placed to the caller represented by the call log entry.
[CHAR LIMIT=30] -->
@@ -554,7 +583,7 @@
Call <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>
</string>
- <!-- String describing an incoming missed call entry in the call log.
+ <!-- String describing an incoming missed call entry in the call log.
Note: AccessibilityServices uses this attribute to announce what the view represents.
[CHAR LIMIT=NONE] -->
<string name="description_incoming_missed_call">Missed call from <xliff:g example="John Smith" id="nameOrNumber">^1</xliff:g>, <xliff:g example="Mobile" id="typeOrLocation">^2</xliff:g>, <xliff:g example="2 min ago" id="timeOfCall">^3</xliff:g>, <xliff:g example="on SIM 1" id="phoneAccount">^4</xliff:g>.</string>
@@ -841,9 +870,6 @@
<!-- Internal key for DTMF tone length preference. -->
<string name="dtmf_tone_length_preference_key" translatable="false">button_dtmf_settings</string>
- <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
- <string name="permission_single_turn_on">Turn on</string>
-
<!-- The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
<string name="permission_multiple_turn_on">Set permissions</string>
@@ -853,9 +879,6 @@
<!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
<string name="permission_no_calllog">To see your call log, turn on the Phone permission.</string>
- <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
- <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string>
-
<!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
<string name="permission_no_voicemail">To access your voicemail, turn on the Phone permission.</string>
diff --git a/java/com/android/dialer/app/res/values/styles.xml b/java/com/android/dialer/app/res/values/styles.xml
index 7adf7ca2c..592f06d29 100644
--- a/java/com/android/dialer/app/res/values/styles.xml
+++ b/java/com/android/dialer/app/res/values/styles.xml
@@ -25,13 +25,15 @@
<item name="windowActionModeOverlay">true</item>
<item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
<item name="actionBarStyle">@style/DialtactsActionBarStyle</item>
+ <item name="actionModeStyle">@style/ActionModeStyle</item>
+ <item name="android:actionModeStyle">@style/ActionModeStyle</item>
+
<item name="android:windowContentOverlay">@null</item>
<item name="android:overlapAnchor">true</item>
- <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
+ <item name="android:homeAsUpIndicator">@drawable/quantum_ic_arrow_back_vd_theme_24</item>
<item name="android:listViewStyle">@style/ListViewStyle</item>
- <item name="section_header_background">@drawable/list_title_holo</item>
<item name="list_section_header_height">32dip</item>
<item name="list_item_padding_top">7dp</item>
<item name="list_item_padding_right">24dp</item>
@@ -66,7 +68,7 @@
<item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item>
<!-- Video call icon -->
- <item name="list_item_video_call_icon_size">32dip</item>
+ <item name="list_item_video_call_icon_size">48dip</item>
<item name="list_item_video_call_icon_margin">8dip</item>
<item name="dialpad_style">@style/Dialpad.Light</item>
@@ -129,6 +131,12 @@
<item name="contentInsetStart">@dimen/actionbar_contentInsetStart</item>
</style>
+ <style name="ActionModeStyle" parent="Widget.AppCompat.ActionMode">
+ <item name="android:background">@color/actionbar_background_color</item>
+ <item name="background">@color/actionbar_background_color</item>
+ <item name="closeItemLayout">@layout/action_mode_close_button</item>
+ </style>
+
<style name="DialtactsActionBarWithoutTitleStyle" parent="DialtactsActionBarStyle">
<!-- Styles that require AppCompat compatibility, remember to update both sets -->
<item name="android:displayOptions"></item>
diff --git a/java/com/android/dialer/app/res/xml/sound_settings.xml b/java/com/android/dialer/app/res/xml/sound_settings.xml
index 796ed2ec1..d9afb7411 100644
--- a/java/com/android/dialer/app/res/xml/sound_settings.xml
+++ b/java/com/android/dialer/app/res/xml/sound_settings.xml
@@ -25,13 +25,13 @@
android:ringtoneType="ringtone"
android:title="@string/ringtone_title"/>
- <CheckBoxPreference
+ <SwitchPreference
android:defaultValue="false"
android:key="@string/vibrate_on_preference_key"
android:persistent="false"
android:title="@string/vibrate_on_ring_title"/>
- <CheckBoxPreference
+ <SwitchPreference
android:defaultValue="true"
android:key="@string/play_dtmf_preference_key"
android:persistent="false"
diff --git a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
index 2c464386b..e8e425626 100644
--- a/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
+++ b/java/com/android/dialer/app/settings/AppCompatPreferenceActivity.java
@@ -18,7 +18,6 @@ package com.android.dialer.app.settings;
import android.content.res.Configuration;
import android.os.Bundle;
import android.preference.PreferenceActivity;
-import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatDelegate;
import android.support.v7.widget.Toolbar;
import android.view.MenuInflater;
@@ -49,10 +48,6 @@ public class AppCompatPreferenceActivity extends PreferenceActivity {
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 f1c270ca9..6036c85ce 100644
--- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java
+++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
@@ -36,7 +36,6 @@ import com.android.dialer.about.AboutPhoneFragment;
import com.android.dialer.app.R;
import com.android.dialer.blocking.FilteredNumberCompat;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.compat.CompatUtils;
import com.android.dialer.proguard.UsedByReflection;
import com.android.voicemail.VoicemailClient;
import com.android.voicemail.VoicemailComponent;
@@ -83,14 +82,12 @@ public class DialerSettingsActivity extends AppCompatPreferenceActivity {
soundSettingsHeader.id = R.id.settings_header_sounds_and_vibration;
target.add(soundSettingsHeader);
- if (CompatUtils.isMarshmallowCompatible()) {
- Header quickResponseSettingsHeader = new Header();
- Intent quickResponseSettingsIntent =
- new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS);
- quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title;
- quickResponseSettingsHeader.intent = quickResponseSettingsIntent;
- target.add(quickResponseSettingsHeader);
- }
+ Header quickResponseSettingsHeader = new Header();
+ Intent quickResponseSettingsIntent =
+ new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS);
+ quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title;
+ quickResponseSettingsHeader.intent = quickResponseSettingsIntent;
+ target.add(quickResponseSettingsHeader);
TelephonyManager telephonyManager =
(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
diff --git a/java/com/android/dialer/app/settings/SoundSettingsFragment.java b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
index 83ce45398..dcfb7a595 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.Bundle;
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 @@ public class SoundSettingsFragment extends PreferenceFragment
updateRingtonePreferenceSummary();
}
};
- private CheckBoxPreference mVibrateWhenRinging;
- private CheckBoxPreference mPlayDtmfTone;
+ private SwitchPreference mVibrateWhenRinging;
+ private SwitchPreference mPlayDtmfTone;
private ListPreference mDtmfToneLength;
@Override
@@ -87,9 +87,9 @@ public class SoundSettingsFragment extends PreferenceFragment
mRingtonePreference = findPreference(context.getString(R.string.ringtone_preference_key));
mVibrateWhenRinging =
- (CheckBoxPreference) findPreference(context.getString(R.string.vibrate_on_preference_key));
+ (SwitchPreference) findPreference(context.getString(R.string.vibrate_on_preference_key));
mPlayDtmfTone =
- (CheckBoxPreference) findPreference(context.getString(R.string.play_dtmf_preference_key));
+ (SwitchPreference) findPreference(context.getString(R.string.play_dtmf_preference_key));
mDtmfToneLength =
(ListPreference)
findPreference(context.getString(R.string.dtmf_tone_length_preference_key));
diff --git a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
index 9d07ec561..ffbae71f2 100644
--- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
+++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
@@ -43,6 +43,15 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
private static final String LEGACY_VOICEMAIL_COUNT = "legacy_voicemail_count";
+ /**
+ * Hidden extra for {@link TelephonyManager#ACTION_SHOW_VOICEMAIL_NOTIFICATION} for whether the
+ * notification is just a refresh or for a new voicemail. The phone should not play a ringtone or
+ * vibrate during a refresh if the notification is already showing.
+ *
+ * <p>TODO(b/62202833): make public
+ */
+ private static final String EXTRA_IS_REFRESH = "is_refresh";
+
@Override
public void onReceive(Context context, Intent intent) {
LogUtil.i(
@@ -51,7 +60,6 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
PhoneAccountHandle phoneAccountHandle =
Assert.isNotNull(intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE));
-
int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, -1);
if (!hasVoicemailCountChanged(context, phoneAccountHandle, count)) {
@@ -97,7 +105,8 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
count,
voicemailNumber,
callVoicemailIntent,
- voicemailSettingIntent);
+ voicemailSettingIntent,
+ intent.getBooleanExtra(EXTRA_IS_REFRESH, false));
}
private static boolean hasVoicemailCountChanged(
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
index ea48c8321..686e3e8c4 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -548,7 +548,9 @@ public class VoicemailPlaybackPresenter
mView.setClipPosition(mPosition, mDuration.get());
mView.enableUiElements();
mView.setSuccess();
- mMediaPlayer.seekTo(mPosition);
+ if (!mp.isPlaying()) {
+ mMediaPlayer.seekTo(mPosition);
+ }
if (mIsPlaying) {
resumePlayback();
diff --git a/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-hi/strings.xml
index bc9c46331..fb1b18621 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 85fd5ec6a..5846b1f73 100644
--- a/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
+++ b/java/com/android/dialer/app/widget/DialpadSearchEmptyContentView.java
@@ -21,6 +21,7 @@ import android.view.LayoutInflater;
import android.widget.LinearLayout;
import com.android.dialer.app.R;
import com.android.dialer.util.OrientationUtil;
+import com.android.dialer.widget.EmptyContentView;
/** Empty content view to be shown when dialpad is visible. */
public class DialpadSearchEmptyContentView extends EmptyContentView {
diff --git a/java/com/android/dialer/app/widget/SearchEditTextLayout.java b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
index f83c48288..d67fd9eff 100644
--- a/java/com/android/dialer/app/widget/SearchEditTextLayout.java
+++ b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
@@ -52,7 +52,6 @@ public class SearchEditTextLayout extends FrameLayout {
private View mVoiceSearchButtonView;
private View mOverflowButtonView;
private View mBackButtonView;
- private View mExpandedSearchBox;
private View mClearButtonView;
private ValueAnimator mAnimator;
@@ -90,20 +89,27 @@ public class SearchEditTextLayout extends FrameLayout {
mVoiceSearchButtonView = findViewById(R.id.voice_search_button);
mOverflowButtonView = findViewById(R.id.dialtacts_options_menu_button);
mBackButtonView = findViewById(R.id.search_back_button);
- mExpandedSearchBox = findViewById(R.id.search_box_expanded);
+ mBackButtonView
+ .getResources()
+ .getDrawable(R.drawable.quantum_ic_arrow_back_vd_theme_24)
+ .setAutoMirrored(true);
mClearButtonView = findViewById(R.id.search_close_button);
- // Convert a long click into a click to expand the search box, and then long click on the
- // search view. This accelerates the long-press scenario for copy/paste.
+ // Convert a long click into a click to expand the search box. Touch events are also
+ // forwarded to the searchView. This accelerates the long-press scenario for copy/paste.
mCollapsed.setOnLongClickListener(
new OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
mCollapsed.performClick();
- mSearchView.performLongClick();
return false;
}
});
+ mCollapsed.setOnTouchListener(
+ (v, event) -> {
+ mSearchView.onTouchEvent(event);
+ return false;
+ });
mSearchView.setOnFocusChangeListener(
new OnFocusChangeListener() {
@@ -212,7 +218,7 @@ public class SearchEditTextLayout extends FrameLayout {
AnimUtils.crossFadeViews(mExpanded, mCollapsed, ANIMATION_DURATION);
mAnimator = ValueAnimator.ofFloat(EXPAND_MARGIN_FRACTION_START, 0f);
setMargins(EXPAND_MARGIN_FRACTION_START);
- prepareAnimator(true);
+ prepareAnimator();
} else {
mExpanded.setVisibility(View.VISIBLE);
mExpanded.setAlpha(1);
@@ -241,7 +247,7 @@ public class SearchEditTextLayout extends FrameLayout {
if (animate) {
AnimUtils.crossFadeViews(mCollapsed, mExpanded, ANIMATION_DURATION);
mAnimator = ValueAnimator.ofFloat(0f, 1f);
- prepareAnimator(false);
+ prepareAnimator();
} else {
mCollapsed.setVisibility(View.VISIBLE);
mCollapsed.setAlpha(1);
@@ -279,7 +285,7 @@ public class SearchEditTextLayout extends FrameLayout {
}
}
- private void prepareAnimator(final boolean expand) {
+ private void prepareAnimator() {
if (mAnimator != null) {
mAnimator.cancel();
}
diff --git a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
index 595401c70..bc0b39bb8 100644
--- a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
+++ b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
@@ -18,6 +18,7 @@ package com.android.dialer.binary.aosp;
import com.android.dialer.binary.basecomponent.BaseDialerRootComponent;
import com.android.dialer.calllog.CallLogModule;
+import com.android.dialer.common.concurrent.DialerExecutorModule;
import com.android.dialer.enrichedcall.stub.StubEnrichedCallModule;
import com.android.dialer.inject.ContextModule;
import com.android.dialer.lightbringer.stub.StubLightbringerModule;
@@ -34,6 +35,7 @@ import javax.inject.Singleton;
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 2deb7fdc4..6e6ae4b6c 100644
--- a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
+++ b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
@@ -17,6 +17,8 @@
package com.android.dialer.binary.basecomponent;
import com.android.dialer.calllog.CallLogComponent;
+import com.android.dialer.calllog.database.CallLogDatabaseComponent;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.lightbringer.LightbringerComponent;
import com.android.dialer.simulator.SimulatorComponent;
@@ -31,6 +33,8 @@ import com.android.voicemail.VoicemailComponent;
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 a4c2e7d6f..5037883ee 100644
--- a/java/com/android/dialer/binary/common/DialerApplication.java
+++ b/java/com/android/dialer/binary/common/DialerApplication.java
@@ -55,8 +55,9 @@ public abstract class DialerApplication extends Application implements HasRootCo
private void enableStrictMode() {
StrictMode.setThreadPolicy(
- new StrictMode.ThreadPolicy.Builder().detectAll().penaltyDeath().build());
- StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyDeath().build());
+ new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
+ StrictMode.setVmPolicy(
+ new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().penaltyDeath().build());
}
/**
diff --git a/java/com/android/dialer/callcomposer/AndroidManifest.xml b/java/com/android/dialer/callcomposer/AndroidManifest.xml
index 369db6f4a..cce71105f 100644
--- a/java/com/android/dialer/callcomposer/AndroidManifest.xml
+++ b/java/com/android/dialer/callcomposer/AndroidManifest.xml
@@ -17,7 +17,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.dialer.callcomposer">
- <application>
+ <application android:theme="@style/Theme.AppCompat">
<activity
android:name="com.android.dialer.callcomposer.CallComposerActivity"
android:exported="true"
diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java
index 074fc6de1..bc20c7314 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -37,10 +37,8 @@ import android.text.TextUtils;
import android.util.Base64;
import android.view.View;
import android.view.View.OnClickListener;
-import android.view.View.OnLayoutChangeListener;
import android.view.ViewAnimationUtils;
import android.view.ViewGroup;
-import android.view.WindowManager.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -56,6 +54,7 @@ import com.android.dialer.common.LogUtil;
import com.android.dialer.common.UiUtil;
import com.android.dialer.common.concurrent.DialerExecutors;
import com.android.dialer.constants.Constants;
+import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.enrichedcall.EnrichedCallManager;
import com.android.dialer.enrichedcall.EnrichedCallManager.State;
@@ -86,7 +85,6 @@ public class CallComposerActivity extends AppCompatActivity
implements OnClickListener,
OnPageChangeListener,
CallComposerListener,
- OnLayoutChangeListener,
EnrichedCallManager.StateChangedListener {
public static final String KEY_CONTACT_NAME = "contact_name";
@@ -102,7 +100,7 @@ public class CallComposerActivity extends AppCompatActivity
private static final String VIEW_PAGER_STATE_KEY = "view_pager_state_key";
private static final String SESSION_ID_KEY = "session_id_key";
- private CallComposerContact contact;
+ private DialerContact contact;
private Long sessionId = Session.NO_SESSION_ID;
private TextView nameView;
@@ -126,10 +124,9 @@ public class CallComposerActivity extends AppCompatActivity
private boolean shouldAnimateEntrance = true;
private boolean inFullscreenMode;
private boolean isSendAndCallHidingOrHidden = true;
- private boolean layoutChanged;
private int currentIndex;
- public static Intent newIntent(Context context, CallComposerContact contact) {
+ public static Intent newIntent(Context context, DialerContact contact) {
Intent intent = new Intent(context, CallComposerActivity.class);
ProtoParsers.put(intent, ARG_CALL_COMPOSER_CONTACT, contact);
return intent;
@@ -140,19 +137,19 @@ public class CallComposerActivity extends AppCompatActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.call_composer_activity);
- nameView = (TextView) findViewById(R.id.contact_name);
- numberView = (TextView) findViewById(R.id.phone_number);
- contactPhoto = (QuickContactBadge) findViewById(R.id.contact_photo);
- cameraIcon = (ImageView) findViewById(R.id.call_composer_camera);
- galleryIcon = (ImageView) findViewById(R.id.call_composer_photo);
- messageIcon = (ImageView) findViewById(R.id.call_composer_message);
- contactContainer = (RelativeLayout) findViewById(R.id.contact_bar);
- pager = (ViewPager) findViewById(R.id.call_composer_view_pager);
- background = (FrameLayout) findViewById(R.id.background);
- windowContainer = (LinearLayout) findViewById(R.id.call_composer_container);
- toolbar = (DialerToolbar) findViewById(R.id.toolbar);
+ nameView = findViewById(R.id.contact_name);
+ numberView = findViewById(R.id.phone_number);
+ contactPhoto = findViewById(R.id.contact_photo);
+ cameraIcon = findViewById(R.id.call_composer_camera);
+ galleryIcon = findViewById(R.id.call_composer_photo);
+ messageIcon = findViewById(R.id.call_composer_message);
+ contactContainer = findViewById(R.id.contact_bar);
+ pager = findViewById(R.id.call_composer_view_pager);
+ background = findViewById(R.id.background);
+ windowContainer = findViewById(R.id.call_composer_container);
+ toolbar = findViewById(R.id.toolbar);
sendAndCall = findViewById(R.id.send_and_call_button);
- sendAndCallText = (TextView) findViewById(R.id.send_and_call_text);
+ sendAndCallText = findViewById(R.id.send_and_call_text);
interpolator = new FastOutSlowInInterpolator();
adapter =
@@ -162,7 +159,6 @@ public class CallComposerActivity extends AppCompatActivity
pager.setAdapter(adapter);
pager.addOnPageChangeListener(this);
- background.addOnLayoutChangeListener(this);
cameraIcon.setOnClickListener(this);
galleryIcon.setOnClickListener(this);
messageIcon.setOnClickListener(this);
@@ -178,11 +174,6 @@ public class CallComposerActivity extends AppCompatActivity
onPageSelected(currentIndex);
}
- int adjustMode =
- isLandscapeLayout()
- ? LayoutParams.SOFT_INPUT_ADJUST_PAN
- : LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
- getWindow().setSoftInputMode(adjustMode);
// Since we can't animate the views until they are ready to be drawn, we use this listener to
// track that and animate the call compose UI as soon as it's ready.
ViewUtil.doOnPreDraw(
@@ -264,7 +255,7 @@ public class CallComposerActivity extends AppCompatActivity
} else if (view == sendAndCall) {
sendAndCall();
} else {
- Assert.fail();
+ throw Assert.createIllegalStateFailException("View on click not implemented: " + view);
}
}
@@ -340,11 +331,7 @@ public class CallComposerActivity extends AppCompatActivity
private boolean sessionReady() {
Session session = getEnrichedCallManager().getSession(sessionId);
- if (session == null) {
- return false;
- }
-
- return session.getState() == EnrichedCallManager.STATE_STARTED;
+ return session != null && session.getState() == EnrichedCallManager.STATE_STARTED;
}
private void placeRCSCall(MultimediaData.Builder builder) {
@@ -424,28 +411,6 @@ public class CallComposerActivity extends AppCompatActivity
animateSendAndCall(fragment.shouldHide());
}
- // To detect when the keyboard changes.
- @Override
- public void onLayoutChange(
- View view,
- int left,
- int top,
- int right,
- int bottom,
- int oldLeft,
- int oldTop,
- int oldRight,
- int oldBottom) {
- // To prevent infinite layout change loops
- if (layoutChanged) {
- layoutChanged = false;
- return;
- }
-
- layoutChanged = true;
- showFullscreen(contactContainer.getTop() < 0 || inFullscreenMode);
- }
-
/**
* Reads arguments from the fragment arguments and populates the necessary instance variables.
* Copied from {@link com.android.contacts.common.dialog.CallSubjectDialog}.
@@ -456,14 +421,14 @@ public class CallComposerActivity extends AppCompatActivity
byte[] bytes =
Base64.decode(intent.getStringExtra(ARG_CALL_COMPOSER_CONTACT_BASE64), Base64.DEFAULT);
try {
- contact = CallComposerContact.parseFrom(bytes);
+ contact = DialerContact.parseFrom(bytes);
} catch (InvalidProtocolBufferException e) {
throw Assert.createAssertionFailException(e.toString());
}
} else {
contact =
ProtoParsers.getTrusted(
- intent, ARG_CALL_COMPOSER_CONTACT, CallComposerContact.getDefaultInstance());
+ intent, ARG_CALL_COMPOSER_CONTACT, DialerContact.getDefaultInstance());
}
updateContactInfo();
}
diff --git a/java/com/android/dialer/callcomposer/CameraComposerFragment.java b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
index f65207fa3..ecdc25822 100644
--- a/java/com/android/dialer/callcomposer/CameraComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
@@ -17,13 +17,14 @@
package com.android.dialer.callcomposer;
import android.Manifest;
-import android.Manifest.permission;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.drawable.Animatable;
import android.hardware.Camera.CameraInfo;
import android.net.Uri;
import android.os.Bundle;
+import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -56,6 +57,7 @@ import com.android.dialer.util.PermissionsUtil;
public class CameraComposerFragment extends CallComposerFragment
implements CameraManagerListener, OnClickListener, CameraManager.MediaCallback {
+ private static final String CAMERA_PRIVACY_PREF = "camera_privacy_permission";
private static final String CAMERA_DIRECTION_KEY = "camera_direction";
private static final String CAMERA_URI_KEY = "camera_key";
@@ -107,7 +109,8 @@ public class CameraComposerFragment extends CallComposerFragment
capture.setOnClickListener(this);
cancel.setOnClickListener(this);
- if (!PermissionsUtil.hasPermission(getContext(), permission.CAMERA)) {
+
+ if (!PermissionsUtil.hasCameraPermissions(getContext())) {
LogUtil.i("CameraComposerFragment.onCreateView", "Permission view shown.");
Logger.get(getContext()).logImpression(DialerImpression.Type.CAMERA_PERMISSION_DISPLAYED);
ImageView permissionImage = (ImageView) permissionView.findViewById(R.id.permission_icon);
@@ -131,6 +134,12 @@ public class CameraComposerFragment extends CallComposerFragment
}
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 f9990e167..39d6a4a6d 100644
--- a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
+++ b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
@@ -28,7 +28,7 @@ import android.support.v4.content.CursorLoader;
public class GalleryCursorLoader extends CursorLoader {
public static final String MEDIA_SCANNER_VOLUME_EXTERNAL = "external";
public static final String[] ACCEPTABLE_IMAGE_TYPES =
- new String[] {"image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp"};
+ new String[] {"image/jpeg", "image/jpg", "image/png", "image/webp"};
private static final Uri STORAGE_URI = Files.getContentUri(MEDIA_SCANNER_VOLUME_EXTERNAL);
private static final String SORT_ORDER = Media.DATE_MODIFIED + " DESC";
@@ -47,7 +47,7 @@ public class GalleryCursorLoader extends CursorLoader {
@SuppressLint("DefaultLocale")
private static String createSelection() {
return String.format(
- "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp')"
+ "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/webp')"
+ " AND media_type in (%d)",
FileColumns.MEDIA_TYPE_IMAGE);
}
diff --git a/java/com/android/dialer/callcomposer/MessageComposerFragment.java b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
index 2a342bb08..392f6e716 100644
--- a/java/com/android/dialer/callcomposer/MessageComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
@@ -24,11 +24,8 @@ import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.LayoutInflater;
-import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
-import android.view.View.OnLongClickListener;
-import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
@@ -36,17 +33,12 @@ import android.widget.TextView.OnEditorActionListener;
/** Fragment used to compose call with message fragment. */
public class MessageComposerFragment extends CallComposerFragment
- implements OnClickListener,
- TextWatcher,
- OnTouchListener,
- OnLongClickListener,
- OnEditorActionListener {
+ implements OnClickListener, TextWatcher, OnEditorActionListener {
private static final String CHAR_LIMIT_KEY = "char_limit";
public static final int NO_CHAR_LIMIT = -1;
private EditText customMessage;
- private boolean isLongClick = false;
private int charLimit;
public static MessageComposerFragment newInstance(int charLimit) {
@@ -73,8 +65,6 @@ public class MessageComposerFragment extends CallComposerFragment
customMessage = (EditText) view.findViewById(R.id.custom_message);
urgent.setOnClickListener(this);
- customMessage.setOnTouchListener(this);
- customMessage.setOnLongClickListener(this);
customMessage.addTextChangedListener(this);
customMessage.setOnEditorActionListener(this);
if (charLimit != NO_CHAR_LIMIT) {
@@ -118,30 +108,6 @@ public class MessageComposerFragment extends CallComposerFragment
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 4cc08ba32..977f063df 100644
--- a/java/com/android/dialer/callcomposer/camera/CameraManager.java
+++ b/java/com/android/dialer/callcomposer/camera/CameraManager.java
@@ -522,6 +522,7 @@ public class CameraManager implements FocusOverlayManager.Listener {
switch (windowManager.getDefaultDisplay().getRotation()) {
case Surface.ROTATION_0:
degrees = 0;
+ mCamera.setDisplayOrientation(90);
break;
case Surface.ROTATION_90:
degrees = 90;
@@ -531,31 +532,22 @@ public class CameraManager implements FocusOverlayManager.Listener {
break;
case Surface.ROTATION_270:
degrees = 270;
+ mCamera.setDisplayOrientation(180);
break;
default:
throw Assert.createAssertionFailException("");
}
- // The display orientation of the camera (this controls the preview image).
- int orientation;
-
// The clockwise rotation angle relative to the orientation of the camera. This affects
// pictures returned by the camera in Camera.PictureCallback.
- int rotation;
if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
- orientation = (mCameraInfo.orientation + degrees) % 360;
- rotation = orientation;
- // compensate the mirror but only for orientation
- orientation = (360 - orientation) % 360;
+ mRotation = (mCameraInfo.orientation + degrees) % 360;
} else { // back-facing
- orientation = (mCameraInfo.orientation - degrees + 360) % 360;
- rotation = orientation;
+ mRotation = (mCameraInfo.orientation - degrees + 360) % 360;
}
- mRotation = rotation;
try {
- mCamera.setDisplayOrientation(orientation);
final Camera.Parameters params = mCamera.getParameters();
- params.setRotation(rotation);
+ params.setRotation(mRotation);
mCamera.setParameters(params);
} catch (final RuntimeException e) {
LogUtil.e(
@@ -589,7 +581,6 @@ public class CameraManager implements FocusOverlayManager.Listener {
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 31751e536..b5542ab6c 100644
--- a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
+++ b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
@@ -20,13 +20,11 @@ import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.Build.VERSION_CODES;
import android.support.v4.content.FileProvider;
import com.android.dialer.callcomposer.camera.exif.ExifInterface;
-import com.android.dialer.callcomposer.camera.exif.ExifTag;
import com.android.dialer.callcomposer.util.BitmapResizer;
import com.android.dialer.common.Assert;
import com.android.dialer.common.concurrent.FallibleAsyncTask;
@@ -71,13 +69,7 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> {
File outputFile = DialerUtils.createShareableFile(mContext);
try (OutputStream outputStream = new FileOutputStream(outputFile)) {
- if (mHeightPercent != 1.0f) {
- writeClippedBitmap(outputStream);
- } else {
- Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
- bitmap = BitmapResizer.resizeForEnrichedCalling(bitmap);
- bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream);
- }
+ writeClippedBitmap(outputStream);
}
return FileProvider.getUriForFile(
@@ -105,10 +97,12 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> {
} catch (final IOException e) {
// Couldn't get exif tags, not the end of the world
}
+
Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
final int clippedWidth;
final int clippedHeight;
- if (ExifInterface.getOrientationParams(orientation).invertDimensions) {
+ boolean invert = ExifInterface.getOrientationParams(orientation).invertDimensions;
+ if (invert) {
Assert.checkState(mWidth == bitmap.getHeight());
Assert.checkState(mHeight == bitmap.getWidth());
clippedWidth = (int) (mHeight * mHeightPercent);
@@ -119,24 +113,22 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> {
clippedWidth = mWidth;
clippedHeight = (int) (mHeight * mHeightPercent);
}
- final int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
- final int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
+
+ int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
+ int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
mWidth = clippedWidth;
mHeight = clippedHeight;
+
+ Matrix matrix = new Matrix();
+ matrix.postRotate(invert ? 90 : 0);
+
Bitmap clippedBitmap =
- Bitmap.createBitmap(clippedWidth, clippedHeight, Bitmap.Config.ARGB_8888);
- clippedBitmap.setDensity(bitmap.getDensity());
- final Canvas clippedBitmapCanvas = new Canvas(clippedBitmap);
- final Matrix matrix = new Matrix();
- matrix.postTranslate(-offsetLeft, -offsetTop);
- clippedBitmapCanvas.drawBitmap(bitmap, matrix, null /* paint */);
- clippedBitmapCanvas.save();
+ Bitmap.createBitmap(
+ bitmap, offsetLeft, offsetTop, clippedWidth, clippedHeight, matrix, true);
clippedBitmap = BitmapResizer.resizeForEnrichedCalling(clippedBitmap);
- // EXIF data can take a big chunk of the file size and is often cleared by the
- // carrier, only store orientation since that's critical
- final ExifTag orientationTag = exifInterface.getTag(ExifInterface.TAG_ORIENTATION);
+ // EXIF data can take a big chunk of the file size and we've already manually rotated our image,
+ // so remove all of the exif data.
exifInterface.clearExif();
- exifInterface.setTag(orientationTag);
exifInterface.writeExif(clippedBitmap, outputStream);
clippedBitmap.recycle();
diff --git a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
index c3f1102d1..14703a44c 100644
--- a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
+++ b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
@@ -15,11 +15,11 @@
~ limitations under the License
-->
<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/background"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/call_composer_background_color">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/background"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/call_composer_background_color">
<LinearLayout
android:id="@+id/call_composer_container"
@@ -87,7 +87,7 @@
android:layout_height="@dimen/call_composer_media_bar_height"
android:orientation="horizontal"
android:gravity="center_horizontal"
- android:background="@color/dialer_secondary_color"
+ android:background="@color/dialer_theme_color_dark"
android:clickable="true">
<ImageView
diff --git a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
index 77c7a58d1..15562476a 100644
--- a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
+++ b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
@@ -70,7 +70,7 @@
android:background="@color/background_dialer_white"
android:textCursorDrawable="@drawable/searchedittext_custom_cursor"
android:layout_toStartOf="@+id/remaining_characters"
- android:inputType="textShortMessage"
+ android:inputType="textShortMessage|textCapSentences"
android:imeOptions="flagNoExtractUi|actionSend"/>
<TextView
diff --git a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
index 4fa52ad63..1a57f87ce 100644
--- a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
+++ b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
@@ -28,6 +28,6 @@
<string name="camera_switch_to_still_mode" msgid="1881982437979592567">"Fes una foto"</string>
<string name="camera_media_failure" msgid="8979549551450965882">"No s\'ha pogut carregar la imatge de la càmera"</string>
<string name="allow" msgid="8637148297403066623">"Permet"</string>
- <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dóna accés a la càmera"</string>
- <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dóna accés al contingut multimèdia"</string>
+ <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dona accés a la càmera"</string>
+ <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dona accés al contingut multimèdia"</string>
</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values/styles.xml b/java/com/android/dialer/callcomposer/res/values/styles.xml
index 29ac4ddaa..16e7fb622 100644
--- a/java/com/android/dialer/callcomposer/res/values/styles.xml
+++ b/java/com/android/dialer/callcomposer/res/values/styles.xml
@@ -15,7 +15,7 @@
~ limitations under the License
-->
<resources>
- <style name="Theme.AppCompat.CallComposer" parent="Theme.AppCompat.NoActionBar">
+ <style name="Theme.AppCompat.CallComposer" parent="DialerThemeBase.NoActionBar">
<item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
diff --git a/java/com/android/dialer/calldetails/AndroidManifest.xml b/java/com/android/dialer/calldetails/AndroidManifest.xml
index adaac402e..fd887c4b5 100644
--- a/java/com/android/dialer/calldetails/AndroidManifest.xml
+++ b/java/com/android/dialer/calldetails/AndroidManifest.xml
@@ -16,11 +16,11 @@
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.dialer.calldetails">
- <application>
+ <application android:theme="@style/Theme.AppCompat">
<activity
android:label="@string/call_details"
android:name="com.android.dialer.calldetails.CallDetailsActivity"
- android:theme="@style/Theme.AppCompat.Light.NoActionBar">
+ android:theme="@style/DialerThemeBase.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java
index 7eab951fa..4d5853fef 100644
--- a/java/com/android/dialer/calldetails/CallDetailsActivity.java
+++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java
@@ -29,12 +29,13 @@ import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
import android.view.MenuItem;
-import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
import com.android.dialer.common.Assert;
import com.android.dialer.common.concurrent.AsyncTaskExecutors;
+import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.postcall.PostCall;
import com.android.dialer.protos.ProtoParsers;
import java.util.List;
@@ -48,7 +49,7 @@ public class CallDetailsActivity extends AppCompatActivity implements OnMenuItem
private List<CallDetailsEntry> entries;
public static Intent newInstance(
- Context context, @NonNull CallDetailsEntries details, @NonNull CallComposerContact contact) {
+ Context context, @NonNull CallDetailsEntries details, @NonNull DialerContact contact) {
Assert.isNotNull(details);
Assert.isNotNull(contact);
@@ -70,14 +71,20 @@ public class CallDetailsActivity extends AppCompatActivity implements OnMenuItem
}
@Override
+ protected void onResume() {
+ super.onResume();
+ PostCall.promptUserForMessageIfNecessary(this, findViewById(R.id.recycler_view));
+ }
+
+ @Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
onHandleIntent(intent);
}
private void onHandleIntent(Intent intent) {
- CallComposerContact contact =
- ProtoParsers.getTrusted(intent, EXTRA_CONTACT, CallComposerContact.getDefaultInstance());
+ DialerContact contact =
+ ProtoParsers.getTrusted(intent, EXTRA_CONTACT, DialerContact.getDefaultInstance());
entries =
ProtoParsers.getTrusted(
intent, EXTRA_CALL_DETAILS_ENTRIES, CallDetailsEntries.getDefaultInstance())
diff --git a/java/com/android/dialer/calldetails/CallDetailsAdapter.java b/java/com/android/dialer/calldetails/CallDetailsAdapter.java
index 725077965..d2fdbb424 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;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.ViewGroup;
-import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry;
import com.android.dialer.calllogutils.CallTypeHelper;
import com.android.dialer.common.Assert;
+import com.android.dialer.dialercontact.DialerContact;
import java.util.List;
/** Adapter for RecyclerView in {@link CallDetailsActivity}. */
-public class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+final class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final int HEADER_VIEW_TYPE = 1;
private static final int CALL_ENTRY_VIEW_TYPE = 2;
private static final int FOOTER_VIEW_TYPE = 3;
- private final CallComposerContact contact;
+ private final DialerContact contact;
private final List<CallDetailsEntry> callDetailsEntries;
private final CallTypeHelper callTypeHelper;
- public CallDetailsAdapter(
+ CallDetailsAdapter(
Context context,
- @NonNull CallComposerContact contact,
+ @NonNull DialerContact contact,
@NonNull List<CallDetailsEntry> callDetailsEntries) {
this.contact = Assert.isNotNull(contact);
this.callDetailsEntries = callDetailsEntries;
@@ -62,8 +62,8 @@ public class CallDetailsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
return new CallDetailsFooterViewHolder(
inflater.inflate(R.layout.call_details_footer, parent, false));
default:
- Assert.fail("No ViewHolder available for viewType: " + viewType);
- return null;
+ throw Assert.createIllegalStateFailException(
+ "No ViewHolder available for viewType: " + viewType);
}
}
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
index 4d9aacf7b..1ddd2e77e 100644
--- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
@@ -25,11 +25,12 @@ import android.view.View.OnClickListener;
import android.widget.QuickContactBadge;
import android.widget.TextView;
import com.android.contacts.common.ContactPhotoManager;
-import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.common.Assert;
+import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.InteractionEvent;
import com.android.dialer.logging.Logger;
import com.android.dialer.util.DialerUtils;
@@ -43,20 +44,24 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
private final QuickContactBadge contactPhoto;
private final Context context;
- private CallComposerContact contact;
+ private DialerContact contact;
CallDetailsHeaderViewHolder(View container) {
super(container);
context = container.getContext();
callBackButton = container.findViewById(R.id.call_back_button);
- nameView = (TextView) container.findViewById(R.id.contact_name);
- numberView = (TextView) container.findViewById(R.id.phone_number);
- contactPhoto = (QuickContactBadge) container.findViewById(R.id.quick_contact_photo);
+ nameView = container.findViewById(R.id.contact_name);
+ numberView = container.findViewById(R.id.phone_number);
+ contactPhoto = container.findViewById(R.id.quick_contact_photo);
+
callBackButton.setOnClickListener(this);
+ Logger.get(context)
+ .logQuickContactOnTouch(
+ contactPhoto, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CALL_DETAILS, true);
}
/** Populates the contact info fields based on the current contact information. */
- void updateContactInfo(CallComposerContact contact) {
+ void updateContactInfo(DialerContact contact) {
this.contact = contact;
ContactPhotoManager.getInstance(context)
.loadDialerThumbnailOrPhoto(
@@ -98,7 +103,7 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
view.getContext(),
new CallIntentBuilder(contact.getNumber(), CallInitiationType.Type.CALL_DETAILS).build());
} else {
- Assert.fail("View OnClickListener not implemented: " + view);
+ throw Assert.createIllegalStateFailException("View OnClickListener not implemented: " + view);
}
}
}
diff --git a/java/com/android/dialer/calldetails/res/layout/contact_container.xml b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
index bb89b36f2..d8d6e4e70 100644
--- a/java/com/android/dialer/calldetails/res/layout/contact_container.xml
+++ b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
@@ -56,6 +56,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/photo_text_margin"
+ android:ellipsize="end"
+ android:maxLines="1"
style="@style/SecondaryText"/>
</LinearLayout>
@@ -66,8 +68,8 @@
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="?android:attr/selectableItemBackgroundBorderless"
- android:contentDescription="@string/description_call_log_call_action"
+ android:contentDescription="@string/call"
android:scaleType="center"
android:src="@drawable/quantum_ic_call_white_24"
android:tint="@color/secondary_text_color"/>
-</RelativeLayout>
+</RelativeLayout> \ No newline at end of file
diff --git a/java/com/android/dialer/calldetails/res/values-af/strings.xml b/java/com/android/dialer/calldetails/res/values-af/strings.xml
index 86bef4b9a..74fbcd023 100644
--- a/java/com/android/dialer/calldetails/res/values-af/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-af/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Vee uit"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopieer nommer"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Wysig nommer voordat jy bel"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Bel"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Het \'n foto gestuur"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Het \'n foto ontvang"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-am/strings.xml b/java/com/android/dialer/calldetails/res/values-am/strings.xml
index 2a23945fe..4deaceb8c 100644
--- a/java/com/android/dialer/calldetails/res/values-am/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-am/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"ሰርዝ"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"ቁጥር ቅዳ"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"ከመደወል በፊት ቁጥር አርትዕ ያድርጉ"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"ጥሪ"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"አንድ ፎቶ ተልኳል"</string>
<string name="received_a_photo" msgid="3528953225576480505">"አንድ ፎቶ ደርሷል"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ar/strings.xml b/java/com/android/dialer/calldetails/res/values-ar/strings.xml
index 6b0d8a773..11a80e9b3 100644
--- a/java/com/android/dialer/calldetails/res/values-ar/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ar/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"حذف"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"نسخ الرقم"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"تعديل الرقم قبل الاتصال"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"الاتصال"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"تم إرسال صورة"</string>
<string name="received_a_photo" msgid="3528953225576480505">"تم تلقي صورة"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-az/strings.xml b/java/com/android/dialer/calldetails/res/values-az/strings.xml
index 479837c34..6710966a8 100644
--- a/java/com/android/dialer/calldetails/res/values-az/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-az/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Silin"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Nömrəni kopyalayın"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Zəng etmədən öncə nömrəyə düzəliş edin"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Zəng edin"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Foto göndərildi"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Foto alındı"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
index 01141ffa4..a08c4eda1 100644
--- a/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-b+sr+Latn/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Izbriši"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj broj"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Izmenite broj pre poziva"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Pozovi"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Slika je poslata"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Slika je primljena"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-be/strings.xml b/java/com/android/dialer/calldetails/res/values-be/strings.xml
index 683f29bb2..3997fb2f2 100644
--- a/java/com/android/dialer/calldetails/res/values-be/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-be/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Выдаліць"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Скапіраваць нумар"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Рэдагаваць нумар перад выклікам"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Выклік"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Адпраўлена фота"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Атрымана фота"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bg/strings.xml b/java/com/android/dialer/calldetails/res/values-bg/strings.xml
index 9cd70e2f6..2354517db 100644
--- a/java/com/android/dialer/calldetails/res/values-bg/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bg/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Изтриване"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Копиране на номера"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Редактиране на номера преди обаждане"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Обаждане"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Изпратена бе снимка"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Получена бе снимка"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bn/strings.xml b/java/com/android/dialer/calldetails/res/values-bn/strings.xml
index 148f61aba..066715265 100644
--- a/java/com/android/dialer/calldetails/res/values-bn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bn/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"মুছুন"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"নম্বর কপি করুন"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"কল করার আগে নম্বর সম্পাদন করুন"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"কল করুন"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"একটি ফটো পাঠিয়েছেন"</string>
<string name="received_a_photo" msgid="3528953225576480505">"একটি ফটো পেয়েছেন"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-bs/strings.xml b/java/com/android/dialer/calldetails/res/values-bs/strings.xml
index 6f164b228..305a41347 100644
--- a/java/com/android/dialer/calldetails/res/values-bs/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-bs/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Izbriši"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj broj"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Uredi broj prije poziva"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Poziv"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Fotografija poslana"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Fotografija primljena"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ca/strings.xml b/java/com/android/dialer/calldetails/res/values-ca/strings.xml
index 0e33e60e7..6d5092e19 100644
--- a/java/com/android/dialer/calldetails/res/values-ca/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ca/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Suprimeix"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copia el número"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Edita el número abans de trucar"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Truca"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"S\'ha enviat una foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"S\'ha rebut una foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"<xliff:g id="MESSAGE">%1$s</xliff:g>"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-cs/strings.xml b/java/com/android/dialer/calldetails/res/values-cs/strings.xml
index 9747ee139..bec5bab59 100644
--- a/java/com/android/dialer/calldetails/res/values-cs/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-cs/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Smazat"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopírovat číslo"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Před voláním upravit číslo"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Zavolat"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Byla poslána fotka"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Byla přijata fotka"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-da/strings.xml b/java/com/android/dialer/calldetails/res/values-da/strings.xml
index 41bc25254..cfc4ad151 100644
--- a/java/com/android/dialer/calldetails/res/values-da/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-da/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Slet"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummer"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummer før opkald"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring op"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Der blev sendt et billede"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Der blev modtaget et billede"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-de/strings.xml b/java/com/android/dialer/calldetails/res/values-de/strings.xml
index 014666b3f..64439240e 100644
--- a/java/com/android/dialer/calldetails/res/values-de/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-de/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Löschen"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Nummer kopieren"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Nummer vor Anruf bearbeiten"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Anrufen"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Hat ein Foto gesendet"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Hat ein Foto empfangen"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-el/strings.xml b/java/com/android/dialer/calldetails/res/values-el/strings.xml
index 6b51fc71d..04c850e2f 100644
--- a/java/com/android/dialer/calldetails/res/values-el/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-el/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Διαγραφή"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Αντιγραφή αριθμού"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Επεξεργασία αριθμού πριν από την κλήση"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Κλήση"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Έγινε αποστολή φωτογραφίας"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Έγινε λήψη φωτογραφίας"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
index 2d5210e8c..5f4f55910 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rAU/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Delete"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
index 2d5210e8c..5f4f55910 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rGB/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Delete"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml b/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
index 2d5210e8c..5f4f55910 100644
--- a/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-en-rIN/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Delete"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copy number"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Edit number before call"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Call"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Sent a photo"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Received a photo"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml b/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
index d9db2825c..898653431 100644
--- a/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-es-rUS/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Borrar"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de llamar"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Llamar"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Enviaste una foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Recibiste una foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-es/strings.xml b/java/com/android/dialer/calldetails/res/values-es/strings.xml
index e72e898b4..ad581b4f6 100644
--- a/java/com/android/dialer/calldetails/res/values-es/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-es/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Eliminar"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de llamar"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Llamar"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Se ha enviado una foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Se ha recibido una foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-et/strings.xml b/java/com/android/dialer/calldetails/res/values-et/strings.xml
index 496459d6b..9190b2831 100644
--- a/java/com/android/dialer/calldetails/res/values-et/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-et/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Kustuta"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopeeri number"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Muuda numbrit enne helistamist"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Kõne"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Saatis foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Sai foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-eu/strings.xml b/java/com/android/dialer/calldetails/res/values-eu/strings.xml
index 913082fb8..a8c48cf66 100644
--- a/java/com/android/dialer/calldetails/res/values-eu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-eu/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Ezabatu"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiatu zenbakia"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Editatu zenbakia deitu aurretik"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Deia"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Argazki bat bidali duzu"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Argazki bat jaso duzu"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fa/strings.xml b/java/com/android/dialer/calldetails/res/values-fa/strings.xml
index cad85a265..d02591be9 100644
--- a/java/com/android/dialer/calldetails/res/values-fa/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fa/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"حذف"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"کپی کردن شماره"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"ویرایش شماره قبل از تماس"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"تماس"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"عکسی ارسال کرد"</string>
<string name="received_a_photo" msgid="3528953225576480505">"عکسی دریافت کرد"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fi/strings.xml b/java/com/android/dialer/calldetails/res/values-fi/strings.xml
index c16110d58..3b409edea 100644
--- a/java/com/android/dialer/calldetails/res/values-fi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fi/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Poista"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopioi numero"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Muokkaa numeroa ennen puhelua"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Soita"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Lähetetty kuva"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Vastaanotettu kuva"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml b/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
index 676861f3f..7b88bddcd 100644
--- a/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fr-rCA/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Supprimer"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copier le numéro"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Modifier le numéro avant de passer l\'appel"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Appeler"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Photo envoyée"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Photo reçue"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"« <xliff:g id="MESSAGE">%1$s</xliff:g> »"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-fr/strings.xml b/java/com/android/dialer/calldetails/res/values-fr/strings.xml
index 606cb1095..8319a2c9e 100644
--- a/java/com/android/dialer/calldetails/res/values-fr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-fr/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Supprimer"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copier le numéro"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Modifier le numéro avant d\'appeler"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Appeler"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Envoi d\'une photo"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Réception d\'une photo"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-gl/strings.xml b/java/com/android/dialer/calldetails/res/values-gl/strings.xml
index aa5ff14dd..f7aa16660 100644
--- a/java/com/android/dialer/calldetails/res/values-gl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-gl/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Eliminar"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de chamar"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Chamar"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Enviouse unha foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Recibiuse unha foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-gu/strings.xml b/java/com/android/dialer/calldetails/res/values-gu/strings.xml
index ccb8755b3..03e402e00 100644
--- a/java/com/android/dialer/calldetails/res/values-gu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-gu/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"કાઢી નાખો"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"નંબર કૉપિ કરો"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"કૉલ કરતાં પહેલાં નંબર સંપાદિત કરો"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"કૉલ કરો"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"એક ફોટો મોકલ્યો"</string>
<string name="received_a_photo" msgid="3528953225576480505">"એક ફોટો પ્રાપ્ત કર્યો"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hi/strings.xml b/java/com/android/dialer/calldetails/res/values-hi/strings.xml
index 517fbe52d..3e46920fb 100644
--- a/java/com/android/dialer/calldetails/res/values-hi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hi/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"हटाएं"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"नंबर कॉपी करें"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"कॉल करने से पहले नंबर संपादित करें"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"कॉल करें"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"फ़ोटो भेजी गई"</string>
<string name="received_a_photo" msgid="3528953225576480505">"फ़ोटो मिली"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hr/strings.xml b/java/com/android/dialer/calldetails/res/values-hr/strings.xml
index 687a65e2b..c1cc36098 100644
--- a/java/com/android/dialer/calldetails/res/values-hr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hr/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Brisanje"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiranje broja"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Uređivanje broja prije poziva"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Poziv"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Šalje fotografiju"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Prima fotografiju"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hu/strings.xml b/java/com/android/dialer/calldetails/res/values-hu/strings.xml
index 66863e87d..298c10e53 100644
--- a/java/com/android/dialer/calldetails/res/values-hu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hu/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Törlés"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Szám másolása"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Szám szerkesztése hívás előtt"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefonhívás"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Küldött egy fotót"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Kapott egy fotót"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-hy/strings.xml b/java/com/android/dialer/calldetails/res/values-hy/strings.xml
index a1e84e955..ab44622d2 100644
--- a/java/com/android/dialer/calldetails/res/values-hy/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-hy/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Ջնջել"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Պատճենել համարը"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Փոփոխել համարը զանգելուց առաջ"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Զանգ"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Ուղարկվել է լուսանկար"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Ստացվել է լուսանկար"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-in/strings.xml b/java/com/android/dialer/calldetails/res/values-in/strings.xml
index ba58ba01c..68ced556e 100644
--- a/java/com/android/dialer/calldetails/res/values-in/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-in/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Hapus"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Salin nomor"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Edit nomor sebelum menelepon"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Telepon"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Mengirim foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Menerima foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-is/strings.xml b/java/com/android/dialer/calldetails/res/values-is/strings.xml
index 0770814df..667ebd62a 100644
--- a/java/com/android/dialer/calldetails/res/values-is/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-is/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Eyða"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Afrita númer"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Breyta númeri áður en hringt er"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Hringja"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Sendi mynd"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Tók á móti mynd"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-it/strings.xml b/java/com/android/dialer/calldetails/res/values-it/strings.xml
index 97af25168..4f159d574 100644
--- a/java/com/android/dialer/calldetails/res/values-it/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-it/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Elimina"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copia numero"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Modifica numero prima di chiamare"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Chiama"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Foto inviata"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Foto ricevuta"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-iw/strings.xml b/java/com/android/dialer/calldetails/res/values-iw/strings.xml
index 329eded62..87c6fed79 100644
--- a/java/com/android/dialer/calldetails/res/values-iw/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-iw/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"מחק"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"העתק את המספר"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"ערוך את המספר לפני השיחה"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"התקשר"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"נשלחה תמונה"</string>
<string name="received_a_photo" msgid="3528953225576480505">"התקבלה תמונה"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ja/strings.xml b/java/com/android/dialer/calldetails/res/values-ja/strings.xml
index 7aef345fd..d3a15d420 100644
--- a/java/com/android/dialer/calldetails/res/values-ja/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ja/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"削除"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"電話番号をコピー"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"発信前に電話番号を編集"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"発信"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"写真を送信しました"</string>
<string name="received_a_photo" msgid="3528953225576480505">"写真を受信しました"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ka/strings.xml b/java/com/android/dialer/calldetails/res/values-ka/strings.xml
index 1cd7bc219..66f19282d 100644
--- a/java/com/android/dialer/calldetails/res/values-ka/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ka/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"წაშლა"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"ნომრის კოპირება"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"ნომრის რედაქტირება დარეკვამდე"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"დარეკვა"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ფოტო გაიგზავნა"</string>
<string name="received_a_photo" msgid="3528953225576480505">"მიღებულია ფოტო"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-kk/strings.xml b/java/com/android/dialer/calldetails/res/values-kk/strings.xml
index 1923cf79b..c3903e158 100644
--- a/java/com/android/dialer/calldetails/res/values-kk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-kk/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Жою"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Нөмірді көшіру"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Нөмірді қоңырау шалуға дейін өзгерту"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Қоңырау шалу"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Сурет жіберілді"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Сурет қабылданды"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-km/strings.xml b/java/com/android/dialer/calldetails/res/values-km/strings.xml
index e0472796f..240e28ab7 100644
--- a/java/com/android/dialer/calldetails/res/values-km/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-km/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"លុប"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"ថតចម្លងលេខទូរសព្ទ"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"កែ​លេខ​ មុន​ពេល​ហៅទូរសព្ទ"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"ហៅទូរសព្ទ"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"បានផ្ញើរូបថត"</string>
<string name="received_a_photo" msgid="3528953225576480505">"បាន​ទទួល​រូបថត"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-kn/strings.xml b/java/com/android/dialer/calldetails/res/values-kn/strings.xml
index 66c0d6349..a833ffc95 100644
--- a/java/com/android/dialer/calldetails/res/values-kn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-kn/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"ಅಳಿಸಿ"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"ಸಂಖ್ಯೆಯನ್ನು ನಕಲಿಸಿ"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಎಡಿಟ್ ಮಾಡಿ"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"ಕರೆಮಾಡಿ"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ಫೋಟೋ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ಫೋಟೋ ಸ್ವೀಕರಿಸಲಾಗಿದೆ"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ko/strings.xml b/java/com/android/dialer/calldetails/res/values-ko/strings.xml
index 35c503858..700c3603d 100644
--- a/java/com/android/dialer/calldetails/res/values-ko/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ko/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"삭제"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"전화번호 복사"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"통화하기 전에 번호 수정"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"전화걸기"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"사진 전송됨"</string>
<string name="received_a_photo" msgid="3528953225576480505">"사진 수신됨"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\'<xliff:g id="MESSAGE">%1$s</xliff:g>\'"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ky/strings.xml b/java/com/android/dialer/calldetails/res/values-ky/strings.xml
index fe37b33bd..08546c8ec 100644
--- a/java/com/android/dialer/calldetails/res/values-ky/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ky/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Жок кылуу"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Номерди көчүрүү"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Чалуудан мурун номерди түзөтүү"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Чалуу"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Сүрөт жөнөтүлдү"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Сүрөт алынды"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lo/strings.xml b/java/com/android/dialer/calldetails/res/values-lo/strings.xml
index 85b636acd..8f099e827 100644
--- a/java/com/android/dialer/calldetails/res/values-lo/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lo/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"​ລຶບ"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"ສຳເນົາເບີໂທ"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"ແກ້ໄຂເບີກ່ອນໂທ"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"ໂທ"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ສົ່ງຮູບພາບ"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ໄດ້ຮັບຮູບພາບແລ້ວ"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lt/strings.xml b/java/com/android/dialer/calldetails/res/values-lt/strings.xml
index 9c8ad7b7f..62d89f5b9 100644
--- a/java/com/android/dialer/calldetails/res/values-lt/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lt/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Ištrinti"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopijuoti numerį"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Redaguoti numerį prieš skambinant"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Skambinti"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Išsiuntė nuotrauką"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Gavo nuotrauką"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-lv/strings.xml b/java/com/android/dialer/calldetails/res/values-lv/strings.xml
index d8783935b..3625649ee 100644
--- a/java/com/android/dialer/calldetails/res/values-lv/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-lv/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Dzēst"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopēt numuru"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Rediģēt numuru pirms zvanīšanas"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Zvanīt"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Nosūtīja fotoattēlu"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Saņēma fotoattēlu"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mk/strings.xml b/java/com/android/dialer/calldetails/res/values-mk/strings.xml
index 9388ae070..6d1fd710f 100644
--- a/java/com/android/dialer/calldetails/res/values-mk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mk/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Избриши"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Копирај го бројот"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Измени го бројот пред повикот"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Повикај"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Испрати фотографија"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Прими фотографија"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ml/strings.xml b/java/com/android/dialer/calldetails/res/values-ml/strings.xml
index d29691159..fbafb88ea 100644
--- a/java/com/android/dialer/calldetails/res/values-ml/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ml/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"ഇല്ലാതാക്കുക"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"നമ്പർ പകർത്തുക"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"കോൾ ചെയ്യുന്നതിന് മുമ്പായി നമ്പർ എഡിറ്റുചെയ്യുക"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"കോള്‍ ചെയ്യുക"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ഒരു ഫോട്ടോ അയച്ചു"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ഒരു ഫോട്ടോ ലഭിച്ചു"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mn/strings.xml b/java/com/android/dialer/calldetails/res/values-mn/strings.xml
index cb264e016..10b5d967a 100644
--- a/java/com/android/dialer/calldetails/res/values-mn/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mn/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Устгах"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Дугаар хуулах"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Залгахын өмнө дугаар засах"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Залгах"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Зураг илгээсэн"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Зураг хүлээн авсан"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-mr/strings.xml b/java/com/android/dialer/calldetails/res/values-mr/strings.xml
index 5c31e361e..5644664f6 100644
--- a/java/com/android/dialer/calldetails/res/values-mr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-mr/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"हटवा"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"नंबर कॉपी करा"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"कॉल करण्यापूर्वी नंबर संपादित करा"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"कॉल करा"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"एक फोटो पाठविला"</string>
<string name="received_a_photo" msgid="3528953225576480505">"एक फोटो प्राप्त झाला"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ms/strings.xml b/java/com/android/dialer/calldetails/res/values-ms/strings.xml
index da17d6edb..157198dfc 100644
--- a/java/com/android/dialer/calldetails/res/values-ms/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ms/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Padam"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Salin nombor"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Edit nombor sebelum panggilan"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Panggil"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Menghantar foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Foto diterima"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-my/strings.xml b/java/com/android/dialer/calldetails/res/values-my/strings.xml
index 75508d8d4..bf3f90b60 100644
--- a/java/com/android/dialer/calldetails/res/values-my/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-my/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"ဖျက်ရန်"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"နံပါတ်ကိုကူးယူရန်"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"မခေါ်ဆိုမီ နံပါတ်ကိုပြင်ဆင်ရန်"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"ခေါ်ဆိုရန်"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ဓာတ်ပုံ ပို့လိုက်သည်"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ဓာတ်ပုံ လက်ခံရရှိသည်"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-nb/strings.xml b/java/com/android/dialer/calldetails/res/values-nb/strings.xml
index 022025fa3..609c8afcf 100644
--- a/java/com/android/dialer/calldetails/res/values-nb/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-nb/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Slett"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummeret"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummeret før du ringer"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Et bilde ble sendt"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Et bilde ble mottatt"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ne/strings.xml b/java/com/android/dialer/calldetails/res/values-ne/strings.xml
index 8fe355ba6..6b609670c 100644
--- a/java/com/android/dialer/calldetails/res/values-ne/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ne/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"मेट्नुहोस्"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"नम्बर प्रतिलिपि गर्नुहोस्"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"कल गर्नु अघि नम्बर सम्पादन गर्नुहोस्"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"कल"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"एउटा तस्बिर पठाइयो"</string>
<string name="received_a_photo" msgid="3528953225576480505">"एउटा तस्बिर प्राप्त भयो"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-nl/strings.xml b/java/com/android/dialer/calldetails/res/values-nl/strings.xml
index 71657b813..f5efb1a43 100644
--- a/java/com/android/dialer/calldetails/res/values-nl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-nl/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Verwijderen"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Nummer kopiëren"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Nummer bewerken vóór bellen"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Bellen"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Foto verzonden"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Foto ontvangen"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\'<xliff:g id="MESSAGE">%1$s</xliff:g>\'"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-no/strings.xml b/java/com/android/dialer/calldetails/res/values-no/strings.xml
index 022025fa3..609c8afcf 100644
--- a/java/com/android/dialer/calldetails/res/values-no/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-no/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Slett"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiér nummeret"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Rediger nummeret før du ringer"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Et bilde ble sendt"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Et bilde ble mottatt"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"«<xliff:g id="MESSAGE">%1$s</xliff:g>»"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pa/strings.xml b/java/com/android/dialer/calldetails/res/values-pa/strings.xml
index d4f175943..8a9ec1f69 100644
--- a/java/com/android/dialer/calldetails/res/values-pa/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pa/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"ਮਿਟਾਓ"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"ਨੰਬਰ ਕਾਪੀ ਕਰੋ"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਨੰਬਰ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"ਕਾਲ ਕਰੋ"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ਇੱਕ ਫ਼ੋਟੋ ਭੇਜੀ ਗਈ"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ਇੱਕ ਫ਼ੋਟੋ ਪ੍ਰਾਪਤ ਹੋਈ"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pl/strings.xml b/java/com/android/dialer/calldetails/res/values-pl/strings.xml
index 96446005d..1a342b0ce 100644
--- a/java/com/android/dialer/calldetails/res/values-pl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pl/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Usuń"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiuj numer"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Edytuj numer, zanim zadzwonisz"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Zadzwoń"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Wysłano zdjęcie"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Odebrano zdjęcie"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml b/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
index 467973d55..7abc8be39 100644
--- a/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt-rBR/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Excluir"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de ligar"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Ligar"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml b/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
index cfbbc0240..5e6dae83f 100644
--- a/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt-rPT/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Eliminar"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Editar o número antes de efetuar a chamada"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefonar"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-pt/strings.xml b/java/com/android/dialer/calldetails/res/values-pt/strings.xml
index 467973d55..7abc8be39 100644
--- a/java/com/android/dialer/calldetails/res/values-pt/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-pt/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Excluir"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copiar número"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Editar número antes de ligar"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Ligar"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Enviou uma foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Recebeu uma foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ro/strings.xml b/java/com/android/dialer/calldetails/res/values-ro/strings.xml
index e9281ae66..3a6447b64 100644
--- a/java/com/android/dialer/calldetails/res/values-ro/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ro/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Ștergeți"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Copiați numărul"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Modificați numărul înainte de apelare"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Apelați"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"A fost trimisă o fotografie."</string>
<string name="received_a_photo" msgid="3528953225576480505">"A fost primită o fotografie."</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ru/strings.xml b/java/com/android/dialer/calldetails/res/values-ru/strings.xml
index bf981e293..b071dc68d 100644
--- a/java/com/android/dialer/calldetails/res/values-ru/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ru/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Удалить"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Скопировать номер"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Изменить номер перед вызовом"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Позвонить"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Отправлена фотография"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Получена фотография"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-si/strings.xml b/java/com/android/dialer/calldetails/res/values-si/strings.xml
index 5fdca0d52..999183b20 100644
--- a/java/com/android/dialer/calldetails/res/values-si/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-si/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"මකන්න"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"අංකය පිටපත් කරන්න"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"ඇමතුමට පෙර අංකය සංස්කරණය කරන්න"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"අමතන්න"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ඡායාරූපයක් යැවිණි"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ඡායාරූපයක් ලැබිණි"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sk/strings.xml b/java/com/android/dialer/calldetails/res/values-sk/strings.xml
index db0478713..57b90cf8d 100644
--- a/java/com/android/dialer/calldetails/res/values-sk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sk/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Odstrániť"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopírovať číslo"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Pred volaním upraviť číslo"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Volať"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Bola odoslaná fotka"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Bola prijatá fotka"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sl/strings.xml b/java/com/android/dialer/calldetails/res/values-sl/strings.xml
index 98975f406..83ffcbb96 100644
--- a/java/com/android/dialer/calldetails/res/values-sl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sl/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Izbriši"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiraj številko"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Pred klicanjem uredi številko"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Pokliči"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Poslana fotografija"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Prejeta fotografija"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"»<xliff:g id="MESSAGE">%1$s</xliff:g>«"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sq/strings.xml b/java/com/android/dialer/calldetails/res/values-sq/strings.xml
index dd9915da5..d05770fb6 100644
--- a/java/com/android/dialer/calldetails/res/values-sq/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sq/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Fshi"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopjo numrin"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Redakto numrin para telefonatës"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefono"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"U dërgua një fotografi"</string>
<string name="received_a_photo" msgid="3528953225576480505">"U mor një fotografi"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sr/strings.xml b/java/com/android/dialer/calldetails/res/values-sr/strings.xml
index 7f4005d78..a1294df1a 100644
--- a/java/com/android/dialer/calldetails/res/values-sr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sr/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Избриши"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Копирај број"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Измените број пре позива"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Позови"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Слика је послата"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Слика је примљена"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"„<xliff:g id="MESSAGE">%1$s</xliff:g>“"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sv/strings.xml b/java/com/android/dialer/calldetails/res/values-sv/strings.xml
index 3967b4ff3..9b2e25e44 100644
--- a/java/com/android/dialer/calldetails/res/values-sv/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sv/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Radera"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopiera nummer"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Redigera nummer före samtal"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Ring"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Skickade ett foto"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Tog emot ett foto"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"<xliff:g id="MESSAGE">%1$s</xliff:g>"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-sw/strings.xml b/java/com/android/dialer/calldetails/res/values-sw/strings.xml
index e5df8230a..b7673372f 100644
--- a/java/com/android/dialer/calldetails/res/values-sw/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-sw/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Futa"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Nakili nambari"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Hariri nambari kabla ya kupiga"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Piga simu"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Picha imetumwa"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Picha imepokelewa"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ta/strings.xml b/java/com/android/dialer/calldetails/res/values-ta/strings.xml
index 840ad8790..51ff04f2c 100644
--- a/java/com/android/dialer/calldetails/res/values-ta/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ta/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"நீக்கு"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"எண்ணை நகலெடு"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"அழைப்பதற்கு முன் எண்ணைத் திருத்து"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"அழை"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"படம் அனுப்பப்பட்டது"</string>
<string name="received_a_photo" msgid="3528953225576480505">"படம் பெறப்பட்டது"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-te/strings.xml b/java/com/android/dialer/calldetails/res/values-te/strings.xml
index 3054444ac..1d44e5514 100644
--- a/java/com/android/dialer/calldetails/res/values-te/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-te/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"తొలగించు"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"నంబర్‌ను కాపీ చేయి"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"కాల్ చేసే ముందు నంబర్‌ను సవరించు"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"కాల్ చేయి"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ఫోటో పంపబడింది"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ఫోటో స్వీకరించబడింది"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-th/strings.xml b/java/com/android/dialer/calldetails/res/values-th/strings.xml
index c565ebadf..3fe88f950 100644
--- a/java/com/android/dialer/calldetails/res/values-th/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-th/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"ลบ"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"คัดลอกหมายเลข"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"แก้ไขหมายเลขก่อนโทร"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"โทร"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ส่งรูปภาพแล้ว"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ได้รับรูปภาพแล้ว"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-tl/strings.xml b/java/com/android/dialer/calldetails/res/values-tl/strings.xml
index 81c148e6b..91fb3bec4 100644
--- a/java/com/android/dialer/calldetails/res/values-tl/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-tl/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"I-delete"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopyahin ang numero"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"I-edit ang numero bago tumawag"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Tumawag"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Nagpadala ng larawan"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Nakatanggap ng larawan"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-tr/strings.xml b/java/com/android/dialer/calldetails/res/values-tr/strings.xml
index ade401843..f84d0b383 100644
--- a/java/com/android/dialer/calldetails/res/values-tr/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-tr/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Sil"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Numarayı kopyala"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Telefon etmeden önce numarayı düzenleyin"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Telefon eder"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Bir fotoğraf gönderildi"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Bir fotoğraf alındı"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-uk/strings.xml b/java/com/android/dialer/calldetails/res/values-uk/strings.xml
index 6538d664d..bf6e0acc1 100644
--- a/java/com/android/dialer/calldetails/res/values-uk/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-uk/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Видалити"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Копіювати номер"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Редагувати номер перед дзвінком"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Виклик"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Надіслано фотографію"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Отримано фотографію"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-ur/strings.xml b/java/com/android/dialer/calldetails/res/values-ur/strings.xml
index 90c3a590a..5a22869dc 100644
--- a/java/com/android/dialer/calldetails/res/values-ur/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-ur/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"حذف کریں"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"نمبر کاپی کریں"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"کال کرنے سے پہلے نمبر میں ترمیم کریں"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"کال"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"ایک تصویر بھیجی"</string>
<string name="received_a_photo" msgid="3528953225576480505">"ایک تصویر موصول ہوئی"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-uz/strings.xml b/java/com/android/dialer/calldetails/res/values-uz/strings.xml
index 7b443ca2e..890b7ae59 100644
--- a/java/com/android/dialer/calldetails/res/values-uz/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-uz/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"O‘chirib tashlash"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Raqamni nusxalash"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Qo‘ng‘iroq qilishdan oldin raqamni tahrirlash"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Qo‘ng‘iroq qilish"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Rasm yuborildi"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Rasm qabul qilindi"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-vi/strings.xml b/java/com/android/dialer/calldetails/res/values-vi/strings.xml
index 7a950216d..b58963293 100644
--- a/java/com/android/dialer/calldetails/res/values-vi/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-vi/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Xóa"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Sao chép số"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Chỉnh sửa số trước khi gọi"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Gọi"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Đã gửi một ảnh"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Đã nhận một ảnh"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
index aad695a73..7b8b9723c 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rCN/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"删除"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"复制号码"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"拨打电话之前修改号码"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"拨打电话"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"发送了一张照片"</string>
<string name="received_a_photo" msgid="3528953225576480505">"收到了一张照片"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"“<xliff:g id="MESSAGE">%1$s</xliff:g>”"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
index eb5b606b7..87710986a 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rHK/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"刪除"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"複製號碼"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"在撥打前編輯號碼"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"通話"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"已傳送相片"</string>
<string name="received_a_photo" msgid="3528953225576480505">"已收到相片"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml b/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
index fd426c0fa..73aba80c6 100644
--- a/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zh-rTW/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"刪除"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"複製號碼"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"撥打電話前編輯號碼"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"撥號"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"傳送了 1 張相片"</string>
<string name="received_a_photo" msgid="3528953225576480505">"收到了 1 張相片"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"「<xliff:g id="MESSAGE">%1$s</xliff:g>」"</string>
diff --git a/java/com/android/dialer/calldetails/res/values-zu/strings.xml b/java/com/android/dialer/calldetails/res/values-zu/strings.xml
index d41d1f5cb..94040ce2b 100644
--- a/java/com/android/dialer/calldetails/res/values-zu/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values-zu/strings.xml
@@ -21,7 +21,6 @@
<string name="delete" msgid="2141020674108406737">"Susa"</string>
<string name="call_details_copy_number" msgid="4265479408878990796">"Kopisha inombolo"</string>
<string name="call_details_edit_number" msgid="8718476514903513624">"Hlela inombolo ngaphambi kokushaya ucingo"</string>
- <string name="description_call_log_call_action" msgid="1421313064764221900">"Shaya"</string>
<string name="sent_a_photo" msgid="3978670717462979502">"Uthumele isithombe"</string>
<string name="received_a_photo" msgid="3528953225576480505">"Uthole isithombe"</string>
<string name="message_in_quotes" msgid="3270574830115828365">"\"<xliff:g id="MESSAGE">%1$s</xliff:g>\""</string>
diff --git a/java/com/android/dialer/calldetails/res/values/dimens.xml b/java/com/android/dialer/calldetails/res/values/dimens.xml
index f85d02f83..91bf70e88 100644
--- a/java/com/android/dialer/calldetails/res/values/dimens.xml
+++ b/java/com/android/dialer/calldetails/res/values/dimens.xml
@@ -15,8 +15,6 @@
~ limitations under the License
-->
<resources>
- <dimen name="call_details_primary_text_size">16sp</dimen>
- <dimen name="call_details_secondary_text_size">14sp</dimen>
<dimen name="call_details_top_margin">6dp</dimen>
<!-- contact container -->
diff --git a/java/com/android/dialer/calldetails/res/values/strings.xml b/java/com/android/dialer/calldetails/res/values/strings.xml
index 4471605f6..6b3b17962 100644
--- a/java/com/android/dialer/calldetails/res/values/strings.xml
+++ b/java/com/android/dialer/calldetails/res/values/strings.xml
@@ -27,10 +27,6 @@
<!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
<string name="call_details_edit_number">Edit number before call</string>
- <!-- String describing the phone icon on a call log list item. When tapped, it will place a
- call to the number represented by that call log entry. [CHAR LIMIT=NONE]-->
- <string name="description_call_log_call_action">Call</string>
-
<!-- String shown when the call details show a image that was sent -->
<string name="sent_a_photo">Sent a photo</string>
diff --git a/java/com/android/dialer/calldetails/res/values/styles.xml b/java/com/android/dialer/calldetails/res/values/styles.xml
index 4fffe1afb..1a2b52994 100644
--- a/java/com/android/dialer/calldetails/res/values/styles.xml
+++ b/java/com/android/dialer/calldetails/res/values/styles.xml
@@ -15,24 +15,6 @@
~ limitations under the License
-->
<resources>
- <style name="PrimaryText">
- <item name="android:textColor">#DE000000</item>
- <item name="android:textSize">@dimen/call_details_primary_text_size</item>
- <item name="android:maxLines">1</item>
- </style>
-
- <style name="SecondaryText">
- <item name="android:textColor">#8A000000</item>
- <item name="android:textSize">@dimen/call_details_secondary_text_size</item>
- <item name="android:maxLines">1</item>
- </style>
-
- <style name="ECText">
- <item name="android:textColor">#8A000000</item>
- <item name="android:textSize">@dimen/call_details_ec_text_size</item>
- <item name="android:maxLines">1</item>
- </style>
-
<style name="CallDetailsActionItemStyle">
<item name="android:foreground">?android:attr/selectableItemBackground</item>
<item name="android:clickable">true</item>
diff --git a/java/com/android/dialer/callintent/call_specific_app_data.proto b/java/com/android/dialer/callintent/call_specific_app_data.proto
index 20ffc1ff4..c62006dfc 100644
--- a/java/com/android/dialer/callintent/call_specific_app_data.proto
+++ b/java/com/android/dialer/callintent/call_specific_app_data.proto
@@ -7,6 +7,7 @@ option optimize_for = LITE_RUNTIME;
package com.android.dialer.callintent;
import "java/com/android/dialer/callintent/call_initiation_type.proto";
+import "java/com/android/dialer/callintent/speed_dial_contact_type.proto";
// Miscellaneous data that's included in a new outgoing call initiated by
// Dialer. The system will pass this data to the InCallUi which can use it
@@ -17,4 +18,7 @@ message CallSpecificAppData {
optional int32 position_of_selected_search_result = 2;
optional int32 characters_in_search_string = 3;
+
+ repeated SpeedDialContactType.Type speed_dial_contact_type = 4;
+ optional int32 speed_dial_contact_position = 5;
}
diff --git a/java/com/android/dialer/callintent/speed_dial_contact_type.proto b/java/com/android/dialer/callintent/speed_dial_contact_type.proto
new file mode 100644
index 000000000..d352f458b
--- /dev/null
+++ b/java/com/android/dialer/callintent/speed_dial_contact_type.proto
@@ -0,0 +1,18 @@
+syntax = "proto2";
+
+option java_package = "com.android.dialer.callintent";
+option java_multiple_files = true;
+
+package com.android.dialer.callintent;
+option optimize_for = LITE_RUNTIME;
+
+// The type of speed call contact (favorites). Applies to initiation type
+// SPEED_DIAL only.
+message SpeedDialContactType {
+ enum Type {
+ UNDEFINED = 0;
+ PINNED_CONTACT = 1;
+ STARRED_CONTACT = 2;
+ FREQUENT_CONTACT = 3;
+ }
+}
diff --git a/java/com/android/dialer/calllog/CallLogComponent.java b/java/com/android/dialer/calllog/CallLogComponent.java
index 5cdd2b4d0..c7db2a1b8 100644
--- a/java/com/android/dialer/calllog/CallLogComponent.java
+++ b/java/com/android/dialer/calllog/CallLogComponent.java
@@ -25,6 +25,8 @@ public abstract class CallLogComponent {
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 508413b14..55ef15b47 100644
--- a/java/com/android/dialer/calllog/CallLogFramework.java
+++ b/java/com/android/dialer/calllog/CallLogFramework.java
@@ -22,6 +22,7 @@ import android.preference.PreferenceManager;
import android.support.annotation.MainThread;
import android.support.annotation.Nullable;
import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.DataSources;
import com.android.dialer.common.Assert;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
@@ -38,7 +39,6 @@ import javax.inject.Singleton;
public final class CallLogFramework implements CallLogDataSource.ContentObserverCallbacks {
static final String PREF_FORCE_REBUILD = "callLogFrameworkForceRebuild";
- static final String PREF_LAST_REBUILD_TIMESTAMP_MILLIS = "callLogFrameworkLastRebuild";
private final DataSources dataSources;
@@ -58,6 +58,7 @@ public final class CallLogFramework implements CallLogDataSource.ContentObserver
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 d7473a75e..2f2f16d5b 100644
--- a/java/com/android/dialer/calllog/CallLogModule.java
+++ b/java/com/android/dialer/calllog/CallLogModule.java
@@ -17,11 +17,9 @@
package com.android.dialer.calllog;
import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.DataSources;
import com.android.dialer.calllog.datasources.contacts.ContactsDataSource;
import com.android.dialer.calllog.datasources.systemcalllog.SystemCallLogDataSource;
-import com.android.dialer.common.concurrent.DefaultDialerExecutorFactory;
-import com.android.dialer.common.concurrent.DialerExecutorFactory;
-import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import java.util.Arrays;
@@ -32,10 +30,6 @@ import java.util.List;
@Module
public abstract class CallLogModule {
- @Binds
- abstract DialerExecutorFactory bindDialerExecutorFactory(
- DefaultDialerExecutorFactory defaultDialerExecutorFactory);
-
@Provides
static DataSources provideCallLogDataSources(
SystemCallLogDataSource systemCallLogDataSource, ContactsDataSource contactsDataSource) {
diff --git a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
index f9f0c9935..d25ec5e65 100644
--- a/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
+++ b/java/com/android/dialer/calllog/RefreshAnnotatedCallLogWorker.java
@@ -18,14 +18,16 @@ package com.android.dialer.calllog;
import android.annotation.TargetApi;
import android.content.Context;
+import android.content.OperationApplicationException;
import android.content.SharedPreferences;
-import android.database.sqlite.SQLiteDatabase;
import android.os.Build;
+import android.os.RemoteException;
import android.preference.PreferenceManager;
import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.AnnotatedCallLog;
-import com.android.dialer.calllog.database.CallLogMutations;
+import com.android.dialer.calllog.database.CallLogDatabaseComponent;
import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.CallLogMutations;
+import com.android.dialer.calllog.datasources.DataSources;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.DialerExecutor.Worker;
@@ -34,75 +36,65 @@ import javax.inject.Inject;
/**
* Worker which brings the annotated call log up to date, if necessary.
*
- * <p>Accepts a boolean which indicates if the dirty check should be skipped, and returns true if
- * the annotated call log was updated.
+ * <p>Accepts a boolean which indicates if the dirty check should be skipped.
*/
-public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Boolean> {
+public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Void> {
private final Context appContext;
private final DataSources dataSources;
@Inject
- public RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) {
+ RefreshAnnotatedCallLogWorker(Context appContext, DataSources dataSources) {
this.appContext = appContext;
this.dataSources = dataSources;
}
@Override
- public Boolean doInBackground(Boolean skipDirtyCheck) {
- LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackgroundFallible");
+ public Void doInBackground(Boolean skipDirtyCheck)
+ throws RemoteException, OperationApplicationException {
+ LogUtil.enterBlock("RefreshAnnotatedCallLogWorker.doInBackground");
long startTime = System.currentTimeMillis();
- boolean annotatedCallLogUpdated = checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck);
+ checkDirtyAndRebuildIfNecessary(appContext, skipDirtyCheck);
LogUtil.i(
- "RefreshAnnotatedCallLogWorker.doInBackgroundFallible",
- "updated? %s, took %dms",
- annotatedCallLogUpdated,
+ "RefreshAnnotatedCallLogWorker.doInBackground",
+ "took %dms",
System.currentTimeMillis() - startTime);
- return annotatedCallLogUpdated;
+ return null;
}
@WorkerThread
- private boolean checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck) {
+ private void checkDirtyAndRebuildIfNecessary(Context appContext, boolean skipDirtyCheck)
+ throws RemoteException, OperationApplicationException {
Assert.isWorkerThread();
long startTime = System.currentTimeMillis();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext);
- long lastRebuildTimeMillis =
- sharedPreferences.getLong(CallLogFramework.PREF_LAST_REBUILD_TIMESTAMP_MILLIS, 0);
- if (lastRebuildTimeMillis == 0) {
- LogUtil.i(
- "RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
- "annotated call log has never been built, marking it dirty");
- }
+ // Default to true. If the pref doesn't exist, the annotated call log hasn't been created and
+ // we just skip isDirty checks and force a rebuild.
boolean forceRebuildPrefValue =
- sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, false);
+ sharedPreferences.getBoolean(CallLogFramework.PREF_FORCE_REBUILD, true);
if (forceRebuildPrefValue) {
LogUtil.i(
"RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
- "call log has been marked dirty");
+ "annotated call log has been marked dirty or does not exist");
}
- boolean isDirty =
- lastRebuildTimeMillis == 0
- || skipDirtyCheck
- || forceRebuildPrefValue
- || isDirty(appContext);
+ boolean isDirty = skipDirtyCheck || forceRebuildPrefValue || isDirty(appContext);
+
LogUtil.i(
"RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
"isDirty took: %dms",
System.currentTimeMillis() - startTime);
if (isDirty) {
startTime = System.currentTimeMillis();
- rebuild(appContext, lastRebuildTimeMillis);
+ rebuild(appContext);
LogUtil.i(
"RefreshAnnotatedCallLogWorker.checkDirtyAndRebuildIfNecessary",
"rebuild took: %dms",
System.currentTimeMillis() - startTime);
- return true; // Annotated call log was updated.
}
- return false; // Annotated call log was not updated.
}
@WorkerThread
@@ -129,51 +121,48 @@ public class RefreshAnnotatedCallLogWorker implements Worker<Boolean, Boolean> {
@TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
@WorkerThread
- private void rebuild(Context appContext, long lastRebuildTimeMillis) {
+ private void rebuild(Context appContext) throws RemoteException, OperationApplicationException {
Assert.isWorkerThread();
- // TODO: Start a transaction?
- try (SQLiteDatabase database = AnnotatedCallLog.getWritableDatabase(appContext)) {
+ CallLogMutations mutations = new CallLogMutations();
- CallLogMutations mutations = new CallLogMutations();
+ // System call log data source must go first!
+ CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource();
+ String dataSourceName = getName(systemCallLogDataSource);
+ LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
+ long startTime = System.currentTimeMillis();
+ systemCallLogDataSource.fill(appContext, mutations);
+ LogUtil.i(
+ "RefreshAnnotatedCallLogWorker.rebuild",
+ "%s.fill took: %dms",
+ dataSourceName,
+ System.currentTimeMillis() - startTime);
- // System call log data source must go first!
- CallLogDataSource systemCallLogDataSource = dataSources.getSystemCallLogDataSource();
- String dataSourceName = getName(systemCallLogDataSource);
+ for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) {
+ dataSourceName = getName(dataSource);
LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
- long startTime = System.currentTimeMillis();
- systemCallLogDataSource.fill(appContext, database, lastRebuildTimeMillis, mutations);
+ startTime = System.currentTimeMillis();
+ dataSource.fill(appContext, mutations);
LogUtil.i(
- "RefreshAnnotatedCallLogWorker.rebuild",
+ "CallLogFramework.rebuild",
"%s.fill took: %dms",
dataSourceName,
System.currentTimeMillis() - startTime);
-
- for (CallLogDataSource dataSource : dataSources.getDataSourcesExcludingSystemCallLog()) {
- dataSourceName = getName(dataSource);
- LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "filling %s", dataSourceName);
- startTime = System.currentTimeMillis();
- dataSource.fill(appContext, database, lastRebuildTimeMillis, mutations);
- LogUtil.i(
- "CallLogFramework.rebuild",
- "%s.fill took: %dms",
- dataSourceName,
- System.currentTimeMillis() - startTime);
- }
- LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "applying mutations to database");
- startTime = System.currentTimeMillis();
- mutations.applyToDatabase(database);
- LogUtil.i(
- "RefreshAnnotatedCallLogWorker.rebuild",
- "applyToDatabase took: %dms",
- System.currentTimeMillis() - startTime);
}
+ LogUtil.i("RefreshAnnotatedCallLogWorker.rebuild", "applying mutations to database");
+ startTime = System.currentTimeMillis();
+ CallLogDatabaseComponent.get(appContext)
+ .mutationApplier()
+ .applyToDatabase(mutations, appContext);
+ LogUtil.i(
+ "RefreshAnnotatedCallLogWorker.rebuild",
+ "applyToDatabase took: %dms",
+ System.currentTimeMillis() - startTime);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext);
sharedPreferences
.edit()
.putBoolean(CallLogFramework.PREF_FORCE_REBUILD, false)
- .putLong(CallLogFramework.PREF_LAST_REBUILD_TIMESTAMP_MILLIS, System.currentTimeMillis())
.commit();
}
diff --git a/java/com/android/dialer/calllog/database/AndroidManifest.xml b/java/com/android/dialer/calllog/database/AndroidManifest.xml
new file mode 100644
index 000000000..396a6d9a1
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/AndroidManifest.xml
@@ -0,0 +1,28 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.dialer.calllog.database">
+
+ <application>
+
+ <provider
+ android:authorities="com.android.dialer.annotatedcalllog"
+ android:exported="false"
+ android:multiprocess="false"
+ android:name=".AnnotatedCallLogContentProvider"/>
+
+ </application>
+</manifest>
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLog.java b/java/com/android/dialer/calllog/database/AnnotatedCallLog.java
deleted file mode 100644
index 7dca44a60..000000000
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLog.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.database;
-
-import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
-import android.support.annotation.WorkerThread;
-import com.android.dialer.common.Assert;
-
-/** Static methods and constants for interacting with the annotated call log table. */
-public final class AnnotatedCallLog {
-
- private static final String DATABASE_NAME = "annotated_call_log.db";
-
- public static final String TABLE_NAME = "AnnotatedCallLog";
-
- /** Column names for the annotated call log table. */
- public static final class Columns {
- public static final String ID = "_id";
- public static final String TIMESTAMP = "timestamp";
- public static final String CONTACT_NAME = "contact_name";
- }
-
- private AnnotatedCallLog() {}
-
- @WorkerThread
- public static SQLiteDatabase getWritableDatabase(Context appContext) {
- Assert.isWorkerThread();
-
- return new AnnotatedCallLogDatabaseHelper(appContext, DATABASE_NAME).getWritableDatabase();
- }
-
- @WorkerThread
- public static SQLiteDatabase getReadableDatabase(Context appContext) {
- Assert.isWorkerThread();
-
- return new AnnotatedCallLogDatabaseHelper(appContext, DATABASE_NAME).getReadableDatabase();
- }
-}
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
new file mode 100644
index 000000000..a9c0d36b0
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java
@@ -0,0 +1,310 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.database;
+
+import android.annotation.TargetApi;
+import android.content.ContentProvider;
+import android.content.ContentProviderOperation;
+import android.content.ContentProviderResult;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.OperationApplicationException;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteQueryBuilder;
+import android.net.Uri;
+import android.os.Build;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import java.util.ArrayList;
+
+/** {@link ContentProvider} for the annotated call log. */
+public class AnnotatedCallLogContentProvider extends ContentProvider {
+
+ private static final int ANNOTATED_CALL_LOG_TABLE_CODE = 1;
+ private static final int ANNOTATED_CALL_LOG_TABLE_ID_CODE = 2;
+ private static final int COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE = 3;
+
+ private static final UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
+
+ static {
+ uriMatcher.addURI(
+ AnnotatedCallLogContract.AUTHORITY, AnnotatedCallLog.TABLE, ANNOTATED_CALL_LOG_TABLE_CODE);
+ uriMatcher.addURI(
+ AnnotatedCallLogContract.AUTHORITY,
+ AnnotatedCallLog.TABLE + "/#",
+ ANNOTATED_CALL_LOG_TABLE_ID_CODE);
+ uriMatcher.addURI(
+ AnnotatedCallLogContract.AUTHORITY,
+ CoalescedAnnotatedCallLog.TABLE,
+ COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE);
+ }
+
+ private AnnotatedCallLogDatabaseHelper databaseHelper;
+ private Coalescer coalescer;
+
+ private final ThreadLocal<Boolean> applyingBatch = new ThreadLocal<>();
+
+ /** Ensures that only a single notification is generated from {@link #applyBatch(ArrayList)}. */
+ private boolean isApplyingBatch() {
+ return applyingBatch.get() != null && applyingBatch.get();
+ }
+
+ @Override
+ public boolean onCreate() {
+ databaseHelper = new AnnotatedCallLogDatabaseHelper(getContext());
+ coalescer = CallLogDatabaseComponent.get(getContext()).coalescer();
+ return true;
+ }
+
+ @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+ @Nullable
+ @Override
+ public Cursor query(
+ @NonNull Uri uri,
+ @Nullable String[] projection,
+ @Nullable String selection,
+ @Nullable String[] selectionArgs,
+ @Nullable String sortOrder) {
+ SQLiteDatabase db = databaseHelper.getReadableDatabase();
+ SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
+ queryBuilder.setTables(AnnotatedCallLog.TABLE);
+ int match = uriMatcher.match(uri);
+ switch (match) {
+ case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+ queryBuilder.appendWhere(AnnotatedCallLog._ID + "=" + ContentUris.parseId(uri));
+ // fall through
+ case ANNOTATED_CALL_LOG_TABLE_CODE:
+ Cursor cursor =
+ queryBuilder.query(db, projection, selection, selectionArgs, null, null, sortOrder);
+ if (cursor != null) {
+ cursor.setNotificationUri(
+ getContext().getContentResolver(), AnnotatedCallLog.CONTENT_URI);
+ } else {
+ LogUtil.w("AnnotatedCallLogContentProvider.query", "cursor was null");
+ }
+ return cursor;
+ case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+ Assert.checkArgument(projection == null, "projection not supported for coalesced call log");
+ Assert.checkArgument(selection == null, "selection not supported for coalesced call log");
+ Assert.checkArgument(
+ selectionArgs == null, "selection args not supported for coalesced call log");
+ Assert.checkArgument(sortOrder == null, "sort order not supported for coalesced call log");
+ try (Cursor allAnnotatedCallLogRows =
+ queryBuilder.query(
+ db, null, null, null, null, null, AnnotatedCallLog.TIMESTAMP + " DESC")) {
+ Cursor coalescedRows = coalescer.coalesce(allAnnotatedCallLogRows);
+ coalescedRows.setNotificationUri(
+ getContext().getContentResolver(), CoalescedAnnotatedCallLog.CONTENT_URI);
+ return coalescedRows;
+ }
+ default:
+ throw new IllegalArgumentException("Unknown uri: " + uri);
+ }
+ }
+
+ @Nullable
+ @Override
+ public String getType(@NonNull Uri uri) {
+ return AnnotatedCallLog.CONTENT_ITEM_TYPE;
+ }
+
+ @Nullable
+ @Override
+ public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
+ // Javadoc states values is not nullable, even though it is annotated as such (b/38123194)!
+ Assert.checkArgument(values != null);
+
+ SQLiteDatabase database = databaseHelper.getWritableDatabase();
+ int match = uriMatcher.match(uri);
+ switch (match) {
+ case ANNOTATED_CALL_LOG_TABLE_CODE:
+ Assert.checkArgument(
+ values.get(AnnotatedCallLog._ID) != null, "You must specify an _ID when inserting");
+ break;
+ case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+ Long idFromUri = ContentUris.parseId(uri);
+ Long idFromValues = values.getAsLong(AnnotatedCallLog._ID);
+ Assert.checkArgument(
+ idFromValues == null || idFromValues.equals(idFromUri),
+ "_ID from values %d does not match ID from URI: %s",
+ idFromValues,
+ uri);
+ if (idFromValues == null) {
+ values.put(AnnotatedCallLog._ID, idFromUri);
+ }
+ break;
+ case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+ throw new UnsupportedOperationException("coalesced call log does not support inserting");
+ default:
+ throw new IllegalArgumentException("Unknown uri: " + uri);
+ }
+ long id = database.insert(AnnotatedCallLog.TABLE, null, values);
+ if (id < 0) {
+ LogUtil.w(
+ "AnnotatedCallLogContentProvider.insert",
+ "error inserting row with id: %d",
+ values.get(AnnotatedCallLog._ID));
+ return null;
+ }
+ Uri insertedUri = ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id);
+ if (!isApplyingBatch()) {
+ notifyChange(insertedUri);
+ }
+ return insertedUri;
+ }
+
+ @Override
+ public int delete(
+ @NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
+ SQLiteDatabase database = databaseHelper.getWritableDatabase();
+ final int match = uriMatcher.match(uri);
+ switch (match) {
+ case ANNOTATED_CALL_LOG_TABLE_CODE:
+ break;
+ case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+ Assert.checkArgument(selection == null, "Do not specify selection when deleting by ID");
+ Assert.checkArgument(
+ selectionArgs == null, "Do not specify selection args when deleting by ID");
+ long id = ContentUris.parseId(uri);
+ Assert.checkArgument(id != -1, "error parsing id from uri %s", uri);
+ selection = getSelectionWithId(id);
+ break;
+ case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+ throw new UnsupportedOperationException("coalesced call log does not support deleting");
+ default:
+ throw new IllegalArgumentException("Unknown uri: " + uri);
+ }
+ int rows = database.delete(AnnotatedCallLog.TABLE, selection, selectionArgs);
+ if (rows > 0) {
+ if (!isApplyingBatch()) {
+ notifyChange(uri);
+ }
+ } else {
+ LogUtil.w("AnnotatedCallLogContentProvider.delete", "no rows deleted");
+ }
+ return rows;
+ }
+
+ @Override
+ public int update(
+ @NonNull Uri uri,
+ @Nullable ContentValues values,
+ @Nullable String selection,
+ @Nullable String[] selectionArgs) {
+ // Javadoc states values is not nullable, even though it is annotated as such (b/38123194)!
+ Assert.checkArgument(values != null);
+
+ SQLiteDatabase database = databaseHelper.getWritableDatabase();
+ int match = uriMatcher.match(uri);
+ switch (match) {
+ case ANNOTATED_CALL_LOG_TABLE_CODE:
+ break;
+ case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+ Assert.checkArgument(
+ !values.containsKey(AnnotatedCallLog._ID), "Do not specify _ID when updating by ID");
+ Assert.checkArgument(selection == null, "Do not specify selection when updating by ID");
+ Assert.checkArgument(
+ selectionArgs == null, "Do not specify selection args when updating by ID");
+ selection = getSelectionWithId(ContentUris.parseId(uri));
+ break;
+ case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+ throw new UnsupportedOperationException("coalesced call log does not support updating");
+ default:
+ throw new IllegalArgumentException("Unknown uri: " + uri);
+ }
+ int rows = database.update(AnnotatedCallLog.TABLE, values, selection, selectionArgs);
+ if (rows > 0) {
+ if (!isApplyingBatch()) {
+ notifyChange(uri);
+ }
+ } else {
+ LogUtil.w("AnnotatedCallLogContentProvider.update", "no rows updated");
+ }
+ return rows;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * <p>Note: When applyBatch is used with the AnnotatedCallLog, only a single notification for the
+ * content URI is generated, not individual notifications for each affected URI.
+ */
+ @NonNull
+ @Override
+ public ContentProviderResult[] applyBatch(@NonNull ArrayList<ContentProviderOperation> operations)
+ throws OperationApplicationException {
+ ContentProviderResult[] results = new ContentProviderResult[operations.size()];
+ if (operations.isEmpty()) {
+ return results;
+ }
+
+ SQLiteDatabase database = databaseHelper.getWritableDatabase();
+ try {
+ applyingBatch.set(true);
+ database.beginTransaction();
+ for (int i = 0; i < operations.size(); i++) {
+ ContentProviderOperation operation = operations.get(i);
+ int match = uriMatcher.match(operation.getUri());
+ switch (match) {
+ case ANNOTATED_CALL_LOG_TABLE_CODE:
+ case ANNOTATED_CALL_LOG_TABLE_ID_CODE:
+ // These are allowed values, continue.
+ break;
+ case COALESCED_ANNOTATED_CALL_LOG_TABLE_CODE:
+ throw new UnsupportedOperationException(
+ "coalesced call log does not support applyBatch");
+ default:
+ throw new IllegalArgumentException("Unknown uri: " + operation.getUri());
+ }
+ ContentProviderResult result = operation.apply(this, results, i);
+ if (operations.get(i).isInsert()) {
+ if (result.uri == null) {
+ throw new OperationApplicationException("error inserting row");
+ }
+ } else if (result.count == 0) {
+ throw new OperationApplicationException("error updating or deleting rows");
+ }
+ results[i] = result;
+ }
+ database.setTransactionSuccessful();
+ } finally {
+ applyingBatch.set(false);
+ database.endTransaction();
+ }
+ notifyChange(AnnotatedCallLog.CONTENT_URI);
+ return results;
+ }
+
+ private String getSelectionWithId(long id) {
+ return AnnotatedCallLog._ID + "=" + id;
+ }
+
+ private void notifyChange(Uri uri) {
+ getContext().getContentResolver().notifyChange(uri, null);
+ // Any time the annotated call log changes, we need to also notify observers of the
+ // CoalescedAnnotatedCallLog, since that is just a massaged in-memory view of the real annotated
+ // call log table.
+ getContext().getContentResolver().notifyChange(CoalescedAnnotatedCallLog.CONTENT_URI, null);
+ }
+}
diff --git a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
index 7b28e5505..3cca639ff 100644
--- a/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
+++ b/java/com/android/dialer/calllog/database/AnnotatedCallLogDatabaseHelper.java
@@ -16,28 +16,25 @@
package com.android.dialer.calllog.database;
-import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.CONTACT_NAME;
-import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.ID;
-import static com.android.dialer.calllog.database.AnnotatedCallLog.Columns.TIMESTAMP;
-
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
import com.android.dialer.common.LogUtil;
/** {@link SQLiteOpenHelper} for the AnnotatedCallLog database. */
class AnnotatedCallLogDatabaseHelper extends SQLiteOpenHelper {
- AnnotatedCallLogDatabaseHelper(Context appContext, String databaseName) {
- super(appContext, databaseName, null, 1);
+ AnnotatedCallLogDatabaseHelper(Context appContext) {
+ super(appContext, "annotated_call_log.db", null, 1);
}
private static final String CREATE_SQL =
new StringBuilder()
- .append("create table if not exists " + AnnotatedCallLog.TABLE_NAME + " (")
- .append(ID + " integer primary key, ")
- .append(TIMESTAMP + " integer, ")
- .append(CONTACT_NAME + " string")
+ .append("create table if not exists " + AnnotatedCallLog.TABLE + " (")
+ .append(AnnotatedCallLog._ID + " integer primary key, ")
+ .append(AnnotatedCallLog.TIMESTAMP + " integer, ")
+ .append(AnnotatedCallLog.CONTACT_NAME + " string")
.append(");")
.toString();
diff --git a/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java b/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java
new file mode 100644
index 000000000..ede46911c
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.database;
+
+import android.content.Context;
+import com.android.dialer.inject.HasRootComponent;
+import dagger.Subcomponent;
+
+/** Dagger component for database package. */
+@Subcomponent
+public abstract class CallLogDatabaseComponent {
+
+ public abstract Coalescer coalescer();
+
+ public abstract MutationApplier mutationApplier();
+
+ public static CallLogDatabaseComponent get(Context context) {
+ return ((CallLogDatabaseComponent.HasComponent)
+ ((HasRootComponent) context.getApplicationContext()).component())
+ .callLogDatabaseComponent();
+ }
+
+ /** Used to refer to the root application component. */
+ public interface HasComponent {
+ CallLogDatabaseComponent callLogDatabaseComponent();
+ }
+}
diff --git a/java/com/android/dialer/calllog/database/CallLogMutations.java b/java/com/android/dialer/calllog/database/CallLogMutations.java
deleted file mode 100644
index ec020c6af..000000000
--- a/java/com/android/dialer/calllog/database/CallLogMutations.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.database;
-
-import android.content.ContentValues;
-import android.database.sqlite.SQLiteDatabase;
-import android.support.annotation.WorkerThread;
-import android.util.ArrayMap;
-import android.util.ArraySet;
-import com.android.dialer.common.Assert;
-
-/** A collection of mutations to the annotated call log. */
-public final class CallLogMutations {
-
- private final ArrayMap<Integer, ContentValues> inserts = new ArrayMap<>();
- private final ArrayMap<Integer, ContentValues> updates = new ArrayMap<>();
- private final ArraySet<Integer> deletes = new ArraySet<>();
-
- /** @param contentValues an entire row not including the ID */
- public void insert(int id, ContentValues contentValues) {
- inserts.put(id, contentValues);
- }
-
- /** @param contentValues the specific columns to update, not including the ID. */
- public void update(int id, ContentValues contentValues) {
- // TODO: Consider merging automatically.
- updates.put(id, contentValues);
- }
-
- public void delete(int id) {
- deletes.add(id);
- }
-
- public boolean isEmpty() {
- return inserts.isEmpty() && updates.isEmpty() && deletes.isEmpty();
- }
-
- @WorkerThread
- public void applyToDatabase(SQLiteDatabase writableDatabase) {
- Assert.isWorkerThread();
-
- // TODO: Implementation.
- }
-}
diff --git a/java/com/android/dialer/calllog/database/Coalescer.java b/java/com/android/dialer/calllog/database/Coalescer.java
new file mode 100644
index 000000000..e3dfb7ece
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/Coalescer.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.database;
+
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.DatabaseUtils;
+import android.database.MatrixCursor;
+import android.support.annotation.NonNull;
+import android.support.annotation.WorkerThread;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
+import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.DataSources;
+import com.android.dialer.common.Assert;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import javax.inject.Inject;
+
+/**
+ * Coalesces call log rows by combining some adjacent rows.
+ *
+ * <p>Applies the business which logic which determines which adjacent rows should be coalasced, and
+ * then delegates to each data source to determine how individual columns should be aggregated.
+ */
+public class Coalescer {
+
+ private final DataSources dataSources;
+
+ @Inject
+ Coalescer(DataSources dataSources) {
+ this.dataSources = dataSources;
+ }
+
+ /**
+ * Reads the entire {@link AnnotatedCallLog} database into memory from the provided {@code
+ * allAnnotatedCallLog} parameter and then builds and returns a new {@link MatrixCursor} which is
+ * the result of combining adjacent rows which should be collapsed for display purposes.
+ *
+ * @param allAnnotatedCallLogRowsSortedByTimestampDesc all {@link AnnotatedCallLog} rows, sorted
+ * by timestamp descending
+ * @return a new {@link MatrixCursor} containing the {@link CoalescedAnnotatedCallLog} rows to
+ * display
+ */
+ @WorkerThread
+ @NonNull
+ Cursor coalesce(@NonNull Cursor allAnnotatedCallLogRowsSortedByTimestampDesc) {
+ Assert.isWorkerThread();
+
+ // Note: This method relies on rowsShouldBeCombined to determine which rows should be combined,
+ // but delegates to data sources to actually aggregate column values.
+
+ MatrixCursor allCoalescedRowsMatrixCursor =
+ new MatrixCursor(
+ CoalescedAnnotatedCallLog.ALL_COLUMNS,
+ Assert.isNotNull(allAnnotatedCallLogRowsSortedByTimestampDesc).getCount());
+
+ if (allAnnotatedCallLogRowsSortedByTimestampDesc.moveToFirst()) {
+ int coalescedRowId = 0;
+
+ List<ContentValues> currentRowGroup = new ArrayList<>();
+
+ do {
+ ContentValues currentRow = new ContentValues();
+ DatabaseUtils.cursorRowToContentValues(
+ allAnnotatedCallLogRowsSortedByTimestampDesc, currentRow);
+
+ if (currentRowGroup.isEmpty()) {
+ currentRowGroup.add(currentRow);
+ continue;
+ }
+
+ ContentValues previousRow = currentRowGroup.get(currentRowGroup.size() - 1);
+
+ if (!rowsShouldBeCombined(previousRow, currentRow)) {
+ ContentValues coalescedRow = coalesceRowsForAllDataSources(currentRowGroup);
+ coalescedRow.put(CoalescedAnnotatedCallLog.NUMBER_CALLS, currentRowGroup.size());
+ addContentValuesToMatrixCursor(
+ coalescedRow, allCoalescedRowsMatrixCursor, coalescedRowId++);
+ currentRowGroup.clear();
+ }
+ currentRowGroup.add(currentRow);
+ } while (allAnnotatedCallLogRowsSortedByTimestampDesc.moveToNext());
+
+ // Deal with leftover rows.
+ ContentValues coalescedRow = coalesceRowsForAllDataSources(currentRowGroup);
+ coalescedRow.put(CoalescedAnnotatedCallLog.NUMBER_CALLS, currentRowGroup.size());
+ addContentValuesToMatrixCursor(coalescedRow, allCoalescedRowsMatrixCursor, coalescedRowId);
+ }
+ return allCoalescedRowsMatrixCursor;
+ }
+
+ /**
+ * @param row1 a row from {@link AnnotatedCallLog}
+ * @param row2 a row from {@link AnnotatedCallLog}
+ */
+ private static boolean rowsShouldBeCombined(ContentValues row1, ContentValues row2) {
+ // TODO: Real implementation.
+ return row1.get(AnnotatedCallLog.TIMESTAMP).equals(row2.get(AnnotatedCallLog.TIMESTAMP));
+ }
+
+ /**
+ * Delegates to data sources to aggregate individual columns to create a new coalesced row.
+ *
+ * @param individualRows {@link AnnotatedCallLog} rows sorted by timestamp descending
+ * @return a {@link CoalescedAnnotatedCallLog} row
+ */
+ private ContentValues coalesceRowsForAllDataSources(List<ContentValues> individualRows) {
+ ContentValues coalescedValues = new ContentValues();
+ for (CallLogDataSource dataSource : dataSources.getDataSourcesIncludingSystemCallLog()) {
+ coalescedValues.putAll(dataSource.coalesce(individualRows));
+ }
+ return coalescedValues;
+ }
+
+ /**
+ * @param contentValues a {@link CoalescedAnnotatedCallLog} row
+ * @param matrixCursor represents {@link CoalescedAnnotatedCallLog}
+ */
+ private static void addContentValuesToMatrixCursor(
+ ContentValues contentValues, MatrixCursor matrixCursor, int rowId) {
+ MatrixCursor.RowBuilder rowBuilder = matrixCursor.newRow();
+ rowBuilder.add(CoalescedAnnotatedCallLog._ID, rowId);
+ for (Map.Entry<String, Object> entry : contentValues.valueSet()) {
+ rowBuilder.add(entry.getKey(), entry.getValue());
+ }
+ }
+}
diff --git a/java/com/android/dialer/calllog/database/MutationApplier.java b/java/com/android/dialer/calllog/database/MutationApplier.java
new file mode 100644
index 000000000..21c8a507d
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/MutationApplier.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.database;
+
+import android.content.ContentProviderOperation;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.OperationApplicationException;
+import android.os.RemoteException;
+import android.support.annotation.WorkerThread;
+import android.text.TextUtils;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
+import com.android.dialer.calllog.datasources.CallLogMutations;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Map.Entry;
+import javax.inject.Inject;
+
+/** Applies {@link CallLogMutations} to the annotated call log. */
+public class MutationApplier {
+
+ @Inject
+ MutationApplier() {}
+
+ /** Applies the provided {@link CallLogMutations} to the annotated call log. */
+ @WorkerThread
+ public void applyToDatabase(CallLogMutations mutations, Context appContext)
+ throws RemoteException, OperationApplicationException {
+ Assert.isWorkerThread();
+
+ if (mutations.isEmpty()) {
+ return;
+ }
+
+ ArrayList<ContentProviderOperation> operations = new ArrayList<>();
+
+ if (!mutations.getInserts().isEmpty()) {
+ LogUtil.i(
+ "CallLogMutations.applyToDatabase", "inserting %d rows", mutations.getInserts().size());
+ for (Entry<Long, ContentValues> entry : mutations.getInserts().entrySet()) {
+ long id = entry.getKey();
+ ContentValues contentValues = entry.getValue();
+ operations.add(
+ ContentProviderOperation.newInsert(
+ ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id))
+ .withValues(contentValues)
+ .build());
+ }
+ }
+
+ if (!mutations.getUpdates().isEmpty()) {
+ LogUtil.i(
+ "CallLogMutations.applyToDatabase", "updating %d rows", mutations.getUpdates().size());
+ for (Entry<Long, ContentValues> entry : mutations.getUpdates().entrySet()) {
+ long id = entry.getKey();
+ ContentValues contentValues = entry.getValue();
+ operations.add(
+ ContentProviderOperation.newUpdate(
+ ContentUris.withAppendedId(AnnotatedCallLog.CONTENT_URI, id))
+ .withValues(contentValues)
+ .build());
+ }
+ }
+
+ if (!mutations.getDeletes().isEmpty()) {
+ LogUtil.i(
+ "CallLogMutations.applyToDatabase", "deleting %d rows", mutations.getDeletes().size());
+ String[] questionMarks = new String[mutations.getDeletes().size()];
+ Arrays.fill(questionMarks, "?");
+
+ String whereClause =
+ (AnnotatedCallLog._ID + " in (") + TextUtils.join(",", questionMarks) + ")";
+
+ String[] whereArgs = new String[mutations.getDeletes().size()];
+ int i = 0;
+ for (long id : mutations.getDeletes()) {
+ whereArgs[i++] = String.valueOf(id);
+ }
+
+ operations.add(
+ ContentProviderOperation.newDelete(AnnotatedCallLog.CONTENT_URI)
+ .withSelection(whereClause, whereArgs)
+ .build());
+ }
+
+ appContext.getContentResolver().applyBatch(AnnotatedCallLogContract.AUTHORITY, operations);
+ }
+}
diff --git a/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
new file mode 100644
index 000000000..8b3b0a852
--- /dev/null
+++ b/java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.database.contract;
+
+import android.net.Uri;
+import android.provider.BaseColumns;
+import com.android.dialer.constants.Constants;
+import java.util.Arrays;
+
+/** Contract for the AnnotatedCallLog content provider. */
+public class AnnotatedCallLogContract {
+ public static final String AUTHORITY = Constants.get().getAnnotatedCallLogProviderAuthority();
+
+ public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY);
+
+ /**
+ * Columns shared by {@link AnnotatedCallLog} and {@link CoalescedAnnotatedCallLog}.
+ *
+ * <p>When adding columns be sure to update {@link #ALL_COMMON_COLUMNS}.
+ */
+ interface CommonColumns extends BaseColumns {
+
+ /**
+ * Timestamp of the entry, in milliseconds.
+ *
+ * <p>Type: INTEGER (long)
+ */
+ String TIMESTAMP = "timestamp";
+
+ /**
+ * Name to display for the entry.
+ *
+ * <p>Type: TEXT
+ */
+ String CONTACT_NAME = "contact_name";
+
+ String[] ALL_COMMON_COLUMNS = new String[] {_ID, TIMESTAMP, CONTACT_NAME};
+ }
+
+ /**
+ * AnnotatedCallLog table.
+ *
+ * <p>This contains all of the non-coalesced call log entries.
+ */
+ public static final class AnnotatedCallLog implements CommonColumns {
+
+ public static final String TABLE = "AnnotatedCallLog";
+
+ /** The content URI for this table. */
+ public static final Uri CONTENT_URI =
+ Uri.withAppendedPath(AnnotatedCallLogContract.CONTENT_URI, TABLE);
+
+ /** The MIME type of a {@link android.content.ContentProvider#getType(Uri)} single entry. */
+ public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/annotated_call_log";
+ }
+
+ /**
+ * Coalesced view of the AnnotatedCallLog table.
+ *
+ * <p>This is an in-memory view of the {@link AnnotatedCallLog} with some adjacent entries
+ * collapsed.
+ *
+ * <p>When adding columns be sure to update {@link #COLUMNS_ONLY_IN_COALESCED_CALL_LOG}.
+ */
+ public static final class CoalescedAnnotatedCallLog implements CommonColumns {
+
+ public static final String TABLE = "CoalescedAnnotatedCallLog";
+
+ /** The content URI for this table. */
+ public static final Uri CONTENT_URI =
+ Uri.withAppendedPath(AnnotatedCallLogContract.CONTENT_URI, TABLE);
+
+ /** The MIME type of a {@link android.content.ContentProvider#getType(Uri)} single entry. */
+ public static final String CONTENT_ITEM_TYPE =
+ "vnd.android.cursor.item/coalesced_annotated_call_log";
+
+ /**
+ * Number of AnnotatedCallLog rows represented by this CoalescedAnnotatedCallLog row.
+ *
+ * <p>Type: INTEGER
+ */
+ public static final String NUMBER_CALLS = "number_calls";
+
+ /**
+ * Columns that are only in the {@link CoalescedAnnotatedCallLog} but not the {@link
+ * AnnotatedCallLog}.
+ */
+ private static final String[] COLUMNS_ONLY_IN_COALESCED_CALL_LOG = new String[] {NUMBER_CALLS};
+
+ /** All columns in the {@link CoalescedAnnotatedCallLog}. */
+ public static final String[] ALL_COLUMNS =
+ concat(ALL_COMMON_COLUMNS, COLUMNS_ONLY_IN_COALESCED_CALL_LOG);
+ }
+
+ private static String[] concat(String[] first, String[] second) {
+ String[] result = Arrays.copyOf(first, first.length + second.length);
+ System.arraycopy(second, 0, result, first.length, second.length);
+ return result;
+ }
+}
diff --git a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
index 13d0b842d..3fff3ba53 100644
--- a/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/CallLogDataSource.java
@@ -16,13 +16,39 @@
package com.android.dialer.calllog.datasources;
+import android.content.ContentValues;
import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
import android.support.annotation.MainThread;
import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.CallLogMutations;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract;
+import java.util.List;
-/** A source of data for one or more columns in the annotated call log. */
+/**
+ * A source of data for one or more columns in the annotated call log.
+ *
+ * <p>Data sources have three lifecycle operations, which are always called on the same thread and
+ * in the same order for a particular "checkDirtyAndRebuild" cycle. However, not all operations are
+ * always invoked.
+ *
+ * <ol>
+ * <li>{@link #isDirty(Context)}: Invoked only if the framework doesn't yet know if a rebuild is
+ * necessary.
+ * <li>{@link #fill(Context, CallLogMutations)}: Invoked only if the framework determined a
+ * rebuild is necessary.
+ * <li>{@link #onSuccessfulFill(Context)}: Invoked if and only if fill was previously called and
+ * the mutations provided by the previous fill operation succeeded in being applied.
+ * </ol>
+ *
+ * <p>Because {@link #isDirty(Context)} is not always invoked, {@link #fill(Context,
+ * CallLogMutations)} shouldn't rely on any state saved during {@link #isDirty(Context)}. It
+ * <em>is</em> safe to assume that {@link #onSuccessfulFill(Context)} refers to the previous fill
+ * operation.
+ *
+ * <p>The same data source objects may be reused across multiple checkDirtyAndRebuild cycles, so
+ * implementors should take care to clear any internal state at the start of a new cycle.
+ *
+ * <p>{@link #coalesce(List)} may be called from any worker thread at any time.
+ */
public interface CallLogDataSource {
/**
@@ -35,6 +61,8 @@ public interface CallLogDataSource {
* <p>Most implementations of this method will rely on some sort of last modified timestamp. If it
* is impossible for a data source to be modified without the dialer application being notified,
* this method may immediately return false.
+ *
+ * @see CallLogDataSource class doc for complete lifecyle information
*/
@WorkerThread
boolean isDirty(Context appContext);
@@ -43,16 +71,39 @@ public interface CallLogDataSource {
* Computes the set of mutations necessary to update the annotated call log with respect to this
* data source.
*
+ * @see CallLogDataSource class doc for complete lifecyle information
* @param mutations the set of mutations which this method should contribute to. Note that it may
* contain inserts from the system call log, and these inserts should be modified by each data
* source.
*/
@WorkerThread
- void fill(
- Context appContext,
- SQLiteDatabase readableDatabase,
- long lastRebuildTimeMillis,
- CallLogMutations mutations);
+ void fill(Context appContext, CallLogMutations mutations);
+
+ /**
+ * Called after database mutations have been applied to all data sources. This is useful for
+ * saving state such as the timestamp of the last row processed in an underlying database. Note
+ * that all mutations across all data sources are applied in a single transaction.
+ *
+ * @see CallLogDataSource class doc for complete lifecyle information
+ */
+ @WorkerThread
+ void onSuccessfulFill(Context appContext);
+
+ /**
+ * Combines raw annotated call log rows into a single coalesced row.
+ *
+ * <p>May be called by any worker thread at any time so implementations should take care to be
+ * threadsafe. (Ideally no state should be required to implement this.)
+ *
+ * @param individualRowsSortedByTimestampDesc group of fully populated rows from {@link
+ * AnnotatedCallLogContract.AnnotatedCallLog} which need to be combined for display purposes.
+ * This method should not modify this list.
+ * @return a partial {@link AnnotatedCallLogContract.CoalescedAnnotatedCallLog} row containing
+ * only columns which this data source is responsible for, which is the result of aggregating
+ * {@code individualRowsSortedByTimestampDesc}.
+ */
+ @WorkerThread
+ ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc);
@MainThread
void registerContentObservers(
diff --git a/java/com/android/dialer/calllog/datasources/CallLogMutations.java b/java/com/android/dialer/calllog/datasources/CallLogMutations.java
new file mode 100644
index 000000000..148601d68
--- /dev/null
+++ b/java/com/android/dialer/calllog/datasources/CallLogMutations.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.datasources;
+
+import android.content.ContentValues;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import com.android.dialer.common.Assert;
+
+/** A collection of mutations to the annotated call log. */
+public final class CallLogMutations {
+
+ private final ArrayMap<Long, ContentValues> inserts = new ArrayMap<>();
+ private final ArrayMap<Long, ContentValues> updates = new ArrayMap<>();
+ private final ArraySet<Long> deletes = new ArraySet<>();
+
+ /**
+ * @param contentValues an entire row not including the ID
+ * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert,
+ * update, or delete with the provided id
+ */
+ public void insert(long id, ContentValues contentValues) {
+ Assert.checkArgument(!inserts.containsKey(id), "Can't insert row already scheduled for insert");
+ Assert.checkArgument(!updates.containsKey(id), "Can't insert row scheduled for update");
+ Assert.checkArgument(!deletes.contains(id), "Can't insert row scheduled for delete");
+
+ inserts.put(id, contentValues);
+ }
+
+ /**
+ * Stores a database update using the provided ID and content values. If this {@link
+ * CallLogMutations} object already contains an update with the specified ID, the existing content
+ * values are merged with the provided ones, with the provided ones overwriting the existing ones
+ * for values with the same key.
+ *
+ * @param contentValues the specific columns to update, not including the ID.
+ * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert or
+ * delete with the provided id
+ */
+ public void update(long id, ContentValues contentValues) {
+ Assert.checkArgument(!inserts.containsKey(id), "Can't update row scheduled for insert");
+ Assert.checkArgument(!deletes.contains(id), "Can't delete row scheduled for delete");
+
+ ContentValues existingContentValues = updates.get(id);
+ if (existingContentValues != null) {
+ existingContentValues.putAll(contentValues);
+ } else {
+ updates.put(id, contentValues);
+ }
+ }
+
+ /**
+ * @throws IllegalStateException if this {@link CallLogMutations} already contains an insert,
+ * update, or delete with the provided id
+ */
+ public void delete(long id) {
+ Assert.checkArgument(!inserts.containsKey(id), "Can't delete row scheduled for insert");
+ Assert.checkArgument(!updates.containsKey(id), "Can't delete row scheduled for update");
+ Assert.checkArgument(!deletes.contains(id), "Can't delete row already scheduled for delete");
+
+ deletes.add(id);
+ }
+
+ public boolean isEmpty() {
+ return inserts.isEmpty() && updates.isEmpty() && deletes.isEmpty();
+ }
+
+ /**
+ * Get the pending inserts.
+ *
+ * @return the pending inserts where the key is the annotated call log database ID and the values
+ * are values to be inserted (not including the ID)
+ */
+ public ArrayMap<Long, ContentValues> getInserts() {
+ return inserts;
+ }
+
+ /**
+ * Get the pending updates.
+ *
+ * @return the pending updates where the key is the annotated call log database ID and the values
+ * are values to be updated (not including the ID)
+ */
+ public ArrayMap<Long, ContentValues> getUpdates() {
+ return updates;
+ }
+
+ /**
+ * Get the pending deletes.
+ *
+ * @return the annotated call log database IDs corresponding to the rows to be deleted
+ */
+ public ArraySet<Long> getDeletes() {
+ return deletes;
+ }
+}
diff --git a/java/com/android/dialer/calllog/DataSources.java b/java/com/android/dialer/calllog/datasources/DataSources.java
index 21d190167..911ca3fa3 100644
--- a/java/com/android/dialer/calllog/DataSources.java
+++ b/java/com/android/dialer/calllog/datasources/DataSources.java
@@ -14,14 +14,13 @@
* limitations under the License
*/
-package com.android.dialer.calllog;
+package com.android.dialer.calllog.datasources;
-import com.android.dialer.calllog.datasources.CallLogDataSource;
import com.android.dialer.calllog.datasources.systemcalllog.SystemCallLogDataSource;
import java.util.List;
/** Immutable lists of data sources used to populate the annotated call log. */
-interface DataSources {
+public interface DataSources {
SystemCallLogDataSource getSystemCallLogDataSource();
diff --git a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
index 355940f6a..e9538daab 100644
--- a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
@@ -16,13 +16,16 @@
package com.android.dialer.calllog.datasources.contacts;
+import android.content.ContentValues;
import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
import android.support.annotation.MainThread;
import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.CallLogMutations;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.CallLogMutations;
+import com.android.dialer.calllog.datasources.util.RowCombiner;
import com.android.dialer.common.Assert;
+import java.util.List;
import javax.inject.Inject;
/** Responsible for maintaining the contacts related columns in the annotated call log. */
@@ -44,13 +47,24 @@ public final class ContactsDataSource implements CallLogDataSource {
@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 ea6663fbe..be2df6043 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -16,28 +16,49 @@
package com.android.dialer.calllog.datasources.systemcalllog;
+import android.Manifest.permission;
+import android.annotation.TargetApi;
+import android.content.ContentValues;
import android.content.Context;
import android.database.ContentObserver;
-import android.database.sqlite.SQLiteDatabase;
+import android.database.Cursor;
import android.net.Uri;
+import android.os.Build;
import android.os.Handler;
+import android.preference.PreferenceManager;
import android.provider.CallLog;
+import android.provider.CallLog.Calls;
import android.support.annotation.MainThread;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
import android.support.annotation.WorkerThread;
-import com.android.dialer.calllog.database.CallLogMutations;
+import android.text.TextUtils;
+import android.util.ArraySet;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
import com.android.dialer.calllog.datasources.CallLogDataSource;
+import com.android.dialer.calllog.datasources.CallLogMutations;
+import com.android.dialer.calllog.datasources.util.RowCombiner;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.ThreadUtil;
import com.android.dialer.util.PermissionsUtil;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
import javax.inject.Inject;
/**
* Responsible for defining the rows in the annotated call log and maintaining the columns in it
* which are derived from the system call log.
*/
+@SuppressWarnings("MissingPermission")
public class SystemCallLogDataSource implements CallLogDataSource {
+ @VisibleForTesting
+ static final String PREF_LAST_TIMESTAMP_PROCESSED = "systemCallLogLastTimestampProcessed";
+
+ @Nullable private Long lastTimestampProcessed;
+
@Inject
public SystemCallLogDataSource() {}
@@ -47,6 +68,8 @@ public class SystemCallLogDataSource implements CallLogDataSource {
Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
Assert.isMainThread();
+ LogUtil.enterBlock("SystemCallLogDataSource.registerContentObservers");
+
if (!PermissionsUtil.hasCallLogReadPermissions(appContext)) {
LogUtil.i("SystemCallLogDataSource.registerContentObservers", "no call log permissions");
return;
@@ -77,17 +100,185 @@ public class SystemCallLogDataSource implements CallLogDataSource {
@WorkerThread
@Override
- public void fill(
- Context appContext,
- SQLiteDatabase readableDatabase,
- long lastRebuildTimeMillis,
- CallLogMutations mutations) {
+ public void fill(Context appContext, 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.checkState(mutations.isEmpty());
+ Assert.checkArgument(mutations.isEmpty());
+
+ Set<Long> annotatedCallLogIds = getAnnotatedCallLogIds(appContext);
+
+ LogUtil.i(
+ "SystemCallLogDataSource.fill",
+ "found %d existing annotated call log ids",
+ annotatedCallLogIds.size());
+
+ handleInsertsAndUpdates(appContext, mutations, annotatedCallLogIds);
+ handleDeletes(appContext, annotatedCallLogIds, mutations);
+ }
+
+ @WorkerThread
+ @Override
+ public void onSuccessfulFill(Context appContext) {
+ // If a fill operation was a no-op, lastTimestampProcessed could still be null.
+ if (lastTimestampProcessed != null) {
+ PreferenceManager.getDefaultSharedPreferences(appContext)
+ .edit()
+ .putLong(PREF_LAST_TIMESTAMP_PROCESSED, lastTimestampProcessed)
+ .commit();
+ }
+ }
+
+ @Override
+ public ContentValues coalesce(List<ContentValues> individualRowsSortedByTimestampDesc) {
+ // TODO: Complete implementation.
+ return new RowCombiner(individualRowsSortedByTimestampDesc)
+ .useMostRecentLong(AnnotatedCallLog.TIMESTAMP)
+ .combine();
+ }
+
+ @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+ private void handleInsertsAndUpdates(
+ Context appContext, CallLogMutations mutations, Set<Long> existingAnnotatedCallLogIds) {
+ long previousTimestampProcessed =
+ PreferenceManager.getDefaultSharedPreferences(appContext)
+ .getLong(PREF_LAST_TIMESTAMP_PROCESSED, 0L);
+
+ try (Cursor cursor =
+ appContext
+ .getContentResolver()
+ .query(
+ Calls.CONTENT_URI, // Excludes voicemail
+ new String[] {Calls._ID, Calls.DATE, Calls.LAST_MODIFIED},
+ Calls.LAST_MODIFIED + " > ?",
+ new String[] {String.valueOf(previousTimestampProcessed)},
+ Calls.LAST_MODIFIED + " DESC LIMIT 1000")) {
+
+ if (cursor == null) {
+ LogUtil.e("SystemCallLogDataSource.handleInsertsAndUpdates", "null cursor");
+ return;
+ }
+
+ LogUtil.i(
+ "SystemCallLogDataSource.handleInsertsAndUpdates",
+ "found %d entries to insert/update",
+ cursor.getCount());
- // TODO: Implementation.
+ if (cursor.moveToFirst()) {
+ int idColumn = cursor.getColumnIndexOrThrow(Calls._ID);
+ int dateColumn = cursor.getColumnIndexOrThrow(Calls.DATE);
+ int lastModifiedColumn = cursor.getColumnIndexOrThrow(Calls.LAST_MODIFIED);
+
+ // The cursor orders by LAST_MODIFIED DESC, so the first result is the most recent timestamp
+ // processed.
+ lastTimestampProcessed = cursor.getLong(lastModifiedColumn);
+ do {
+ long id = cursor.getLong(idColumn);
+ long date = cursor.getLong(dateColumn);
+
+ ContentValues contentValues = new ContentValues();
+ contentValues.put(AnnotatedCallLog.TIMESTAMP, date);
+
+ if (existingAnnotatedCallLogIds.contains(id)) {
+ mutations.update(id, contentValues);
+ } else {
+ mutations.insert(id, contentValues);
+ }
+ } while (cursor.moveToNext());
+ } // else no new results, do nothing.
+ }
+ }
+
+ private static void handleDeletes(
+ Context appContext, Set<Long> existingAnnotatedCallLogIds, CallLogMutations mutations) {
+ Set<Long> systemCallLogIds =
+ getIdsFromSystemCallLogThatMatch(appContext, existingAnnotatedCallLogIds);
+ LogUtil.i(
+ "SystemCallLogDataSource.handleDeletes",
+ "found %d entries in system call log",
+ systemCallLogIds.size());
+ Set<Long> idsInAnnotatedCallLogNoLongerInSystemCallLog = new ArraySet<>();
+ idsInAnnotatedCallLogNoLongerInSystemCallLog.addAll(existingAnnotatedCallLogIds);
+ idsInAnnotatedCallLogNoLongerInSystemCallLog.removeAll(systemCallLogIds);
+
+ LogUtil.i(
+ "SystemCallLogDataSource.handleDeletes",
+ "found %d call log entries to remove",
+ idsInAnnotatedCallLogNoLongerInSystemCallLog.size());
+
+ for (long id : idsInAnnotatedCallLogNoLongerInSystemCallLog) {
+ mutations.delete(id);
+ }
+ }
+
+ @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+ private static Set<Long> getAnnotatedCallLogIds(Context appContext) {
+ ArraySet<Long> ids = new ArraySet<>();
+
+ try (Cursor cursor =
+ appContext
+ .getContentResolver()
+ .query(
+ AnnotatedCallLog.CONTENT_URI,
+ new String[] {AnnotatedCallLog._ID},
+ null,
+ null,
+ null)) {
+
+ if (cursor == null) {
+ LogUtil.e("SystemCallLogDataSource.getAnnotatedCallLogIds", "null cursor");
+ return ids;
+ }
+
+ if (cursor.moveToFirst()) {
+ int idColumn = cursor.getColumnIndexOrThrow(AnnotatedCallLog._ID);
+ do {
+ ids.add(cursor.getLong(idColumn));
+ } while (cursor.moveToNext());
+ }
+ }
+ return ids;
+ }
+
+ @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
+ private static Set<Long> getIdsFromSystemCallLogThatMatch(
+ Context appContext, Set<Long> matchingIds) {
+ ArraySet<Long> ids = new ArraySet<>();
+
+ String[] questionMarks = new String[matchingIds.size()];
+ Arrays.fill(questionMarks, "?");
+ String whereClause = (Calls._ID + " in (") + TextUtils.join(",", questionMarks) + ")";
+ String[] whereArgs = new String[matchingIds.size()];
+ int i = 0;
+ for (long id : matchingIds) {
+ whereArgs[i++] = String.valueOf(id);
+ }
+
+ try (Cursor cursor =
+ appContext
+ .getContentResolver()
+ .query(Calls.CONTENT_URI, new String[] {Calls._ID}, whereClause, whereArgs, null)) {
+
+ if (cursor == null) {
+ LogUtil.e("SystemCallLogDataSource.getIdsFromSystemCallLog", "null cursor");
+ return ids;
+ }
+
+ if (cursor.moveToFirst()) {
+ int idColumn = cursor.getColumnIndexOrThrow(Calls._ID);
+ do {
+ ids.add(cursor.getLong(idColumn));
+ } while (cursor.moveToNext());
+ }
+ return ids;
+ }
}
private static class CallLogObserver extends ContentObserver {
diff --git a/java/com/android/dialer/calllog/datasources/util/RowCombiner.java b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
new file mode 100644
index 000000000..0c7be1e27
--- /dev/null
+++ b/java/com/android/dialer/calllog/datasources/util/RowCombiner.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.datasources.util;
+
+import android.content.ContentValues;
+import com.android.dialer.common.Assert;
+import java.util.Iterator;
+import java.util.List;
+
+/** Convenience class for aggregating row values. */
+public class RowCombiner {
+ private final List<ContentValues> individualRowsSortedByTimestampDesc;
+ private final ContentValues combinedRow = new ContentValues();
+
+ public RowCombiner(List<ContentValues> individualRowsSortedByTimestampDesc) {
+ Assert.checkArgument(!individualRowsSortedByTimestampDesc.isEmpty());
+ this.individualRowsSortedByTimestampDesc = individualRowsSortedByTimestampDesc;
+ }
+
+ /** Use the most recent value for the specified column. */
+ public RowCombiner useMostRecentLong(String columnName) {
+ combinedRow.put(columnName, individualRowsSortedByTimestampDesc.get(0).getAsLong(columnName));
+ return this;
+ }
+
+ /** Asserts that all column values for the given column name are the same, and uses it. */
+ public RowCombiner useSingleValueString(String columnName) {
+ Iterator<ContentValues> iterator = individualRowsSortedByTimestampDesc.iterator();
+ String singleValue = iterator.next().getAsString(columnName);
+ while (iterator.hasNext()) {
+ Assert.checkState(iterator.next().getAsString(columnName).equals(singleValue));
+ }
+ combinedRow.put(columnName, singleValue);
+ return this;
+ }
+
+ public ContentValues combine() {
+ return combinedRow;
+ }
+}
diff --git a/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java b/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java
new file mode 100644
index 000000000..cb2240539
--- /dev/null
+++ b/java/com/android/dialer/calllog/testing/FakeCallLogApplication.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.testing;
+
+import android.app.Application;
+import com.android.dialer.calllog.CallLogModule;
+import com.android.dialer.calllog.database.CallLogDatabaseComponent;
+import com.android.dialer.inject.HasRootComponent;
+import dagger.Component;
+import javax.inject.Singleton;
+
+/**
+ * Fake application for call log robolectric tests which uses all real bindings but doesn't require
+ * tests to depend on and use all of DialerApplication.
+ */
+public final class FakeCallLogApplication extends Application implements HasRootComponent {
+
+ @Override
+ public Object component() {
+ return DaggerFakeCallLogApplication_FakeComponent.create();
+ }
+
+ @Singleton
+ @Component(modules = CallLogModule.class)
+ interface FakeComponent extends CallLogDatabaseComponent.HasComponent {}
+}
diff --git a/java/com/android/dialer/calllog/ui/AndroidManifest.xml b/java/com/android/dialer/calllog/ui/AndroidManifest.xml
index 228167749..eaf71aba8 100644
--- a/java/com/android/dialer/calllog/ui/AndroidManifest.xml
+++ b/java/com/android/dialer/calllog/ui/AndroidManifest.xml
@@ -13,4 +13,4 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-<manifest package="com.android.dialer.calllog"/>
+<manifest package="com.android.dialer.calllog.ui"/>
diff --git a/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java b/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java
deleted file mode 100644
index cd8622e80..000000000
--- a/java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.dialer.calllog.ui;
-
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.content.CursorLoader;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.os.Build;
-import com.android.dialer.calllog.database.AnnotatedCallLog;
-import com.android.dialer.calllog.database.AnnotatedCallLog.Columns;
-
-/** CursorLoader which reads the annotated call log. */
-class AnnotatedCallLogCursorLoader extends CursorLoader {
-
- AnnotatedCallLogCursorLoader(Context context) {
- super(context);
- }
-
- @TargetApi(Build.VERSION_CODES.M) // Uses try-with-resources
- @Override
- public Cursor loadInBackground() {
- try (SQLiteDatabase readableDatabase = AnnotatedCallLog.getReadableDatabase(getContext())) {
- return readableDatabase.rawQuery(
- "SELECT * FROM "
- + AnnotatedCallLog.TABLE_NAME
- + " ORDER BY "
- + Columns.TIMESTAMP
- + " DESC",
- null /* selectionArgs */);
- }
- }
-}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
new file mode 100644
index 000000000..f9ab21cb3
--- /dev/null
+++ b/java/com/android/dialer/calllog/ui/NewCallLogAdapter.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.ui;
+
+import android.database.Cursor;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
+
+/** {@link RecyclerView.Adapter} for the new call log fragment. */
+final class NewCallLogAdapter extends RecyclerView.Adapter<NewCallLogViewHolder> {
+
+ private final Cursor cursor;
+ private final int timestampIndex;
+
+ NewCallLogAdapter(Cursor cursor) {
+ this.cursor = cursor;
+ timestampIndex = cursor.getColumnIndexOrThrow(CoalescedAnnotatedCallLog.TIMESTAMP);
+ }
+
+ @Override
+ public NewCallLogViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
+ return new NewCallLogViewHolder(
+ LayoutInflater.from(viewGroup.getContext())
+ .inflate(R.layout.new_call_log_entry, viewGroup, false));
+ }
+
+ @Override
+ public void onBindViewHolder(NewCallLogViewHolder viewHolder, int position) {
+ cursor.moveToPosition(position);
+ long timestamp = cursor.getLong(timestampIndex);
+ viewHolder.bind(timestamp);
+ }
+
+ @Override
+ public int getItemCount() {
+ return cursor.getCount();
+ }
+}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
index b8f2b1326..89ed52fd7 100644
--- a/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
+++ b/java/com/android/dialer/calllog/ui/NewCallLogFragment.java
@@ -17,30 +17,30 @@ package com.android.dialer.calllog.ui;
import android.app.Fragment;
import android.app.LoaderManager.LoaderCallbacks;
-import android.content.Context;
+import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.CursorAdapter;
-import android.widget.ListView;
-import android.widget.SimpleCursorAdapter;
-import android.widget.TextView;
import com.android.dialer.calllog.CallLogComponent;
import com.android.dialer.calllog.CallLogFramework;
import com.android.dialer.calllog.CallLogFramework.CallLogUi;
-import com.android.dialer.calllog.database.AnnotatedCallLog.Columns;
+import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
import com.android.dialer.common.LogUtil;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
+import com.android.dialer.common.concurrent.DialerExecutor;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
+import com.android.dialer.common.concurrent.DialerExecutorFactory;
/** The "new" call log fragment implementation, which is built on top of the annotated call log. */
public final class NewCallLogFragment extends Fragment
implements CallLogUi, LoaderCallbacks<Cursor> {
- private CursorAdapter cursorAdapter;
+ private DialerExecutor<Boolean> refreshAnnotatedCallLogTask;
+ private RecyclerView recyclerView;
public NewCallLogFragment() {
LogUtil.enterBlock("NewCallLogFragment.NewCallLogFragment");
@@ -52,8 +52,27 @@ public final class NewCallLogFragment extends Fragment
LogUtil.enterBlock("NewCallLogFragment.onCreate");
- CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework();
+ CallLogComponent component = CallLogComponent.get(getContext());
+ CallLogFramework callLogFramework = component.callLogFramework();
callLogFramework.attachUi(this);
+
+ DialerExecutorFactory dialerExecutorFactory =
+ DialerExecutorComponent.get(getContext()).dialerExecutorFactory();
+
+ refreshAnnotatedCallLogTask =
+ dialerExecutorFactory
+ .createUiTaskBuilder(
+ getFragmentManager(),
+ "NewCallLogFragment.refreshAnnotatedCallLog",
+ component.getRefreshAnnotatedCallLogWorker())
+ .build();
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+
+ LogUtil.enterBlock("NewCallLogFragment.onStart");
}
@Override
@@ -64,6 +83,9 @@ public final class NewCallLogFragment extends Fragment
CallLogFramework callLogFramework = CallLogComponent.get(getContext()).callLogFramework();
callLogFramework.attachUi(this);
+
+ // TODO: Consider doing this when fragment becomes visible.
+ checkAnnotatedCallLogDirtyAndRefreshIfNecessary();
}
@Override
@@ -82,57 +104,44 @@ public final class NewCallLogFragment extends Fragment
LogUtil.enterBlock("NewCallLogFragment.onCreateView");
View view = inflater.inflate(R.layout.new_call_log_fragment, container, false);
- ListView listView = (ListView) view.findViewById(R.id.list);
+ recyclerView = view.findViewById(R.id.new_call_log_recycler_view);
- this.cursorAdapter =
- new MyCursorAdapter(
- getContext(),
- R.layout.new_call_log_entry,
- null /* cursor */,
- new String[] {Columns.TIMESTAMP, Columns.CONTACT_NAME},
- new int[] {R.id.timestamp, R.id.contact_name},
- 0);
- listView.setAdapter(cursorAdapter);
-
- getLoaderManager().initLoader(0, null, this);
+ getLoaderManager().restartLoader(0, null, this);
return view;
}
+ private void checkAnnotatedCallLogDirtyAndRefreshIfNecessary() {
+ LogUtil.enterBlock("NewCallLogFragment.checkAnnotatedCallLogDirtyAndRefreshIfNecessary");
+ refreshAnnotatedCallLogTask.executeSerial(false /* skipDirtyCheck */);
+ }
+
@Override
public void invalidateUi() {
LogUtil.enterBlock("NewCallLogFragment.invalidateUi");
- // TODO: Implementation.
+ refreshAnnotatedCallLogTask.executeSerial(true /* skipDirtyCheck */);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
- // TODO: This is sort of weird, do we need to implement a content provider?
- return new AnnotatedCallLogCursorLoader(getContext());
+ LogUtil.enterBlock("NewCallLogFragment.onCreateLoader");
+ // CoalescedAnnotatedCallLog requires that all params be null.
+ return new CursorLoader(
+ getContext(), CoalescedAnnotatedCallLog.CONTENT_URI, null, null, null, null);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor newCursor) {
- cursorAdapter.swapCursor(newCursor);
+ LogUtil.enterBlock("NewCallLogFragment.onLoadFinished");
+
+ // TODO: Handle empty cursor by showing empty view.
+ recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+ recyclerView.setAdapter(new NewCallLogAdapter(newCursor));
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
- cursorAdapter.swapCursor(null);
- }
-
- private static class MyCursorAdapter extends SimpleCursorAdapter {
-
- MyCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to, int flags) {
- super(context, layout, c, from, to, flags);
- }
-
- @Override
- public void setViewText(TextView view, String text) {
- if (view.getId() == R.id.timestamp) {
- text = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US).format(Long.valueOf(text));
- }
- view.setText(text);
- }
+ LogUtil.enterBlock("NewCallLogFragment.onLoaderReset");
+ recyclerView.setAdapter(null);
}
}
diff --git a/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
new file mode 100644
index 000000000..4c459e123
--- /dev/null
+++ b/java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.calllog.ui;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+
+/** {@link RecyclerView.ViewHolder} for the new call log. */
+final class NewCallLogViewHolder extends RecyclerView.ViewHolder {
+
+ // TODO: Format correctly using current locale.
+ private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US);
+
+ private final TextView contactNameView;
+ private final TextView timestampView;
+
+ NewCallLogViewHolder(View view) {
+ super(view);
+ contactNameView = view.findViewById(R.id.contact_name);
+ timestampView = view.findViewById(R.id.timestamp);
+ }
+
+ void bind(long timestamp) {
+ contactNameView.setText("Contact Name Placeholder");
+ timestampView.setText(dateFormat.format(timestamp));
+ }
+}
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
index ee3efd002..99797fab4 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_entry.xml
@@ -18,16 +18,20 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="horizontal">
+ android:layout_height="wrap_content"
+ android:padding="8dp"
+ android:orientation="vertical">
<TextView
- android:id="@+id/timestamp"
+ android:id="@+id/contact_name"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
+ android:layout_height="wrap_content"
+ style="@style/PrimaryText"/>
<TextView
- android:id="@+id/contact_name"
+ android:id="@+id/timestamp"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
+ android:layout_height="wrap_content"
+ style="@style/SecondaryText"/>
+
</LinearLayout> \ No newline at end of file
diff --git a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
index 433dbdd0f..e1d8410b6 100644
--- a/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
+++ b/java/com/android/dialer/calllog/ui/res/layout/new_call_log_fragment.xml
@@ -15,8 +15,9 @@
~ limitations under the License
-->
-<ListView
+<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/list"
+ android:id="@+id/new_call_log_recycler_view"
android:layout_width="match_parent"
- android:layout_height="match_parent"/>
+ android:layout_height="match_parent"
+ android:background="@color/background_dialer_light"/>
diff --git a/java/com/android/dialer/common/Assert.java b/java/com/android/dialer/common/Assert.java
index 189d209c8..943e1ddcf 100644
--- a/java/com/android/dialer/common/Assert.java
+++ b/java/com/android/dialer/common/Assert.java
@@ -30,10 +30,6 @@ public class Assert {
Assert.areThreadAssertsEnabled = areThreadAssertsEnabled;
}
- public static boolean areThreadAssertsEnabled() {
- return areThreadAssertsEnabled;
- }
-
/**
* Called when a truly exceptional case occurs.
*
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java b/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java
new file mode 100644
index 000000000..25033251f
--- /dev/null
+++ b/java/com/android/dialer/common/concurrent/DialerExecutorComponent.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.common.concurrent;
+
+import android.content.Context;
+import com.android.dialer.inject.HasRootComponent;
+import dagger.Subcomponent;
+
+/** Dagger component which provides a {@link DialerExecutorFactory}. */
+@Subcomponent
+public abstract class DialerExecutorComponent {
+
+ public abstract DialerExecutorFactory dialerExecutorFactory();
+
+ public static DialerExecutorComponent get(Context context) {
+ return ((DialerExecutorComponent.HasComponent)
+ ((HasRootComponent) context.getApplicationContext()).component())
+ .dialerExecutorComponent();
+ }
+
+ /** Used to refer to the root application component. */
+ public interface HasComponent {
+ DialerExecutorComponent dialerExecutorComponent();
+ }
+}
diff --git a/java/com/android/contacts/common/util/TrafficStatsTags.java b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
index b0e7fb583..281f88c15 100644
--- a/java/com/android/contacts/common/util/TrafficStatsTags.java
+++ b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015 The Android Open Source Project
+ * Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,12 +11,18 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License.
+ * limitations under the License
*/
-package com.android.contacts.common.util;
+package com.android.dialer.common.concurrent;
-public class TrafficStatsTags {
+import dagger.Binds;
+import dagger.Module;
- public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001;
- public static final int TAG_MAX = 0x9999;
+/** 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 673cb709b..351c89ad7 100644
--- a/java/com/android/dialer/compat/CompatUtils.java
+++ b/java/com/android/dialer/compat/CompatUtils.java
@@ -16,15 +16,9 @@
package com.android.dialer.compat;
import android.os.Build;
-import android.support.annotation.Nullable;
-import android.text.TextUtils;
-import android.util.Log;
-import java.lang.reflect.InvocationTargetException;
public final class CompatUtils {
- private static final String TAG = CompatUtils.class.getSimpleName();
-
/** PrioritizedMimeType is added in API level 23. */
public static boolean hasPrioritizedMimeType() {
return SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M;
@@ -70,153 +64,4 @@ public final class CompatUtils {
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 d92c0bcfc..076393e63 100644
--- a/java/com/android/dialer/constants/Constants.java
+++ b/java/com/android/dialer/constants/Constants.java
@@ -53,5 +53,8 @@ public abstract class Constants {
@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 2fed4ef8a..a54adc757 100644
--- a/java/com/android/dialer/constants/ScheduledJobIds.java
+++ b/java/com/android/dialer/constants/ScheduledJobIds.java
@@ -32,6 +32,7 @@ public final class ScheduledJobIds {
public static final int VVM_TASK_SCHEDULER_JOB = 200;
public static final int VVM_STATUS_CHECK_JOB = 201;
public static final int VVM_DEVICE_PROVISIONED_JOB = 202;
+ public static final int VVM_TRANSCRIPTION_JOB = 203;
public static final int VOIP_REGISTRATION = 300;
diff --git a/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java b/java/com/android/dialer/constants/TrafficStatsTags.java
index 02cc2e083..4e6140431 100644
--- a/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java
+++ b/java/com/android/dialer/constants/TrafficStatsTags.java
@@ -11,19 +11,18 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-package com.android.incallui.calllocation.impl;
+package com.android.dialer.constants;
-/** Constants used for logging */
+/** Registry of tags for {@link android.net.TrafficStats#setThreadStatsTag(int)} */
public class TrafficStatsTags {
-
- /**
- * Must be greater than {@link com.android.contacts.common.util.TrafficStatsTags#TAG_MAX}, to
- * respect the namespace of the tags in ContactsCommon.
- */
+ public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001;
+ public static final int NEARBY_PLACES_TAG = 0xaaaa;
+ public static final int REVERSE_LOOKUP_CONTACT_TAG = 0xbaaa;
+ public static final int REVERSE_LOOKUP_IMAGE_TAG = 0xbaab;
public static final int DOWNLOAD_LOCATION_MAP_TAG = 0xd000;
-
public static final int REVERSE_GEOCODE_TAG = 0xd001;
+ public static final int VISUAL_VOICEMAIL_TAG = 0xd002;
}
diff --git a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
index 6b78b986c..1111732f3 100644
--- a/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
+++ b/java/com/android/dialer/constants/aospdialer/ConstantsImpl.java
@@ -34,4 +34,10 @@ public class ConstantsImpl extends Constants {
public String getFileProviderAuthority() {
return "com.android.dialer.files";
}
+
+ @NonNull
+ @Override
+ public String getAnnotatedCallLogProviderAuthority() {
+ return "com.android.dialer.annotatedcalllog";
+ }
}
diff --git a/java/com/android/dialer/contactactions/AndroidManifest.xml b/java/com/android/dialer/contactactions/AndroidManifest.xml
new file mode 100644
index 000000000..a64066e0b
--- /dev/null
+++ b/java/com/android/dialer/contactactions/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<manifest package="com.android.dialer.contactactions"/>
diff --git a/java/com/android/dialer/contactactions/ContactActionBottomSheet.java b/java/com/android/dialer/contactactions/ContactActionBottomSheet.java
new file mode 100644
index 000000000..4718ff036
--- /dev/null
+++ b/java/com/android/dialer/contactactions/ContactActionBottomSheet.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactactions;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.design.widget.BottomSheetDialog;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.dialer.common.Assert;
+import com.android.dialer.dialercontact.DialerContact;
+import java.util.List;
+
+/**
+ * {@link BottomSheetDialog} used for building a list of contact actions in a bottom sheet menu.
+ *
+ * <p>{@link #show(Context, DialerContact, List)} should be used to create and display the menu.
+ * Modules are built using {@link ContactActionModule} and some defaults are provided by {@link
+ * IntentModule} and {@link DividerModule}.
+ */
+public class ContactActionBottomSheet extends BottomSheetDialog implements OnClickListener {
+
+ private final List<ContactActionModule> modules;
+ private final DialerContact contact;
+
+ private ContactActionBottomSheet(
+ Context context, DialerContact contact, List<ContactActionModule> modules) {
+ super(context);
+ this.modules = modules;
+ this.contact = contact;
+ setContentView(LayoutInflater.from(context).inflate(R.layout.sheet_layout, null));
+ }
+
+ public static ContactActionBottomSheet show(
+ Context context, DialerContact contact, List<ContactActionModule> modules) {
+ ContactActionBottomSheet sheet = new ContactActionBottomSheet(context, contact, modules);
+ sheet.show();
+ return sheet;
+ }
+
+ @Override
+ protected void onCreate(Bundle bundle) {
+ super.onCreate(bundle);
+ LinearLayout container = Assert.isNotNull(findViewById(R.id.action_container));
+ container.addView(getContactView(container));
+
+ for (ContactActionModule module : modules) {
+ if (module instanceof DividerModule) {
+ container.addView(getDividerView(container));
+ } else {
+ container.addView(getModuleView(container, module));
+ }
+ }
+ }
+
+ // TODO: add on click action to contact.
+ private View getContactView(ViewGroup container) {
+ LayoutInflater inflater = LayoutInflater.from(getContext());
+ View contactView = inflater.inflate(R.layout.contact_layout, container, false);
+
+ ContactPhotoManager.getInstance(getContext())
+ .loadDialerThumbnailOrPhoto(
+ contactView.findViewById(R.id.quick_contact_photo),
+ contact.hasContactUri() ? Uri.parse(contact.getContactUri()) : null,
+ contact.getPhotoId(),
+ contact.hasPhotoUri() ? Uri.parse(contact.getPhotoUri()) : null,
+ contact.getNameOrNumber(),
+ contact.getContactType());
+
+ TextView nameView = contactView.findViewById(R.id.contact_name);
+ TextView numberView = contactView.findViewById(R.id.phone_number);
+
+ nameView.setText(contact.getNameOrNumber());
+ if (!TextUtils.isEmpty(contact.getDisplayNumber())) {
+ numberView.setVisibility(View.VISIBLE);
+ String secondaryInfo =
+ TextUtils.isEmpty(contact.getNumberLabel())
+ ? contact.getDisplayNumber()
+ : getContext()
+ .getString(
+ com.android.contacts.common.R.string.call_subject_type_and_number,
+ contact.getNumberLabel(),
+ contact.getDisplayNumber());
+ numberView.setText(secondaryInfo);
+ } else {
+ numberView.setVisibility(View.GONE);
+ numberView.setText(null);
+ }
+ return contactView;
+ }
+
+ private View getDividerView(ViewGroup container) {
+ LayoutInflater inflater = LayoutInflater.from(getContext());
+ return inflater.inflate(R.layout.divider_layout, container, false);
+ }
+
+ private View getModuleView(ViewGroup container, ContactActionModule module) {
+ LayoutInflater inflater = LayoutInflater.from(getContext());
+ View moduleView = inflater.inflate(R.layout.module_layout, container, false);
+ ((TextView) moduleView.findViewById(R.id.module_text)).setText(module.getStringId());
+ ((ImageView) moduleView.findViewById(R.id.module_image))
+ .setImageResource(module.getDrawableId());
+ moduleView.setOnClickListener(this);
+ moduleView.setTag(module);
+ return moduleView;
+ }
+
+ @Override
+ public void onClick(View view) {
+ if (((ContactActionModule) view.getTag()).onClick()) {
+ dismiss();
+ }
+ }
+}
diff --git a/java/com/android/dialer/contactactions/ContactActionModule.java b/java/com/android/dialer/contactactions/ContactActionModule.java
new file mode 100644
index 000000000..8089edc7b
--- /dev/null
+++ b/java/com/android/dialer/contactactions/ContactActionModule.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactactions;
+
+import android.support.annotation.DrawableRes;
+import android.support.annotation.StringRes;
+
+/**
+ * Modules used to build {@link ContactActionBottomSheet}.
+ *
+ * <p>Contacts as they relate to this class should be thought of as any entity that an action can be
+ * performed on like unknown/restricted contacts, along with saved and non-saved contacts.
+ */
+public interface ContactActionModule {
+
+ @StringRes
+ int getStringId();
+
+ @DrawableRes
+ int getDrawableId();
+
+ /** @return true if the bottom sheet should close, false otherwise */
+ boolean onClick();
+}
diff --git a/java/com/android/dialer/contactactions/DividerModule.java b/java/com/android/dialer/contactactions/DividerModule.java
new file mode 100644
index 000000000..aabd160db
--- /dev/null
+++ b/java/com/android/dialer/contactactions/DividerModule.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactactions;
+
+import com.android.dialer.common.Assert;
+
+/**
+ * A module that inserts a grey line divider into {@link ContactActionModule}. Layout it provided in
+ * R.layout.divider_layout.xml
+ */
+public final class DividerModule implements ContactActionModule {
+
+ @Override
+ public int getStringId() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public int getDrawableId() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+
+ @Override
+ public boolean onClick() {
+ throw Assert.createUnsupportedOperationFailException();
+ }
+}
diff --git a/java/com/android/dialer/contactactions/IntentModule.java b/java/com/android/dialer/contactactions/IntentModule.java
new file mode 100644
index 000000000..201f52192
--- /dev/null
+++ b/java/com/android/dialer/contactactions/IntentModule.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactactions;
+
+import android.content.Context;
+import android.content.Intent;
+import android.support.annotation.DrawableRes;
+import android.support.annotation.StringRes;
+import com.android.dialer.callintent.CallInitiationType.Type;
+import com.android.dialer.callintent.CallIntentBuilder;
+
+/**
+ * {@link ContactActionModule} useful for making easy to build modules based on starting an intent.
+ */
+public class IntentModule implements ContactActionModule {
+
+ private final Context context;
+ private final Intent intent;
+ private final @StringRes int text;
+ private final @DrawableRes int image;
+
+ public IntentModule(Context context, Intent intent, @StringRes int text, @DrawableRes int image) {
+ this.context = context;
+ this.intent = intent;
+ this.text = text;
+ this.image = image;
+ }
+
+ @Override
+ public int getStringId() {
+ return text;
+ }
+
+ @Override
+ public int getDrawableId() {
+ return image;
+ }
+
+ @Override
+ public boolean onClick() {
+ context.startActivity(intent);
+ return true;
+ }
+
+ public static IntentModule newCallModule(Context context, String number, Type initiationType) {
+ return new IntentModule(
+ context,
+ new CallIntentBuilder(number, initiationType).build(),
+ R.string.call,
+ R.drawable.quantum_ic_call_white_24);
+ }
+
+ public static IntentModule newVideoCallModule(
+ Context context, String number, Type initiationType) {
+ return new IntentModule(
+ context,
+ new CallIntentBuilder(number, initiationType).setIsVideoCall(true).build(),
+ R.string.video_call,
+ R.drawable.quantum_ic_videocam_white_24);
+ }
+}
diff --git a/java/com/android/dialer/contactactions/res/layout/contact_layout.xml b/java/com/android/dialer/contactactions/res/layout/contact_layout.xml
new file mode 100644
index 000000000..bf3297153
--- /dev/null
+++ b/java/com/android/dialer/contactactions/res/layout/contact_layout.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="12dp"
+ android:layout_marginEnd="8dp">
+
+ <QuickContactBadge
+ android:id="@+id/quick_contact_photo"
+ android:layout_width="@dimen/contact_actions_image_size"
+ android:layout_height="@dimen/contact_actions_image_size"
+ android:layout_marginStart="@dimen/contact_actions_image_margin"
+ android:layout_marginEnd="@dimen/contact_actions_image_margin"
+ android:padding="4dp"
+ android:focusable="true"/>
+
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical">
+
+ <TextView
+ android:id="@+id/contact_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ style="@style/PrimaryText"/>
+
+ <TextView
+ android:id="@+id/phone_number"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="2dp"
+ style="@style/SecondaryText"/>
+ </LinearLayout>
+</LinearLayout> \ No newline at end of file
diff --git a/java/com/android/dialer/contactactions/res/layout/divider_layout.xml b/java/com/android/dialer/contactactions/res/layout/divider_layout.xml
new file mode 100644
index 000000000..fdee50e48
--- /dev/null
+++ b/java/com/android/dialer/contactactions/res/layout/divider_layout.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<View
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
+ android:background="#12000000"/>
diff --git a/java/com/android/dialer/contactactions/res/layout/module_layout.xml b/java/com/android/dialer/contactactions/res/layout/module_layout.xml
new file mode 100644
index 000000000..9aee67937
--- /dev/null
+++ b/java/com/android/dialer/contactactions/res/layout/module_layout.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/module_container"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="?android:attr/selectableItemBackground">
+
+ <ImageView
+ android:id="@+id/module_image"
+ android:layout_width="@dimen/contact_actions_image_size"
+ android:layout_height="@dimen/contact_actions_image_size"
+ android:layout_marginStart="@dimen/contact_actions_image_margin"
+ android:layout_marginEnd="@dimen/contact_actions_image_margin"
+ android:tint="@color/dialer_secondary_text_color"
+ android:scaleType="center"/>
+
+ <TextView
+ android:id="@+id/module_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ style="@style/PrimaryText"/>
+</LinearLayout> \ No newline at end of file
diff --git a/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml b/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml
new file mode 100644
index 000000000..6984367bf
--- /dev/null
+++ b/java/com/android/dialer/contactactions/res/layout/sheet_layout.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/action_container"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="4dp"
+ android:paddingBottom="8dp"/>
diff --git a/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml b/java/com/android/dialer/contactactions/res/values/dimens.xml
index c2538cfd1..47bf804ac 100644
--- a/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml
+++ b/java/com/android/dialer/contactactions/res/values/dimens.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- ~ Copyright (C) 2014 The Android Open Source Project
+ ~ Copyright (C) 2017 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:autoMirrored="true"
- android:src="@drawable/quantum_ic_person_add_white_24"
- android:tint="@color/actionbar_icon_color"/>
+<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 5df106dbc..586e22aab 100644
--- a/java/com/android/dialer/contactsfragment/ContactViewHolder.java
+++ b/java/com/android/dialer/contactsfragment/ContactViewHolder.java
@@ -16,6 +16,7 @@
package com.android.dialer.contactsfragment;
+import android.content.Context;
import android.net.Uri;
import android.provider.ContactsContract.QuickContact;
import android.support.v7.widget.RecyclerView;
@@ -25,6 +26,8 @@ import android.view.View.OnClickListener;
import android.widget.QuickContactBadge;
import android.widget.TextView;
import com.android.dialer.common.Assert;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
/** View holder for a contact. */
final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClickListener {
@@ -32,12 +35,14 @@ final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClick
private final TextView header;
private final TextView name;
private final QuickContactBadge photo;
+ private final Context context;
private String headerText;
private Uri contactUri;
public ContactViewHolder(View itemView) {
super(itemView);
+ context = itemView.getContext();
itemView.findViewById(R.id.click_target).setOnClickListener(this);
header = (TextView) itemView.findViewById(R.id.header);
name = (TextView) itemView.findViewById(R.id.contact_name);
@@ -60,6 +65,10 @@ final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClick
name.setText(displayName);
header.setText(headerText);
header.setVisibility(showHeader ? View.VISIBLE : View.INVISIBLE);
+
+ Logger.get(context)
+ .logQuickContactOnTouch(
+ photo, InteractionEvent.Type.OPEN_QUICK_CONTACT_FROM_CONTACTS_FRAGMENT_BADGE, true);
}
public QuickContactBadge getPhoto() {
@@ -76,6 +85,8 @@ final class ContactViewHolder extends RecyclerView.ViewHolder implements OnClick
@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 4692eff5d..309e034cc 100644
--- a/java/com/android/dialer/contactsfragment/ContactsAdapter.java
+++ b/java/com/android/dialer/contactsfragment/ContactsAdapter.java
@@ -23,10 +23,10 @@ import android.provider.ContactsContract.Contacts;
import android.support.v4.util.ArrayMap;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
+import android.view.View;
import android.view.ViewGroup;
-import android.widget.TextView;
import com.android.contacts.common.ContactPhotoManager;
-import com.android.dialer.common.Assert;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
/** List adapter for the union of all contacts associated with every account on the device. */
final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> {
@@ -70,7 +70,7 @@ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> {
getPhotoId(cursor),
getPhotoUri(cursor),
name,
- 0);
+ LetterTileDrawable.TYPE_DEFAULT);
String photoDescription =
context.getString(com.android.contacts.common.R.string.description_quick_contact_for, name);
@@ -79,17 +79,23 @@ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> {
// Always show the view holder's header if it's the first item in the list. Otherwise, compare
// it to the previous element and only show the anchored header if the row elements fall into
// the same sublists.
- if (position == 0) {
- contactViewHolder.bind(header, name, contactUri, true);
- } else {
- boolean showHeader = !header.equals(getHeaderString(position - 1));
- contactViewHolder.bind(header, name, contactUri, showHeader);
- }
+ boolean showHeader = position == 0 || !header.equals(getHeaderString(position - 1));
+ contactViewHolder.bind(header, name, contactUri, showHeader);
+ }
+
+ @Override
+ public void onViewRecycled(ContactViewHolder contactViewHolder) {
+ super.onViewRecycled(contactViewHolder);
+ holderMap.remove(contactViewHolder);
}
public void refreshHeaders() {
for (ContactViewHolder holder : holderMap.keySet()) {
- onBindViewHolder(holder, holderMap.get(holder));
+ int position = holderMap.get(holder);
+ boolean showHeader =
+ position == 0 || !getHeaderString(position).equals(getHeaderString(position - 1));
+ int visibility = showHeader ? View.VISIBLE : View.INVISIBLE;
+ holder.getHeaderView().setVisibility(visibility);
}
}
@@ -98,27 +104,6 @@ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> {
return cursor == null ? 0 : cursor.getCount();
}
- public String getHeader(int position) {
- return getHolderAt(position).getHeader();
- }
-
- public TextView getHeaderView(int position) {
- return getHolderAt(position).getHeaderView();
- }
-
- public void setHeaderVisibility(int position, int visibility) {
- getHolderAt(position).getHeaderView().setVisibility(visibility);
- }
-
- private ContactViewHolder getHolderAt(int position) {
- for (ContactViewHolder holder : holderMap.keySet()) {
- if (holderMap.get(holder) == position) {
- return holder;
- }
- }
- throw Assert.createIllegalStateFailException("No holder for position: " + position);
- }
-
private static String getDisplayName(Cursor cursor) {
return cursor.getString(ContactsCursorLoader.CONTACT_DISPLAY_NAME);
}
@@ -138,7 +123,7 @@ final class ContactsAdapter extends RecyclerView.Adapter<ContactViewHolder> {
return Contacts.getLookupUri(contactId, lookupKey);
}
- private String getHeaderString(int position) {
+ public String getHeaderString(int position) {
int index = -1;
int sum = 0;
while (sum <= position) {
diff --git a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
index 6d4d21079..2bb540ac0 100644
--- a/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
+++ b/java/com/android/dialer/contactsfragment/ContactsCursorLoader.java
@@ -29,7 +29,7 @@ final class ContactsCursorLoader extends CursorLoader {
public static final int CONTACT_PHOTO_URI = 3;
public static final int CONTACT_LOOKUP_KEY = 4;
- public static final String[] CONTACTS_PROJECTION =
+ public static final String[] CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY =
new String[] {
Contacts._ID, // 0
Contacts.DISPLAY_NAME_PRIMARY, // 1
@@ -38,16 +38,35 @@ final class ContactsCursorLoader extends CursorLoader {
Contacts.LOOKUP_KEY, // 4
};
- public ContactsCursorLoader(Context context) {
+ public static final String[] CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE =
+ new String[] {
+ Contacts._ID, // 0
+ Contacts.DISPLAY_NAME_ALTERNATIVE, // 1
+ Contacts.PHOTO_ID, // 2
+ Contacts.PHOTO_THUMBNAIL_URI, // 3
+ Contacts.LOOKUP_KEY, // 4
+ };
+
+ private ContactsCursorLoader(Context context, String[] contactProjection, String sortKey) {
super(
context,
Contacts.CONTENT_URI
.buildUpon()
.appendQueryParameter(Contacts.EXTRA_ADDRESS_BOOK_INDEX, "true")
.build(),
- CONTACTS_PROJECTION,
+ contactProjection,
null,
null,
- Contacts.SORT_KEY_PRIMARY + " ASC");
+ sortKey + " ASC");
+ }
+
+ public static ContactsCursorLoader createInstanceDisplayNamePrimary(
+ Context context, String sortKey) {
+ return new ContactsCursorLoader(context, CONTACTS_PROJECTION_DISPLAY_NAME_PRIMARY, sortKey);
+ }
+
+ public static ContactsCursorLoader createInstanceDisplayNameAlternative(
+ Context context, String sortKey) {
+ return new ContactsCursorLoader(context, CONTACTS_PROJECTION_DISPLAY_NAME_ALTERNATIVE, sortKey);
}
}
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java
index ea662fc89..a996a4fad 100644
--- a/java/com/android/dialer/contactsfragment/ContactsFragment.java
+++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java
@@ -16,63 +16,125 @@
package com.android.dialer.contactsfragment;
+import android.Manifest.permission;
import android.app.Fragment;
import android.app.LoaderManager.LoaderCallbacks;
import android.content.Loader;
+import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Bundle;
+import android.provider.ContactsContract.Contacts;
import android.support.annotation.Nullable;
+import android.support.v13.app.FragmentCompat;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.RecyclerView.Recycler;
+import android.support.v7.widget.RecyclerView.State;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnScrollChangeListener;
import android.view.ViewGroup;
import android.widget.TextView;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.dialer.common.Assert;
+import com.android.dialer.util.DialerUtils;
+import com.android.dialer.util.IntentUtil;
import com.android.dialer.util.PermissionsUtil;
+import com.android.dialer.widget.EmptyContentView;
+import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
/** Fragment containing a list of all contacts. */
public class ContactsFragment extends Fragment
- implements LoaderCallbacks<Cursor>, OnScrollChangeListener {
+ implements LoaderCallbacks<Cursor>,
+ OnScrollChangeListener,
+ OnEmptyViewActionButtonClickedListener {
+ public static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
+
+ private FastScroller fastScroller;
private TextView anchoredHeader;
private RecyclerView recyclerView;
private LinearLayoutManager manager;
private ContactsAdapter adapter;
+ private EmptyContentView emptyContentView;
+
+ private ContactsPreferences contactsPrefs;
+
+ private final ContactsPreferences.ChangeListener preferencesChangeListener =
+ () -> getLoaderManager().restartLoader(0, null, this);
+
+ @Override
+ public void onCreate(Bundle savedState) {
+ super.onCreate(savedState);
+ contactsPrefs = new ContactsPreferences(getContext());
+ contactsPrefs.registerChangeListener(preferencesChangeListener);
+ }
@Nullable
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_contacts, container, false);
+ fastScroller = (FastScroller) view.findViewById(R.id.fast_scroller);
anchoredHeader = (TextView) view.findViewById(R.id.header);
- manager = new LinearLayoutManager(getContext());
-
- // TODO: Handle contacts permission denied view
- // TODO: Handle 0 contacts layout
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
- recyclerView.setLayoutManager(manager);
- getLoaderManager().initLoader(0, null, this);
+
+ emptyContentView = (EmptyContentView) view.findViewById(R.id.empty_list_view);
+ emptyContentView.setImage(R.drawable.empty_contacts);
+ emptyContentView.setActionClickedListener(this);
if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
getLoaderManager().initLoader(0, null, this);
+ } else {
+ emptyContentView.setDescription(R.string.permission_no_contacts);
+ emptyContentView.setActionLabel(R.string.permission_single_turn_on);
+ emptyContentView.setVisibility(View.VISIBLE);
}
return view;
}
+ /** @return a loader according to sort order and display order. */
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
- return new ContactsCursorLoader(getContext());
+ boolean sortOrderPrimary =
+ (contactsPrefs.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY);
+ boolean displayOrderPrimary =
+ (contactsPrefs.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+ String sortKey = sortOrderPrimary ? Contacts.SORT_KEY_PRIMARY : Contacts.SORT_KEY_ALTERNATIVE;
+ return displayOrderPrimary
+ ? ContactsCursorLoader.createInstanceDisplayNamePrimary(getContext(), sortKey)
+ : ContactsCursorLoader.createInstanceDisplayNameAlternative(getContext(), sortKey);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
- // TODO setup fast scroller.
- adapter = new ContactsAdapter(getContext(), cursor);
- recyclerView.setAdapter(adapter);
- if (adapter.getItemCount() > 1) {
- recyclerView.setOnScrollChangeListener(this);
+ if (cursor.getCount() == 0) {
+ emptyContentView.setDescription(R.string.all_contacts_empty);
+ emptyContentView.setActionLabel(R.string.all_contacts_empty_add_contact_action);
+ emptyContentView.setVisibility(View.VISIBLE);
+ } else {
+ emptyContentView.setVisibility(View.GONE);
+ adapter = new ContactsAdapter(getContext(), cursor);
+ manager =
+ new LinearLayoutManager(getContext()) {
+ @Override
+ public void onLayoutChildren(Recycler recycler, State state) {
+ super.onLayoutChildren(recycler, state);
+ int itemsShown = findLastVisibleItemPosition() - findFirstVisibleItemPosition() + 1;
+ if (adapter.getItemCount() > itemsShown) {
+ fastScroller.setVisibility(View.VISIBLE);
+ recyclerView.setOnScrollChangeListener(ContactsFragment.this);
+ } else {
+ fastScroller.setVisibility(View.GONE);
+ }
+ }
+ };
+
+ recyclerView.setLayoutManager(manager);
+ recyclerView.setAdapter(adapter);
+ fastScroller.setup(adapter, manager);
}
}
@@ -81,6 +143,7 @@ public class ContactsFragment extends Fragment
recyclerView.setAdapter(null);
recyclerView.setOnScrollChangeListener(null);
adapter = null;
+ contactsPrefs.unregisterChangeListener();
}
/*
@@ -95,8 +158,10 @@ public class ContactsFragment extends Fragment
*/
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
+ fastScroller.updateContainerAndScrollBarPosition(recyclerView);
int firstVisibleItem = manager.findFirstVisibleItemPosition();
int firstCompletelyVisible = manager.findFirstCompletelyVisibleItemPosition();
+ String anchoredHeaderString = adapter.getHeaderString(firstCompletelyVisible);
// If the user swipes to the top of the list very quickly, there is some strange behavior
// between this method updating headers and adapter#onBindViewHolder updating headers.
@@ -104,15 +169,46 @@ public class ContactsFragment extends Fragment
if (firstVisibleItem == firstCompletelyVisible && firstVisibleItem == 0) {
adapter.refreshHeaders();
anchoredHeader.setVisibility(View.INVISIBLE);
+ } else if (adapter.getHeaderString(firstVisibleItem).equals(anchoredHeaderString)) {
+ anchoredHeader.setText(anchoredHeaderString);
+ anchoredHeader.setVisibility(View.VISIBLE);
+ getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.INVISIBLE);
+ getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.INVISIBLE);
} else {
- boolean showAnchor =
- adapter.getHeader(firstVisibleItem).equals(adapter.getHeader(firstCompletelyVisible));
- anchoredHeader.setText(adapter.getHeader(firstCompletelyVisible));
- anchoredHeader.setVisibility(showAnchor ? View.VISIBLE : View.INVISIBLE);
-
- int rowHeaderVisibility = showAnchor ? View.INVISIBLE : View.VISIBLE;
- adapter.setHeaderVisibility(firstVisibleItem, rowHeaderVisibility);
- adapter.setHeaderVisibility(firstCompletelyVisible, rowHeaderVisibility);
+ anchoredHeader.setVisibility(View.INVISIBLE);
+ getContactHolder(firstVisibleItem).getHeaderView().setVisibility(View.VISIBLE);
+ getContactHolder(firstCompletelyVisible).getHeaderView().setVisibility(View.VISIBLE);
+ }
+ }
+
+ private ContactViewHolder getContactHolder(int position) {
+ return ((ContactViewHolder) recyclerView.findViewHolderForAdapterPosition(position));
+ }
+
+ @Override
+ public void onEmptyViewActionButtonClicked() {
+ if (emptyContentView.getActionLabel() == R.string.permission_single_turn_on) {
+ FragmentCompat.requestPermissions(
+ this, new String[] {permission.READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
+ } else if (emptyContentView.getActionLabel()
+ == R.string.all_contacts_empty_add_contact_action) {
+ // Add new contact
+ DialerUtils.startActivityWithErrorToast(
+ getContext(), IntentUtil.getNewContactIntent(), R.string.add_contact_not_available);
+ } else {
+ throw Assert.createIllegalStateFailException("Invalid empty content view action label.");
+ }
+ }
+
+ @Override
+ public void onRequestPermissionsResult(
+ int requestCode, String[] permissions, int[] grantResults) {
+ if (requestCode == READ_CONTACTS_PERMISSION_REQUEST_CODE) {
+ if (grantResults.length >= 1 && PackageManager.PERMISSION_GRANTED == grantResults[0]) {
+ // Force a refresh of the data since we were missing the permission before this.
+ emptyContentView.setVisibility(View.GONE);
+ getLoaderManager().initLoader(0, null, this);
+ }
}
}
}
diff --git a/java/com/android/dialer/contactsfragment/FastScroller.java b/java/com/android/dialer/contactsfragment/FastScroller.java
new file mode 100644
index 000000000..980032cb5
--- /dev/null
+++ b/java/com/android/dialer/contactsfragment/FastScroller.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.contactsfragment;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+/** Widget to add fast scrolling to {@link ContactsFragment}. */
+public class FastScroller extends RelativeLayout {
+
+ private final int touchTargetWidth;
+
+ private ContactsAdapter adapter;
+ private LinearLayoutManager layoutManager;
+
+ private TextView container;
+ private View scrollBar;
+
+ private boolean dragStarted;
+
+ public FastScroller(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ touchTargetWidth =
+ context.getResources().getDimensionPixelSize(R.dimen.fast_scroller_touch_target_width);
+ }
+
+ @Override
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ container = (TextView) findViewById(R.id.fast_scroller_container);
+ scrollBar = findViewById(R.id.fast_scroller_scroll_bar);
+ }
+
+ void setup(ContactsAdapter adapter, LinearLayoutManager layoutManager) {
+ this.adapter = adapter;
+ this.layoutManager = layoutManager;
+ }
+
+ @Override
+ public boolean onTouchEvent(@NonNull MotionEvent event) {
+ // Don't override if touch event isn't within desired touch target and dragging hasn't started.
+ if (!dragStarted && getWidth() - touchTargetWidth - event.getX() > 0) {
+ return super.onTouchEvent(event);
+ }
+
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ dragStarted = true;
+ container.setVisibility(VISIBLE);
+ scrollBar.setSelected(true);
+ // fall through
+ case MotionEvent.ACTION_MOVE:
+ setContainerAndScrollBarPosition(event.getY());
+ setRecyclerViewPosition(event.getY());
+ return true;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ dragStarted = false;
+ container.setVisibility(INVISIBLE);
+ scrollBar.setSelected(false);
+ return true;
+ }
+ return super.onTouchEvent(event);
+ }
+
+ private void setRecyclerViewPosition(float y) {
+ final int itemCount = adapter.getItemCount();
+ float scrolledPosition = getScrolledPercentage(y) * (float) itemCount;
+ int targetPos = getValueInRange(0, itemCount - 1, (int) scrolledPosition);
+ layoutManager.scrollToPositionWithOffset(targetPos, 0);
+ container.setText(adapter.getHeaderString(targetPos));
+ }
+
+ // Returns a float in range [0, 1] which represents the position of the scroller.
+ private float getScrolledPercentage(float y) {
+ if (scrollBar.getY() == 0) {
+ return 0f;
+ } else if (scrollBar.getY() + scrollBar.getHeight() >= getHeight()) {
+ return 1f;
+ } else {
+ return y / (float) getHeight();
+ }
+ }
+
+ private int getValueInRange(int min, int max, int value) {
+ int minimum = Math.max(min, value);
+ return Math.min(minimum, max);
+ }
+
+ void updateContainerAndScrollBarPosition(RecyclerView recyclerView) {
+ if (!scrollBar.isSelected()) {
+ int verticalScrollOffset = recyclerView.computeVerticalScrollOffset();
+ int verticalScrollRange = recyclerView.computeVerticalScrollRange();
+ float proportion = (float) verticalScrollOffset / ((float) verticalScrollRange - getHeight());
+ setContainerAndScrollBarPosition(getHeight() * proportion);
+ }
+ }
+
+ private void setContainerAndScrollBarPosition(float y) {
+ int scrollBarHeight = scrollBar.getHeight();
+ int containerHeight = container.getHeight();
+ scrollBar.setY(
+ getValueInRange(0, getHeight() - scrollBarHeight, (int) (y - scrollBarHeight / 2)));
+ container.setY(
+ getValueInRange(
+ 0, getHeight() - containerHeight - scrollBarHeight / 2, (int) (y - containerHeight)));
+ }
+}
diff --git a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml
new file mode 100644
index 000000000..a7b227799
--- /dev/null
+++ b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/dialer_theme_color"/>
+ <size
+ android:height="@dimen/fast_scroller_container_size"
+ android:width="@dimen/fast_scroller_container_size"/>
+ <corners
+ android:topLeftRadius="@dimen/fast_scroller_container_corner_radius"
+ android:topRightRadius="@dimen/fast_scroller_container_corner_radius"
+ android:bottomLeftRadius="@dimen/fast_scroller_bottom_left_corner_radius"
+ android:bottomRightRadius="@dimen/fast_scroller_bottom_right_corner_radius"/>
+</shape> \ No newline at end of file
diff --git a/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml
new file mode 100644
index 000000000..a3e0c25c7
--- /dev/null
+++ b/java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_selected="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/dialer_theme_color"/>
+ <size android:height="32dp" android:width="4dp"/>
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+ <item>
+ <shape android:shape="rectangle">
+ <solid android:color="@color/dialer_secondary_text_color"/>
+ <size android:height="32dp" android:width="4dp"/>
+ <corners android:radius="2dp"/>
+ </shape>
+ </item>
+</selector> \ No newline at end of file
diff --git a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
index af87c7f18..9e829fee4 100644
--- a/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
+++ b/java/com/android/dialer/contactsfragment/res/layout/contact_row.xml
@@ -43,11 +43,13 @@
<TextView
android:id="@+id/contact_name"
- android:layout_width="match_parent"
+ android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingStart="@dimen/text_padding_start"
android:paddingEnd="@dimen/text_padding_end"
- android:gravity="center_vertical|start"
+ android:maxLines="1"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
android:textSize="@dimen/text_size"
android:textColor="@color/dialer_primary_text_color"
android:fontFamily="sans-serif"/>
diff --git a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
index 67b490f03..7cbc4f0e6 100644
--- a/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
+++ b/java/com/android/dialer/contactsfragment/res/layout/fragment_contacts.xml
@@ -23,8 +23,46 @@
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/background_dialer_white"/>
+ android:background="@color/background_dialer_light"/>
+
+ <!-- Scrollbars are always on the right side of the screen. Layouts should use Rights/Left instead
+ of Start/End -->
+ <com.android.dialer.contactsfragment.FastScroller
+ android:id="@+id/fast_scroller"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
+ android:clipChildren="false">
+
+ <TextView
+ android:id="@+id/fast_scroller_container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_toLeftOf="@+id/fast_scroller_scroll_bar"
+ android:gravity="center"
+ android:textSize="48sp"
+ android:textColor="@color/background_dialer_white"
+ android:visibility="gone"
+ android:background="@drawable/fast_scroller_container_background"/>
+
+ <ImageView
+ android:id="@+id/fast_scroller_scroll_bar"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="8dp"
+ android:layout_alignParentRight="true"
+ android:paddingRight="16dp"
+ android:src="@drawable/fast_scroller_scroll_bar" />
+ </com.android.dialer.contactsfragment.FastScroller>
<!-- Anchored header view -->
<include layout="@layout/header"/>
+
+ <com.android.dialer.widget.EmptyContentView
+ android:id="@+id/empty_list_view"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:visibility="gone"/>
</FrameLayout>
diff --git a/java/com/android/dialer/contactsfragment/res/values/dimens.xml b/java/com/android/dialer/contactsfragment/res/values/dimens.xml
index 00d7c6d7e..f120014e2 100644
--- a/java/com/android/dialer/contactsfragment/res/values/dimens.xml
+++ b/java/com/android/dialer/contactsfragment/res/values/dimens.xml
@@ -25,4 +25,11 @@
<dimen name="text_padding_start">16dp</dimen>
<dimen name="text_padding_end">8dp</dimen>
<dimen name="text_size">16sp</dimen>
-</resources>
+
+ <dimen name="fast_scroller_touch_target_width">20dp</dimen>
+
+ <dimen name="fast_scroller_container_size">88dp</dimen>
+ <dimen name="fast_scroller_container_corner_radius">44dp</dimen>
+ <dimen name="fast_scroller_bottom_right_corner_radius">0px</dimen>
+ <dimen name="fast_scroller_bottom_left_corner_radius">44dp</dimen>
+</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java
index 348814281..6dd7cf462 100644
--- a/java/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/java/com/android/dialer/database/DialerDatabaseHelper.java
@@ -34,6 +34,7 @@ import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.Directory;
import android.support.annotation.VisibleForTesting;
+import android.support.annotation.WorkerThread;
import android.text.TextUtils;
import com.android.contacts.common.R;
import com.android.contacts.common.util.StopWatch;
@@ -46,7 +47,6 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
/**
* Database helper for smart dial. Designed as a singleton to make sure there is only one access
@@ -77,8 +77,6 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
private static final int MAX_ENTRIES = 20;
private final Context mContext;
- private final Object mLock = new Object();
- private final AtomicBoolean mInUpdate = new AtomicBoolean(false);
private boolean mIsTestInstance = false;
protected DialerDatabaseHelper(Context context, String databaseName, int dbVersion) {
@@ -596,218 +594,212 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
* accordingly. It also queries the deleted contact database to remove newly deleted contacts
* since last update.
*/
- public void updateSmartDialDatabase() {
+ @WorkerThread
+ public synchronized void updateSmartDialDatabase() {
LogUtil.enterBlock("DialerDatabaseHelper.updateSmartDialDatabase");
final SQLiteDatabase db = getWritableDatabase();
- synchronized (mLock) {
- LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database");
- final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null;
+ LogUtil.v("DialerDatabaseHelper.updateSmartDialDatabase", "starting to update database");
+ final StopWatch stopWatch = DEBUG ? StopWatch.start("Updating databases") : null;
- /** Gets the last update time on the database. */
- final SharedPreferences databaseLastUpdateSharedPref =
- mContext.getSharedPreferences(DATABASE_LAST_CREATED_SHARED_PREF, Context.MODE_PRIVATE);
- final String lastUpdateMillis =
- String.valueOf(databaseLastUpdateSharedPref.getLong(LAST_UPDATED_MILLIS, 0));
-
- 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();
+ /** 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));
- if (DEBUG) {
- stopWatch.lap("Queried the Contacts database");
- }
+ LogUtil.v(
+ "DialerDatabaseHelper.updateSmartDialDatabase", "last updated at " + lastUpdateMillis);
- /** Prevents the app from reading the dialer database when updating. */
- mInUpdate.getAndSet(true);
+ /** Sets the time after querying the database as the current update time. */
+ final Long currentMillis = System.currentTimeMillis();
- /** Removes contacts that have been deleted. */
- removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis));
- removePotentiallyCorruptedContacts(db, lastUpdateMillis);
+ if (DEBUG) {
+ stopWatch.lap("Queried the Contacts database");
+ }
- 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")) {
- /**
- * 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");
- }
- }
+ if (DEBUG) {
+ stopWatch.lap("Finished deleting deleted entries");
+ }
+ /**
+ * If the database did not exist before, jump through deletion as there is nothing to delete.
+ */
+ if (!lastUpdateMillis.equals("0")) {
/**
- * Queries the contact database to get all phone numbers that have been updated since the last
- * update time.
+ * 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 updatedPhoneCursor =
+ final Cursor updatedContactCursor =
mContext
.getContentResolver()
.query(
- PhoneQuery.URI,
- PhoneQuery.PROJECTION,
- PhoneQuery.SELECTION,
+ UpdatedContactQuery.URI,
+ UpdatedContactQuery.PROJECTION,
+ UpdatedContactQuery.SELECT_UPDATED_CLAUSE,
new String[] {lastUpdateMillis},
null);
- if (updatedPhoneCursor == null) {
+ if (updatedContactCursor == null) {
LogUtil.e(
"DialerDatabaseHelper.updateSmartDialDatabase",
"smartDial query received null for cursor");
return;
}
-
try {
- /** Inserts recently updated phone numbers to the smartdial database. */
- insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis);
- if (DEBUG) {
- stopWatch.lap("Finished building the smart dial table");
- }
+ removeUpdatedContacts(db, updatedContactCursor);
} finally {
- updatedPhoneCursor.close();
+ updatedContactCursor.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();
- }
+ if (DEBUG) {
+ stopWatch.lap("Finished deleting entries belonging to updated contacts");
}
+ }
- /** 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
- + ");");
+ /**
+ * 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(TAG + "Finished recreating index");
+ stopWatch.lap("Finished building the smart dial table");
}
+ } finally {
+ updatedPhoneCursor.close();
+ }
- /** 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);
- }
+ /**
+ * Gets a list of distinct contacts which have been updated, and adds the name prefixes of these
+ * contacts to the prefix table.
+ */
+ final Cursor nameCursor =
+ db.rawQuery(
+ "SELECT DISTINCT "
+ + SmartDialDbColumns.DISPLAY_NAME_PRIMARY
+ + ", "
+ + SmartDialDbColumns.CONTACT_ID
+ + " FROM "
+ + Tables.SMARTDIAL_TABLE
+ + " WHERE "
+ + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME
+ + " = "
+ + currentMillis,
+ new String[] {});
+ if (nameCursor != null) {
+ try {
+ if (DEBUG) {
+ stopWatch.lap("Queried the smart dial table for contact names");
+ }
- mInUpdate.getAndSet(false);
+ /** Inserts prefixes of names into the prefix table. */
+ insertNamePrefixes(db, nameCursor);
+ if (DEBUG) {
+ stopWatch.lap("Finished building the name prefix table");
+ }
+ } finally {
+ nameCursor.close();
+ }
+ }
- final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit();
- editor.putLong(LAST_UPDATED_MILLIS, currentMillis);
- editor.apply();
+ /** 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
+ + ");");
- LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update");
+ if (DEBUG) {
+ stopWatch.lap(TAG + "Finished recreating index");
+ }
- // 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);
+ /** Updates the database index statistics. */
+ db.execSQL("ANALYZE " + Tables.SMARTDIAL_TABLE);
+ db.execSQL("ANALYZE " + Tables.PREFIX_TABLE);
+ db.execSQL("ANALYZE smartdial_contact_id_index");
+ db.execSQL("ANALYZE smartdial_last_update_index");
+ db.execSQL("ANALYZE nameprefix_index");
+ db.execSQL("ANALYZE nameprefix_contact_id_index");
+ if (DEBUG) {
+ stopWatch.stopAndLog(TAG + "Finished updating index stats", 0);
}
+
+ final SharedPreferences.Editor editor = databaseLastUpdateSharedPref.edit();
+ editor.putLong(LAST_UPDATED_MILLIS, currentMillis);
+ editor.apply();
+
+ LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update");
+
+ // Notify content observers that smart dial database has been updated.
+ Intent intent = new Intent(ACTION_SMART_DIAL_UPDATED);
+ intent.setPackage(mContext.getPackageName());
+ mContext.sendBroadcast(intent);
}
/**
@@ -817,12 +809,9 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
* @param query The prefix of a contact's dialpad index.
* @return A list of top candidate contacts that will be suggested to user to match their input.
*/
- public ArrayList<ContactNumber> getLooseMatches(String query, SmartDialNameMatcher nameMatcher) {
- final boolean inUpdate = mInUpdate.get();
- if (inUpdate) {
- return new ArrayList<>();
- }
-
+ @WorkerThread
+ public synchronized ArrayList<ContactNumber> getLooseMatches(
+ String query, SmartDialNameMatcher nameMatcher) {
final SQLiteDatabase db = getReadableDatabase();
/** Uses SQL query wildcard '%' to represent prefix matching. */
diff --git a/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto b/java/com/android/dialer/dialercontact/dialer_contact.proto
index 99766aac5..ee364c6e0 100644
--- a/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
+++ b/java/com/android/dialer/dialercontact/dialer_contact.proto
@@ -1,12 +1,12 @@
syntax = "proto2";
-option java_package = "com.android.dialer.callcomposer";
+option java_package = "com.android.dialer.dialercontact";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
package com.android.dialer.callcomposer;
-message CallComposerContact {
+message DialerContact {
optional fixed64 photo_id = 1;
optional string photo_uri = 2;
optional string contact_uri = 3;
diff --git a/java/com/android/dialer/dialpadview/res/values/dimens.xml b/java/com/android/dialer/dialpadview/res/values/dimens.xml
index 210c81697..727736497 100644
--- a/java/com/android/dialer/dialpadview/res/values/dimens.xml
+++ b/java/com/android/dialer/dialpadview/res/values/dimens.xml
@@ -16,7 +16,7 @@
<resources>
<!-- Text dimensions for dialpad keys -->
- <dimen name="dialpad_key_numbers_default_size">36sp</dimen>
+ <dimen name="dialpad_key_numbers_default_size">36dp</dimen>
<dimen name="dialpad_key_letters_size">12sp</dimen>
<dimen name="dialpad_key_pound_size">23sp</dimen>
<dimen name="dialpad_key_star_size">36sp</dimen>
diff --git a/java/com/android/dialer/interactions/PhoneNumberInteraction.java b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
index 52f9d208f..ef468a9f3 100644
--- a/java/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/java/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -54,11 +54,14 @@ import com.android.contacts.common.Collapser;
import com.android.contacts.common.Collapser.Collapsible;
import com.android.contacts.common.MoreContactUtils;
import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.callintent.CallIntentParser;
import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.TransactionSafeActivity;
import java.lang.annotation.Retention;
@@ -543,6 +546,12 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
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 a90febf2b..c4bed14d0 100644
--- a/java/com/android/dialer/location/CountryDetector.java
+++ b/java/com/android/dialer/location/CountryDetector.java
@@ -33,8 +33,8 @@ import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.common.concurrent.DialerExecutors;
import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.util.PermissionsUtil;
import java.util.List;
import java.util.Locale;
@@ -216,7 +216,9 @@ public class CountryDetector {
private static void processLocationUpdate(
Context appContext, Geocoder geocoder, Location location) {
- DialerExecutors.createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder))
+ DialerExecutorComponent.get(appContext)
+ .dialerExecutorFactory()
+ .createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder))
.onSuccess(
country -> {
if (country == null) {
diff --git a/java/com/android/dialer/logging/LoggingBindings.java b/java/com/android/dialer/logging/LoggingBindings.java
index 526cb2088..4a98d9e7d 100644
--- a/java/com/android/dialer/logging/LoggingBindings.java
+++ b/java/com/android/dialer/logging/LoggingBindings.java
@@ -14,8 +14,8 @@
package com.android.dialer.logging;
-
import android.app.Activity;
+import android.widget.QuickContactBadge;
/** Allows the container application to gather analytics. */
public interface LoggingBindings {
@@ -62,6 +62,22 @@ public interface LoggingBindings {
*/
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 f7ca6ecb0..dd3b8ac61 100644
--- a/java/com/android/dialer/logging/LoggingBindingsStub.java
+++ b/java/com/android/dialer/logging/LoggingBindingsStub.java
@@ -15,6 +15,7 @@
package com.android.dialer.logging;
import android.app.Activity;
+import android.widget.QuickContactBadge;
/** Default implementation for logging bindings. */
public class LoggingBindingsStub implements LoggingBindings {
@@ -36,5 +37,21 @@ public class LoggingBindingsStub implements LoggingBindings {
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 835d7d7dc..c9624aff1 100644
--- a/java/com/android/dialer/logging/contact_lookup_result.proto
+++ b/java/com/android/dialer/logging/contact_lookup_result.proto
@@ -5,6 +5,7 @@ option java_package = "com.android.dialer.logging";
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 470cf8bd7..ffd32de0e 100644
--- a/java/com/android/dialer/logging/contact_source.proto
+++ b/java/com/android/dialer/logging/contact_source.proto
@@ -5,6 +5,7 @@ option java_package = "com.android.dialer.logging";
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 541614623..1d8c828ff 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -5,11 +5,12 @@ option java_package = "com.android.dialer.logging";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
+
message DialerImpression {
// Event enums to be used for Impression Logging in Dialer.
// It's perfectly acceptable for this enum to be large
// Values should be from 1000 to 100000.
- // Next Tag:1191
+ // Next Tag:1196
enum Type {
UNKNOWN_AOSP_EVENT_TYPE = 1000;
@@ -386,5 +387,21 @@ message DialerImpression {
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 b9af1b763..89cf46fc9 100644
--- a/java/com/android/dialer/logging/interaction_event.proto
+++ b/java/com/android/dialer/logging/interaction_event.proto
@@ -5,7 +5,9 @@ option java_package = "com.android.dialer.logging";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
+
message InteractionEvent {
+ // Next Tag: 38
enum Type {
UNKNOWN = 0;
@@ -41,5 +43,23 @@ message InteractionEvent {
// 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 72869489c..d436564df 100644
--- a/java/com/android/dialer/logging/reporting_location.proto
+++ b/java/com/android/dialer/logging/reporting_location.proto
@@ -5,6 +5,7 @@ option java_package = "com.android.dialer.logging";
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 2430bfd5a..ca624774d 100644
--- a/java/com/android/dialer/logging/screen_event.proto
+++ b/java/com/android/dialer/logging/screen_event.proto
@@ -5,6 +5,7 @@ option java_package = "com.android.dialer.logging";
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 22bb7641c..dee0cff0b 100644
--- a/java/com/android/dialer/multimedia/MultimediaData.java
+++ b/java/com/android/dialer/multimedia/MultimediaData.java
@@ -20,6 +20,7 @@ import android.location.Location;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.text.TextUtils;
import com.android.dialer.common.LogUtil;
import com.google.auto.value.AutoValue;
@@ -63,6 +64,11 @@ public abstract class MultimediaData {
/** 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 095ee4e66..806d553eb 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -18,7 +18,6 @@ package com.android.dialer.oem;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.pm.PackageManager;
-import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build.VERSION_CODES;
@@ -31,7 +30,6 @@ import android.text.TextUtils;
import com.android.dialer.common.Assert;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.util.PermissionsUtil;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -73,17 +71,12 @@ public class CequintCallerIdManager {
private static final String IMAGE = "cid_pLogo";
private static final String DISPLAY_NAME = "cid_pDisplayName";
- // TODO: Revisit it and maybe remove it if it's not necessary.
- private static final ConcurrentHashMap<String, CequintCallerIdContact> callLogCache =
- new ConcurrentHashMap<>();
- private static final ConcurrentHashMap<String, CequintCallerIdContact> incallIncomingCallCache =
- new ConcurrentHashMap<>();
- private static final ConcurrentHashMap<String, CequintCallerIdContact> incallOutgoingCallCache =
- new ConcurrentHashMap<>();
- private static boolean hasRegisteredContentObserver;
private static boolean hasAlreadyCheckedCequintCallerIdPackage;
private static boolean isCequintCallerIdEnabled;
+ // TODO: Revisit it and maybe remove it if it's not necessary.
+ private final ConcurrentHashMap<String, CequintCallerIdContact> callLogCache;
+
/** Cequint caller id contact information. */
public static class CequintCallerIdContact {
public final String name;
@@ -117,27 +110,8 @@ public class CequintCallerIdManager {
return isCequintCallerIdEnabled;
}
- @WorkerThread
- @Nullable
- public static CequintCallerIdContact getCequintCallerIdContact(Context context, String number) {
- Assert.isWorkerThread();
- LogUtil.d(
- "CequintCallerIdManager.getCequintCallerIdContact",
- "number: %s",
- LogUtil.sanitizePhoneNumber(number));
- if (callLogCache.containsKey(number)) {
- return callLogCache.get(number);
- }
- CequintCallerIdContact cequintCallerIdContact =
- lookup(
- context,
- CONTENT_URI,
- PhoneNumberUtils.stripSeparators(number),
- new String[] {"system"});
- if (cequintCallerIdContact != null) {
- callLogCache.put(number, cequintCallerIdContact);
- }
- return cequintCallerIdContact;
+ public static CequintCallerIdManager createInstanceForCallLog() {
+ return new CequintCallerIdManager();
}
@WorkerThread
@@ -151,12 +125,6 @@ public class CequintCallerIdManager {
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;
@@ -165,14 +133,28 @@ public class CequintCallerIdManager {
flag |= CALLER_ID_LOOKUP_USER_PROVIDED_CID;
}
String[] flags = {cnapName, String.valueOf(flag)};
+ return lookup(context, CONTENT_URI_FOR_INCALL, number, flags);
+ }
+
+ @WorkerThread
+ @Nullable
+ public CequintCallerIdContact getCequintCallerIdContact(Context context, String number) {
+ Assert.isWorkerThread();
+ LogUtil.d(
+ "CequintCallerIdManager.getCequintCallerIdContact",
+ "number: %s",
+ LogUtil.sanitizePhoneNumber(number));
+ if (callLogCache.containsKey(number)) {
+ return callLogCache.get(number);
+ }
CequintCallerIdContact cequintCallerIdContact =
- lookup(context, CONTENT_URI_FOR_INCALL, number, flags);
+ lookup(
+ context,
+ CONTENT_URI,
+ PhoneNumberUtils.stripSeparators(number),
+ new String[] {"system"});
if (cequintCallerIdContact != null) {
- if (isIncoming) {
- incallIncomingCallCache.put(number, cequintCallerIdContact);
- } else {
- incallOutgoingCallCache.put(number, cequintCallerIdContact);
- }
+ callLogCache.put(number, cequintCallerIdContact);
}
return cequintCallerIdContact;
}
@@ -285,33 +267,7 @@ public class CequintCallerIdManager {
return geoDescription;
}
- private static synchronized void registerContentObserver(Context context) {
- if (!PermissionsUtil.hasCequintPermissions(context)) {
- LogUtil.i("CequintCallerIdManager.registerContentObserver", "no cequint permissions");
- return;
- }
-
- if (hasRegisteredContentObserver) {
- return;
- }
- ContentObserver contentObserver =
- new ContentObserver(null) {
- @Override
- public void onChange(boolean selfChange) {
- invalidateCache();
- }
- };
-
- context
- .getContentResolver()
- .registerContentObserver(CONTENT_URI_FOR_INCALL, true, contentObserver);
- hasRegisteredContentObserver = true;
- }
-
- private static void invalidateCache() {
- incallIncomingCallCache.clear();
- incallOutgoingCallCache.clear();
+ private CequintCallerIdManager() {
+ callLogCache = new ConcurrentHashMap<>();
}
-
- private CequintCallerIdManager() {}
}
diff --git a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
index 9cf145b7a..79abff08e 100644
--- a/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
+++ b/java/com/android/dialer/oem/MotorolaHiddenMenuKeySequence.java
@@ -67,9 +67,7 @@ public class MotorolaHiddenMenuKeySequence {
}
private MotorolaHiddenMenuKeySequence(Context context) {
- featureHiddenMenuEnabled =
- MotorolaUtils.isSpnMatched(context)
- && context.getResources().getBoolean(R.bool.motorola_feature_hidden_menu);
+ featureHiddenMenuEnabled = MotorolaUtils.isSupportingHiddenMenu(context);
// In case we do have a SPN from resource we need to match from service; otherwise we are
// free to go
if (featureHiddenMenuEnabled) {
diff --git a/java/com/android/dialer/oem/MotorolaUtils.java b/java/com/android/dialer/oem/MotorolaUtils.java
index db2b8909a..2c91e60ab 100644
--- a/java/com/android/dialer/oem/MotorolaUtils.java
+++ b/java/com/android/dialer/oem/MotorolaUtils.java
@@ -19,7 +19,10 @@ import android.content.Context;
import android.content.res.Resources;
import android.telephony.TelephonyManager;
import com.android.dialer.common.ConfigProviderBindings;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.common.PackageUtils;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
/** Util class for Motorola OEM devices. */
public class MotorolaUtils {
@@ -39,6 +42,8 @@ public class MotorolaUtils {
// This is used to check if a Motorola device supports WiFi call feature, by checking if a certain
// package is enabled.
private static final String WIFI_CALL_PACKAGE_NAME = "com.motorola.sprintwfc";
+ // Thi is used to check if a Motorola device supports hidden menu feature.
+ private static final String HIDDEN_MENU_FEATURE = "com.motorola.software.sprint.hidden_menu";
// Feature flag indicates it's a HD call, currently this is only used by Motorola system build.
// TODO(b/35359461): Use reference to android.provider.CallLog once it's in new SDK.
@@ -64,6 +69,10 @@ public class MotorolaUtils {
}
}
+ static boolean isSupportingHiddenMenu(Context context) {
+ return context.getPackageManager().hasSystemFeature(HIDDEN_MENU_FEATURE);
+ }
+
public static boolean shouldBlinkHdIconWhenConnectingCall(Context context) {
return ConfigProviderBindings.get(context)
.getBoolean(CONFIG_HD_CODEC_BLINKING_ICON_WHEN_CONNECTING_CALL_ENABLED, true)
@@ -102,6 +111,22 @@ public class MotorolaUtils {
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 7f63bee75..ac3397520 100644
--- a/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc310-mnc000/motorola_config.xml
@@ -1,6 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources>
<bool name="motorola_sprint_hd_codec">true</bool>
- <bool name="motorola_feature_hidden_menu">true</bool>
<string name="motorola_enabled_spn">Sprint</string>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
index 39b72cdd1..c5cb0d1f7 100644
--- a/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc310-mnc120/motorola_config.xml
@@ -1,5 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources>
<bool name="motorola_sprint_hd_codec">true</bool>
- <bool name="motorola_feature_hidden_menu">true</bool>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
index 39b72cdd1..c5cb0d1f7 100644
--- a/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc311-mnc490/motorola_config.xml
@@ -1,5 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources>
<bool name="motorola_sprint_hd_codec">true</bool>
- <bool name="motorola_feature_hidden_menu">true</bool>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
index 39b72cdd1..c5cb0d1f7 100644
--- a/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc311-mnc870/motorola_config.xml
@@ -1,5 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources>
<bool name="motorola_sprint_hd_codec">true</bool>
- <bool name="motorola_feature_hidden_menu">true</bool>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
index 39b72cdd1..c5cb0d1f7 100644
--- a/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc312-mnc530/motorola_config.xml
@@ -1,5 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources>
<bool name="motorola_sprint_hd_codec">true</bool>
- <bool name="motorola_feature_hidden_menu">true</bool>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
index 39b72cdd1..c5cb0d1f7 100644
--- a/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values-mcc316-mnc010/motorola_config.xml
@@ -1,5 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources>
<bool name="motorola_sprint_hd_codec">true</bool>
- <bool name="motorola_feature_hidden_menu">true</bool>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/oem/res/values/motorola_config.xml b/java/com/android/dialer/oem/res/values/motorola_config.xml
index f875d573d..46e7a16b6 100644
--- a/java/com/android/dialer/oem/res/values/motorola_config.xml
+++ b/java/com/android/dialer/oem/res/values/motorola_config.xml
@@ -1,12 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources>
<!-- Flag to control if HD codec is supported by Sprint. -->
<bool name="motorola_sprint_hd_codec">false</bool>
<!-- Hidden menu configuration for Motorola. -->
- <!-- Flag to control if the Hidden Menu sequence will be supported by Sprint. -->
- <bool name="motorola_feature_hidden_menu">false</bool>
-
<!-- This defines the specific key seuquence that will be catched in the SpecialCharSequenceMgr
such as, ##OMADM# -->
<string-array name="motorola_hidden_menu_key_sequence">
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfo.java b/java/com/android/dialer/phonenumbercache/ContactInfo.java
index 5546553f9..aef7374e4 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfo.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfo.java
@@ -17,7 +17,7 @@
package com.android.dialer.phonenumbercache;
import android.net.Uri;
-import android.support.annotation.Nullable;
+import android.support.annotation.NonNull;
import android.text.TextUtils;
import com.android.contacts.common.ContactsUtils.UserType;
import com.android.contacts.common.util.UriUtils;
@@ -59,7 +59,7 @@ public class ContactInfo {
public boolean isBadData;
public String objectId;
public @UserType long userType;
- public @Nullable ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE;
+ public @NonNull ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE;
/**
* True if local contact exists. This is only used for Cequint Caller ID so it won't overwrite
* photo if local contact exists.
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
index bd4ba9764..c9e940ef4 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
@@ -601,13 +601,17 @@ public class ContactInfoHelper {
* will be updated if available.
*/
@WorkerThread
- public void updateFromCequintCallerId(ContactInfo info, String number) {
+ public void updateFromCequintCallerId(
+ @Nullable CequintCallerIdManager cequintCallerIdManager, ContactInfo info, String number) {
Assert.isWorkerThread();
if (!CequintCallerIdManager.isCequintCallerIdEnabled(mContext)) {
return;
}
+ if (cequintCallerIdManager == null) {
+ return;
+ }
CequintCallerIdContact cequintCallerIdContact =
- CequintCallerIdManager.getCequintCallerIdContact(mContext, number);
+ cequintCallerIdManager.getCequintCallerIdContact(mContext, number);
if (cequintCallerIdContact == null) {
return;
}
diff --git a/java/com/android/dialer/postcall/AndroidManifest.xml b/java/com/android/dialer/postcall/AndroidManifest.xml
index 79ca5d5eb..22c77dd93 100644
--- a/java/com/android/dialer/postcall/AndroidManifest.xml
+++ b/java/com/android/dialer/postcall/AndroidManifest.xml
@@ -21,7 +21,7 @@
<activity
android:name="com.android.dialer.postcall.PostCallActivity"
android:exported="false"
- android:theme="@style/Theme.AppCompat.NoActionBar"
+ android:theme="@style/DialerThemeBase.NoActionBar"
android:windowSoftInputMode="adjustResize"
android:screenOrientation="portrait"/>
</application>
diff --git a/java/com/android/dialer/postcall/PostCall.java b/java/com/android/dialer/postcall/PostCall.java
index 586b47395..7eb83b133 100644
--- a/java/com/android/dialer/postcall/PostCall.java
+++ b/java/com/android/dialer/postcall/PostCall.java
@@ -26,8 +26,6 @@ import android.support.design.widget.Snackbar;
import android.telephony.TelephonyManager;
import android.view.View;
import android.view.View.OnClickListener;
-import com.android.dialer.buildtype.BuildType;
-import com.android.dialer.common.Assert;
import com.android.dialer.common.ConfigProvider;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
@@ -203,19 +201,7 @@ public class PostCall {
}
private static boolean isEnabled(Context context) {
- @BuildType.Type int type = BuildType.get();
- switch (type) {
- case BuildType.BUGFOOD:
- case BuildType.DOGFOOD:
- case BuildType.FISHFOOD:
- case BuildType.TEST:
- return ConfigProviderBindings.get(context).getBoolean("enable_post_call", true);
- case BuildType.RELEASE:
- return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true);
- default:
- Assert.fail();
- return false;
- }
+ return ConfigProviderBindings.get(context).getBoolean("enable_post_call_prod", true);
}
private static boolean isSimReady(Context context) {
diff --git a/java/com/android/dialer/protos/ProtoParsers.java b/java/com/android/dialer/protos/ProtoParsers.java
index b77c0699b..5a60799bc 100644
--- a/java/com/android/dialer/protos/ProtoParsers.java
+++ b/java/com/android/dialer/protos/ProtoParsers.java
@@ -18,13 +18,10 @@ package com.android.dialer.protos;
import android.content.Intent;
import android.os.Bundle;
-import android.os.Parcel;
-import android.os.Parcelable;
+import android.support.annotation.NonNull;
import com.android.dialer.common.Assert;
-import com.google.protobuf.CodedOutputStream;
import com.google.protobuf.InvalidProtocolBufferException;
import com.google.protobuf.MessageLite;
-import java.io.IOException;
/** Useful methods for using Protocol Buffers with Android. */
public final class ProtoParsers {
@@ -35,11 +32,8 @@ public final class ProtoParsers {
@SuppressWarnings("unchecked") // We want to eventually optimize away parser classes, so cast
public static <T extends MessageLite> T get(Bundle bundle, String key, T defaultInstance)
throws InvalidProtocolBufferException {
- // Class loaders are unique to each Class instance, so we need to specify how to decode
- // the information again, even though we set the class loaders when serializing the data.
- bundle.setClassLoader(ProtoParsers.class.getClassLoader());
- InternalDontUse parcelable = bundle.getParcelable(key);
- return (T) parcelable.getMessageUnsafe(defaultInstance.getDefaultInstanceForType());
+ byte[] bytes = bundle.getByteArray(key);
+ return (T) mergeFrom(bytes, defaultInstance.getDefaultInstanceForType());
}
/**
@@ -51,7 +45,7 @@ public final class ProtoParsers {
try {
return get(bundle, key, defaultInstance);
} catch (InvalidProtocolBufferException e) {
- throw new RuntimeException(e);
+ throw Assert.createIllegalStateFailException(e.toString());
}
}
@@ -68,121 +62,28 @@ public final class ProtoParsers {
* Stores a proto in a Bundle, for later retrieval by {@link #get(Bundle, String, MessageLite)} or
* {@link #getFromInstanceState(Bundle, String, MessageLite)}.
*/
- public static void put(Bundle bundle, String key, MessageLite message) {
- bundle.putParcelable(key, new InternalDontUse<>(null, message));
+ public static void put(
+ @NonNull Bundle bundle, @NonNull String key, @NonNull MessageLite message) {
+ Assert.checkState(message != null);
+ bundle.putByteArray(key, message.toByteArray());
}
/**
* Stores a proto in an Intent, for later retrieval by {@link #get(Bundle, String, MessageLite)}.
* Needs separate method because Intent has similar to but different API than Bundle.
*/
- public static void put(Intent intent, String key, MessageLite message) {
- intent.putExtra(key, new InternalDontUse<>(null, message));
- }
-
- /** Returns a {@linkplain Parcelable} representation of this protobuf message. */
- public static <T extends MessageLite> ParcelableProto<T> asParcelable(T message) {
- return new InternalDontUse<>(null, message);
- }
-
- /**
- * A protobuf message that can be stored in a {@link Parcel}.
- *
- * <p><b>Note:</b> This <code>Parcelable</code> can only be used in single app. Attempting to send
- * it to another app through an <code>Intent</code> will result in an exception due to Proguard
- * obfusation when the target application attempts to load the <code>ParcelableProto</code> class.
- */
- public interface ParcelableProto<T extends MessageLite> extends Parcelable {
- /**
- * @throws IllegalStateException if the parceled data does not correspond to the defaultInstance
- * type.
- */
- T getMessage(T defaultInstance);
- }
-
- /** Public because of Parcelable requirements. Do not use. */
- public static final class InternalDontUse<T extends MessageLite> implements ParcelableProto<T> {
- /* One of these two fields is always populated - since the bytes field never escapes this
- * object, there is no risk of concurrent modification by multiple threads, and volatile
- * is sufficient to be thread-safe. */
- private volatile byte[] bytes;
- private volatile T message;
-
- /**
- * Ideally, we would have type safety here. However, a static field {@link Creator} is required
- * by {@link Parcelable}. Static fields are inherently not type safe, since only 1 exists per
- * class (rather than 1 per type).
- */
- public static final Parcelable.Creator<InternalDontUse<?>> CREATOR =
- new Creator<InternalDontUse<?>>() {
- @Override
- public InternalDontUse<?> createFromParcel(Parcel parcel) {
- int serializedSize = parcel.readInt();
- byte[] array = new byte[serializedSize];
- parcel.readByteArray(array);
- return new InternalDontUse<>(array, null);
- }
-
- @Override
- public InternalDontUse<?>[] newArray(int i) {
- return new InternalDontUse[i];
- }
- };
-
- private InternalDontUse(byte[] bytes, T message) {
- Assert.checkArgument(bytes != null || message != null, "Must have a message or bytes");
- this.bytes = bytes;
- this.message = message;
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel parcel, int i) {
- if (bytes == null) {
- final byte[] flatArray = new byte[message.getSerializedSize()];
- try {
- message.writeTo(CodedOutputStream.newInstance(flatArray));
- bytes = flatArray;
- } catch (IOException impossible) {
- throw new AssertionError(impossible);
- }
- }
- parcel.writeInt(bytes.length);
- parcel.writeByteArray(bytes);
- }
-
- @Override
- public T getMessage(T defaultInstance) {
- try {
- // The proto should never be invalid if it came from our application, so if it is, throw.
- return getMessageUnsafe(defaultInstance);
- } catch (InvalidProtocolBufferException e) {
- throw new IllegalStateException(e);
- }
- }
-
- @SuppressWarnings("unchecked") // We're being deserialized, so there's no real type safety
- T getMessageUnsafe(T defaultInstance) throws InvalidProtocolBufferException {
- // There's a risk that we'll double-parse the bytes, but that's OK, because it'll end up
- // as the same immutable object anyway.
- if (message == null) {
- message = (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
- }
- return message;
- }
+ public static void put(@NonNull Intent intent, @NonNull String key, MessageLite message) {
+ Assert.checkState(message != null);
+ intent.putExtra(key, message.toByteArray());
}
/** Parses a proto, throwing parser errors as runtime exceptions. */
@SuppressWarnings("unchecked") // We want to eventually optimize away parser classes
- public static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
+ private static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
try {
return (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
} catch (InvalidProtocolBufferException e) {
- throw new RuntimeException(e);
+ throw Assert.createIllegalStateFailException(e.toString());
}
}
}
diff --git a/java/com/android/dialer/searchfragment/AndroidManifest.xml b/java/com/android/dialer/searchfragment/AndroidManifest.xml
new file mode 100644
index 000000000..88ce67c13
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<manifest package="com.android.dialer.searchfragment"/> \ No newline at end of file
diff --git a/java/com/android/dialer/searchfragment/NewSearchFragment.java b/java/com/android/dialer/searchfragment/NewSearchFragment.java
new file mode 100644
index 000000000..e7283d0ad
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/NewSearchFragment.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.app.Fragment;
+import android.app.LoaderManager.LoaderCallbacks;
+import android.content.Loader;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+/** Fragment used for searching contacts. */
+public final class NewSearchFragment extends Fragment implements LoaderCallbacks<Cursor> {
+
+ private RecyclerView recyclerView;
+ private SearchAdapter adapter;
+ private String query;
+
+ @Nullable
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle bundle) {
+ getLoaderManager().initLoader(0, null, this);
+ View view = inflater.inflate(R.layout.fragment_search, parent, false);
+ recyclerView = view.findViewById(R.id.recycler_view);
+ recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+
+ getLoaderManager().initLoader(0, null, this);
+ return view;
+ }
+
+ @Override
+ public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
+ // TODO add more loaders
+ return new SearchContactsCursorLoader(getContext());
+ }
+
+ @Override
+ public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
+ if (adapter == null) {
+ adapter = new SearchAdapter(getContext());
+ }
+ if (loader instanceof SearchContactsCursorLoader) {
+ adapter.setContactsCursor(new SearchContactCursor(cursor, query));
+ }
+ recyclerView.setAdapter(adapter);
+ }
+
+ @Override
+ public void onLoaderReset(Loader<Cursor> loader) {
+ if (adapter != null) {
+ adapter.clear();
+ adapter = null;
+ }
+ recyclerView.setAdapter(null);
+ }
+
+ public void setQuery(String query) {
+ this.query = query;
+ if (adapter != null) {
+ adapter.setQuery(query);
+ }
+ }
+}
diff --git a/java/com/android/dialer/searchfragment/QueryUtil.java b/java/com/android/dialer/searchfragment/QueryUtil.java
new file mode 100644
index 000000000..a3f44ab83
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/QueryUtil.java
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.graphics.Typeface;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.telephony.PhoneNumberUtils;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.style.StyleSpan;
+import java.util.regex.Pattern;
+
+/** Contains utility methods for comparing and filtering strings with search queries. */
+final class QueryUtil {
+
+ /** Matches strings with "-", "(", ")", 2-9 of at least length one. */
+ static final Pattern T9_PATTERN = Pattern.compile("[\\-()2-9]+");
+
+ /**
+ * Compares a name and query and returns a {@link CharSequence} with bolded characters.
+ *
+ * <p>Some example:
+ *
+ * <ul>
+ * <li>"query" would bold "John [query] Smith"
+ * <li>"222" would bold "[AAA] Mom"
+ * <li>"222" would bold "[A]llen [A]lex [A]aron"
+ * </ul>
+ *
+ * @param query containing any characters
+ * @param name of a contact/string that query will compare to
+ * @return name with query bolded if query can be found in the name.
+ */
+ static CharSequence getNameWithQueryBolded(@Nullable String query, @NonNull String name) {
+ if (TextUtils.isEmpty(query)) {
+ return name;
+ }
+
+ int index = -1;
+ int numberOfBoldedCharacters = 0;
+
+ if (nameMatchesT9Query(query, name)) {
+ // Bold the characters that match the t9 query
+ index = indexOfQueryNonDigitsIgnored(query, getT9Representation(name));
+ if (index == -1) {
+ return getNameWithInitialsBolded(query, name);
+ }
+ numberOfBoldedCharacters = query.length();
+
+ for (int i = 0; i < query.length(); i++) {
+ char c = query.charAt(i);
+ if (!Character.isDigit(c)) {
+ numberOfBoldedCharacters--;
+ }
+ }
+
+ for (int i = 0; i < index + numberOfBoldedCharacters; i++) {
+ if (!Character.isLetterOrDigit(name.charAt(i))) {
+ if (i < index) {
+ index++;
+ } else {
+ numberOfBoldedCharacters++;
+ }
+ }
+ }
+ }
+
+ if (index == -1) {
+ // Bold the query as an exact match in the name
+ index = name.toLowerCase().indexOf(query);
+ numberOfBoldedCharacters = query.length();
+ }
+
+ return index == -1 ? name : getBoldedString(name, index, numberOfBoldedCharacters);
+ }
+
+ private static CharSequence getNameWithInitialsBolded(String query, String name) {
+ SpannableString boldedInitials = new SpannableString(name);
+ name = name.toLowerCase();
+ int initialsBolded = 0;
+ int nameIndex = -1;
+
+ while (++nameIndex < name.length() && initialsBolded < query.length()) {
+ if ((nameIndex == 0 || name.charAt(nameIndex - 1) == ' ')
+ && getDigit(name.charAt(nameIndex)) == query.charAt(initialsBolded)) {
+ boldedInitials.setSpan(
+ new StyleSpan(Typeface.BOLD),
+ nameIndex,
+ nameIndex + 1,
+ Spanned.SPAN_INCLUSIVE_INCLUSIVE);
+ initialsBolded++;
+ }
+ }
+ return boldedInitials;
+ }
+
+ /**
+ * Compares a number and a query and returns a {@link CharSequence} with bolded characters.
+ *
+ * <ul>
+ * <li>"123" would bold "(650)34[1-23]24"
+ * <li>"123" would bold "+1([123])111-2222
+ * </ul>
+ *
+ * @param query containing only numbers and phone number related characters "(", ")", "-", "+"
+ * @param number phone number of a contact that the query will compare to.
+ * @return number with query bolded if query can be found in the number.
+ */
+ static CharSequence getNumberWithQueryBolded(@Nullable String query, @NonNull String number) {
+ if (TextUtils.isEmpty(query) || !numberMatchesNumberQuery(query, number)) {
+ return number;
+ }
+
+ int index = indexOfQueryNonDigitsIgnored(query, number);
+ int boldedCharacters = query.length();
+
+ for (char c : query.toCharArray()) {
+ if (!Character.isDigit(c)) {
+ boldedCharacters--;
+ }
+ }
+
+ for (int i = 0; i < index + boldedCharacters; i++) {
+ if (!Character.isDigit(number.charAt(i))) {
+ if (i <= index) {
+ index++;
+ } else {
+ boldedCharacters++;
+ }
+ }
+ }
+ return getBoldedString(number, index, boldedCharacters);
+ }
+
+ private static SpannableString getBoldedString(String s, int index, int numBolded) {
+ SpannableString span = new SpannableString(s);
+ span.setSpan(
+ new StyleSpan(Typeface.BOLD), index, index + numBolded, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+ return span;
+ }
+
+ /**
+ * @return true if the query is of T9 format and the name's T9 representation belongs to the
+ * query; false otherwise.
+ */
+ static boolean nameMatchesT9Query(String query, String name) {
+ if (!T9_PATTERN.matcher(query).matches()) {
+ return false;
+ }
+
+ // Substring
+ if (indexOfQueryNonDigitsIgnored(query, getT9Representation(name)) != -1) {
+ return true;
+ }
+
+ // Check matches initials
+ // TODO investigate faster implementation
+ query = digitsOnly(query);
+ int queryIndex = 0;
+
+ String[] names = name.toLowerCase().split("\\s");
+ for (int i = 0; i < names.length && queryIndex < query.length(); i++) {
+ if (TextUtils.isEmpty(names[i])) {
+ continue;
+ }
+
+ if (getDigit(names[i].charAt(0)) == query.charAt(queryIndex)) {
+ queryIndex++;
+ }
+ }
+
+ return queryIndex == query.length();
+ }
+
+ /** @return true if the number belongs to the query. */
+ static boolean numberMatchesNumberQuery(String query, String number) {
+ return PhoneNumberUtils.isGlobalPhoneNumber(query)
+ && indexOfQueryNonDigitsIgnored(query, number) != -1;
+ }
+
+ /**
+ * Checks if query is contained in number while ignoring all characters in both that are not
+ * digits (i.e. {@link Character#isDigit(char)} returns false).
+ *
+ * @return index where query is found with all non-digits removed, -1 if it's not found.
+ */
+ private static int indexOfQueryNonDigitsIgnored(@NonNull String query, @NonNull String number) {
+ return digitsOnly(number).indexOf(digitsOnly(query));
+ }
+
+ // Returns string with letters replaced with their T9 representation.
+ private static String getT9Representation(String s) {
+ StringBuilder builder = new StringBuilder(s.length());
+ for (char c : s.toLowerCase().toCharArray()) {
+ builder.append(getDigit(c));
+ }
+ return builder.toString();
+ }
+
+ /** @return String s with only digits recognized by Character#isDigit() remaining */
+ static String digitsOnly(String s) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < s.length(); i++) {
+ char c = s.charAt(i);
+ if (Character.isDigit(c)) {
+ sb.append(c);
+ }
+ }
+ return sb.toString();
+ }
+
+ // Returns the T9 representation of a lower case character, otherwise returns the character.
+ private static char getDigit(char c) {
+ switch (c) {
+ case 'a':
+ case 'b':
+ case 'c':
+ return '2';
+ case 'd':
+ case 'e':
+ case 'f':
+ return '3';
+ case 'g':
+ case 'h':
+ case 'i':
+ return '4';
+ case 'j':
+ case 'k':
+ case 'l':
+ return '5';
+ case 'm':
+ case 'n':
+ case 'o':
+ return '6';
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ return '7';
+ case 't':
+ case 'u':
+ case 'v':
+ return '8';
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z':
+ return '9';
+ default:
+ return c;
+ }
+ }
+}
diff --git a/java/com/android/dialer/searchfragment/README.md b/java/com/android/dialer/searchfragment/README.md
new file mode 100644
index 000000000..b3b9135e5
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/README.md
@@ -0,0 +1,62 @@
+# Dialer Search Ui
+
+searchfragment/ contains all code relevant to loading, rendering and filtering
+search results in both dialpad search and regular search.
+
+## Loading
+
+### On Device Contacts
+
+On device contacts loading happens in SearchContactsCursorLoader. It is used in
+conjunction with NewSearchFragment and Loader Callbacks to return a cursor from
+cp2 containing all of the relevant info needed to rendering.
+
+### Business Search
+
+// TODO(calderwoodra)
+
+### Google Directory Search
+
+// TODO(calderwoodra)
+
+## Rendering
+
+NewSearchFragment, SearchAdapter, SearchContactViewHolder and
+SearchCursorManager are used to render contact information. The fragment's
+recyclerview, adapter and viewholder work as expected like a normal recyclerview
+paradigm.
+
+The are three things to note about rendering:
+
+* There are three data sources rendered: On device contacts, business search
+ results and google directory results.
+* SearchContactsCursorLoader returns its cursor from cp2 and we filter/wrap it
+ with SearchContactCursor to render useful results (see below).
+* SearchCursorManager is used to coalesce all three data sources to help with
+ determining row count, row type and returning the correct data source for
+ each position.
+
+## Filtering
+
+On device contacts are filtered using SearchContactCursor. We wrap the cursor
+returned from SearchContactsCursorLoader in NewSearchFragment#onLoadFinished in
+order to abstract away the filtering logic from the recyclerview adapter and
+viewholders.
+
+SearchContactCursor applies filtering in SearchContactCursor#filter to remove
+duplicate phone numbers returned from cp2 and phone numbers that do not match
+the given search query.
+
+Filtering methods used are:
+
+* T9/dialpad search methods
+ * Initial match (957 matches [W]illiam [J]ohn [S]mith)
+ * Number + name match (1800946 matches [1800-Win]-A-Prize)
+* Numeric/dialpad search methods
+ * Simple number match (510333 matches [510-333]-7596)
+ * Country-code agnostic matching for E164 normalized numbers (9177 matches
+ +65[9177]6930)
+ * Country-code agnostic matching (510333 matches 1-[510-333]-7596)
+ * Area-code agnostic matching (333 matches 510-[333]-7596)
+* Name/keyboard search methods:
+ * Simple name match (564 matches [Joh]n)
diff --git a/java/com/android/dialer/searchfragment/SearchAdapter.java b/java/com/android/dialer/searchfragment/SearchAdapter.java
new file mode 100644
index 000000000..8f5241557
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchAdapter.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.RecyclerView.ViewHolder;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+import com.android.dialer.common.Assert;
+import com.android.dialer.searchfragment.SearchCursorManager.RowType;
+
+/** RecyclerView adapter for {@link NewSearchFragment}. */
+class SearchAdapter extends RecyclerView.Adapter<ViewHolder> {
+
+ private final SearchCursorManager searchCursorManager;
+ private final Context context;
+
+ private String query;
+
+ SearchAdapter(Context context) {
+ searchCursorManager = new SearchCursorManager();
+ this.context = context;
+ }
+
+ // TODO: fill in the rest of the view holders.
+ @Override
+ public ViewHolder onCreateViewHolder(ViewGroup root, int position) {
+ @RowType int rowType = searchCursorManager.getRowType(position);
+ switch (rowType) {
+ case RowType.CONTACT_ROW:
+ return new SearchContactViewHolder(
+ LayoutInflater.from(context).inflate(R.layout.search_contact_row, root, false));
+ case RowType.DIRECTORY_HEADER:
+ case RowType.DIRECTORY_ROW:
+ case RowType.INVALID:
+ case RowType.NEARBY_PLACES_HEADER:
+ case RowType.NEARBY_PLACES_ROW:
+ return null;
+ default:
+ throw Assert.createIllegalStateFailException("Invalid RowType: " + rowType);
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(ViewHolder holder, int position) {
+ Cursor cursor = searchCursorManager.getCursor(position);
+ ((SearchContactViewHolder) holder).bind(cursor, query);
+ }
+
+ void setContactsCursor(Cursor cursor) {
+ searchCursorManager.setContactsCursor(cursor);
+ }
+
+ void clear() {
+ searchCursorManager.clear();
+ }
+
+ @Override
+ public int getItemCount() {
+ return searchCursorManager.getCount();
+ }
+
+ public void setQuery(String query) {
+ this.query = query;
+ searchCursorManager.setQuery(query);
+ notifyDataSetChanged();
+ }
+}
diff --git a/java/com/android/dialer/searchfragment/SearchContactCursor.java b/java/com/android/dialer/searchfragment/SearchContactCursor.java
new file mode 100644
index 000000000..5006e1a60
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchContactCursor.java
@@ -0,0 +1,390 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.content.ContentResolver;
+import android.database.CharArrayBuffer;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.database.DataSetObserver;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.annotation.IntDef;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Wrapper for a cursor returned by {@link SearchContactsCursorLoader}.
+ *
+ * <p>This cursor removes duplicate phone numbers associated with the same contact and can filter
+ * contacts based on a query by calling {@link #filter(String)}.
+ */
+final class SearchContactCursor implements Cursor {
+
+ private final Cursor cursor;
+ // List of cursor ids that are valid for displaying after filtering.
+ private final List<Integer> queryFilteredPositions = new ArrayList<>();
+
+ private int currentPosition = 0;
+
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({
+ Qualification.NUMBERS_ARE_NOT_DUPLICATES,
+ Qualification.NEW_NUMBER_IS_MORE_QUALIFIED,
+ Qualification.CURRENT_MORE_QUALIFIED
+ })
+ private @interface Qualification {
+ /** Numbers are not duplicates (i.e. neither is more qualified than the other). */
+ int NUMBERS_ARE_NOT_DUPLICATES = 0;
+ /** Number are duplicates and new number is more qualified than the existing number. */
+ int NEW_NUMBER_IS_MORE_QUALIFIED = 1;
+ /** Numbers are duplicates but current/existing number is more qualified than new number. */
+ int CURRENT_MORE_QUALIFIED = 2;
+ }
+
+ /**
+ * @param cursor with projection {@link SearchContactsCursorLoader#PHONE_PROJECTION}.
+ * @param query to filter cursor results.
+ */
+ SearchContactCursor(Cursor cursor, @Nullable String query) {
+ // TODO investigate copying this into a MatrixCursor and holding in memory
+ this.cursor = cursor;
+ filter(query);
+ }
+
+ /**
+ * Filters out contacts that do not match the query.
+ *
+ * <p>The query can have at least 1 of 3 forms:
+ *
+ * <ul>
+ * <li>A phone number
+ * <li>A T9 representation of a name (matches {@link QueryUtil#T9_PATTERN}).
+ * <li>A name
+ * </ul>
+ *
+ * <p>A contact is considered a match if:
+ *
+ * <ul>
+ * <li>Its phone number contains the phone number query
+ * <li>Its name represented in T9 contains the T9 query
+ * <li>Its name contains the query
+ * </ul>
+ */
+ void filter(@Nullable String query) {
+ if (query == null) {
+ query = "";
+ }
+ queryFilteredPositions.clear();
+
+ // On some devices, contacts have multiple rows with identical phone numbers. These numbers are
+ // considered duplicates. Since the order might not be guaranteed, we compare all of the numbers
+ // and hold onto the most qualified one as the one we want to display to the user.
+ // See #getQualification for details on how qualification is determined.
+ int previousMostQualifiedPosition = 0;
+ String previousName = "";
+ String previousMostQualifiedNumber = "";
+
+ query = query.toLowerCase();
+ cursor.moveToPosition(-1);
+
+ while (cursor.moveToNext()) {
+ int position = cursor.getPosition();
+ String currentNumber = cursor.getString(SearchContactsCursorLoader.PHONE_NUMBER);
+ String currentName = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
+
+ if (!previousName.equals(currentName)) {
+ previousName = currentName;
+ previousMostQualifiedNumber = currentNumber;
+ previousMostQualifiedPosition = position;
+ } else {
+ // Since the contact name is the same, check if this number is a duplicate
+ switch (getQualification(currentNumber, previousMostQualifiedNumber)) {
+ case Qualification.CURRENT_MORE_QUALIFIED:
+ // Number is a less qualified duplicate, ignore it.
+ continue;
+ case Qualification.NEW_NUMBER_IS_MORE_QUALIFIED:
+ // If number wasn't filtered out before, remove it and add it's more qualified version.
+ if (queryFilteredPositions.contains(previousMostQualifiedPosition)) {
+ queryFilteredPositions.remove(previousMostQualifiedPosition);
+ queryFilteredPositions.add(position);
+ }
+ previousMostQualifiedNumber = currentNumber;
+ previousMostQualifiedPosition = position;
+ continue;
+ case Qualification.NUMBERS_ARE_NOT_DUPLICATES:
+ default:
+ previousMostQualifiedNumber = currentNumber;
+ previousMostQualifiedPosition = position;
+ }
+ }
+
+ if (TextUtils.isEmpty(query)
+ || QueryUtil.nameMatchesT9Query(query, previousName)
+ || QueryUtil.numberMatchesNumberQuery(query, previousMostQualifiedNumber)
+ || previousName.contains(query)) {
+ queryFilteredPositions.add(previousMostQualifiedPosition);
+ }
+ }
+ currentPosition = 0;
+ cursor.moveToFirst();
+ }
+
+ /**
+ * @param number that may or may not be more qualified than the existing most qualified number
+ * @param mostQualifiedNumber currently most qualified number associated with same contact
+ * @return {@link Qualification} where the more qualified number is the number with the most
+ * digits. If the digits are the same, the number with the most formatting is more qualified.
+ */
+ private @Qualification int getQualification(String number, String mostQualifiedNumber) {
+ // Ignore formatting
+ String numberDigits = QueryUtil.digitsOnly(number);
+ String qualifiedNumberDigits = QueryUtil.digitsOnly(mostQualifiedNumber);
+
+ // If the numbers are identical, return version with more formatting
+ if (qualifiedNumberDigits.equals(numberDigits)) {
+ if (mostQualifiedNumber.length() >= number.length()) {
+ return Qualification.CURRENT_MORE_QUALIFIED;
+ } else {
+ return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED;
+ }
+ }
+
+ // If one number is a suffix of another, then return the longer one.
+ // If they are equal, then return the current most qualified number.
+ if (qualifiedNumberDigits.endsWith(numberDigits)) {
+ return Qualification.CURRENT_MORE_QUALIFIED;
+ }
+ if (numberDigits.endsWith(qualifiedNumberDigits)) {
+ return Qualification.NEW_NUMBER_IS_MORE_QUALIFIED;
+ }
+ return Qualification.NUMBERS_ARE_NOT_DUPLICATES;
+ }
+
+ @Override
+ public boolean moveToPosition(int position) {
+ currentPosition = position;
+ return currentPosition < getCount()
+ && cursor.moveToPosition(queryFilteredPositions.get(currentPosition));
+ }
+
+ @Override
+ public boolean move(int offset) {
+ currentPosition += offset;
+ return moveToPosition(currentPosition);
+ }
+
+ @Override
+ public int getCount() {
+ return queryFilteredPositions.size();
+ }
+
+ @Override
+ public boolean isFirst() {
+ return currentPosition == 0;
+ }
+
+ @Override
+ public boolean isLast() {
+ return currentPosition == getCount() - 1;
+ }
+
+ @Override
+ public int getPosition() {
+ return currentPosition;
+ }
+
+ @Override
+ public boolean moveToFirst() {
+ return moveToPosition(0);
+ }
+
+ @Override
+ public boolean moveToLast() {
+ return moveToPosition(getCount() - 1);
+ }
+
+ @Override
+ public boolean moveToNext() {
+ return moveToPosition(++currentPosition);
+ }
+
+ @Override
+ public boolean moveToPrevious() {
+ return moveToPosition(--currentPosition);
+ }
+
+ // Methods below simply call the corresponding method in cursor.
+ @Override
+ public boolean isBeforeFirst() {
+ return cursor.isBeforeFirst();
+ }
+
+ @Override
+ public boolean isAfterLast() {
+ return cursor.isAfterLast();
+ }
+
+ @Override
+ public int getColumnIndex(String columnName) {
+ return cursor.getColumnIndex(columnName);
+ }
+
+ @Override
+ public int getColumnIndexOrThrow(String columnName) {
+ return cursor.getColumnIndexOrThrow(columnName);
+ }
+
+ @Override
+ public String getColumnName(int columnIndex) {
+ return cursor.getColumnName(columnIndex);
+ }
+
+ @Override
+ public String[] getColumnNames() {
+ return cursor.getColumnNames();
+ }
+
+ @Override
+ public int getColumnCount() {
+ return cursor.getColumnCount();
+ }
+
+ @Override
+ public byte[] getBlob(int columnIndex) {
+ return cursor.getBlob(columnIndex);
+ }
+
+ @Override
+ public String getString(int columnIndex) {
+ return cursor.getString(columnIndex);
+ }
+
+ @Override
+ public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) {
+ cursor.copyStringToBuffer(columnIndex, buffer);
+ }
+
+ @Override
+ public short getShort(int columnIndex) {
+ return cursor.getShort(columnIndex);
+ }
+
+ @Override
+ public int getInt(int columnIndex) {
+ return cursor.getInt(columnIndex);
+ }
+
+ @Override
+ public long getLong(int columnIndex) {
+ return cursor.getLong(columnIndex);
+ }
+
+ @Override
+ public float getFloat(int columnIndex) {
+ return cursor.getFloat(columnIndex);
+ }
+
+ @Override
+ public double getDouble(int columnIndex) {
+ return cursor.getDouble(columnIndex);
+ }
+
+ @Override
+ public int getType(int columnIndex) {
+ return cursor.getType(columnIndex);
+ }
+
+ @Override
+ public boolean isNull(int columnIndex) {
+ return cursor.isNull(columnIndex);
+ }
+
+ @Override
+ public void deactivate() {
+ cursor.deactivate();
+ }
+
+ @Override
+ public boolean requery() {
+ return cursor.requery();
+ }
+
+ @Override
+ public void close() {
+ cursor.close();
+ }
+
+ @Override
+ public boolean isClosed() {
+ return cursor.isClosed();
+ }
+
+ @Override
+ public void registerContentObserver(ContentObserver observer) {
+ cursor.registerContentObserver(observer);
+ }
+
+ @Override
+ public void unregisterContentObserver(ContentObserver observer) {
+ cursor.unregisterContentObserver(observer);
+ }
+
+ @Override
+ public void registerDataSetObserver(DataSetObserver observer) {
+ cursor.registerDataSetObserver(observer);
+ }
+
+ @Override
+ public void unregisterDataSetObserver(DataSetObserver observer) {
+ cursor.unregisterDataSetObserver(observer);
+ }
+
+ @Override
+ public void setNotificationUri(ContentResolver cr, Uri uri) {
+ cursor.setNotificationUri(cr, uri);
+ }
+
+ @Override
+ public Uri getNotificationUri() {
+ return cursor.getNotificationUri();
+ }
+
+ @Override
+ public boolean getWantsAllOnMoveCalls() {
+ return cursor.getWantsAllOnMoveCalls();
+ }
+
+ @Override
+ public void setExtras(Bundle extras) {
+ cursor.setExtras(extras);
+ }
+
+ @Override
+ public Bundle getExtras() {
+ return cursor.getExtras();
+ }
+
+ @Override
+ public Bundle respond(Bundle extras) {
+ return cursor.respond(extras);
+ }
+}
diff --git a/java/com/android/dialer/searchfragment/SearchContactViewHolder.java b/java/com/android/dialer/searchfragment/SearchContactViewHolder.java
new file mode 100644
index 000000000..4ac6af33e
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchContactViewHolder.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Contacts;
+import android.support.annotation.IntDef;
+import android.support.v7.widget.RecyclerView.ViewHolder;
+import android.text.TextUtils;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.ImageView;
+import android.widget.QuickContactBadge;
+import android.widget.TextView;
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.dialer.callintent.CallInitiationType.Type;
+import com.android.dialer.callintent.CallIntentBuilder;
+import com.android.dialer.common.Assert;
+import com.android.dialer.telecom.TelecomUtil;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/** ViewHolder for a contact row in {@link NewSearchFragment}. */
+final class SearchContactViewHolder extends ViewHolder implements OnClickListener {
+
+ /** IntDef for the different types of actions that can be shown. */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({
+ SearchContactViewHolder.CallToAction.NONE,
+ SearchContactViewHolder.CallToAction.VIDEO_CALL,
+ SearchContactViewHolder.CallToAction.SHARE_AND_CALL
+ })
+ @interface CallToAction {
+ int NONE = 0;
+ int VIDEO_CALL = 1;
+ int SHARE_AND_CALL = 2;
+ }
+
+ private final QuickContactBadge photo;
+ private final TextView nameOrNumberView;
+ private final TextView numberView;
+ private final ImageView callToActionView;
+ private final Context context;
+
+ private String number;
+ private @CallToAction int currentAction;
+
+ SearchContactViewHolder(View view) {
+ super(view);
+ view.setOnClickListener(this);
+ photo = view.findViewById(R.id.photo);
+ nameOrNumberView = view.findViewById(R.id.primary);
+ numberView = view.findViewById(R.id.secondary);
+ callToActionView = view.findViewById(R.id.call_to_action);
+ context = view.getContext();
+ }
+
+ /**
+ * Binds the ViewHolder with a cursor from {@link SearchContactsCursorLoader} with the data found
+ * at the cursors set position.
+ */
+ void bind(Cursor cursor, String query) {
+ number = cursor.getString(SearchContactsCursorLoader.PHONE_NUMBER);
+ String name = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
+ String label = getLabel(context.getResources(), cursor);
+ String secondaryInfo =
+ TextUtils.isEmpty(label)
+ ? number
+ : context.getString(R.string.call_subject_type_and_number, label, number);
+
+ nameOrNumberView.setText(QueryUtil.getNameWithQueryBolded(query, name));
+ numberView.setText(QueryUtil.getNumberWithQueryBolded(query, secondaryInfo));
+ setCallToAction(cursor);
+
+ if (shouldShowPhoto(cursor, name)) {
+ nameOrNumberView.setVisibility(View.VISIBLE);
+ photo.setVisibility(View.VISIBLE);
+ photo.setContentDescription(context.getString(R.string.description_quick_contact_for, name));
+ String photoUri = cursor.getString(SearchContactsCursorLoader.PHONE_PHOTO_URI);
+ ContactPhotoManager.getInstance(context)
+ .loadDialerThumbnailOrPhoto(
+ photo,
+ getContactUri(cursor),
+ cursor.getLong(SearchContactsCursorLoader.PHONE_PHOTO_ID),
+ photoUri == null ? null : Uri.parse(photoUri),
+ name,
+ LetterTileDrawable.TYPE_DEFAULT);
+ } else {
+ nameOrNumberView.setVisibility(View.GONE);
+ photo.setVisibility(View.INVISIBLE);
+ }
+ }
+
+ private boolean shouldShowPhoto(Cursor cursor, String currentName) {
+ int currentPosition = cursor.getPosition();
+ if (currentPosition == 0) {
+ return true;
+ } else {
+ cursor.moveToPosition(currentPosition - 1);
+ String previousName = cursor.getString(SearchContactsCursorLoader.PHONE_DISPLAY_NAME);
+ cursor.moveToPosition(currentPosition);
+ return !currentName.equals(previousName);
+ }
+ }
+
+ private static Uri getContactUri(Cursor cursor) {
+ long contactId = cursor.getLong(SearchContactsCursorLoader.PHONE_ID);
+ String lookupKey = cursor.getString(SearchContactsCursorLoader.PHONE_LOOKUP_KEY);
+ return Contacts.getLookupUri(contactId, lookupKey);
+ }
+
+ // TODO: handle CNAP and cequint types.
+ // TODO: unify this into a utility method with CallLogAdapter#getNumberType
+ private static String getLabel(Resources resources, Cursor cursor) {
+ int numberType = cursor.getInt(SearchContactsCursorLoader.PHONE_TYPE);
+ String numberLabel = cursor.getString(SearchContactsCursorLoader.PHONE_LABEL);
+
+ // Returns empty label instead of "custom" if the custom label is empty.
+ if (numberType == Phone.TYPE_CUSTOM && TextUtils.isEmpty(numberLabel)) {
+ return "";
+ }
+ return (String) Phone.getTypeLabel(resources, numberType, numberLabel);
+ }
+
+ private void setCallToAction(Cursor cursor) {
+ currentAction = getCallToAction(cursor);
+ switch (currentAction) {
+ case CallToAction.NONE:
+ callToActionView.setVisibility(View.GONE);
+ callToActionView.setOnClickListener(null);
+ break;
+ case CallToAction.SHARE_AND_CALL:
+ callToActionView.setVisibility(View.VISIBLE);
+ callToActionView.setImageDrawable(context.getDrawable(R.drawable.ic_phone_attach));
+ callToActionView.setOnClickListener(this);
+ break;
+ case CallToAction.VIDEO_CALL:
+ callToActionView.setVisibility(View.VISIBLE);
+ callToActionView.setImageDrawable(
+ context.getDrawable(R.drawable.quantum_ic_videocam_white_24));
+ callToActionView.setOnClickListener(this);
+ break;
+ default:
+ throw Assert.createIllegalStateFailException(
+ "Invalid Call to action type: " + currentAction);
+ }
+ }
+
+ private static @CallToAction int getCallToAction(Cursor cursor) {
+ int carrierPresence = cursor.getInt(SearchContactsCursorLoader.PHONE_CARRIER_PRESENCE);
+ if ((carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) == 1) {
+ return CallToAction.VIDEO_CALL;
+ }
+
+ // TODO: enriched calling
+ return CallToAction.NONE;
+ }
+
+ @Override
+ public void onClick(View view) {
+ if (view == callToActionView) {
+ switch (currentAction) {
+ case CallToAction.SHARE_AND_CALL:
+ callToActionView.setVisibility(View.VISIBLE);
+ callToActionView.setImageDrawable(context.getDrawable(R.drawable.ic_phone_attach));
+ // TODO: open call composer.
+ break;
+ case CallToAction.VIDEO_CALL:
+ callToActionView.setVisibility(View.VISIBLE);
+ callToActionView.setImageDrawable(
+ context.getDrawable(R.drawable.quantum_ic_videocam_white_24));
+ // TODO: place a video call
+ break;
+ case CallToAction.NONE:
+ default:
+ throw Assert.createIllegalStateFailException(
+ "Invalid Call to action type: " + currentAction);
+ }
+ } else {
+ // TODO: set the correct call initiation type.
+ TelecomUtil.placeCall(context, new CallIntentBuilder(number, Type.REGULAR_SEARCH).build());
+ }
+ }
+}
diff --git a/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java b/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java
new file mode 100644
index 000000000..309dfffd9
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.content.Context;
+import android.content.CursorLoader;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+
+/** Cursor Loader for {@link NewSearchFragment}. */
+final class SearchContactsCursorLoader extends CursorLoader {
+
+ public static final int PHONE_ID = 0;
+ public static final int PHONE_TYPE = 1;
+ public static final int PHONE_LABEL = 2;
+ public static final int PHONE_NUMBER = 3;
+ public static final int PHONE_DISPLAY_NAME = 4;
+ public static final int PHONE_PHOTO_ID = 5;
+ public static final int PHONE_PHOTO_URI = 6;
+ public static final int PHONE_LOOKUP_KEY = 7;
+ public static final int PHONE_CARRIER_PRESENCE = 8;
+
+ @SuppressWarnings("unused")
+ public static final int PHONE_SOFT_KEY = 9;
+
+ static final String[] PHONE_PROJECTION =
+ new String[] {
+ Phone._ID, // 0
+ Phone.TYPE, // 1
+ Phone.LABEL, // 2
+ Phone.NUMBER, // 3
+ Phone.DISPLAY_NAME_PRIMARY, // 4
+ Phone.PHOTO_ID, // 5
+ Phone.PHOTO_THUMBNAIL_URI, // 6
+ Phone.LOOKUP_KEY, // 7
+ Phone.CARRIER_PRESENCE, // 8
+ Phone.SORT_KEY_PRIMARY // 9
+ };
+
+ SearchContactsCursorLoader(Context context) {
+ super(
+ context, Phone.CONTENT_URI, PHONE_PROJECTION, null, null, Phone.SORT_KEY_PRIMARY + " ASC");
+ }
+}
diff --git a/java/com/android/dialer/searchfragment/SearchCursorManager.java b/java/com/android/dialer/searchfragment/SearchCursorManager.java
new file mode 100644
index 000000000..64c4fc170
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/SearchCursorManager.java
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.searchfragment;
+
+import android.database.Cursor;
+import android.support.annotation.IntDef;
+import com.android.dialer.common.Assert;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Manages all of the cursors needed for {@link SearchAdapter}.
+ *
+ * <p>This class accepts three cursors:
+ *
+ * <ul>
+ * <li>A contacts cursor {@link #setContactsCursor(Cursor)}
+ * <li>A google search results cursor {@link #setNearbyPlacesCursor(Cursor)}
+ * <li>A work directory cursor {@link #setCorpDirectoryCursor(Cursor)}
+ * </ul>
+ *
+ * <p>The key purpose of this class is to compose three aforementioned cursors together to function
+ * as one cursor. The key methods needed to utilize this class as a cursor are:
+ *
+ * <ul>
+ * <li>{@link #getCursor(int)}
+ * <li>{@link #getCount()}
+ * <li>{@link #getRowType(int)}
+ * </ul>
+ */
+final class SearchCursorManager {
+
+ /** IntDef for the different types of rows that can be shown when searching. */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({
+ SearchCursorManager.RowType.INVALID,
+ SearchCursorManager.RowType.CONTACT_ROW,
+ SearchCursorManager.RowType.NEARBY_PLACES_HEADER,
+ SearchCursorManager.RowType.NEARBY_PLACES_ROW,
+ SearchCursorManager.RowType.DIRECTORY_HEADER,
+ SearchCursorManager.RowType.DIRECTORY_ROW
+ })
+ @interface RowType {
+ int INVALID = 0;
+ /** A row containing contact information for contacts stored locally on device. */
+ int CONTACT_ROW = 1;
+ /** Header to mark the end of contact rows and start of nearby places rows. */
+ int NEARBY_PLACES_HEADER = 2;
+ /** A row containing nearby places information/search results. */
+ int NEARBY_PLACES_ROW = 3;
+ /** Header to mark the end of the previous row set and start of directory rows. */
+ int DIRECTORY_HEADER = 4;
+ /** A row containing contact information for contacts stored externally in corp directories. */
+ int DIRECTORY_ROW = 5;
+ }
+
+ private Cursor contactsCursor = null;
+ private Cursor nearbyPlacesCursor = null;
+ private Cursor corpDirectoryCursor = null;
+
+ void setContactsCursor(Cursor cursor) {
+ if (cursor != null && cursor.getCount() > 0) {
+ contactsCursor = cursor;
+ } else {
+ contactsCursor = null;
+ }
+ }
+
+ void setNearbyPlacesCursor(Cursor cursor) {
+ if (cursor != null && cursor.getCount() > 0) {
+ nearbyPlacesCursor = cursor;
+ } else {
+ nearbyPlacesCursor = null;
+ }
+ }
+
+ void setCorpDirectoryCursor(Cursor cursor) {
+ if (cursor != null && cursor.getCount() > 0) {
+ corpDirectoryCursor = cursor;
+ } else {
+ corpDirectoryCursor = null;
+ }
+ }
+
+ void setQuery(String query) {
+ if (contactsCursor != null) {
+ ((SearchContactCursor) contactsCursor).filter(query);
+ }
+ }
+
+ /** @return the sum of counts of all cursors, including headers. */
+ int getCount() {
+ int count = 0;
+ if (contactsCursor != null) {
+ count += contactsCursor.getCount();
+ }
+
+ if (nearbyPlacesCursor != null) {
+ count++; // header
+ count += nearbyPlacesCursor.getCount();
+ }
+
+ if (corpDirectoryCursor != null) {
+ count++; // header
+ count += corpDirectoryCursor.getCount();
+ }
+
+ return count;
+ }
+
+ @RowType
+ int getRowType(int position) {
+ if (contactsCursor != null) {
+ position -= contactsCursor.getCount();
+
+ if (position < 0) {
+ return SearchCursorManager.RowType.CONTACT_ROW;
+ }
+ }
+
+ if (nearbyPlacesCursor != null) {
+ if (position == 0) {
+ return SearchCursorManager.RowType.NEARBY_PLACES_HEADER;
+ } else {
+ position--; // header
+ }
+
+ position -= nearbyPlacesCursor.getCount();
+
+ if (position < 0) {
+ return SearchCursorManager.RowType.NEARBY_PLACES_ROW;
+ }
+ }
+
+ if (corpDirectoryCursor != null) {
+ if (position == 0) {
+ return SearchCursorManager.RowType.DIRECTORY_HEADER;
+ } else {
+ position--; // header
+ }
+
+ position -= corpDirectoryCursor.getCount();
+
+ if (position < 0) {
+ return SearchCursorManager.RowType.DIRECTORY_ROW;
+ }
+ }
+
+ throw Assert.createIllegalStateFailException("No valid row type.");
+ }
+
+ /**
+ * Gets cursor corresponding to position in coelesced list of search cursors. Callers should
+ * ensure that {@link #getRowType(int)} doesn't correspond to header position, otherwise an
+ * exception will be thrown.
+ *
+ * @param position in coalecsed list of search cursors
+ * @return Cursor moved to position specific to passed in position.
+ */
+ Cursor getCursor(int position) {
+ if (contactsCursor != null) {
+ int count = contactsCursor.getCount();
+
+ if (position - count < 0) {
+ contactsCursor.moveToPosition(position);
+ return contactsCursor;
+ }
+ position -= count;
+ }
+
+ if (nearbyPlacesCursor != null) {
+ Assert.checkArgument(position != 0, "No valid cursor, position is nearby places header.");
+ position--; // header
+ int count = nearbyPlacesCursor.getCount();
+
+ if (position - count < 0) {
+ nearbyPlacesCursor.moveToPosition(position);
+ return nearbyPlacesCursor;
+ }
+ position -= count;
+ }
+
+ if (corpDirectoryCursor != null) {
+ Assert.checkArgument(position != 0, "No valid cursor, position is directory search header.");
+ position--; // header
+ int count = corpDirectoryCursor.getCount();
+
+ if (position - count < 0) {
+ corpDirectoryCursor.moveToPosition(position);
+ return corpDirectoryCursor;
+ }
+ position -= count;
+ }
+
+ throw Assert.createIllegalStateFailException("No valid cursor.");
+ }
+
+ /** removes all cursors. */
+ void clear() {
+ if (contactsCursor != null) {
+ contactsCursor.close();
+ contactsCursor = null;
+ }
+
+ if (nearbyPlacesCursor != null) {
+ nearbyPlacesCursor.close();
+ nearbyPlacesCursor = null;
+ }
+
+ if (corpDirectoryCursor != null) {
+ corpDirectoryCursor.close();
+ corpDirectoryCursor = null;
+ }
+ }
+}
diff --git a/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml b/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
new file mode 100644
index 000000000..06f234889
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/res/layout/fragment_search.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<android.support.v7.widget.RecyclerView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/recycler_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
diff --git a/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml b/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml
new file mode 100644
index 000000000..efeca0e9d
--- /dev/null
+++ b/java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<RelativeLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/search_row_height"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:background="?android:attr/selectableItemBackground">
+
+ <QuickContactBadge
+ android:id="@+id/photo"
+ android:layout_width="@dimen/search_row_height"
+ android:layout_height="@dimen/search_row_height"
+ android:padding="@dimen/search_photo_padding"
+ android:clickable="false"/>
+
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_toEndOf="@+id/photo"
+ android:layout_toStartOf="@+id/call_to_action"
+ android:layout_centerVertical="true">
+
+ <TextView
+ android:id="@+id/primary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/search_text_padding_start"
+ android:gravity="center_vertical|start"
+ android:textSize="@dimen/new_search_text_size"
+ android:textColor="@color/dialer_primary_text_color"
+ android:maxLines="1"
+ android:ellipsize="end"
+ android:fontFamily="sans-serif"/>
+
+ <TextView
+ android:id="@+id/secondary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/search_text_padding_start"
+ android:gravity="center_vertical|start"
+ android:textSize="@dimen/new_search_text_size"
+ android:textColor="@color/dialer_primary_text_color"
+ android:maxLines="1"
+ android:ellipsize="end"
+ android:fontFamily="sans-serif"/>
+ </LinearLayout>
+
+ <ImageView
+ android:id="@+id/call_to_action"
+ android:layout_width="@dimen/search_row_height"
+ android:layout_height="@dimen/search_row_height"
+ android:layout_alignParentEnd="true"
+ android:padding="@dimen/call_to_action_padding"
+ android:tint="@color/secondary_text_color"
+ android:visibility="gone"
+ android:scaleType="center"/>
+</RelativeLayout> \ No newline at end of file
diff --git a/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml b/java/com/android/dialer/searchfragment/res/values/dimens.xml
index be0cdd358..d5459ddb3 100644
--- a/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
+++ b/java/com/android/dialer/searchfragment/res/values/dimens.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- ~ Copyright (C) 2015 The Android Open Source Project
+ ~ Copyright (C) 2017 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
@@ -14,9 +14,10 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:autoMirrored="true"
- android:src="@drawable/ic_phone_attach"
- android:tint="@color/search_video_call_icon_tint"
- android:background="?attr/selectableItemBackgroundBorderless"/> \ No newline at end of file
+<resources>
+ <dimen name="search_row_height">56dp</dimen>
+ <dimen name="search_photo_padding">8dp</dimen>
+ <dimen name="call_to_action_padding">8dp</dimen>
+ <dimen name="search_text_padding_start">16dp</dimen>
+ <dimen name="new_search_text_size">16sp</dimen>
+</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/shortcuts/AndroidManifest.xml b/java/com/android/dialer/shortcuts/AndroidManifest.xml
index 71320517d..15f77944e 100644
--- a/java/com/android/dialer/shortcuts/AndroidManifest.xml
+++ b/java/com/android/dialer/shortcuts/AndroidManifest.xml
@@ -20,7 +20,7 @@
android:minSdkVersion="23"
android:targetSdkVersion="26"/>
- <application>
+ <application android:theme="@style/Theme.AppCompat">
<service
android:exported="false"
diff --git a/java/com/android/dialer/telecom/TelecomUtil.java b/java/com/android/dialer/telecom/TelecomUtil.java
index 87ddda58b..82b43835f 100644
--- a/java/com/android/dialer/telecom/TelecomUtil.java
+++ b/java/com/android/dialer/telecom/TelecomUtil.java
@@ -38,12 +38,17 @@ import java.util.List;
* perform the required check and return the fallback default if the permission is missing,
* otherwise return the value from TelecomManager.
*/
-public class TelecomUtil {
+public abstract class TelecomUtil {
private static final String TAG = "TelecomUtil";
private static boolean sWarningLogged = false;
- private static Boolean isDefaultDialerForTesting;
- private static Boolean hasPermissionForTesting;
+
+ private static TelecomUtilImpl instance = new TelecomUtilImpl();
+
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ public static void setInstanceForTesting(TelecomUtilImpl instanceForTesting) {
+ instance = instanceForTesting;
+ }
public static void showInCallScreen(Context context, boolean showDialpad) {
if (hasReadPhoneStatePermission(context)) {
@@ -125,10 +130,7 @@ public class TelecomUtil {
}
public static boolean isInCall(Context context) {
- if (hasReadPhoneStatePermission(context)) {
- return getTelecomManager(context).isInCall();
- }
- return false;
+ return instance.isInCall(context);
}
public static boolean isVoicemailNumber(
@@ -189,43 +191,47 @@ public class TelecomUtil {
}
private static boolean hasPermission(Context context, String permission) {
- if (hasPermissionForTesting != null) {
- return hasPermissionForTesting;
- }
- return ContextCompat.checkSelfPermission(context, permission)
- == PackageManager.PERMISSION_GRANTED;
- }
-
- public static boolean isDefaultDialer(Context context) {
- if (isDefaultDialerForTesting != null) {
- return isDefaultDialerForTesting;
- }
- final boolean result =
- TextUtils.equals(
- context.getPackageName(), getTelecomManager(context).getDefaultDialerPackage());
- if (result) {
- sWarningLogged = false;
- } else {
- if (!sWarningLogged) {
- // Log only once to prevent spam.
- LogUtil.w(TAG, "Dialer is not currently set to be default dialer");
- sWarningLogged = true;
- }
- }
- return result;
+ return instance.hasPermission(context, permission);
}
private static TelecomManager getTelecomManager(Context context) {
return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
}
- @VisibleForTesting(otherwise = VisibleForTesting.NONE)
- public static void setIsDefaultDialerForTesting(Boolean defaultDialer) {
- isDefaultDialerForTesting = defaultDialer;
+ public static boolean isDefaultDialer(Context context) {
+ return instance.isDefaultDialer(context);
}
- @VisibleForTesting(otherwise = VisibleForTesting.NONE)
- public static void setHasPermissionForTesting(Boolean hasPermission) {
- hasPermissionForTesting = hasPermission;
+ /** Contains an implementation for {@link TelecomUtil} methods */
+ @VisibleForTesting()
+ public static class TelecomUtilImpl {
+
+ public boolean isInCall(Context context) {
+ if (hasReadPhoneStatePermission(context)) {
+ return getTelecomManager(context).isInCall();
+ }
+ return false;
+ }
+
+ public boolean hasPermission(Context context, String permission) {
+ return ContextCompat.checkSelfPermission(context, permission)
+ == PackageManager.PERMISSION_GRANTED;
+ }
+
+ public boolean isDefaultDialer(Context context) {
+ final boolean result =
+ TextUtils.equals(
+ context.getPackageName(), getTelecomManager(context).getDefaultDialerPackage());
+ if (result) {
+ sWarningLogged = false;
+ } else {
+ if (!sWarningLogged) {
+ // Log only once to prevent spam.
+ LogUtil.w(TAG, "Dialer is not currently set to be default dialer");
+ sWarningLogged = true;
+ }
+ }
+ return result;
+ }
}
}
diff --git a/java/com/android/dialer/theme/res/values-af/strings.xml b/java/com/android/dialer/theme/res/values-af/strings.xml
index f263a8186..17e6ceac4 100644
--- a/java/com/android/dialer/theme/res/values-af/strings.xml
+++ b/java/com/android/dialer/theme/res/values-af/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefoonhokkie"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Foon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratoestemming is geaktiveer"</string>
+ <string name="video_call" msgid="8914878391104612532">"Video-oproep"</string>
<string name="call" msgid="3699617769606114168">"Bel"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-am/strings.xml b/java/com/android/dialer/theme/res/values-am/strings.xml
index 4f3624428..5b0b2fd1f 100644
--- a/java/com/android/dialer/theme/res/values-am/strings.xml
+++ b/java/com/android/dialer/theme/res/values-am/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"የሕዝብ ስልክ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ስልክ"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"የካሜራ ፈቃድ ነቅቷል"</string>
+ <string name="video_call" msgid="8914878391104612532">"የቪዲዮ ጥሪ"</string>
<string name="call" msgid="3699617769606114168">"ደውል"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ar/strings.xml b/java/com/android/dialer/theme/res/values-ar/strings.xml
index 951bde2c0..ea3468e61 100644
--- a/java/com/android/dialer/theme/res/values-ar/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ar/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"هاتف يعمل بالعملة"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"الهاتف"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"تم تمكين إذن الكاميرا"</string>
+ <string name="video_call" msgid="8914878391104612532">"مكالمة فيديو"</string>
<string name="call" msgid="3699617769606114168">"اتصال"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-az/strings.xml b/java/com/android/dialer/theme/res/values-az/strings.xml
index 08eaf337b..91ead1b68 100644
--- a/java/com/android/dialer/theme/res/values-az/strings.xml
+++ b/java/com/android/dialer/theme/res/values-az/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera icazəsi aktiv edildi"</string>
+ <string name="video_call" msgid="8914878391104612532">"Video zəng"</string>
<string name="call" msgid="3699617769606114168">"Zəng edin"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
index 01cdb4722..a1e59654f 100644
--- a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Omogućena je dozvola za kameru"</string>
+ <string name="video_call" msgid="8914878391104612532">"Uputi video poziv"</string>
<string name="call" msgid="3699617769606114168">"Pozovi"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-be/strings.xml b/java/com/android/dialer/theme/res/values-be/strings.xml
index 49be019bf..881aa7f20 100644
--- a/java/com/android/dialer/theme/res/values-be/strings.xml
+++ b/java/com/android/dialer/theme/res/values-be/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Таксафон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Тэлефон"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Уключаны дазвол на выкарыстанне камеры"</string>
+ <string name="video_call" msgid="8914878391104612532">"Відэавыклік"</string>
<string name="call" msgid="3699617769606114168">"Выклікаць"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-bg/strings.xml b/java/com/android/dialer/theme/res/values-bg/strings.xml
index 87af9f0fd..debc23803 100644
--- a/java/com/android/dialer/theme/res/values-bg/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bg/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Обществен телефон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Активирано бе разрешението за камерата"</string>
+ <string name="video_call" msgid="8914878391104612532">"Видеообаждане"</string>
<string name="call" msgid="3699617769606114168">"Обаждане"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-bn/strings.xml b/java/com/android/dialer/theme/res/values-bn/strings.xml
index ab1c65b5d..806ee8e02 100644
--- a/java/com/android/dialer/theme/res/values-bn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bn/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"পে ফোন"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ফোন"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"ক্যামেরার অনুমতি সক্ষম করা হয়েছে"</string>
+ <string name="video_call" msgid="8914878391104612532">"ভিডিও কল"</string>
<string name="call" msgid="3699617769606114168">"কল করুন"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-bs/strings.xml b/java/com/android/dialer/theme/res/values-bs/strings.xml
index 01cdb4722..bed71a230 100644
--- a/java/com/android/dialer/theme/res/values-bs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bs/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Dozvola za kameru je omogućena"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videopoziv"</string>
<string name="call" msgid="3699617769606114168">"Pozovi"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ca/strings.xml b/java/com/android/dialer/theme/res/values-ca/strings.xml
index 1e21a1f76..5140ca574 100644
--- a/java/com/android/dialer/theme/res/values-ca/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ca/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telèfon públic"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telèfon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"S\'ha activat el permís d\'accés a la càmera"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videotrucada"</string>
<string name="call" msgid="3699617769606114168">"Truca"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-cs/strings.xml b/java/com/android/dialer/theme/res/values-cs/strings.xml
index ca7bad9bb..a951fe7a8 100644
--- a/java/com/android/dialer/theme/res/values-cs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-cs/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefonní automat"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Byl povolen přístup k fotoaparátu"</string>
+ <string name="video_call" msgid="8914878391104612532">"Zahájit videohovor"</string>
<string name="call" msgid="3699617769606114168">"Volat"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-da/strings.xml b/java/com/android/dialer/theme/res/values-da/strings.xml
index c606b281e..54f185041 100644
--- a/java/com/android/dialer/theme/res/values-da/strings.xml
+++ b/java/com/android/dialer/theme/res/values-da/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Mønttelefon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Opkald"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratilladelse er aktiveret"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videoopkald"</string>
<string name="call" msgid="3699617769606114168">"Ring op"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-de/strings.xml b/java/com/android/dialer/theme/res/values-de/strings.xml
index d214287c2..0c97581cb 100644
--- a/java/com/android/dialer/theme/res/values-de/strings.xml
+++ b/java/com/android/dialer/theme/res/values-de/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Münztelefon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Berechtigung für Kamera aktiviert"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videoanruf"</string>
<string name="call" msgid="3699617769606114168">"Anrufen"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-el/strings.xml b/java/com/android/dialer/theme/res/values-el/strings.xml
index abe1d3f18..1c34a69c7 100644
--- a/java/com/android/dialer/theme/res/values-el/strings.xml
+++ b/java/com/android/dialer/theme/res/values-el/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Τηλέφωνο με χρέωση"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Τηλέφωνο"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Το δικαίωμα χρήσης της κάμερας έχει ενεργοποιηθεί"</string>
+ <string name="video_call" msgid="8914878391104612532">"Βιντεοκλήση"</string>
<string name="call" msgid="3699617769606114168">"Κλήση"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
index b086b4ca5..136d7df33 100644
--- a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
+ <string name="video_call" msgid="8914878391104612532">"Video call"</string>
<string name="call" msgid="3699617769606114168">"Call"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
index b086b4ca5..136d7df33 100644
--- a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
+ <string name="video_call" msgid="8914878391104612532">"Video call"</string>
<string name="call" msgid="3699617769606114168">"Call"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
index b086b4ca5..136d7df33 100644
--- a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Camera permission enabled"</string>
+ <string name="video_call" msgid="8914878391104612532">"Video call"</string>
<string name="call" msgid="3699617769606114168">"Call"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
index aee2d0a9d..90837b76a 100644
--- a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Se activó el permiso de la cámara"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videollamada"</string>
<string name="call" msgid="3699617769606114168">"Llamar"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-es/strings.xml b/java/com/android/dialer/theme/res/values-es/strings.xml
index 343ac2158..c2d3ee3d4 100644
--- a/java/com/android/dialer/theme/res/values-es/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Se ha habilitado el acceso a la cámara"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videollamada"</string>
<string name="call" msgid="3699617769606114168">"Llamar"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-et/strings.xml b/java/com/android/dialer/theme/res/values-et/strings.xml
index 5b1e6c044..269fa6403 100644
--- a/java/com/android/dialer/theme/res/values-et/strings.xml
+++ b/java/com/android/dialer/theme/res/values-et/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefoniautomaat"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kaameraluba on antud"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videokõne"</string>
<string name="call" msgid="3699617769606114168">"Helista"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-eu/strings.xml b/java/com/android/dialer/theme/res/values-eu/strings.xml
index dbb4f703c..14345f05f 100644
--- a/java/com/android/dialer/theme/res/values-eu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-eu/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefono publikoa"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonoa"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera atzitzeko baimena eman da"</string>
+ <string name="video_call" msgid="8914878391104612532">"Bideo-deia"</string>
<string name="call" msgid="3699617769606114168">"Deitu"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-fa/strings.xml b/java/com/android/dialer/theme/res/values-fa/strings.xml
index 99bed5f22..f751f3404 100644
--- a/java/com/android/dialer/theme/res/values-fa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fa/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="ID">%d</xliff:g> <xliff:g id="UNKNOWN">%s</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"تلفن عمومی"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"تلفن"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"مجوز دوربین فعال شد"</string>
+ <string name="video_call" msgid="8914878391104612532">"تماس ویدیویی"</string>
<string name="call" msgid="3699617769606114168">"تماس"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-fi/strings.xml b/java/com/android/dialer/theme/res/values-fi/strings.xml
index a180be565..0c09d7f43 100644
--- a/java/com/android/dialer/theme/res/values-fi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fi/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Maksupuhelin"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Puhelin"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kameran käyttöoikeus myönnettiin"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videopuhelu"</string>
<string name="call" msgid="3699617769606114168">"Soita"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
index 18a70bbe8..7d901ca39 100644
--- a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Autorisation d\'accès à l\'appareil photo activée"</string>
+ <string name="video_call" msgid="8914878391104612532">"Appel vidéo"</string>
<string name="call" msgid="3699617769606114168">"Appeler"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-fr/strings.xml b/java/com/android/dialer/theme/res/values-fr/strings.xml
index 18a70bbe8..1c30ef1e7 100644
--- a/java/com/android/dialer/theme/res/values-fr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Autorisation d\'accès à l\'appareil photo accordée"</string>
+ <string name="video_call" msgid="8914878391104612532">"Appel vidéo"</string>
<string name="call" msgid="3699617769606114168">"Appeler"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-gl/strings.xml b/java/com/android/dialer/theme/res/values-gl/strings.xml
index fbbad6c07..083d395ad 100644
--- a/java/com/android/dialer/theme/res/values-gl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gl/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Activouse o permiso de acceso á cámara"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
<string name="call" msgid="3699617769606114168">"Chamar"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-gu/strings.xml b/java/com/android/dialer/theme/res/values-gu/strings.xml
index 9b38dcd3f..4baba6971 100644
--- a/java/com/android/dialer/theme/res/values-gu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gu/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"પેફોન"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ફોન"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"કૅમેરાની પરવાનગી સક્ષમ કરી"</string>
+ <string name="video_call" msgid="8914878391104612532">"વિડિઓ કૉલ"</string>
<string name="call" msgid="3699617769606114168">"કૉલ કરો"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-hi/strings.xml b/java/com/android/dialer/theme/res/values-hi/strings.xml
index ee360b404..758be5d22 100644
--- a/java/com/android/dialer/theme/res/values-hi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hi/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"पे-फ़ोन"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"फ़ोन"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"कैमरे की अनुमति सक्षम की गई"</string>
+ <string name="video_call" msgid="8914878391104612532">"वीडियो कॉल"</string>
<string name="call" msgid="3699617769606114168">"कॉल करें"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-hr/strings.xml b/java/com/android/dialer/theme/res/values-hr/strings.xml
index 92e19567d..89a5aeec2 100644
--- a/java/com/android/dialer/theme/res/values-hr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hr/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Javna telefonska govornica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Omogućen je pristup kameri"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videopoziv"</string>
<string name="call" msgid="3699617769606114168">"Pozovi"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-hu/strings.xml b/java/com/android/dialer/theme/res/values-hu/strings.xml
index dfcc876e4..30051d430 100644
--- a/java/com/android/dialer/theme/res/values-hu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hu/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Nyilvános telefon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kameraengedély megadva"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videohívás"</string>
<string name="call" msgid="3699617769606114168">"Hívás"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-hy/strings.xml b/java/com/android/dialer/theme/res/values-hy/strings.xml
index 3b4e862b3..6577dab16 100644
--- a/java/com/android/dialer/theme/res/values-hy/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hy/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Բջջային տերմինալ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Հեռախոս"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Տեսախցիկից օգտվելու թույլտվությունը տրամադրված է"</string>
+ <string name="video_call" msgid="8914878391104612532">"Տեսազանգ"</string>
<string name="call" msgid="3699617769606114168">"Զանգել"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-in/strings.xml b/java/com/android/dialer/theme/res/values-in/strings.xml
index eda15a299..d2d72b832 100644
--- a/java/com/android/dialer/theme/res/values-in/strings.xml
+++ b/java/com/android/dialer/theme/res/values-in/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telepon Umum"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telepon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Izin kamera diaktifkan"</string>
+ <string name="video_call" msgid="8914878391104612532">"Video call"</string>
<string name="call" msgid="3699617769606114168">"Telepon"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-is/strings.xml b/java/com/android/dialer/theme/res/values-is/strings.xml
index cda7fc8fe..ff3faf836 100644
--- a/java/com/android/dialer/theme/res/values-is/strings.xml
+++ b/java/com/android/dialer/theme/res/values-is/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Símasjálfsali"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Sími"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Myndavélarheimild virk"</string>
+ <string name="video_call" msgid="8914878391104612532">"Hringja myndsímtal"</string>
<string name="call" msgid="3699617769606114168">"Hringja"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-it/strings.xml b/java/com/android/dialer/theme/res/values-it/strings.xml
index fa2caa6bb..4b26288ac 100644
--- a/java/com/android/dialer/theme/res/values-it/strings.xml
+++ b/java/com/android/dialer/theme/res/values-it/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Cabina telefonica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefono"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Autorizzazioni della fotocamera attivate"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videochiamata"</string>
<string name="call" msgid="3699617769606114168">"Chiama"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-iw/strings.xml b/java/com/android/dialer/theme/res/values-iw/strings.xml
index 18d87eaf7..09abf2ed1 100644
--- a/java/com/android/dialer/theme/res/values-iw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-iw/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"טלפון ציבורי"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"טלפון"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"הרשאת הגישה למצלמה הופעלה"</string>
+ <string name="video_call" msgid="8914878391104612532">"שיחת וידאו"</string>
<string name="call" msgid="3699617769606114168">"התקשר"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ja/strings.xml b/java/com/android/dialer/theme/res/values-ja/strings.xml
index 39215598c..551d67983 100644
--- a/java/com/android/dialer/theme/res/values-ja/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ja/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g>(<xliff:g id="ID">%d</xliff:g>)"</string>
<string name="payphone" msgid="7106361320283710387">"公衆電話"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"カメラへのアクセスを自動で許可しました"</string>
+ <string name="video_call" msgid="8914878391104612532">"ビデオハングアウト"</string>
<string name="call" msgid="3699617769606114168">"発信"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ka/strings.xml b/java/com/android/dialer/theme/res/values-ka/strings.xml
index 18e7cb34d..ab225954e 100644
--- a/java/com/android/dialer/theme/res/values-ka/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ka/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"გადახდის ტელეფონი"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ტელეფონი"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"კამერაზე წვდომის ნებართვა ჩართულია"</string>
+ <string name="video_call" msgid="8914878391104612532">"ვიდეოზარი"</string>
<string name="call" msgid="3699617769606114168">"დარეკვა"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-kk/strings.xml b/java/com/android/dialer/theme/res/values-kk/strings.xml
index f9c62d32e..d3a1b7bb9 100644
--- a/java/com/android/dialer/theme/res/values-kk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kk/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Автомат-телефон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Камера рұқсаты қосылды"</string>
+ <string name="video_call" msgid="8914878391104612532">"Бейне қоңырау"</string>
<string name="call" msgid="3699617769606114168">"Қоңырау шалу"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-km/strings.xml b/java/com/android/dialer/theme/res/values-km/strings.xml
index 7e375cf99..900f1d690 100644
--- a/java/com/android/dialer/theme/res/values-km/strings.xml
+++ b/java/com/android/dialer/theme/res/values-km/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"ទូរស័ព្ទសាធារណៈ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ទូរស័ព្ទ"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"បានបើក​ការអនុញ្ញាត​កាមេរ៉ា"</string>
+ <string name="video_call" msgid="8914878391104612532">"ការ​ហៅវីដេអូ"</string>
<string name="call" msgid="3699617769606114168">"ហៅ​ទូរសព្ទ"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-kn/strings.xml b/java/com/android/dialer/theme/res/values-kn/strings.xml
index 718fea0d4..ab9f816db 100644
--- a/java/com/android/dialer/theme/res/values-kn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kn/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"ಪೇಫೋನ್"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ಫೋನ್"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"ಕ್ಯಾಮರಾ ಅನುಮತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+ <string name="video_call" msgid="8914878391104612532">"ವೀಡಿಯೊ ಕರೆ"</string>
<string name="call" msgid="3699617769606114168">"ಕರೆಮಾಡಿ"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ko/strings.xml b/java/com/android/dialer/theme/res/values-ko/strings.xml
index 29f608c6e..b5ac55695 100644
--- a/java/com/android/dialer/theme/res/values-ko/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ko/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"공중전화"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"휴대전화"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"카메라 권한 사용 가능"</string>
+ <string name="video_call" msgid="8914878391104612532">"화상 통화"</string>
<string name="call" msgid="3699617769606114168">"전화"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ky/strings.xml b/java/com/android/dialer/theme/res/values-ky/strings.xml
index 905b8c5ff..0a9bec294 100644
--- a/java/com/android/dialer/theme/res/values-ky/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ky/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Камеранын уруксаты иштетилди"</string>
+ <string name="video_call" msgid="8914878391104612532">"Видео чалуу"</string>
<string name="call" msgid="3699617769606114168">"Чалуу"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-lo/strings.xml b/java/com/android/dialer/theme/res/values-lo/strings.xml
index 6826a753f..d33d43e5b 100644
--- a/java/com/android/dialer/theme/res/values-lo/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lo/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ໂທລະສັບ"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"ເປີດໃຊ້ສິດອະນຸຍາດກ້ອງຖ່າຍຮູບແລ້ວ"</string>
+ <string name="video_call" msgid="8914878391104612532">"ໂທວິດີໂອ"</string>
<string name="call" msgid="3699617769606114168">"ໂທ"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-lt/strings.xml b/java/com/android/dialer/theme/res/values-lt/strings.xml
index 43469a1fd..fdf31e227 100644
--- a/java/com/android/dialer/theme/res/values-lt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lt/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="ID">%d</xliff:g> <xliff:g id="UNKNOWN">%s</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Taksofonas"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonas"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Fotoaparato leidimas įgalintas"</string>
+ <string name="video_call" msgid="8914878391104612532">"Vaizdo skambutis"</string>
<string name="call" msgid="3699617769606114168">"Skambinti"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-lv/strings.xml b/java/com/android/dialer/theme/res/values-lv/strings.xml
index f9a6deca8..031c5bdea 100644
--- a/java/com/android/dialer/theme/res/values-lv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lv/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Maksas tālrunis"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Tālrunis"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kameras atļauja iespējota"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videozvans"</string>
<string name="call" msgid="3699617769606114168">"Zvanīt"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-mk/strings.xml b/java/com/android/dialer/theme/res/values-mk/strings.xml
index 1328edbb2..d89d12e90 100644
--- a/java/com/android/dialer/theme/res/values-mk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mk/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Говорница"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Дозволата за камера е овозможена"</string>
+ <string name="video_call" msgid="8914878391104612532">"Воспоставете видеоповик"</string>
<string name="call" msgid="3699617769606114168">"Повикајте"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ml/strings.xml b/java/com/android/dialer/theme/res/values-ml/strings.xml
index 03f9533ff..f02ceeb06 100644
--- a/java/com/android/dialer/theme/res/values-ml/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ml/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ഫോണ്‍"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"ക്യാമറ അനുമതി നൽകി"</string>
+ <string name="video_call" msgid="8914878391104612532">"വീഡിയോ കോള്‍"</string>
<string name="call" msgid="3699617769606114168">"വിളിക്കുക"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-mn/strings.xml b/java/com/android/dialer/theme/res/values-mn/strings.xml
index c47f08324..7a07e5d4d 100644
--- a/java/com/android/dialer/theme/res/values-mn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mn/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Утас"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Камерын зөвшөөрөл идэвхжсэн"</string>
+ <string name="video_call" msgid="8914878391104612532">"Видео дуудлага"</string>
<string name="call" msgid="3699617769606114168">"Залгах"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-mr/strings.xml b/java/com/android/dialer/theme/res/values-mr/strings.xml
index 41a9c96e0..eeb9afa1e 100644
--- a/java/com/android/dialer/theme/res/values-mr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mr/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"सार्वजनिक फोन"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"कॅमेरा परवानगी सक्षम केली"</string>
+ <string name="video_call" msgid="8914878391104612532">"व्हिडिओ कॉल"</string>
<string name="call" msgid="3699617769606114168">"कॉल करा"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ms/strings.xml b/java/com/android/dialer/theme/res/values-ms/strings.xml
index b28fe26ac..2e424fdf7 100644
--- a/java/com/android/dialer/theme/res/values-ms/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ms/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefon Awam"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kebenaran kamera didayakan"</string>
+ <string name="video_call" msgid="8914878391104612532">"Panggilan video"</string>
<string name="call" msgid="3699617769606114168">"Panggil"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-my/strings.xml b/java/com/android/dialer/theme/res/values-my/strings.xml
index eb21b6ef2..97b871b30 100644
--- a/java/com/android/dialer/theme/res/values-my/strings.xml
+++ b/java/com/android/dialer/theme/res/values-my/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"ငွေပေးရသည့်ဖုန်း"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ဖုန်း"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"ကင်မရာအသုံးပြုခွင့် ဖွင့်ထားပါသည်"</string>
+ <string name="video_call" msgid="8914878391104612532">"ဗီဒီယိုခေါ်ဆိုမှု"</string>
<string name="call" msgid="3699617769606114168">"ခေါ်ဆိုရန်"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-nb/strings.xml b/java/com/android/dialer/theme/res/values-nb/strings.xml
index dcd9b17ad..7587b7e30 100644
--- a/java/com/android/dialer/theme/res/values-nb/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nb/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratillatelsen er aktivert"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videosamtale"</string>
<string name="call" msgid="3699617769606114168">"Ring"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ne/strings.xml b/java/com/android/dialer/theme/res/values-ne/strings.xml
index 383ac2c8d..af1ad5e24 100644
--- a/java/com/android/dialer/theme/res/values-ne/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ne/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"पेफोन"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"क्यामेरा सम्बन्धी अनुमतिहरूलाई सक्षम पारियो"</string>
+ <string name="video_call" msgid="8914878391104612532">"भिडियो कल"</string>
<string name="call" msgid="3699617769606114168">"कल गर्नुहोस्"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-nl/strings.xml b/java/com/android/dialer/theme/res/values-nl/strings.xml
index 96357081d..ab51c97ae 100644
--- a/java/com/android/dialer/theme/res/values-nl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nl/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefooncel"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Camerarechten ingeschakeld"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videogesprek"</string>
<string name="call" msgid="3699617769606114168">"Bellen"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-no/strings.xml b/java/com/android/dialer/theme/res/values-no/strings.xml
index dcd9b17ad..7587b7e30 100644
--- a/java/com/android/dialer/theme/res/values-no/strings.xml
+++ b/java/com/android/dialer/theme/res/values-no/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kameratillatelsen er aktivert"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videosamtale"</string>
<string name="call" msgid="3699617769606114168">"Ring"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pa/strings.xml b/java/com/android/dialer/theme/res/values-pa/strings.xml
index dc23b7a69..8784bcae1 100644
--- a/java/com/android/dialer/theme/res/values-pa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pa/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"ਪੇਫੋਨ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ਫੋਨ"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"ਕੈਮਰਾ ਇਜਾਜ਼ਤ ਨੂੰ ਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ"</string>
+ <string name="video_call" msgid="8914878391104612532">"ਵੀਡੀਓ ਕਾਲ"</string>
<string name="call" msgid="3699617769606114168">"ਕਾਲ ਕਰੋ"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pl/strings.xml b/java/com/android/dialer/theme/res/values-pl/strings.xml
index 1ebaad2cc..246261e97 100644
--- a/java/com/android/dialer/theme/res/values-pl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pl/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Automat telefoniczny"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Uprawnienia do korzystania z aparatu zostały włączone"</string>
+ <string name="video_call" msgid="8914878391104612532">"Rozmowa wideo"</string>
<string name="call" msgid="3699617769606114168">"Zadzwoń"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
index 6caf87cb8..c1356d9b3 100644
--- a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Permissão de câmera ativada"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
<string name="call" msgid="3699617769606114168">"Ligar"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
index ef7c7d6c6..2b46e44a1 100644
--- a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Autorização da câmara ativada"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
<string name="call" msgid="3699617769606114168">"Telefonar"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pt/strings.xml b/java/com/android/dialer/theme/res/values-pt/strings.xml
index 6caf87cb8..c1356d9b3 100644
--- a/java/com/android/dialer/theme/res/values-pt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Permissão de câmera ativada"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videochamada"</string>
<string name="call" msgid="3699617769606114168">"Ligar"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ro/strings.xml b/java/com/android/dialer/theme/res/values-ro/strings.xml
index 4d0c09baf..8978e9240 100644
--- a/java/com/android/dialer/theme/res/values-ro/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ro/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefon public"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Permisiunea pentru cameră a fost activată."</string>
+ <string name="video_call" msgid="8914878391104612532">"Apel video"</string>
<string name="call" msgid="3699617769606114168">"Apelați"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ru/strings.xml b/java/com/android/dialer/theme/res/values-ru/strings.xml
index aeab13624..a155052be 100644
--- a/java/com/android/dialer/theme/res/values-ru/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ru/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Телефон-автомат"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Доступ к камере разрешен"</string>
+ <string name="video_call" msgid="8914878391104612532">"Видеовызов"</string>
<string name="call" msgid="3699617769606114168">"Позвонить"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-si/strings.xml b/java/com/android/dialer/theme/res/values-si/strings.xml
index ba3bb0577..424a11255 100644
--- a/java/com/android/dialer/theme/res/values-si/strings.xml
+++ b/java/com/android/dialer/theme/res/values-si/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"පේෆෝනය"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"දුරකථනය"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"කැමරා අවසර සබල කර ඇත"</string>
+ <string name="video_call" msgid="8914878391104612532">"වීඩියෝ ඇමතුම"</string>
<string name="call" msgid="3699617769606114168">"ඇමතුම"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sk/strings.xml b/java/com/android/dialer/theme/res/values-sk/strings.xml
index 6863463ae..411b85edc 100644
--- a/java/com/android/dialer/theme/res/values-sk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sk/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefónny automat"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefón"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Povolenie pre fotoaparát je aktivované"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videohovor"</string>
<string name="call" msgid="3699617769606114168">"Volať"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sl/strings.xml b/java/com/android/dialer/theme/res/values-sl/strings.xml
index 1b1776abc..85a3e2b8e 100644
--- a/java/com/android/dialer/theme/res/values-sl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sl/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefonska govorilnica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Dovoljenje za dostop do fotoaparata je omogočeno"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videoklic"</string>
<string name="call" msgid="3699617769606114168">"Pokliči"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sq/strings.xml b/java/com/android/dialer/theme/res/values-sq/strings.xml
index 0d7084af6..5cbd587d3 100644
--- a/java/com/android/dialer/theme/res/values-sq/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sq/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefon me pagesë"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoni"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Leja e kamerës është aktivizuar"</string>
+ <string name="video_call" msgid="8914878391104612532">"Telefonatë me video"</string>
<string name="call" msgid="3699617769606114168">"Telefono"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sr/strings.xml b/java/com/android/dialer/theme/res/values-sr/strings.xml
index a744e9530..310da735d 100644
--- a/java/com/android/dialer/theme/res/values-sr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sr/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Телефонска говорница"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Омогућена је дозвола за камеру"</string>
+ <string name="video_call" msgid="8914878391104612532">"Упути видео позив"</string>
<string name="call" msgid="3699617769606114168">"Позови"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sv/strings.xml b/java/com/android/dialer/theme/res/values-sv/strings.xml
index f409807ef..af8e5f7b1 100644
--- a/java/com/android/dialer/theme/res/values-sv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sv/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Telefonautomat"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kamerabehörighet har aktiverats"</string>
+ <string name="video_call" msgid="8914878391104612532">"Videosamtal"</string>
<string name="call" msgid="3699617769606114168">"Ring"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sw/strings.xml b/java/com/android/dialer/theme/res/values-sw/strings.xml
index a2f98888d..31615febb 100644
--- a/java/com/android/dialer/theme/res/values-sw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sw/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Simu ya kulipia"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Simu"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Imewasha ruhusa ya kamera"</string>
+ <string name="video_call" msgid="8914878391104612532">"Simu ya video"</string>
<string name="call" msgid="3699617769606114168">"Piga simu"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ta/strings.xml b/java/com/android/dialer/theme/res/values-ta/strings.xml
index a4f55f5c7..ab15f0b0c 100644
--- a/java/com/android/dialer/theme/res/values-ta/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ta/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"கட்டணத் தொலைபேசி"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"மொபைல்"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"கேமராவிற்கான அனுமதி இயக்கப்பட்டது"</string>
+ <string name="video_call" msgid="8914878391104612532">"வீடியோ அழைப்பு"</string>
<string name="call" msgid="3699617769606114168">"அழை"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-te/strings.xml b/java/com/android/dialer/theme/res/values-te/strings.xml
index 59f00ca1f..4a6fca1fb 100644
--- a/java/com/android/dialer/theme/res/values-te/strings.xml
+++ b/java/com/android/dialer/theme/res/values-te/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"పే ఫోన్"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ఫోన్"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"కెమెరా అనుమతిని ప్రారంభించాము"</string>
+ <string name="video_call" msgid="8914878391104612532">"వీడియో కాల్"</string>
<string name="call" msgid="3699617769606114168">"కాల్ చేయి"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-th/strings.xml b/java/com/android/dialer/theme/res/values-th/strings.xml
index 3870b4da6..51db053fa 100644
--- a/java/com/android/dialer/theme/res/values-th/strings.xml
+++ b/java/com/android/dialer/theme/res/values-th/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"โทรศัพท์สาธารณะ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"โทรศัพท์"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"ให้สิทธิ์เข้าถึงกล้องถ่ายรูปแล้ว"</string>
+ <string name="video_call" msgid="8914878391104612532">"แฮงเอาท์วิดีโอ"</string>
<string name="call" msgid="3699617769606114168">"โทร"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-tl/strings.xml b/java/com/android/dialer/theme/res/values-tl/strings.xml
index 81692789f..97f69ec1c 100644
--- a/java/com/android/dialer/theme/res/values-tl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tl/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telepono"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Na-enable ang pahintulot sa camera"</string>
+ <string name="video_call" msgid="8914878391104612532">"Mag-video call"</string>
<string name="call" msgid="3699617769606114168">"Tawag"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-tr/strings.xml b/java/com/android/dialer/theme/res/values-tr/strings.xml
index c11cd1375..b38f0674d 100644
--- a/java/com/android/dialer/theme/res/values-tr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tr/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Ankesörlü telefon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kamera izni etkinleştirildi"</string>
+ <string name="video_call" msgid="8914878391104612532">"Görüntülü görüşme"</string>
<string name="call" msgid="3699617769606114168">"Telefon et"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-uk/strings.xml b/java/com/android/dialer/theme/res/values-uk/strings.xml
index c87fe89b7..f0702770a 100644
--- a/java/com/android/dialer/theme/res/values-uk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uk/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Камері надано дозвіл"</string>
+ <string name="video_call" msgid="8914878391104612532">"Відеодзвінок"</string>
<string name="call" msgid="3699617769606114168">"Виклик"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ur/strings.xml b/java/com/android/dialer/theme/res/values-ur/strings.xml
index abc0d6d6b..e9a4b44bb 100644
--- a/java/com/android/dialer/theme/res/values-ur/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ur/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"پے فون"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"فون"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"کیمرا کی اجازت فعال ہے"</string>
+ <string name="video_call" msgid="8914878391104612532">"ویڈیو کال"</string>
<string name="call" msgid="3699617769606114168">"کال کریں"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-uz/strings.xml b/java/com/android/dialer/theme/res/values-uz/strings.xml
index 2889f3f12..2bbaf2080 100644
--- a/java/com/android/dialer/theme/res/values-uz/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uz/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Kameraga kirishga ruxsat berildi"</string>
+ <string name="video_call" msgid="8914878391104612532">"Video suhbat"</string>
<string name="call" msgid="3699617769606114168">"Chaqirish"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-vi/strings.xml b/java/com/android/dialer/theme/res/values-vi/strings.xml
index b014516be..fae318091 100644
--- a/java/com/android/dialer/theme/res/values-vi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-vi/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Điện thoại công cộng"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Điện thoại"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Đã bật quyền sử dụng máy ảnh"</string>
+ <string name="video_call" msgid="8914878391104612532">"Gọi điện video"</string>
<string name="call" msgid="3699617769606114168">"Gọi"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
index baff75258..2e6096296 100644
--- a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"公用电话"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"电话"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"已启用相机使用权限"</string>
+ <string name="video_call" msgid="8914878391104612532">"视频通话"</string>
<string name="call" msgid="3699617769606114168">"拨打电话"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
index 8b26663d1..7b08024ac 100644
--- a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"公共電話"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"已啟用相機權限"</string>
+ <string name="video_call" msgid="8914878391104612532">"視像通話"</string>
<string name="call" msgid="3699617769606114168">"通話"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
index 24a5c10d1..57d7fe2b1 100644
--- a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"公用電話"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"已啟用相機權限"</string>
+ <string name="video_call" msgid="8914878391104612532">"視訊通話"</string>
<string name="call" msgid="3699617769606114168">"撥號"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values-zu/strings.xml b/java/com/android/dialer/theme/res/values-zu/strings.xml
index 96cd79873..d0dd7288b 100644
--- a/java/com/android/dialer/theme/res/values-zu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zu/strings.xml
@@ -21,5 +21,7 @@
<string name="unknown_counter" msgid="7452889151953704159">"<xliff:g id="UNKNOWN">%s</xliff:g> <xliff:g id="ID">%d</xliff:g>"</string>
<string name="payphone" msgid="7106361320283710387">"Ucingo olufakwa imali"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Ifoni"</string>
+ <string name="camera_privacy_text" msgid="1318954032109938588">"Imvume yekhamera inikwe amandla"</string>
+ <string name="video_call" msgid="8914878391104612532">"Ikholi yevidiyo"</string>
<string name="call" msgid="3699617769606114168">"Shaya"</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values/strings.xml b/java/com/android/dialer/theme/res/values/strings.xml
index a14693f51..af61d3596 100644
--- a/java/com/android/dialer/theme/res/values/strings.xml
+++ b/java/com/android/dialer/theme/res/values/strings.xml
@@ -30,6 +30,12 @@
used in the Launcher icon. -->
<string name="launcherActivityLabel">Phone</string>
+ <!-- Text presented to the user explaining that we have enabled the camera permission automatically -->
+ <string name="camera_privacy_text">Camera permission enabled</string>
+
+ <!-- text on a button, Video call, as in to place a video call. -->
+ <string name="video_call">Video call</string>
+
<!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
<string name="call">Call</string>
</resources>
diff --git a/java/com/android/dialer/theme/res/values/themes.xml b/java/com/android/dialer/theme/res/values/themes.xml
index 0d0c45f90..124682692 100644
--- a/java/com/android/dialer/theme/res/values/themes.xml
+++ b/java/com/android/dialer/theme/res/values/themes.xml
@@ -1,4 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
<resources>
<style name="DialerThemeBase" parent="@style/Theme.AppCompat.Light.DarkActionBar">
@@ -19,6 +34,20 @@
<item name="actionBarSize">@dimen/action_bar_height</item>
</style>
+ <!-- Should be kept in sync with the theme above (minus anything related to actionbars -->
+ <style name="DialerThemeBase.NoActionBar" parent="@style/Theme.AppCompat.Light.NoActionBar">
+ <item name="android:textColorPrimary">@color/dialer_primary_text_color</item>
+ <item name="android:textColorSecondary">@color/dialer_secondary_text_color</item>
+ <!-- This is used for title bar color in recents -->
+ <item name="android:colorPrimary">@color/titlebar_in_recents_background_color</item>
+ <item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
+ <item name="android:colorControlActivated">@color/dialer_theme_color</item>
+ <item name="android:colorButtonNormal">@color/dialer_theme_color</item>
+ <item name="android:colorAccent">@color/dialtacts_theme_color</item>
+ <item name="android:alertDialogTheme">@style/AlertDialogTheme</item>
+ <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item>
+ </style>
+
<style name="Theme.AppCompat.Translucent" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
@@ -26,4 +55,18 @@
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
+
+ <style name="PrimaryText">
+ <item name="android:textColor">#DE000000</item>
+ <item name="android:textSize">16sp</item>
+ <item name="android:ellipsize">end</item>
+ <item name="android:maxLines">1</item>
+ </style>
+
+ <style name="SecondaryText">
+ <item name="android:textColor">#8A000000</item>
+ <item name="android:textSize">14sp</item>
+ <item name="android:ellipsize">end</item>
+ <item name="android:maxLines">1</item>
+ </style>
</resources>
diff --git a/java/com/android/dialer/util/CallUtil.java b/java/com/android/dialer/util/CallUtil.java
index 81a4bb21e..b6ab3b30e 100644
--- a/java/com/android/dialer/util/CallUtil.java
+++ b/java/com/android/dialer/util/CallUtil.java
@@ -21,6 +21,7 @@ import android.net.Uri;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
import com.android.dialer.phonenumberutil.PhoneNumberHelper;
import java.util.List;
@@ -40,6 +41,9 @@ public class CallUtil {
*/
public static final int VIDEO_CALLING_PRESENCE = 2;
+ private static boolean hasInitializedIsVideoEnabledState;
+ private static boolean cachedIsVideoEnabledState;
+
/** Return Uri with an appropriate scheme, accepting both SIP and usual phone call numbers. */
public static Uri getCallUri(String number) {
if (PhoneNumberHelper.isUriNumber(number)) {
@@ -102,7 +106,23 @@ public class CallUtil {
* false} otherwise.
*/
public static boolean isVideoEnabled(Context context) {
- return (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0;
+ boolean isVideoEnabled = (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0;
+
+ // Log everytime the video enabled state changes.
+ if (!hasInitializedIsVideoEnabledState) {
+ LogUtil.i("CallUtil.isVideoEnabled", "isVideoEnabled: " + isVideoEnabled);
+ hasInitializedIsVideoEnabledState = true;
+ cachedIsVideoEnabledState = isVideoEnabled;
+ } else if (cachedIsVideoEnabledState != isVideoEnabled) {
+ LogUtil.i(
+ "CallUtil.isVideoEnabled",
+ "isVideoEnabled changed from %b to %b",
+ cachedIsVideoEnabledState,
+ isVideoEnabled);
+ cachedIsVideoEnabledState = isVideoEnabled;
+ }
+
+ return true;
}
/**
diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java
index 466e86204..72a59eaef 100644
--- a/java/com/android/dialer/util/PermissionsUtil.java
+++ b/java/com/android/dialer/util/PermissionsUtil.java
@@ -72,15 +72,15 @@ public class PermissionsUtil {
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 9e1058383..fe0e86110 100644
--- a/java/com/android/dialer/widget/DialerToolbar.java
+++ b/java/com/android/dialer/widget/DialerToolbar.java
@@ -41,6 +41,11 @@ public class DialerToolbar extends Toolbar {
setNavigationIcon(R.drawable.quantum_ic_close_white_24);
setNavigationContentDescription(R.string.toolbar_close);
setNavigationOnClickListener(v -> ((Activity) context).finish());
+ setPaddingRelative(
+ getPaddingStart(),
+ getPaddingTop(),
+ getResources().getDimensionPixelSize(R.dimen.toolbar_end_padding),
+ getPaddingBottom());
}
@Override
diff --git a/java/com/android/dialer/app/widget/EmptyContentView.java b/java/com/android/dialer/widget/EmptyContentView.java
index cfc8665a2..a76ab98d6 100644
--- a/java/com/android/dialer/app/widget/EmptyContentView.java
+++ b/java/com/android/dialer/widget/EmptyContentView.java
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.android.dialer.app.widget;
+package com.android.dialer.widget;
import android.content.Context;
+import android.support.annotation.StringRes;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import com.android.dialer.app.R;
public class EmptyContentView extends LinearLayout implements View.OnClickListener {
@@ -40,6 +40,8 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen
private TextView mActionView;
private OnEmptyViewActionButtonClickedListener mOnActionButtonClickedListener;
+ private @StringRes int actionLabel;
+
public EmptyContentView(Context context) {
this(context, null);
}
@@ -58,9 +60,9 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen
// Don't let touches fall through the empty view.
setClickable(true);
- mImageView = (ImageView) findViewById(R.id.emptyListViewImage);
- mDescriptionView = (TextView) findViewById(R.id.emptyListViewMessage);
- mActionView = (TextView) findViewById(R.id.emptyListViewAction);
+ mImageView = (ImageView) findViewById(R.id.empty_list_view_image);
+ mDescriptionView = (TextView) findViewById(R.id.empty_list_view_message);
+ mActionView = (TextView) findViewById(R.id.empty_list_view_action);
mActionView.setOnClickListener(this);
}
@@ -84,7 +86,8 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen
}
}
- public void setActionLabel(int resourceId) {
+ public void setActionLabel(@StringRes int resourceId) {
+ actionLabel = resourceId;
if (resourceId == NO_LABEL) {
mActionView.setText(null);
mActionView.setVisibility(View.GONE);
@@ -94,6 +97,10 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen
}
}
+ public @StringRes int getActionLabel() {
+ return actionLabel;
+ }
+
public boolean isShowingContent() {
return mImageView.getVisibility() == View.VISIBLE
|| mDescriptionView.getVisibility() == View.VISIBLE
@@ -117,5 +124,4 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen
(LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.empty_content_view, this);
}
-
}
diff --git a/java/com/android/dialer/widget/MessageFragment.java b/java/com/android/dialer/widget/MessageFragment.java
index b136f47eb..615ad3b77 100644
--- a/java/com/android/dialer/widget/MessageFragment.java
+++ b/java/com/android/dialer/widget/MessageFragment.java
@@ -23,6 +23,7 @@ import android.text.Editable;
import android.text.InputFilter;
import android.text.TextUtils;
import android.text.TextWatcher;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -31,11 +32,13 @@ import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import android.widget.TextView.OnEditorActionListener;
import com.android.dialer.common.Assert;
import com.android.dialer.common.FragmentUtils;
/** Fragment used to compose call with message fragment. */
-public class MessageFragment extends Fragment implements OnClickListener, TextWatcher {
+public class MessageFragment extends Fragment
+ implements OnClickListener, TextWatcher, OnEditorActionListener {
private static final String CHAR_LIMIT_KEY = "char_limit";
private static final String SHOW_SEND_ICON_KEY = "show_send_icon";
private static final String MESSAGE_LIST_KEY = "message_list";
@@ -69,7 +72,7 @@ public class MessageFragment extends Fragment implements OnClickListener, TextWa
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_message, container, false);
- sendMessage = (ImageView) view.findViewById(R.id.send_message);
+ sendMessage = view.findViewById(R.id.send_message);
sendMessageContainer = view.findViewById(R.id.count_and_send_container);
if (getArguments().getBoolean(SHOW_SEND_ICON_KEY, false)) {
sendMessage.setVisibility(View.VISIBLE);
@@ -77,18 +80,19 @@ public class MessageFragment extends Fragment implements OnClickListener, TextWa
sendMessageContainer.setOnClickListener(this);
}
- customMessage = (EditText) view.findViewById(R.id.custom_message);
+ customMessage = view.findViewById(R.id.custom_message);
customMessage.addTextChangedListener(this);
+ customMessage.setOnEditorActionListener(this);
charLimit = getArguments().getInt(CHAR_LIMIT_KEY, NO_CHAR_LIMIT);
if (charLimit != NO_CHAR_LIMIT) {
- remainingChar = (TextView) view.findViewById(R.id.remaining_characters);
+ remainingChar = view.findViewById(R.id.remaining_characters);
remainingChar.setVisibility(View.VISIBLE);
- remainingChar = (TextView) view.findViewById(R.id.remaining_characters);
- remainingChar.setText("" + charLimit);
+ remainingChar = view.findViewById(R.id.remaining_characters);
+ remainingChar.setText(Integer.toString(charLimit));
customMessage.setFilters(new InputFilter[] {new InputFilter.LengthFilter(charLimit)});
}
- LinearLayout messageContainer = (LinearLayout) view.findViewById(R.id.message_container);
+ LinearLayout messageContainer = view.findViewById(R.id.message_container);
for (String message : getArguments().getStringArray(MESSAGE_LIST_KEY)) {
TextView textView = (TextView) inflater.inflate(R.layout.selectable_text_view, null);
textView.setOnClickListener(this);
@@ -123,11 +127,20 @@ public class MessageFragment extends Fragment implements OnClickListener, TextWa
@Override
public void afterTextChanged(Editable s) {
if (charLimit != NO_CHAR_LIMIT) {
- remainingChar.setText("" + (charLimit - s.length()));
+ remainingChar.setText(Integer.toString(charLimit - s.length()));
}
getListener().onMessageFragmentAfterTextChange(s.toString());
}
+ @Override
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
+ if (getMessage() == null) {
+ return false;
+ }
+ getListener().onMessageFragmentSendMessage(getMessage());
+ return true;
+ }
+
private Listener getListener() {
return FragmentUtils.getParentUnsafe(this, Listener.class);
}
diff --git a/java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png
index d3c0378f5..d3c0378f5 100644
--- a/java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png
+++ b/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png
index 2ce7eae37..2ce7eae37 100644
--- a/java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png
+++ b/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png
index 65b1de333..65b1de333 100644
--- a/java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png
+++ b/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png
index 407d78c9c..407d78c9c 100644
--- a/java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png
+++ b/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png
index 5893965e9..5893965e9 100644
--- a/java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png
+++ b/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png
Binary files differ
diff --git a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
index c4aac65fb..023b0ffe2 100644
--- a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
+++ b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml
@@ -29,7 +29,9 @@
android:gravity="top"
android:textSize="@dimen/toolbar_title_text_size"
android:textColor="@color/background_dialer_white"
- android:fontFamily="sans-serif-medium"/>
+ android:fontFamily="sans-serif-medium"
+ android:maxLines="1"
+ android:ellipsize="end"/>
<TextView
android:id="@+id/subtitle"
@@ -37,6 +39,8 @@
android:layout_height="wrap_content"
android:textSize="@dimen/toolbar_subtitle_text_size"
android:textColor="@color/background_dialer_white"
- android:visibility="gone"/>
+ android:visibility="gone"
+ android:maxLines="1"
+ android:ellipsize="end"/>
</LinearLayout>
</merge> \ No newline at end of file
diff --git a/java/com/android/dialer/app/res/layout/empty_content_view.xml b/java/com/android/dialer/widget/res/layout/empty_content_view.xml
index 96a6a0262..177744385 100644
--- a/java/com/android/dialer/app/res/layout/empty_content_view.xml
+++ b/java/com/android/dialer/widget/res/layout/empty_content_view.xml
@@ -16,13 +16,13 @@
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
- android:id="@+id/emptyListViewImage"
+ android:id="@+id/empty_list_view_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"/>
<TextView
- android:id="@+id/emptyListViewMessage"
+ android:id="@+id/empty_list_view_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="8dp"
@@ -34,7 +34,7 @@
android:textSize="@dimen/empty_list_message_text_size"/>
<TextView
- android:id="@+id/emptyListViewAction"
+ android:id="@+id/empty_list_view_action"
style="@style/TextActionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/java/com/android/dialer/widget/res/layout/fragment_message.xml b/java/com/android/dialer/widget/res/layout/fragment_message.xml
index e39e03aee..5b0bab536 100644
--- a/java/com/android/dialer/widget/res/layout/fragment_message.xml
+++ b/java/com/android/dialer/widget/res/layout/fragment_message.xml
@@ -48,7 +48,9 @@
android:textColorHint="@color/dialer_edit_text_hint_color"
android:background="@color/background_dialer_white"
android:textCursorDrawable="@drawable/searchedittext_custom_cursor"
- android:layout_toStartOf="@+id/count_and_send_container"/>
+ android:layout_toStartOf="@+id/count_and_send_container"
+ android:inputType="textShortMessage|textCapSentences"
+ android:imeOptions="actionSend"/>
<LinearLayout
android:id="@+id/count_and_send_container"
diff --git a/java/com/android/dialer/widget/res/values-af/strings.xml b/java/com/android/dialer/widget/res/values-af/strings.xml
index 7c5e83a93..122c84328 100644
--- a/java/com/android/dialer/widget/res/values-af/strings.xml
+++ b/java/com/android/dialer/widget/res/values-af/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Skryf \'n gepasmaakte boodskap"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Maak toe"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Jy het nog nie enige kontakte nie"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Voeg \'n kontak by"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Skakel aan"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Geen kontakte-program beskikbaar nie"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-am/strings.xml b/java/com/android/dialer/widget/res/values-am/strings.xml
index f11b46835..8a5353e18 100644
--- a/java/com/android/dialer/widget/res/values-am/strings.xml
+++ b/java/com/android/dialer/widget/res/values-am/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"ብጁ መልዕክት ይጻፉ"</string>
<string name="toolbar_close" msgid="1081308076149879833">"ዝጋ"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"ገና ምንም እውቂያዎች የሉዎትም"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"እውቂያ ያክሉ"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"አብራ"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"የእርስዎን እውቂያዎች ለማየት፣ የእውቂያዎች ፍቃዱን ያብሩ።"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"ምንም የእውቂያዎች መተግበሪያ አይገኝም"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ar/strings.xml b/java/com/android/dialer/widget/res/values-ar/strings.xml
index cb2e73378..7947903ce 100644
--- a/java/com/android/dialer/widget/res/values-ar/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ar/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"كتابة رسالة مخصصة"</string>
<string name="toolbar_close" msgid="1081308076149879833">"إغلاق"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"ليست لديك أية جهات اتصال حتى الآن"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"إضافة جهة اتصال"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"تشغيل"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"لا يتوفر تطبيق لجهات الاتصال"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-az/strings.xml b/java/com/android/dialer/widget/res/values-az/strings.xml
index 3860a5846..7a1389a1a 100644
--- a/java/com/android/dialer/widget/res/values-az/strings.xml
+++ b/java/com/android/dialer/widget/res/values-az/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Fərdi mesaj yazın"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Bağlayın"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Hələ heç bir kontakt yoxdur"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt əlavə edin"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktiv edin"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktları görmək üçün Kontakt icazəsini aktiv edin."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Kontakt tətbiqi əlçatan deyil"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
index daefd9020..46b29d27c 100644
--- a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Zatvorite"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Još uvek nemate nijedan kontakt"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nema dostupne aplikacije za kontakte"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-be/strings.xml b/java/com/android/dialer/widget/res/values-be/strings.xml
index 87861321f..38c8a80ca 100644
--- a/java/com/android/dialer/widget/res/values-be/strings.xml
+++ b/java/com/android/dialer/widget/res/values-be/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Напісаць карыстальніцкае паведамленне"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Закрыць"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"У вас пакуль няма ніякіх кантактаў"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Дадаць кантакт"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Уключыць"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Каб бачыць свае кантакты, уключыце дазвол для Кантактаў."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Праграмы для аперацый з кантактамі няма"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-bg/strings.xml b/java/com/android/dialer/widget/res/values-bg/strings.xml
index 35e980c5f..00ce56454 100644
--- a/java/com/android/dialer/widget/res/values-bg/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bg/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Напишете свое съобщение"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Затваряне"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Още нямате контакти"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Добавяне на контакт"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Включване"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"За да видите контактите си, включете разрешението за Контакти."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Няма налично приложение за контакти"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-bn/strings.xml b/java/com/android/dialer/widget/res/values-bn/strings.xml
index 9e1707114..96b75db59 100644
--- a/java/com/android/dialer/widget/res/values-bn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bn/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"একটি কাস্টম বার্তা লিখুন"</string>
<string name="toolbar_close" msgid="1081308076149879833">"বন্ধ করুন"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"একটি পরিচিতি যোগ করুন"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"চালু করুন"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-bs/strings.xml b/java/com/android/dialer/widget/res/values-bs/strings.xml
index 0bc1a9c15..df24ee16b 100644
--- a/java/com/android/dialer/widget/res/values-bs/strings.xml
+++ b/java/com/android/dialer/widget/res/values-bs/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Zatvori"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Još nemate nijedan kontakt"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodajte kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Da vidite kontakte, uključite dozvolu za Kontakte."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nije dostupna nijedna aplikacija za kontakte"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ca/strings.xml b/java/com/android/dialer/widget/res/values-ca/strings.xml
index 863930039..f7bbaa746 100644
--- a/java/com/android/dialer/widget/res/values-ca/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ca/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Escriu un miss. personalitzat"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Tanca"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Encara no tens cap contacte"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Afegeix un contacte"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Activa"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Activa el permís Contactes per veure els teus contactes."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"No hi ha cap contacte disponible"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-cs/strings.xml b/java/com/android/dialer/widget/res/values-cs/strings.xml
index 829aab8dd..19e5d17da 100644
--- a/java/com/android/dialer/widget/res/values-cs/strings.xml
+++ b/java/com/android/dialer/widget/res/values-cs/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Napište vlastní zprávu"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Zavřít"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Zatím nemáte žádné kontakty"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Přidat kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Povolit"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Pokud chcete zobrazit kontakty, povolte aplikaci přístup ke Kontaktům."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Není k dispozici žádná aplikace pro práci s kontakty"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-da/strings.xml b/java/com/android/dialer/widget/res/values-da/strings.xml
index 9381f36f5..67fb244c4 100644
--- a/java/com/android/dialer/widget/res/values-da/strings.xml
+++ b/java/com/android/dialer/widget/res/values-da/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Skriv en tilpasset besked"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Luk"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Du har endnu ikke nogen kontaktpersoner"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tilføj en kontaktperson"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå til"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Der er ingen tilgængelig app til kontaktpersoner"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-de/strings.xml b/java/com/android/dialer/widget/res/values-de/strings.xml
index 949fe9e49..14146d65f 100644
--- a/java/com/android/dialer/widget/res/values-de/strings.xml
+++ b/java/com/android/dialer/widget/res/values-de/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Eigene Nachricht schreiben"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Schließen"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Du hast noch keine Kontakte"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt hinzufügen"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivieren"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Keine Kontakte-App verfügbar"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-el/strings.xml b/java/com/android/dialer/widget/res/values-el/strings.xml
index 21e049bf7..0db6b2694 100644
--- a/java/com/android/dialer/widget/res/values-el/strings.xml
+++ b/java/com/android/dialer/widget/res/values-el/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Γράψτε ένα προσαρμ. μήνυμα"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Κλείσιμο"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Δεν έχετε επαφές ακόμη"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Προσθήκη επαφής"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Ενεργοποίηση"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια πρόσβασης στις Επαφές."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Δεν υπάρχει διαθέσιμη εφαρμογή επαφών"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
index 7f22b46da..a87cd28ff 100644
--- a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
index 7f22b46da..a87cd28ff 100644
--- a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
index 7f22b46da..a87cd28ff 100644
--- a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Write a custom message"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Close"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"You don\'t have any contacts yet"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Add a contact"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Turn on"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"To see your contacts, turn on the Contacts permission."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"No contacts app available"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
index c7fbdaa58..5ecc22b3d 100644
--- a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Escribe tu propio mensaje"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Cerrar"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Aún no tienes contactos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Agregar un contacto"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver los contactos, activa el permiso Contactos."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"No hay ninguna app de contactos disponible"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-es/strings.xml b/java/com/android/dialer/widget/res/values-es/strings.xml
index 507e8af0d..e561d06f7 100644
--- a/java/com/android/dialer/widget/res/values-es/strings.xml
+++ b/java/com/android/dialer/widget/res/values-es/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Mensaje personalizado"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Cerrar"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Aún no tienes contactos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Añadir un contacto"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver tus contactos, activa el permiso de Contactos."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"No hay aplicaciones de contactos disponibles"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-et/strings.xml b/java/com/android/dialer/widget/res/values-et/strings.xml
index 71dab4276..054b42281 100644
--- a/java/com/android/dialer/widget/res/values-et/strings.xml
+++ b/java/com/android/dialer/widget/res/values-et/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Kirjutage kohandatud sõnum"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Sule"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Teil pole veel kontakte"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakti lisamine"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Lülita sisse"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktide vaatamiseks lülitage sisse kontaktide luba."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Kontaktide rakendus pole saadaval"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-eu/strings.xml b/java/com/android/dialer/widget/res/values-eu/strings.xml
index b8e4085a0..7d191925e 100644
--- a/java/com/android/dialer/widget/res/values-eu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-eu/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Idatzi mezu bat"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Itxi"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Oraindik ez duzu kontakturik"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Gehitu kontaktu bat"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktibatu"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktuak ikusteko, aktibatu Kontaktuak atzitzeko baimena."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Ez dago kontaktu-aplikaziorik erabilgarri"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-fa/strings.xml b/java/com/android/dialer/widget/res/values-fa/strings.xml
index 0c3b1d4f5..5ed23131a 100644
--- a/java/com/android/dialer/widget/res/values-fa/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fa/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"پیام سفارشی بنویسید"</string>
<string name="toolbar_close" msgid="1081308076149879833">"بستن"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"هنوز هیچ مخاطبی ندارید"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"افزودن مخاطب"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"فعال‌سازی"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"هیچ برنامه مخاطبی در دسترس نیست"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-fi/strings.xml b/java/com/android/dialer/widget/res/values-fi/strings.xml
index e0e971cd8..1a153072c 100644
--- a/java/com/android/dialer/widget/res/values-fi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fi/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Kirjoita oma viesti"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Sulje"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Sinulla ei ole vielä yhteystietoja."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Lisää yhteystieto."</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Ota käyttöön"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Yhteystietosovellusta ei ole käytettävissä."</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
index 9776385b4..62e1f37fb 100644
--- a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Rédiger message personnalisé"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Fermer"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Vous n\'avez pas encore de contacts"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ajouter un contact"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Activer"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Aucune application Contacts n\'est disponible"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-fr/strings.xml b/java/com/android/dialer/widget/res/values-fr/strings.xml
index fececd84a..85a32b875 100644
--- a/java/com/android/dialer/widget/res/values-fr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-fr/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Écrire mon propre message"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Fermer"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Vous n\'avez pas encore de contacts."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ajouter un contact"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Activer"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Aucune application de gestion des contacts n\'est disponible"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-gl/strings.xml b/java/com/android/dialer/widget/res/values-gl/strings.xml
index 6a756810b..8a9089fdb 100644
--- a/java/com/android/dialer/widget/res/values-gl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-gl/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Escribe unha mensaxe personalizada"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Pechar"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Aínda non tes ningún contacto"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Engadir un contacto"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Activar"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver os teus contactos, activa o permiso de Contactos."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Non hai ningunha aplicación de contactos dispoñible"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-gu/strings.xml b/java/com/android/dialer/widget/res/values-gu/strings.xml
index c2f8cf0e1..794245d3d 100644
--- a/java/com/android/dialer/widget/res/values-gu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-gu/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"એક કસ્ટમ સંદેશ લખો"</string>
<string name="toolbar_close" msgid="1081308076149879833">"બંધ કરો"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"સંપર્ક ઉમેરો"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ચાલુ કરો"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-hi/strings.xml b/java/com/android/dialer/widget/res/values-hi/strings.xml
index 63c94e7f6..5cdb8bbfc 100644
--- a/java/com/android/dialer/widget/res/values-hi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hi/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"कोई कस्टम संदेश लिखें"</string>
<string name="toolbar_close" msgid="1081308076149879833">"बंद करें"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"आपके पास अभी कोई भी संपर्क नहीं है"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"कोई संपर्क जोड़ें"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"चालू करें"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"कोई भी संपर्क ऐप उपलब्‍ध नहीं है"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-hr/strings.xml b/java/com/android/dialer/widget/res/values-hr/strings.xml
index 28a58d453..9ded4d4a7 100644
--- a/java/com/android/dialer/widget/res/values-hr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hr/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Napišite prilagođenu poruku"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Zatvaranje"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Još nemate nijedan kontakt"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodavanje kontakta"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Uključi"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nije dostupna nijedna aplikacija za kontakte"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-hu/strings.xml b/java/com/android/dialer/widget/res/values-hu/strings.xml
index dcd2b36ea..92ae71de8 100644
--- a/java/com/android/dialer/widget/res/values-hu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hu/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Egyéni üzenet írása"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Bezárás"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Még nem rendelkezik egyetlen névjeggyel sem"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Névjegy hozzáadása"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Bekapcsolás"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nincs elérhető névjegykezelő alkalmazás"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-hy/strings.xml b/java/com/android/dialer/widget/res/values-hy/strings.xml
index 7b78bb23e..ffa7132c5 100644
--- a/java/com/android/dialer/widget/res/values-hy/strings.xml
+++ b/java/com/android/dialer/widget/res/values-hy/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Գրել տեքստն ինքնուրույն"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Փակել"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Դեռ կոնտակտներ չունեք"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ավելացնել կոնտակտ"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Միացնել"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Կոնտակտների հավելված չկա"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-in/strings.xml b/java/com/android/dialer/widget/res/values-in/strings.xml
index b4b65504b..69849ae02 100644
--- a/java/com/android/dialer/widget/res/values-in/strings.xml
+++ b/java/com/android/dialer/widget/res/values-in/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Tulis pesan khusus"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Tutup"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Anda belum memiliki kontak"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tambahkan kontak"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktifkan"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Untuk melihat kontak, aktifkan izin Kontak."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Aplikasi kontak tidak tersedia"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-is/strings.xml b/java/com/android/dialer/widget/res/values-is/strings.xml
index fd844197e..98a172904 100644
--- a/java/com/android/dialer/widget/res/values-is/strings.xml
+++ b/java/com/android/dialer/widget/res/values-is/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Skrifa sérsniðin skilaboð"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Loka"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Þú ert ekki með neina tengiliði enn sem komið er"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Bæta tengilið við"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Kveikja"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Ekkert tengiliðaforrit í boði"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-it/strings.xml b/java/com/android/dialer/widget/res/values-it/strings.xml
index 0af3fd2eb..1a6e6c135 100644
--- a/java/com/android/dialer/widget/res/values-it/strings.xml
+++ b/java/com/android/dialer/widget/res/values-it/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Scrivi un messaggio personalizzato"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Chiudi"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Nessun contatto disponibile"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Aggiungi un contatto"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Attiva"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nessuna app di contatti disponibile"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-iw/strings.xml b/java/com/android/dialer/widget/res/values-iw/strings.xml
index a485888ae..f2a732a67 100644
--- a/java/com/android/dialer/widget/res/values-iw/strings.xml
+++ b/java/com/android/dialer/widget/res/values-iw/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"כתוב הודעה מותאמת אישית"</string>
<string name="toolbar_close" msgid="1081308076149879833">"סגירה"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"עדיין אין לך אנשי קשר"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"הוספה של איש קשר"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"הפעלה"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"עליך להפעיל את ההרשאה \'אנשי קשר\' כדי להציג את אנשי הקשר שלך."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"אין אף אפליקציה לניהול אנשי קשר"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ja/strings.xml b/java/com/android/dialer/widget/res/values-ja/strings.xml
index 9fd65a806..7994c6262 100644
--- a/java/com/android/dialer/widget/res/values-ja/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ja/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"カスタム メッセージを入力"</string>
<string name="toolbar_close" msgid="1081308076149879833">"閉じる"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"連絡先はまだありません"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"連絡先を追加"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ON にする"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"連絡先を表示するには、連絡先へのアクセスを許可する設定を ON にしてください。"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"利用できる連絡先アプリがありません"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ka/strings.xml b/java/com/android/dialer/widget/res/values-ka/strings.xml
index 6dde04430..865a66b45 100644
--- a/java/com/android/dialer/widget/res/values-ka/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ka/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"დაწერეთ მორგებ. შეტყობინება"</string>
<string name="toolbar_close" msgid="1081308076149879833">"დახურვა"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"კონტაქტები ჯერ არ გაქვთ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"კონტაქტის დამატება"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ჩართვა"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"კონტაქტების სანახავად ჩართეთ კონტაქტების ნებართვა."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"კონტაქტების აპი მიუწვდომელია"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-kk/strings.xml b/java/com/android/dialer/widget/res/values-kk/strings.xml
index 334d915e2..08856aaec 100644
--- a/java/com/android/dialer/widget/res/values-kk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-kk/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Арнаулы хабар жазу"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Жабу"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Әлі ешқандай контактілер жоқ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Контакт қосу"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Қосу"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Контактілер қолданбасы қолжетімді емес"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-km/strings.xml b/java/com/android/dialer/widget/res/values-km/strings.xml
index d0f5633e4..c09233253 100644
--- a/java/com/android/dialer/widget/res/values-km/strings.xml
+++ b/java/com/android/dialer/widget/res/values-km/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"សរសេរ​សារ​ផ្ទាល់ខ្លួន"</string>
<string name="toolbar_close" msgid="1081308076149879833">"បិទ"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"បញ្ចូល​ទំនាក់ទំនង"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"បើក"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកការ​អនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"មិនមានកម្មវិធីទំនាក់ទំនងទេ"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-kn/strings.xml b/java/com/android/dialer/widget/res/values-kn/strings.xml
index 3535bfcb7..a502d087e 100644
--- a/java/com/android/dialer/widget/res/values-kn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-kn/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"ಕಸ್ಟಮ್ ಸಂದೇಶವನ್ನು ಬರೆಯಿರಿ"</string>
<string name="toolbar_close" msgid="1081308076149879833">"ಮುಚ್ಚಿ"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"ನಿಮ್ಮ ಬಳಿ ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ಆನ್ ಮಾಡಿ"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ko/strings.xml b/java/com/android/dialer/widget/res/values-ko/strings.xml
index 8c00cea8b..045dc54dc 100644
--- a/java/com/android/dialer/widget/res/values-ko/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ko/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"맞춤 메시지를 작성하세요."</string>
<string name="toolbar_close" msgid="1081308076149879833">"닫기"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"아직 연락처가 없습니다."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"연락처 추가"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"사용"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"연락처를 보려면 연락처에 액세스할 권한을 부여하세요."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"사용할 수 있는 연락처 앱이 없습니다."</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ky/strings.xml b/java/com/android/dialer/widget/res/values-ky/strings.xml
index 46ea8514c..7ef10e707 100644
--- a/java/com/android/dialer/widget/res/values-ky/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ky/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Башка билдирүүнү жазыңыз"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Жабуу"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Азырынча эч байланышыңыз жок"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Байланыш кошуу"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Күйгүзүү"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Байланыштарыңызды көрүү үчүн, \"Байланыштар\" уруксатын күйгүзүңүз."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Жеткиликтүү байланыштар колдонмосу жок"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-lo/strings.xml b/java/com/android/dialer/widget/res/values-lo/strings.xml
index 0db64a78a..dc7ba44c1 100644
--- a/java/com/android/dialer/widget/res/values-lo/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lo/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"ຂຽນຂໍ້ຄວາມດ້ວຍຕົນເອງ"</string>
<string name="toolbar_close" msgid="1081308076149879833">"ປິດ"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"ທ່ານຍັງບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ເທື່ອ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ເພີ່ມລາຍຊື່"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ເປີດໃຊ້"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"ເພື່ອເບິ່ງລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່ຜູ້ຕິດຕໍ່ກ່ອນ"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"ບໍ່ມີແອັບລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ສາມາດໃຊ້ໄດ້"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-lt/strings.xml b/java/com/android/dialer/widget/res/values-lt/strings.xml
index a10b91ef6..be12520f8 100644
--- a/java/com/android/dialer/widget/res/values-lt/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lt/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Parašykite tinkintą praneš."</string>
<string name="toolbar_close" msgid="1081308076149879833">"Uždaryti"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Dar neturite jokių kontaktų"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pridėkite kontaktą"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Įjungti"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų leidimą."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nepasiekiama jokia kontaktų programa"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-lv/strings.xml b/java/com/android/dialer/widget/res/values-lv/strings.xml
index 8ff079390..acefbaea4 100644
--- a/java/com/android/dialer/widget/res/values-lv/strings.xml
+++ b/java/com/android/dialer/widget/res/values-lv/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Rakstīt pielāgotu ziņojumu"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Aizvērt"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Jums vēl nav nevienas kontaktpersonas."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pievienot kontaktpersonu"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Ieslēgt"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Lai skatītu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nav pieejama neviena kontaktpersonu lietotne."</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-mk/strings.xml b/java/com/android/dialer/widget/res/values-mk/strings.xml
index aa9be3055..20b18e8d9 100644
--- a/java/com/android/dialer/widget/res/values-mk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mk/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Напиши приспособена порака"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Затвори"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Сè уште немате контакти"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додајте контакт"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Вклучи"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"За да ги видите контактите, вклучете ја дозволата за контакти."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Нема достапна апликација за контакти"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ml/strings.xml b/java/com/android/dialer/widget/res/values-ml/strings.xml
index b52ee401c..a97a7d862 100644
--- a/java/com/android/dialer/widget/res/values-ml/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ml/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"ഒരു ഇ‌ഷ്‌ടാനുസൃത സന്ദേശം രചിക്കൂ"</string>
<string name="toolbar_close" msgid="1081308076149879833">"അടയ്‌ക്കുക"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ഓൺ ചെയ്യുക"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-mn/strings.xml b/java/com/android/dialer/widget/res/values-mn/strings.xml
index 6bdad8983..bbcfc7cf6 100644
--- a/java/com/android/dialer/widget/res/values-mn/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mn/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Тусгай зурвас бичих"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Хаах"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Танд одоогоор харилцагч байхгүй байна"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Харилцагч нэмэх"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Асаах"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Ямар ч харилцагчдын апликейшн байхгүй байна"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-mr/strings.xml b/java/com/android/dialer/widget/res/values-mr/strings.xml
index 5661fa8b9..38d913a85 100644
--- a/java/com/android/dialer/widget/res/values-mr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-mr/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"एक सानुकूल संदेश लिहा"</string>
<string name="toolbar_close" msgid="1081308076149879833">"बंद करा"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"एक संपर्क जोडा"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"चालू करा"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"कोणताही संपर्क अॅप उपलब्ध नाही"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ms/strings.xml b/java/com/android/dialer/widget/res/values-ms/strings.xml
index 8889ccc8d..bc67c6764 100644
--- a/java/com/android/dialer/widget/res/values-ms/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ms/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Tulis mesej tersuai"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Tutup"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Anda belum mempunyai sebarang kenalan"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Tambahkan kenalan"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Hidupkan"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Tiada apl kenalan yang tersedia"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-my/strings.xml b/java/com/android/dialer/widget/res/values-my/strings.xml
index 9a69f29eb..c8e783bf4 100644
--- a/java/com/android/dialer/widget/res/values-my/strings.xml
+++ b/java/com/android/dialer/widget/res/values-my/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"စိတ်ကြိုက် မက်ဆေ့ဂျ်တစ်ခု ရေးပါ"</string>
<string name="toolbar_close" msgid="1081308076149879833">"ပိတ်ရန်"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ဖွင့်ရန်"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"အဆက်အသွယ်များ app မရှိပါ"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-nb/strings.xml b/java/com/android/dialer/widget/res/values-nb/strings.xml
index 100156bd1..822f07ed1 100644
--- a/java/com/android/dialer/widget/res/values-nb/strings.xml
+++ b/java/com/android/dialer/widget/res/values-nb/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Skriv egendefinert melding"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Lukk"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Du har ingen kontakter ennå"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Legg til en kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå på"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"For å se kontaktene dine må du slå på Kontakter-tillatelsen."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Ingen kontaktapper er tilgjengelige"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ne/strings.xml b/java/com/android/dialer/widget/res/values-ne/strings.xml
index abb8bb04b..ebb31d579 100644
--- a/java/com/android/dialer/widget/res/values-ne/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ne/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"आफू अनुकूल सन्देश लेख्‍ने"</string>
<string name="toolbar_close" msgid="1081308076149879833">"बन्द गर्नुहोस्"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"अहिलेसम्म तपाईंसँग कुनै सम्पर्कहरू छैनन्"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"कुनै सम्पर्क थप्नुहोस्"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"सक्रिय गर्नुहोस्"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"आफ्ना सम्पर्कहरू हेर्न सम्पर्क सम्बन्धी अनुमतिलाई सक्रिय गर्नुहोस्।"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"सम्पर्क सम्बन्धी कुनै अनुप्रयोग उपलब्ध छैन"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-nl/strings.xml b/java/com/android/dialer/widget/res/values-nl/strings.xml
index 556028893..cbc286ba3 100644
--- a/java/com/android/dialer/widget/res/values-nl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-nl/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Schrijf zelf een bericht"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Sluiten"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Je hebt nog geen contacten"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Een contact toevoegen"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Inschakelen"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Geen app voor contacten beschikbaar"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-no/strings.xml b/java/com/android/dialer/widget/res/values-no/strings.xml
index 100156bd1..822f07ed1 100644
--- a/java/com/android/dialer/widget/res/values-no/strings.xml
+++ b/java/com/android/dialer/widget/res/values-no/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Skriv egendefinert melding"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Lukk"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Du har ingen kontakter ennå"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Legg til en kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Slå på"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"For å se kontaktene dine må du slå på Kontakter-tillatelsen."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Ingen kontaktapper er tilgjengelige"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-pa/strings.xml b/java/com/android/dialer/widget/res/values-pa/strings.xml
index 4c69c2c6e..06f191e50 100644
--- a/java/com/android/dialer/widget/res/values-pa/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pa/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਸੰਦੇਸ਼ ਲਿਖੋ"</string>
<string name="toolbar_close" msgid="1081308076149879833">"ਬੰਦ ਕਰੋ"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"ਤੁਹਾਡੇ ਕੋਲ ਹਾਲੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ਚਾਲੂ ਕਰੋ"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਇਜਾਜ਼ਤ ਚਾਲੂ ਕਰੋ।"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-pl/strings.xml b/java/com/android/dialer/widget/res/values-pl/strings.xml
index cec7a4045..5d62a07f1 100644
--- a/java/com/android/dialer/widget/res/values-pl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pl/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Wpisz wiadomość"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Zamknij"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Nie masz jeszcze żadnych kontaktów"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Włącz"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Aby zobaczyć swoje kontakty, włącz uprawnienia Kontakty."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nie jest dostępna żadna aplikacja do obsługi kontaktów"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
index b15bfac8d..0afc0f1d6 100644
--- a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Escreva sua mensagem"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Você ainda não tem contatos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contato"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nenhum app de contatos disponível"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
index ece2ef2c3..35f71a371 100644
--- a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Escreva uma mensagem"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Ainda não tem nenhum contacto"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contacto"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver os seus contactos, ative a autorização Contactos."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Não existe nenhuma aplicação de contactos disponível"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-pt/strings.xml b/java/com/android/dialer/widget/res/values-pt/strings.xml
index b15bfac8d..0afc0f1d6 100644
--- a/java/com/android/dialer/widget/res/values-pt/strings.xml
+++ b/java/com/android/dialer/widget/res/values-pt/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Escreva sua mensagem"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Fechar"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Você ainda não tem contatos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adicionar um contato"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Ativar"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nenhum app de contatos disponível"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ro/strings.xml b/java/com/android/dialer/widget/res/values-ro/strings.xml
index 753b920b4..6c51d23ac 100644
--- a/java/com/android/dialer/widget/res/values-ro/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ro/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Scrieți mesaj personalizat"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Închideți"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Nu aveți încă persoane de contact."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Adăugați o persoană de contact"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Activați"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Pentru a vedea persoanele de contact, activați permisiunea pentru Agendă."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nu este disponibilă nicio aplicație pentru agendă"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ru/strings.xml b/java/com/android/dialer/widget/res/values-ru/strings.xml
index bdebd3ce4..c36874de5 100644
--- a/java/com/android/dialer/widget/res/values-ru/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ru/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Добавьте свой текст"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Закрыть"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Контактов нет"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Добавить контакт"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Предоставить разрешение"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Нет приложения для работы с контактами"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-si/strings.xml b/java/com/android/dialer/widget/res/values-si/strings.xml
index 4988259d4..10eb7b5b5 100644
--- a/java/com/android/dialer/widget/res/values-si/strings.xml
+++ b/java/com/android/dialer/widget/res/values-si/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"අභිරුචි පණිවිඩයක් ලියන්න"</string>
<string name="toolbar_close" msgid="1081308076149879833">"වසන්න"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"ඔබට තවම කිසිදු සම්බන්ධතාවක් නැත"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"සම්බන්ධතාවක් එක් කරන්න"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ක්‍රියාත්මක කරන්න"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"සබඳතා යෙදුම ලබා ගැනීමට නොහැකිය"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-sk/strings.xml b/java/com/android/dialer/widget/res/values-sk/strings.xml
index 5dc1bd505..56f7ceb97 100644
--- a/java/com/android/dialer/widget/res/values-sk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sk/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Napíšte vlastnú správu"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Zavrieť"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Zatiaľ nemáte žiadne kontakty"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Pridať kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Zapnúť"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nie je k dispozícii žiadna aplikácia na prácu s kontaktmi"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-sl/strings.xml b/java/com/android/dialer/widget/res/values-sl/strings.xml
index 0ba965b2e..52f029377 100644
--- a/java/com/android/dialer/widget/res/values-sl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sl/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Napišite sporočilo po meri"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Zapri"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Nimate še nobenega stika"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Dodaj stik"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Vklopi"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Na voljo ni nobene aplikacije za stike"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-sq/strings.xml b/java/com/android/dialer/widget/res/values-sq/strings.xml
index 7f5e0f285..c7943dfd3 100644
--- a/java/com/android/dialer/widget/res/values-sq/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sq/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Shkruaj mesazh të person."</string>
<string name="toolbar_close" msgid="1081308076149879833">"Mbyll"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Nuk ke ende kontakte"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Shto një kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivizo"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Nuk ka asnjë aplikacion për kontaktet"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-sr/strings.xml b/java/com/android/dialer/widget/res/values-sr/strings.xml
index 446c27363..00b9b4f6c 100644
--- a/java/com/android/dialer/widget/res/values-sr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sr/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Напишите прилагођену поруку"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Затворите"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Још увек немате ниједан контакт"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додај контакт"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Укључи"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Да бисте видели контакте, укључите дозволу за Контакте."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Нема доступне апликације за контакте"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-sv/strings.xml b/java/com/android/dialer/widget/res/values-sv/strings.xml
index 7d2f44c45..359397026 100644
--- a/java/com/android/dialer/widget/res/values-sv/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sv/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Skriv anpassat meddelande"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Stäng"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Du har inga kontakter ännu"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Lägg till en kontakt"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Aktivera"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Du måste aktivera behörigheten Kontakter för att visa kontakterna."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Det finns inga appar för kontakter"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-sw/strings.xml b/java/com/android/dialer/widget/res/values-sw/strings.xml
index d2c2a9721..b0892108b 100644
--- a/java/com/android/dialer/widget/res/values-sw/strings.xml
+++ b/java/com/android/dialer/widget/res/values-sw/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Andika ujumbe maalum"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Funga"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Bado huna anwani zozote"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Ongeza anwani"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Washa"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Ili uone anwani zako, washa ruhusa ya Anwani."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Hakuna programu ya anwani iliyopatikana"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ta/strings.xml b/java/com/android/dialer/widget/res/values-ta/strings.xml
index 4061c169f..83ca080e5 100644
--- a/java/com/android/dialer/widget/res/values-ta/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ta/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"தனிப்பயன் செய்தியை எழுதவும்"</string>
<string name="toolbar_close" msgid="1081308076149879833">"மூடு"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"இதுவரை தொடர்புகள் எதுவுமில்லை"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"தொடர்பைச் சேர்"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"இயக்கு"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"தொடர்புகள் பயன்பாடு எதுவுமில்லை"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-te/strings.xml b/java/com/android/dialer/widget/res/values-te/strings.xml
index c2474b7ce..418cc3d0b 100644
--- a/java/com/android/dialer/widget/res/values-te/strings.xml
+++ b/java/com/android/dialer/widget/res/values-te/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"అనుకూల సందేశాన్ని వ్రాయండి"</string>
<string name="toolbar_close" msgid="1081308076149879833">"మూసివేయి"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"పరిచయాన్ని జోడించండి"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"ఆన్ చేయి"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-th/strings.xml b/java/com/android/dialer/widget/res/values-th/strings.xml
index d450b4b13..c556d1c37 100644
--- a/java/com/android/dialer/widget/res/values-th/strings.xml
+++ b/java/com/android/dialer/widget/res/values-th/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"เขียนข้อความที่กำหนดเอง"</string>
<string name="toolbar_close" msgid="1081308076149879833">"ปิด"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"คุณยังไม่มีรายชื่อติดต่อ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"เพิ่มรายชื่อติดต่อ"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"เปิด"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-tl/strings.xml b/java/com/android/dialer/widget/res/values-tl/strings.xml
index ee7c52f7b..be02d1989 100644
--- a/java/com/android/dialer/widget/res/values-tl/strings.xml
+++ b/java/com/android/dialer/widget/res/values-tl/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Sumulat ng custom na mensahe"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Isara"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Wala ka pang sinumang contact"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Magdagdag ng contact"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"I-on"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Walang available na app ng mga contact"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-tr/strings.xml b/java/com/android/dialer/widget/res/values-tr/strings.xml
index 64e2ea535..90d5db649 100644
--- a/java/com/android/dialer/widget/res/values-tr/strings.xml
+++ b/java/com/android/dialer/widget/res/values-tr/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Özel bir mesaj yazın"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Kapat"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Henüz hiç kişiniz yok"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kişi ekleyin"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Etkinleştir"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Kişilerinizi görmek için Kişiler iznini etkinleştirin."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Kullanılabilir kişi uygulaması yok"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-uk/strings.xml b/java/com/android/dialer/widget/res/values-uk/strings.xml
index f8d9bb871..cf5a7d1db 100644
--- a/java/com/android/dialer/widget/res/values-uk/strings.xml
+++ b/java/com/android/dialer/widget/res/values-uk/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Ваше власне повідомлення"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Закрити"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Ще немає контактів"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Додати контакт"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Увімкнути"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Немає додатка з контактами"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-ur/strings.xml b/java/com/android/dialer/widget/res/values-ur/strings.xml
index 6edeb5c95..e5199afe4 100644
--- a/java/com/android/dialer/widget/res/values-ur/strings.xml
+++ b/java/com/android/dialer/widget/res/values-ur/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"ایک حسب ضرورت پیغام لکھیں"</string>
<string name="toolbar_close" msgid="1081308076149879833">"بند کریں"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"ایک رابطہ شامل کریں"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"آن کریں"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"رابطوں کی کوئی ایپ دستیاب نہیں ہے"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-uz/strings.xml b/java/com/android/dialer/widget/res/values-uz/strings.xml
index 434464aef..eb0e0adae 100644
--- a/java/com/android/dialer/widget/res/values-uz/strings.xml
+++ b/java/com/android/dialer/widget/res/values-uz/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Boshqa xabar yozing"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Yopish"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Kontaktlar yo‘q"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Kontakt qo‘shish"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Ruxsat berish"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Kontaktlar ro‘yxatini ko‘rish uchun ilovaga Kontaktlarga kirishga ruxsat bering."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Kontaktlarni ochadigan ilova yo‘q"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-vi/strings.xml b/java/com/android/dialer/widget/res/values-vi/strings.xml
index 1a30f7c96..62e94b82e 100644
--- a/java/com/android/dialer/widget/res/values-vi/strings.xml
+++ b/java/com/android/dialer/widget/res/values-vi/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Viết tin nhắn tùy chỉnh"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Đóng"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Bạn chưa có bất kỳ liên hệ nào"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Thêm liên hệ"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Bật"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Không có ứng dụng danh bạ"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
index 799972393..063301ae0 100644
--- a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"自行撰写信息"</string>
<string name="toolbar_close" msgid="1081308076149879833">"关闭"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"您还没有任何联系人"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"添加联系人"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"开启"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"要查看您的联系人,请开启“通讯录”权限。"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"没有可用的通讯录应用"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
index b0bfcc8d9..e2e69b75b 100644
--- a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"撰寫自訂訊息"</string>
<string name="toolbar_close" msgid="1081308076149879833">"關閉"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"您尚無任何聯絡人"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"新增聯絡人"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"開放"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"如要查看聯絡人,請開放「通訊錄」權限。"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"沒有可用的聯絡人應用程式"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
index b0bfcc8d9..85768af8f 100644
--- a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"撰寫自訂訊息"</string>
<string name="toolbar_close" msgid="1081308076149879833">"關閉"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"你還沒有任何聯絡人"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"新增聯絡人"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"開啟"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"如要查看你的聯絡人,請開啟「聯絡人」存取權限。"</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"沒有可用的聯絡人應用程式"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values-zu/strings.xml b/java/com/android/dialer/widget/res/values-zu/strings.xml
index 074aa5822..a3ba84a9a 100644
--- a/java/com/android/dialer/widget/res/values-zu/strings.xml
+++ b/java/com/android/dialer/widget/res/values-zu/strings.xml
@@ -3,4 +3,9 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="custom_message_hint" msgid="2179012696339457461">"Bhala umlayezo wangokwezifiso"</string>
<string name="toolbar_close" msgid="1081308076149879833">"Vala"</string>
+ <string name="all_contacts_empty" msgid="4260556610403994011">"Awunabo oxhumana nabo okwamanje"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="69234925354938480">"Engeza oxhumana naye"</string>
+ <string name="permission_single_turn_on" msgid="1306416016676232584">"Vula"</string>
+ <string name="permission_no_contacts" msgid="2388204904477299207">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string>
+ <string name="add_contact_not_available" msgid="3083256438899321502">"Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo"</string>
</resources>
diff --git a/java/com/android/dialer/widget/res/values/colors.xml b/java/com/android/dialer/widget/res/values/colors.xml
new file mode 100644
index 000000000..c974609ef
--- /dev/null
+++ b/java/com/android/dialer/widget/res/values/colors.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="empty_list_text_color">#b2b2b2</color>
+</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/widget/res/values/dimens.xml b/java/com/android/dialer/widget/res/values/dimens.xml
index 20393a842..537ad7bd7 100644
--- a/java/com/android/dialer/widget/res/values/dimens.xml
+++ b/java/com/android/dialer/widget/res/values/dimens.xml
@@ -26,4 +26,9 @@
<dimen name="toolbar_title_small_text_size">14sp</dimen>
<dimen name="toolbar_subtitle_text_size">12sp</dimen>
<dimen name="toolbar_elevation">4dp</dimen>
+ <dimen name="toolbar_end_padding">4dp</dimen>
+
+ <!-- Empty List -->
+ <dimen name="empty_list_message_top_padding">20dp</dimen>
+ <dimen name="empty_list_message_text_size">16sp</dimen>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/widget/res/values/strings.xml b/java/com/android/dialer/widget/res/values/strings.xml
index a5829bb0b..d6ea2e7cd 100644
--- a/java/com/android/dialer/widget/res/values/strings.xml
+++ b/java/com/android/dialer/widget/res/values/strings.xml
@@ -5,4 +5,19 @@
<!-- Accessibility string for close/navigation icon in DialerToolbar -->
<string name="toolbar_close">Close</string>
+
+ <!-- [CHAR LIMIT=NONE] Shown when there are no contacts in the all contacts list. -->
+ <string name="all_contacts_empty">You don\'t have any contacts yet</string>
+
+ <!-- [CHAR LIMIT=NONE] Shown as an action when the all contacts list is empty -->
+ <string name="all_contacts_empty_add_contact_action">Add a contact</string>
+
+ <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
+ <string name="permission_single_turn_on">Turn on</string>
+
+ <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
+ <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string>
+
+ <!-- Message displayed when there is no application available to handle the add contact menu option. [CHAR LIMIT=NONE] -->
+ <string name="add_contact_not_available">No contacts app available</string>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialershared/bubble/AndroidManifest.xml b/java/com/android/dialershared/bubble/AndroidManifest.xml
new file mode 100644
index 000000000..1a94aafc1
--- /dev/null
+++ b/java/com/android/dialershared/bubble/AndroidManifest.xml
@@ -0,0 +1,22 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT 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
new file mode 100644
index 000000000..3eb88aa22
--- /dev/null
+++ b/java/com/android/dialershared/bubble/Bubble.java
@@ -0,0 +1,667 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
+import android.annotation.SuppressLint;
+import android.app.PendingIntent.CanceledException;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.ColorStateList;
+import android.graphics.PixelFormat;
+import android.graphics.drawable.RippleDrawable;
+import android.net.Uri;
+import android.os.Handler;
+import android.provider.Settings;
+import android.support.annotation.ColorInt;
+import android.support.annotation.IntDef;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
+import android.support.v4.graphics.ColorUtils;
+import android.support.v4.os.BuildCompat;
+import android.support.v4.view.animation.FastOutLinearInInterpolator;
+import android.support.v4.view.animation.LinearOutSlowInInterpolator;
+import android.transition.TransitionManager;
+import android.transition.TransitionValues;
+import android.view.ContextThemeWrapper;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewPropertyAnimator;
+import android.view.ViewTreeObserver.OnPreDrawListener;
+import android.view.WindowManager;
+import android.view.WindowManager.LayoutParams;
+import android.view.animation.AnticipateInterpolator;
+import android.view.animation.OvershootInterpolator;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.ViewAnimator;
+import com.android.dialershared.bubble.BubbleInfo.Action;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.List;
+
+/**
+ * Creates and manages a bubble window from information in a {@link BubbleInfo}. Before creating, be
+ * sure to check whether bubbles may be shown using {@link #canShowBubbles(Context)} and request
+ * permission if necessary ({@link #getRequestPermissionIntent(Context)} is provided for
+ * convenience)
+ */
+public class Bubble {
+
+ // How long text should show after showText(CharSequence) is called
+ private static final int SHOW_TEXT_DURATION_MILLIS = 3000;
+ // How long the new window should show before destroying the old one during resize operations.
+ // This ensures the new window has had time to draw first.
+ private static final int WINDOW_REDRAW_DELAY_MILLIS = 50;
+
+ private static Boolean canShowBubblesForTesting = null;
+
+ private final Context context;
+ private final WindowManager windowManager;
+
+ private LayoutParams windowParams;
+
+ // Initialized in factory method
+ @SuppressWarnings("NullableProblems")
+ @NonNull
+ private BubbleInfo currentInfo;
+
+ private boolean isShowing;
+ private boolean expanded;
+ private boolean textShowing;
+ private boolean hideAfterText;
+
+ private final Handler handler = new Handler();
+
+ private ViewHolder viewHolder;
+
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({CollapseEnd.NOTHING, CollapseEnd.HIDE})
+ private @interface CollapseEnd {
+ int NOTHING = 0;
+ int HIDE = 1;
+ }
+
+ /**
+ * Determines whether bubbles can be shown based on permissions obtained. This should be checked
+ * before attempting to create a Bubble.
+ *
+ * @return true iff bubbles are able to be shown.
+ * @see Settings#canDrawOverlays(Context)
+ */
+ public static boolean canShowBubbles(@NonNull Context context) {
+ return canShowBubblesForTesting != null
+ ? canShowBubblesForTesting
+ : Settings.canDrawOverlays(context);
+ }
+
+ @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+ public static void setCanShowBubblesForTesting(boolean canShowBubbles) {
+ canShowBubblesForTesting = canShowBubbles;
+ }
+
+ /** Returns an Intent to request permission to show overlays */
+ @NonNull
+ public static Intent getRequestPermissionIntent(@NonNull Context context) {
+ return new Intent(
+ Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
+ new Uri.Builder().scheme("package").fragment(context.getPackageName()).build());
+ }
+
+ /** Creates instances of Bubble. The default implementation just calls the constructor. */
+ @VisibleForTesting
+ public interface BubbleFactory {
+ Bubble createBubble(@NonNull Context context);
+ }
+
+ private static BubbleFactory bubbleFactory = Bubble::new;
+
+ public static Bubble createBubble(@NonNull Context context, @NonNull BubbleInfo info) {
+ Bubble bubble = bubbleFactory.createBubble(context);
+ bubble.setBubbleInfo(info);
+ return bubble;
+ }
+
+ @VisibleForTesting
+ public static void setBubbleFactory(@NonNull BubbleFactory bubbleFactory) {
+ Bubble.bubbleFactory = bubbleFactory;
+ }
+
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ Bubble(@NonNull Context context) {
+ context = new ContextThemeWrapper(context, R.style.Theme_AppCompat);
+ this.context = context;
+ windowManager = context.getSystemService(WindowManager.class);
+
+ viewHolder = new ViewHolder(context);
+ }
+
+ /**
+ * Make the bubble visible. Will show a short entrance animation as it enters. If the bubble is
+ * already showing this method does nothing.
+ */
+ public void show() {
+ if (isShowing) {
+ return;
+ }
+
+ hideAfterText = false;
+
+ if (windowParams == null) {
+ // Apps targeting O+ must use TYPE_APPLICATION_OVERLAY, which is not available prior to O.
+ @SuppressWarnings("deprecation")
+ @SuppressLint("InlinedApi")
+ int type =
+ BuildCompat.isAtLeastO()
+ ? LayoutParams.TYPE_APPLICATION_OVERLAY
+ : LayoutParams.TYPE_PHONE;
+
+ windowParams =
+ new LayoutParams(
+ type,
+ LayoutParams.FLAG_NOT_TOUCH_MODAL
+ | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
+ | LayoutParams.FLAG_NOT_FOCUSABLE,
+ PixelFormat.TRANSLUCENT);
+ windowParams.gravity = Gravity.TOP | Gravity.LEFT;
+ windowParams.x =
+ context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_x);
+ windowParams.y =
+ context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_y);
+ windowParams.height = LayoutParams.WRAP_CONTENT;
+ windowParams.width = LayoutParams.WRAP_CONTENT;
+ }
+
+ windowManager.addView(viewHolder.getRoot(), windowParams);
+ ObjectAnimator showAnimator =
+ ObjectAnimator.ofPropertyValuesHolder(
+ viewHolder.getPrimaryButton(),
+ PropertyValuesHolder.ofFloat(View.SCALE_X, 0, 1),
+ PropertyValuesHolder.ofFloat(View.SCALE_Y, 0, 1));
+ showAnimator.setInterpolator(new OvershootInterpolator());
+ showAnimator.start();
+ isShowing = true;
+ }
+
+ /**
+ * Hide the button if visible. Will run a short exit animation before hiding. If the bubble is
+ * currently showing text, will hide after the text is done displaying. If the bubble is not
+ * visible this method does nothing.
+ */
+ public void hide() {
+ if (!isShowing) {
+ return;
+ }
+
+ if (textShowing) {
+ hideAfterText = true;
+ return;
+ }
+
+ if (expanded) {
+ startCollapse(CollapseEnd.HIDE);
+ return;
+ }
+
+ viewHolder
+ .getPrimaryButton()
+ .animate()
+ .setInterpolator(new AnticipateInterpolator())
+ .scaleX(0)
+ .scaleY(0)
+ .withEndAction(
+ () -> {
+ windowManager.removeView(viewHolder.getRoot());
+ isShowing = false;
+ })
+ .start();
+ }
+
+ /** Returns whether the bubble is currently visible */
+ public boolean isShowing() {
+ return isShowing;
+ }
+
+ /**
+ * Set the info for this Bubble to display
+ *
+ * @param bubbleInfo the BubbleInfo to display in this Bubble.
+ */
+ public void setBubbleInfo(@NonNull BubbleInfo bubbleInfo) {
+ currentInfo = bubbleInfo;
+ update();
+ }
+
+ /**
+ * Update the state and behavior of actions.
+ *
+ * @param actions the new state of the bubble's actions
+ */
+ public void updateActions(@NonNull List<Action> actions) {
+ currentInfo = BubbleInfo.from(currentInfo).setActions(actions).build();
+ updateButtonStates();
+ }
+
+ /** Returns the currently displayed BubbleInfo */
+ public BubbleInfo getBubbleInfo() {
+ return currentInfo;
+ }
+
+ /**
+ * Display text in the main bubble. The bubble's drawer is not expandable while text is showing,
+ * and the drawer will be closed if already open.
+ *
+ * @param text the text to display to the user
+ */
+ public void showText(@NonNull CharSequence text) {
+ textShowing = true;
+ if (expanded) {
+ startCollapse(CollapseEnd.NOTHING);
+ doShowText(text);
+ } else {
+ // Need to transition from old bounds to new bounds manually
+ ChangeOnScreenBounds transition = new ChangeOnScreenBounds();
+ // Prepare and capture start values
+ TransitionValues startValues = new TransitionValues();
+ startValues.view = viewHolder.getPrimaryButton();
+ transition.addTarget(startValues.view);
+ transition.captureStartValues(startValues);
+
+ doResize(
+ () -> {
+ doShowText(text);
+ // Hide the text so we can animate it in
+ viewHolder.getPrimaryText().setAlpha(0);
+
+ ViewAnimator primaryButton = viewHolder.getPrimaryButton();
+ // Cancel the automatic transition scheduled in doShowText
+ TransitionManager.endTransitions((ViewGroup) primaryButton.getParent());
+ primaryButton
+ .getViewTreeObserver()
+ .addOnPreDrawListener(
+ new OnPreDrawListener() {
+ @Override
+ public boolean onPreDraw() {
+ primaryButton.getViewTreeObserver().removeOnPreDrawListener(this);
+
+ // Prepare and capture end values
+ TransitionValues endValues = new TransitionValues();
+ endValues.view = primaryButton;
+ transition.addTarget(endValues.view);
+ transition.captureEndValues(endValues);
+
+ // animate the primary button bounds change
+ Animator bounds =
+ transition.createAnimator(primaryButton, startValues, endValues);
+
+ // Animate the text in
+ Animator alpha =
+ ObjectAnimator.ofFloat(viewHolder.getPrimaryText(), View.ALPHA, 1f);
+
+ AnimatorSet set = new AnimatorSet();
+ set.play(bounds).before(alpha);
+ set.start();
+ return false;
+ }
+ });
+ });
+ }
+ handler.removeCallbacks(null);
+ handler.postDelayed(
+ () -> {
+ textShowing = false;
+ if (hideAfterText) {
+ hide();
+ } else {
+ doResize(
+ () -> viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_ICON));
+ }
+ },
+ SHOW_TEXT_DURATION_MILLIS);
+ }
+
+ void onMoveStart() {
+ startCollapse(CollapseEnd.NOTHING);
+ viewHolder
+ .getPrimaryButton()
+ .animate()
+ .translationZ(
+ context.getResources().getDimensionPixelOffset(R.dimen.bubble_move_elevation_change));
+ }
+
+ void onMoveFinish() {
+ viewHolder.getPrimaryButton().animate().translationZ(0);
+ }
+
+ void primaryButtonClick() {
+ if (expanded || textShowing || currentInfo.getActions().isEmpty()) {
+ try {
+ currentInfo.getPrimaryAction().send();
+ } catch (CanceledException e) {
+ throw new RuntimeException(e);
+ }
+ return;
+ }
+
+ boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
+ doResize(
+ () -> {
+ onLeftRightSwitch(onRight);
+ viewHolder.getExpandedView().setVisibility(View.VISIBLE);
+ });
+ View expandedView = viewHolder.getExpandedView();
+ expandedView
+ .getViewTreeObserver()
+ .addOnPreDrawListener(
+ new OnPreDrawListener() {
+ @Override
+ public boolean onPreDraw() {
+ expandedView.getViewTreeObserver().removeOnPreDrawListener(this);
+ expandedView.setTranslationX(
+ onRight ? expandedView.getWidth() : -expandedView.getWidth());
+ expandedView
+ .animate()
+ .setInterpolator(new LinearOutSlowInInterpolator())
+ .translationX(0);
+ return false;
+ }
+ });
+ setFocused(true);
+ expanded = true;
+ }
+
+ void onLeftRightSwitch(boolean onRight) {
+ viewHolder
+ .getRoot()
+ .setLayoutDirection(onRight ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
+ View primaryContainer = viewHolder.getRoot().findViewById(R.id.bubble_primary_container);
+ ViewGroup.LayoutParams layoutParams = primaryContainer.getLayoutParams();
+ ((FrameLayout.LayoutParams) layoutParams).gravity = onRight ? Gravity.RIGHT : Gravity.LEFT;
+ primaryContainer.setLayoutParams(layoutParams);
+
+ viewHolder
+ .getExpandedView()
+ .setBackgroundResource(
+ onRight
+ ? R.drawable.bubble_background_pill_rtl
+ : R.drawable.bubble_background_pill_ltr);
+ }
+
+ LayoutParams getWindowParams() {
+ return windowParams;
+ }
+
+ View getRootView() {
+ return viewHolder.getRoot();
+ }
+
+ private void update() {
+ RippleDrawable backgroundRipple =
+ (RippleDrawable)
+ context.getResources().getDrawable(R.drawable.bubble_ripple_circle, context.getTheme());
+ int primaryTint =
+ ColorUtils.compositeColors(
+ context.getColor(R.color.bubble_primary_background_darken),
+ currentInfo.getPrimaryColor());
+ backgroundRipple.getDrawable(0).setTint(primaryTint);
+ viewHolder.getPrimaryButton().setBackground(backgroundRipple);
+
+ setBackgroundDrawable(viewHolder.getFirstButton(), primaryTint);
+ setBackgroundDrawable(viewHolder.getSecondButton(), primaryTint);
+ setBackgroundDrawable(viewHolder.getThirdButton(), primaryTint);
+
+ int numButtons = currentInfo.getActions().size();
+ viewHolder.getThirdButton().setVisibility(numButtons < 3 ? View.GONE : View.VISIBLE);
+ viewHolder.getSecondButton().setVisibility(numButtons < 2 ? View.GONE : View.VISIBLE);
+
+ viewHolder.getPrimaryIcon().setImageIcon(currentInfo.getPrimaryIcon());
+
+ viewHolder
+ .getExpandedView()
+ .setBackgroundTintList(ColorStateList.valueOf(currentInfo.getPrimaryColor()));
+
+ updateButtonStates();
+ }
+
+ private void setBackgroundDrawable(CheckableImageButton view, @ColorInt int color) {
+ RippleDrawable itemRipple =
+ (RippleDrawable)
+ context
+ .getResources()
+ .getDrawable(R.drawable.bubble_ripple_checkable_circle, context.getTheme());
+ itemRipple.getDrawable(0).setTint(color);
+ view.setBackground(itemRipple);
+ }
+
+ private void updateButtonStates() {
+ int numButtons = currentInfo.getActions().size();
+
+ if (numButtons >= 1) {
+ configureButton(currentInfo.getActions().get(0), viewHolder.getFirstButton());
+ if (numButtons >= 2) {
+ configureButton(currentInfo.getActions().get(1), viewHolder.getSecondButton());
+ if (numButtons >= 3) {
+ configureButton(currentInfo.getActions().get(2), viewHolder.getThirdButton());
+ }
+ }
+ }
+ }
+
+ private void doShowText(@NonNull CharSequence text) {
+ TransitionManager.beginDelayedTransition((ViewGroup) viewHolder.getPrimaryButton().getParent());
+ viewHolder.getPrimaryText().setText(text);
+ viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_TEXT);
+ }
+
+ private void configureButton(Action action, CheckableImageButton button) {
+ action
+ .getIcon()
+ .loadDrawableAsync(
+ context,
+ d -> {
+ button.setImageIcon(action.getIcon());
+ button.setContentDescription(action.getName());
+ button.setChecked(action.isChecked());
+ button.setEnabled(action.isEnabled());
+ },
+ handler);
+ button.setOnClickListener(v -> doAction(action));
+ }
+
+ private void doAction(Action action) {
+ try {
+ action.getAction().send();
+ } catch (CanceledException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private void doResize(@Nullable Runnable operation) {
+ // If we're resizing on the right side of the screen, there is an implicit move operation
+ // necessary. The WindowManager does not sync the move and resize operations, so serious jank
+ // would occur. To fix this, instead of resizing the window, we create a new one and destroy
+ // the old one. There is a short delay before destroying the old view to ensure the new one has
+ // had time to draw.
+ boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
+ ViewHolder oldViewHolder = viewHolder;
+ if (onRight) {
+ viewHolder = new ViewHolder(oldViewHolder.getRoot().getContext());
+ update();
+ viewHolder
+ .getPrimaryButton()
+ .setDisplayedChild(oldViewHolder.getPrimaryButton().getDisplayedChild());
+ viewHolder.getPrimaryText().setText(oldViewHolder.getPrimaryText().getText());
+ }
+
+ if (operation != null) {
+ operation.run();
+ }
+
+ if (onRight) {
+ swapViewHolders(oldViewHolder);
+ }
+ }
+
+ private void swapViewHolders(ViewHolder oldViewHolder) {
+ ViewGroup root = viewHolder.getRoot();
+ windowManager.addView(root, windowParams);
+ root.getViewTreeObserver()
+ .addOnPreDrawListener(
+ new OnPreDrawListener() {
+ @Override
+ public boolean onPreDraw() {
+ root.getViewTreeObserver().removeOnPreDrawListener(this);
+ // Wait a bit before removing the old view; make sure the new one has drawn over it.
+ handler.postDelayed(
+ () -> windowManager.removeView(oldViewHolder.getRoot()),
+ WINDOW_REDRAW_DELAY_MILLIS);
+ return true;
+ }
+ });
+ }
+
+ private ViewPropertyAnimator startCollapse(@CollapseEnd int collapseEndAction) {
+ setFocused(false);
+ boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
+ View expandedView = viewHolder.getExpandedView();
+ return expandedView
+ .animate()
+ .translationX(onRight ? expandedView.getWidth() : -expandedView.getWidth())
+ .setInterpolator(new FastOutLinearInInterpolator())
+ .withEndAction(
+ () -> {
+ expanded = false;
+ if (collapseEndAction == CollapseEnd.HIDE) {
+ hide();
+ } else if (!textShowing) {
+ // Don't swap the window while the user is moving it, even if we're on the right.
+ // The movement will help hide the jank of the resize.
+ boolean swapWindow = onRight && !viewHolder.isMoving();
+ if (swapWindow) {
+ // We don't actually need to set the drawer to GONE since in the new window it
+ // will already be GONE. Just do the resize operation.
+ doResize(null);
+ } else {
+ expandedView.setVisibility(View.GONE);
+ }
+ }
+ });
+ }
+
+ private void setFocused(boolean focused) {
+ if (focused) {
+ windowParams.flags &= ~LayoutParams.FLAG_NOT_FOCUSABLE;
+ } else {
+ windowParams.flags |= LayoutParams.FLAG_NOT_FOCUSABLE;
+ }
+ windowManager.updateViewLayout(getRootView(), windowParams);
+ }
+
+ private class ViewHolder {
+
+ public static final int CHILD_INDEX_ICON = 0;
+ public static final int CHILD_INDEX_TEXT = 1;
+
+ private final MoveHandler moveHandler;
+ private final WindowRoot root;
+ private final ViewAnimator primaryButton;
+ private final ImageView primaryIcon;
+ private final TextView primaryText;
+
+ private final CheckableImageButton firstButton;
+ private final CheckableImageButton secondButton;
+ private final CheckableImageButton thirdButton;
+ private final View expandedView;
+
+ public ViewHolder(Context context) {
+ // Window root is not in the layout file so that the inflater has a view to inflate into
+ this.root = new WindowRoot(context);
+ LayoutInflater inflater = LayoutInflater.from(root.getContext());
+ View contentView = inflater.inflate(R.layout.bubble_base, root, true);
+ expandedView = contentView.findViewById(R.id.bubble_expanded_layout);
+ primaryButton = contentView.findViewById(R.id.bubble_button_primary);
+ primaryIcon = contentView.findViewById(R.id.bubble_icon_primary);
+ primaryText = contentView.findViewById(R.id.bubble_text);
+
+ firstButton = contentView.findViewById(R.id.bubble_icon_first);
+ secondButton = contentView.findViewById(R.id.bubble_icon_second);
+ thirdButton = contentView.findViewById(R.id.bubble_icon_third);
+
+ root.setOnBackPressedListener(
+ () -> {
+ if (isShowing && expanded) {
+ startCollapse(CollapseEnd.NOTHING);
+ return true;
+ }
+ return false;
+ });
+ root.setOnTouchListener(
+ (v, event) -> {
+ if (expanded && event.getActionMasked() == MotionEvent.ACTION_OUTSIDE) {
+ startCollapse(CollapseEnd.NOTHING);
+ return true;
+ }
+ return false;
+ });
+ moveHandler = new MoveHandler(primaryButton, Bubble.this);
+ }
+
+ public ViewGroup getRoot() {
+ return root;
+ }
+
+ public ViewAnimator getPrimaryButton() {
+ return primaryButton;
+ }
+
+ public ImageView getPrimaryIcon() {
+ return primaryIcon;
+ }
+
+ public TextView getPrimaryText() {
+ return primaryText;
+ }
+
+ public CheckableImageButton getFirstButton() {
+ return firstButton;
+ }
+
+ public CheckableImageButton getSecondButton() {
+ return secondButton;
+ }
+
+ public CheckableImageButton getThirdButton() {
+ return thirdButton;
+ }
+
+ public View getExpandedView() {
+ return expandedView;
+ }
+
+ public boolean isMoving() {
+ return moveHandler.isMoving();
+ }
+ }
+}
diff --git a/java/com/android/dialershared/bubble/BubbleInfo.java b/java/com/android/dialershared/bubble/BubbleInfo.java
new file mode 100644
index 000000000..52417ae7b
--- /dev/null
+++ b/java/com/android/dialershared/bubble/BubbleInfo.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.app.PendingIntent;
+import android.graphics.drawable.Icon;
+import android.support.annotation.ColorInt;
+import android.support.annotation.NonNull;
+import com.google.auto.value.AutoValue;
+import java.util.Collections;
+import java.util.List;
+
+/** Info for displaying a {@link Bubble} */
+@AutoValue
+public abstract class BubbleInfo {
+ @ColorInt
+ public abstract int getPrimaryColor();
+
+ @NonNull
+ public abstract Icon getPrimaryIcon();
+
+ @NonNull
+ public abstract PendingIntent getPrimaryAction();
+
+ @NonNull
+ public abstract List<Action> getActions();
+
+ public static Builder builder() {
+ return new AutoValue_BubbleInfo.Builder().setActions(Collections.emptyList());
+ }
+
+ public static Builder from(@NonNull BubbleInfo bubbleInfo) {
+ return builder()
+ .setPrimaryAction(bubbleInfo.getPrimaryAction())
+ .setPrimaryColor(bubbleInfo.getPrimaryColor())
+ .setPrimaryIcon(bubbleInfo.getPrimaryIcon())
+ .setActions(bubbleInfo.getActions());
+ }
+
+ /** Builder for {@link BubbleInfo} */
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder setPrimaryColor(@ColorInt int primaryColor);
+
+ public abstract Builder setPrimaryIcon(@NonNull Icon primaryIcon);
+
+ public abstract Builder setPrimaryAction(@NonNull PendingIntent primaryAction);
+
+ public abstract Builder setActions(List<Action> actions);
+
+ public abstract BubbleInfo build();
+ }
+
+ /** Represents actions to be shown in the bubble when expanded */
+ @AutoValue
+ public abstract static class Action {
+
+ @NonNull
+ public abstract Icon getIcon();
+
+ @NonNull
+ public abstract CharSequence getName();
+
+ @NonNull
+ public abstract PendingIntent getAction();
+
+ public abstract boolean isEnabled();
+
+ public abstract boolean isChecked();
+
+ public static Builder builder() {
+ return new AutoValue_BubbleInfo_Action.Builder().setEnabled(true).setChecked(false);
+ }
+
+ public static Builder from(@NonNull Action action) {
+ return builder()
+ .setAction(action.getAction())
+ .setChecked(action.isChecked())
+ .setEnabled(action.isEnabled())
+ .setName(action.getName())
+ .setIcon(action.getIcon());
+ }
+
+ /** Builder for {@link Action} */
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder setIcon(@NonNull Icon icon);
+
+ public abstract Builder setName(@NonNull CharSequence name);
+
+ public abstract Builder setAction(@NonNull PendingIntent action);
+
+ public abstract Builder setEnabled(boolean enabled);
+
+ public abstract Builder setChecked(boolean checked);
+
+ public abstract Action build();
+ }
+ }
+}
diff --git a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java
new file mode 100644
index 000000000..4da6a3561
--- /dev/null
+++ b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.animation.Animator;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.graphics.Path;
+import android.graphics.PointF;
+import android.graphics.Rect;
+import android.transition.Transition;
+import android.transition.TransitionValues;
+import android.util.Property;
+import android.view.View;
+import android.view.ViewGroup;
+
+/** Similar to {@link android.transition.ChangeBounds ChangeBounds} but works across windows */
+public class ChangeOnScreenBounds extends Transition {
+
+ private static final String PROPNAME_BOUNDS = "bubble:changeScreenBounds:bounds";
+ private static final String PROPNAME_SCREEN_X = "bubble:changeScreenBounds:screenX";
+ private static final String PROPNAME_SCREEN_Y = "bubble:changeScreenBounds:screenY";
+
+ private static final Property<ViewBounds, PointF> TOP_LEFT_PROPERTY =
+ new Property<ViewBounds, PointF>(PointF.class, "topLeft") {
+ @Override
+ public void set(ViewBounds viewBounds, PointF topLeft) {
+ viewBounds.setTopLeft(topLeft);
+ }
+
+ @Override
+ public PointF get(ViewBounds viewBounds) {
+ return null;
+ }
+ };
+
+ private static final Property<ViewBounds, PointF> BOTTOM_RIGHT_PROPERTY =
+ new Property<ViewBounds, PointF>(PointF.class, "bottomRight") {
+ @Override
+ public void set(ViewBounds viewBounds, PointF bottomRight) {
+ viewBounds.setBottomRight(bottomRight);
+ }
+
+ @Override
+ public PointF get(ViewBounds viewBounds) {
+ return null;
+ }
+ };
+ private final int[] tempLocation = new int[2];
+
+ @Override
+ public void captureStartValues(TransitionValues transitionValues) {
+ captureValues(transitionValues);
+ }
+
+ @Override
+ public void captureEndValues(TransitionValues transitionValues) {
+ captureValues(transitionValues);
+ }
+
+ private void captureValues(TransitionValues values) {
+ View view = values.view;
+
+ if (view.isLaidOut() || view.getWidth() != 0 || view.getHeight() != 0) {
+ values.values.put(
+ PROPNAME_BOUNDS,
+ new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom()));
+ values.view.getLocationOnScreen(tempLocation);
+ values.values.put(PROPNAME_SCREEN_X, tempLocation[0]);
+ values.values.put(PROPNAME_SCREEN_Y, tempLocation[1]);
+ }
+ }
+
+ @Override
+ public Animator createAnimator(
+ ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) {
+ Rect startBounds = (Rect) startValues.values.get(PROPNAME_BOUNDS);
+
+ // Offset the startBounds by the difference in screen position
+ int startScreenX = (Integer) startValues.values.get(PROPNAME_SCREEN_X);
+ int startScreenY = (Integer) startValues.values.get(PROPNAME_SCREEN_Y);
+ int endScreenX = (Integer) endValues.values.get(PROPNAME_SCREEN_X);
+ int endScreenY = (Integer) endValues.values.get(PROPNAME_SCREEN_Y);
+ startBounds.offset(startScreenX - endScreenX, startScreenY - endScreenY);
+
+ Rect endBounds = (Rect) endValues.values.get(PROPNAME_BOUNDS);
+ final int startLeft = startBounds.left;
+ final int endLeft = endBounds.left;
+ final int startTop = startBounds.top;
+ final int endTop = endBounds.top;
+ final int startRight = startBounds.right;
+ final int endRight = endBounds.right;
+ final int startBottom = startBounds.bottom;
+ final int endBottom = endBounds.bottom;
+ ViewBounds viewBounds = new ViewBounds(endValues.view);
+ viewBounds.setTopLeft(new PointF(startLeft, startTop));
+ viewBounds.setBottomRight(new PointF(startRight, startBottom));
+
+ // Animate the top left and bottom right corners along a path
+ Path topLeftPath = getPathMotion().getPath(startLeft, startTop, endLeft, endTop);
+ ObjectAnimator topLeftAnimator =
+ ObjectAnimator.ofObject(viewBounds, TOP_LEFT_PROPERTY, null, topLeftPath);
+
+ Path bottomRightPath = getPathMotion().getPath(startRight, startBottom, endRight, endBottom);
+ ObjectAnimator bottomRightAnimator =
+ ObjectAnimator.ofObject(viewBounds, BOTTOM_RIGHT_PROPERTY, null, bottomRightPath);
+ AnimatorSet set = new AnimatorSet();
+ set.playTogether(topLeftAnimator, bottomRightAnimator);
+ return set;
+ }
+
+ private static class ViewBounds {
+ private int left;
+ private int top;
+ private int right;
+ private int bottom;
+ private final View view;
+ private int topLeftCalls;
+ private int bottomRightCalls;
+
+ public ViewBounds(View view) {
+ this.view = view;
+ }
+
+ public void setTopLeft(PointF topLeft) {
+ left = Math.round(topLeft.x);
+ top = Math.round(topLeft.y);
+ topLeftCalls++;
+ if (topLeftCalls == bottomRightCalls) {
+ updateLeftTopRightBottom();
+ }
+ }
+
+ public void setBottomRight(PointF bottomRight) {
+ right = Math.round(bottomRight.x);
+ bottom = Math.round(bottomRight.y);
+ bottomRightCalls++;
+ if (topLeftCalls == bottomRightCalls) {
+ updateLeftTopRightBottom();
+ }
+ }
+
+ private void updateLeftTopRightBottom() {
+ view.setLeft(left);
+ view.setTop(top);
+ view.setRight(right);
+ view.setBottom(bottom);
+ topLeftCalls = 0;
+ bottomRightCalls = 0;
+ }
+ }
+}
diff --git a/java/com/android/dialershared/bubble/CheckableImageButton.java b/java/com/android/dialershared/bubble/CheckableImageButton.java
new file mode 100644
index 000000000..7a5a432a6
--- /dev/null
+++ b/java/com/android/dialershared/bubble/CheckableImageButton.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.content.Context;
+import android.support.v4.view.AccessibilityDelegateCompat;
+import android.support.v4.view.ViewCompat;
+import android.support.v4.view.accessibility.AccessibilityEventCompat;
+import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
+import android.support.v7.widget.AppCompatImageButton;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.accessibility.AccessibilityEvent;
+import android.widget.Checkable;
+
+/**
+ * An {@link android.widget.ImageButton ImageButton} that implements {@link Checkable} and
+ * propagates the checkable state
+ */
+public class CheckableImageButton extends AppCompatImageButton implements Checkable {
+
+ // Copied without modification from AppCompat library
+
+ private static final int[] DRAWABLE_STATE_CHECKED = new int[] {android.R.attr.state_checked};
+
+ private boolean mChecked;
+
+ public CheckableImageButton(Context context) {
+ this(context, null);
+ }
+
+ public CheckableImageButton(Context context, AttributeSet attrs) {
+ this(context, attrs, android.R.attr.imageButtonStyle);
+ }
+
+ public CheckableImageButton(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+
+ ViewCompat.setAccessibilityDelegate(
+ this,
+ new AccessibilityDelegateCompat() {
+ @Override
+ public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
+ super.onInitializeAccessibilityEvent(host, event);
+ event.setChecked(isChecked());
+ }
+
+ @Override
+ public void onInitializeAccessibilityNodeInfo(
+ View host, AccessibilityNodeInfoCompat info) {
+ super.onInitializeAccessibilityNodeInfo(host, info);
+ info.setCheckable(true);
+ info.setChecked(isChecked());
+ }
+ });
+ }
+
+ @Override
+ public void setChecked(boolean checked) {
+ if (mChecked != checked) {
+ mChecked = checked;
+ refreshDrawableState();
+ sendAccessibilityEvent(AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED);
+ }
+ }
+
+ @Override
+ public boolean isChecked() {
+ return mChecked;
+ }
+
+ @Override
+ public void toggle() {
+ setChecked(!mChecked);
+ }
+
+ @Override
+ public int[] onCreateDrawableState(int extraSpace) {
+ if (mChecked) {
+ return mergeDrawableStates(
+ super.onCreateDrawableState(extraSpace + DRAWABLE_STATE_CHECKED.length),
+ DRAWABLE_STATE_CHECKED);
+ } else {
+ return super.onCreateDrawableState(extraSpace);
+ }
+ }
+}
diff --git a/java/com/android/dialershared/bubble/MoveHandler.java b/java/com/android/dialershared/bubble/MoveHandler.java
new file mode 100644
index 000000000..8a21cd7e1
--- /dev/null
+++ b/java/com/android/dialershared/bubble/MoveHandler.java
@@ -0,0 +1,250 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.content.Context;
+import android.graphics.Point;
+import android.support.animation.FloatPropertyCompat;
+import android.support.animation.SpringAnimation;
+import android.support.animation.SpringForce;
+import android.support.annotation.NonNull;
+import android.support.v4.math.MathUtils;
+import android.view.Gravity;
+import android.view.MotionEvent;
+import android.view.VelocityTracker;
+import android.view.View;
+import android.view.View.OnTouchListener;
+import android.view.ViewConfiguration;
+import android.view.WindowManager;
+import android.view.WindowManager.LayoutParams;
+import android.widget.Scroller;
+
+/** Handles touches and manages moving the bubble in response */
+class MoveHandler implements OnTouchListener {
+
+ // Amount the ViewConfiguration's minFlingVelocity will be scaled by for our own minVelocity
+ private static final int MIN_FLING_VELOCITY_FACTOR = 8;
+ // The friction multiplier to control how slippery the bubble is when flung
+ private static final float SCROLL_FRICTION_MULTIPLIER = 8f;
+
+ private final Context context;
+ private final WindowManager windowManager;
+ private final Bubble bubble;
+ private final int minX;
+ private final int minY;
+ private final int maxX;
+ private final int maxY;
+ private final int bubbleSize;
+ private final int shadowPaddingSize;
+ private final float touchSlopSquared;
+
+ private boolean isMoving;
+ private float firstX;
+ private float firstY;
+
+ private SpringAnimation moveXAnimation;
+ private SpringAnimation moveYAnimation;
+ private VelocityTracker velocityTracker;
+ private Scroller scroller;
+
+ // Handles the left/right gravity conversion and centering
+ private final FloatPropertyCompat<WindowManager.LayoutParams> xProperty =
+ new FloatPropertyCompat<LayoutParams>("xProperty") {
+ @Override
+ public float getValue(LayoutParams windowParams) {
+ int realX = windowParams.x;
+ realX = realX + bubbleSize / 2;
+ realX = realX + shadowPaddingSize;
+ if (relativeToRight(windowParams)) {
+ int displayWidth = context.getResources().getDisplayMetrics().widthPixels;
+ realX = displayWidth - realX;
+ }
+ return MathUtils.clamp(realX, minX, maxX);
+ }
+
+ @Override
+ public void setValue(LayoutParams windowParams, float value) {
+ int displayWidth = context.getResources().getDisplayMetrics().widthPixels;
+ boolean onRight = value > displayWidth / 2;
+ int centeringOffset = bubbleSize / 2 + shadowPaddingSize;
+ windowParams.x =
+ (int) (onRight ? (displayWidth - value - centeringOffset) : value - centeringOffset);
+ windowParams.gravity = Gravity.TOP | (onRight ? Gravity.RIGHT : Gravity.LEFT);
+ if (bubble.isShowing()) {
+ windowManager.updateViewLayout(bubble.getRootView(), windowParams);
+ }
+ }
+ };
+
+ private final FloatPropertyCompat<WindowManager.LayoutParams> yProperty =
+ new FloatPropertyCompat<LayoutParams>("yProperty") {
+ @Override
+ public float getValue(LayoutParams object) {
+ return MathUtils.clamp(object.y + bubbleSize + shadowPaddingSize, minY, maxY);
+ }
+
+ @Override
+ public void setValue(LayoutParams object, float value) {
+ object.y = (int) value - bubbleSize - shadowPaddingSize;
+ if (bubble.isShowing()) {
+ windowManager.updateViewLayout(bubble.getRootView(), object);
+ }
+ }
+ };
+
+ public MoveHandler(@NonNull View targetView, @NonNull Bubble bubble) {
+ this.bubble = bubble;
+ context = targetView.getContext();
+ windowManager = context.getSystemService(WindowManager.class);
+
+ bubbleSize = context.getResources().getDimensionPixelSize(R.dimen.bubble_size);
+ shadowPaddingSize =
+ context.getResources().getDimensionPixelOffset(R.dimen.bubble_shadow_padding_size);
+ minX =
+ context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_x)
+ + bubbleSize / 2;
+ minY =
+ context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_y)
+ + bubbleSize / 2;
+ maxX = context.getResources().getDisplayMetrics().widthPixels - minX;
+ maxY = context.getResources().getDisplayMetrics().heightPixels - minY;
+
+ // Squared because it will be compared against the square of the touch delta. This is more
+ // efficient than needing to take a square root.
+ touchSlopSquared = (float) Math.pow(ViewConfiguration.get(context).getScaledTouchSlop(), 2);
+
+ targetView.setOnTouchListener(this);
+ }
+
+ public boolean isMoving() {
+ return isMoving;
+ }
+
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ float eventX = event.getRawX();
+ float eventY = event.getRawY();
+ switch (event.getActionMasked()) {
+ case MotionEvent.ACTION_DOWN:
+ firstX = eventX;
+ firstY = eventY;
+ velocityTracker = VelocityTracker.obtain();
+ break;
+ case MotionEvent.ACTION_MOVE:
+ if (isMoving || hasExceededTouchSlop(event)) {
+ if (!isMoving) {
+ isMoving = true;
+ bubble.onMoveStart();
+ }
+
+ if (moveXAnimation == null) {
+ moveXAnimation = new SpringAnimation(bubble.getWindowParams(), xProperty);
+ moveXAnimation.setSpring(new SpringForce());
+ moveXAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY);
+ }
+ if (moveYAnimation == null) {
+ moveYAnimation = new SpringAnimation(bubble.getWindowParams(), yProperty);
+ moveYAnimation.setSpring(new SpringForce());
+ moveYAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY);
+ }
+
+ moveXAnimation.animateToFinalPosition(MathUtils.clamp(eventX, minX, maxX));
+ moveYAnimation.animateToFinalPosition(MathUtils.clamp(eventY, minY, maxY));
+ }
+
+ velocityTracker.addMovement(event);
+ break;
+ case MotionEvent.ACTION_UP:
+ if (isMoving) {
+ ViewConfiguration viewConfiguration = ViewConfiguration.get(context);
+ velocityTracker.computeCurrentVelocity(
+ 1000, viewConfiguration.getScaledMaximumFlingVelocity());
+ float xVelocity = velocityTracker.getXVelocity();
+ float yVelocity = velocityTracker.getYVelocity();
+ boolean isFling = isFling(xVelocity, yVelocity);
+
+ if (isFling) {
+ Point target =
+ findTarget(
+ xVelocity,
+ yVelocity,
+ (int) xProperty.getValue(bubble.getWindowParams()),
+ (int) yProperty.getValue(bubble.getWindowParams()));
+
+ moveXAnimation.animateToFinalPosition(target.x);
+ moveYAnimation.animateToFinalPosition(target.y);
+ } else {
+ snapX();
+ }
+
+ bubble.onMoveFinish();
+ } else {
+ v.performClick();
+ bubble.primaryButtonClick();
+ }
+ isMoving = false;
+ break;
+ }
+ return true;
+ }
+
+ private Point findTarget(float xVelocity, float yVelocity, int startX, int startY) {
+ if (scroller == null) {
+ scroller = new Scroller(context);
+ scroller.setFriction(ViewConfiguration.getScrollFriction() * SCROLL_FRICTION_MULTIPLIER);
+ }
+
+ // Find where a fling would end vertically
+ scroller.fling(startX, startY, (int) xVelocity, (int) yVelocity, minX, maxX, minY, maxY);
+ int targetY = scroller.getFinalY();
+ scroller.abortAnimation();
+
+ // If the x component of the velocity is above the minimum fling velocity, use velocity to
+ // determine edge. Otherwise use its starting position
+ boolean pullRight = isFling(xVelocity, 0) ? xVelocity > 0 : isOnRightHalf(startX);
+ return new Point(pullRight ? maxX : minX, targetY);
+ }
+
+ private boolean isFling(float xVelocity, float yVelocity) {
+ int minFlingVelocity =
+ ViewConfiguration.get(context).getScaledMinimumFlingVelocity() * MIN_FLING_VELOCITY_FACTOR;
+ return getMagnitudeSquared(xVelocity, yVelocity) > minFlingVelocity * minFlingVelocity;
+ }
+
+ private boolean isOnRightHalf(float currentX) {
+ return currentX > (minX + maxX) / 2;
+ }
+
+ private void snapX() {
+ // Check if x value is closer to min or max
+ boolean pullRight = isOnRightHalf(xProperty.getValue(bubble.getWindowParams()));
+ moveXAnimation.animateToFinalPosition(pullRight ? maxX : minX);
+ }
+
+ private boolean relativeToRight(LayoutParams windowParams) {
+ return (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT;
+ }
+
+ private boolean hasExceededTouchSlop(MotionEvent event) {
+ return getMagnitudeSquared(event.getRawX() - firstX, event.getRawY() - firstY)
+ > touchSlopSquared;
+ }
+
+ private float getMagnitudeSquared(float deltaX, float deltaY) {
+ return deltaX * deltaX + deltaY * deltaY;
+ }
+}
diff --git a/java/com/android/dialershared/bubble/WindowRoot.java b/java/com/android/dialershared/bubble/WindowRoot.java
new file mode 100644
index 000000000..2c176662e
--- /dev/null
+++ b/java/com/android/dialershared/bubble/WindowRoot.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialershared.bubble;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import android.view.KeyEvent;
+import android.widget.FrameLayout;
+
+/**
+ * ViewGroup that handles some overlay window concerns. Allows back button events to be listened for
+ * via an interface.
+ */
+public class WindowRoot extends FrameLayout {
+
+ private OnBackPressedListener backPressedListener;
+
+ /** Callback for when the back button is pressed while this window is in focus */
+ public interface OnBackPressedListener {
+ boolean onBackPressed();
+ }
+
+ public WindowRoot(@NonNull Context context) {
+ super(context);
+ }
+
+ public void setOnBackPressedListener(OnBackPressedListener listener) {
+ backPressedListener = listener;
+ }
+
+ @Override
+ public boolean dispatchKeyEvent(KeyEvent event) {
+ if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && backPressedListener != null) {
+ if (event.getAction() == KeyEvent.ACTION_UP) {
+ return backPressedListener.onBackPressed();
+ }
+ return true;
+ }
+ return super.dispatchKeyEvent(event);
+ }
+}
diff --git a/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
new file mode 100644
index 000000000..f9416ab57
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:color="@android:color/white" android:state_checked="true"/>
+ <item android:color="@android:color/transparent"/>
+</selector>
diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
index ecf704e8e..33ca1fdc5 100644
--- a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml
+++ b/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- ~ Copyright (C) 2014 The Android Open Source Project
+ ~ Copyright (C) 2017 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
@@ -14,7 +14,8 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:autoMirrored="true"
- android:src="@drawable/quantum_ic_arrow_back_white_24"
- android:tint="@color/actionbar_icon_color"/> \ No newline at end of file
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:color="#80FFFFFF" android:state_enabled="false"/>
+ <item android:color="@android:color/white"/>
+</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
new file mode 100644
index 000000000..77c813a75
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<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
new file mode 100644
index 000000000..9e2542154
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <corners
+ android:bottomLeftRadius="@dimen/bubble_size"
+ android:topLeftRadius="@dimen/bubble_size"/>
+ <solid android:color="@android:color/white"/>
+</shape>
diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml
new file mode 100644
index 000000000..85e0b24f3
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="?android:colorControlHighlight">
+ <item>
+ <shape android:shape="oval">
+ <solid android:color="@color/bubble_checkable_mask"/>
+ </shape>
+ </item>
+ <item android:id="@android:id/mask">
+ <shape android:shape="oval">
+ <solid android:color="@android:color/white"/>
+ </shape>
+ </item>
+</ripple>
diff --git a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
index 0fe0367e1..8d5cf0bb5 100644
--- a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
+++ b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- ~ Copyright (C) 2015 The Android Open Source Project
+ ~ Copyright (C) 2017 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
@@ -15,8 +15,12 @@
~ limitations under the License
-->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:autoMirrored="true"
- android:src="@drawable/quantum_ic_videocam_white_24"
- android:tint="@color/search_video_call_icon_tint"
- android:background="?attr/selectableItemBackgroundBorderless"/>
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="?android:colorControlHighlight">
+ <item>
+ <shape>
+ <corners android:radius="@dimen/bubble_size"/>
+ <solid android:color="@android:color/white"/>
+ </shape>
+ </item>
+</ripple>
diff --git a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml
new file mode 100644
index 000000000..3acd2af2e
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ tools:theme="@style/Theme.AppCompat">
+ <FrameLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="48dp"
+ android:paddingTop="@dimen/bubble_shadow_padding_size"
+ android:paddingBottom="@dimen/bubble_shadow_padding_size"
+ android:paddingEnd="@dimen/bubble_shadow_padding_size"
+ android:background="@android:color/transparent">
+
+ <LinearLayout
+ android:id="@+id/bubble_expanded_layout"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingStart="32dp"
+ android:paddingEnd="12dp"
+ android:background="@drawable/bubble_background_pill_ltr"
+ android:elevation="2dp"
+ android:layoutDirection="inherit"
+ android:orientation="horizontal"
+ android:visibility="gone"
+ tools:backgroundTint="#FF0000FF"
+ tools:visibility="visible">
+ <com.android.dialershared.bubble.CheckableImageButton
+ android:id="@+id/bubble_icon_first"
+ android:layout_width="@dimen/bubble_size"
+ android:layout_height="@dimen/bubble_size"
+ android:layout_marginStart="4dp"
+ android:padding="@dimen/bubble_icon_padding"
+ android:tint="@color/bubble_icon_tint_states"
+ android:tintMode="src_in"
+ tools:background="@drawable/bubble_ripple_checkable_circle"
+ tools:src="@android:drawable/ic_lock_idle_lock"/>
+ <com.android.dialershared.bubble.CheckableImageButton
+ android:id="@+id/bubble_icon_second"
+ android:layout_width="@dimen/bubble_size"
+ android:layout_height="@dimen/bubble_size"
+ android:layout_marginStart="4dp"
+ android:padding="@dimen/bubble_icon_padding"
+ android:tint="@color/bubble_icon_tint_states"
+ android:tintMode="src_in"
+ tools:background="@drawable/bubble_ripple_checkable_circle"
+ tools:src="@android:drawable/ic_input_add"/>
+ <com.android.dialershared.bubble.CheckableImageButton
+ android:id="@+id/bubble_icon_third"
+ android:layout_width="@dimen/bubble_size"
+ android:layout_height="@dimen/bubble_size"
+ android:layout_marginStart="4dp"
+ android:padding="@dimen/bubble_icon_padding"
+ android:tint="@color/bubble_icon_tint_states"
+ android:tintMode="src_in"
+ tools:background="@drawable/bubble_ripple_checkable_circle"
+ tools:src="@android:drawable/ic_menu_call"/>
+ </LinearLayout>
+ </FrameLayout>
+ <FrameLayout
+ android:id="@+id/bubble_primary_container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="start"
+ android:animateLayoutChanges="true"
+ android:background="@android:color/transparent"
+ android:clipChildren="false"
+ android:clipToPadding="false">
+ <ViewAnimator
+ android:id="@+id/bubble_button_primary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="@dimen/bubble_shadow_padding_size"
+ android:background="@drawable/bubble_ripple_circle"
+ android:elevation="6dp"
+ android:measureAllChildren="false"
+ tools:backgroundTint="#FF0000AA">
+ <ImageView
+ android:id="@+id/bubble_icon_primary"
+ android:layout_width="@dimen/bubble_size"
+ android:layout_height="@dimen/bubble_size"
+ android:padding="@dimen/bubble_icon_padding"
+ android:tint="@android:color/white"
+ android:tintMode="src_in"
+ tools:src="@android:drawable/ic_btn_speak_now"/>
+ <TextView
+ android:id="@+id/bubble_text"
+ android:layout_width="wrap_content"
+ android:layout_height="@dimen/bubble_size"
+ android:paddingStart="@dimen/bubble_icon_padding"
+ android:paddingEnd="@dimen/bubble_icon_padding"
+ android:gravity="center"
+ android:minWidth="@dimen/bubble_size"
+ android:textAppearance="@style/TextAppearance.AppCompat"
+ tools:text="Call ended"/>
+ </ViewAnimator>
+ </FrameLayout>
+
+</FrameLayout>
diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/dialershared/bubble/res/values/colors.xml
index 78b2876bc..97545faf3 100644
--- a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml
+++ b/java/com/android/dialershared/bubble/res/values/colors.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-
<!--
- ~ Copyright (C) 2014 The Android Open Source Project
+ ~ Copyright (C) 2017 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
@@ -16,6 +15,6 @@
~ limitations under the License
-->
-<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
- android:autoMirrored="true"
- android:src="@drawable/img_conference"/> \ No newline at end of file
+<resources>
+ <color name="bubble_primary_background_darken">#33000000</color>
+</resources>
diff --git a/java/com/android/dialershared/bubble/res/values/values.xml b/java/com/android/dialershared/bubble/res/values/values.xml
new file mode 100644
index 000000000..5b85e0d23
--- /dev/null
+++ b/java/com/android/dialershared/bubble/res/values/values.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources>
+ <dimen name="bubble_safe_margin_x">0dp</dimen>
+ <dimen name="bubble_safe_margin_y">0dp</dimen>
+ <dimen name="bubble_initial_offset_x">0dp</dimen>
+ <dimen name="bubble_initial_offset_y">120dp</dimen>
+ <dimen name="bubble_size">64dp</dimen>
+ <dimen name="bubble_icon_padding">20dp</dimen>
+ <dimen name="bubble_move_elevation_change">4dp</dimen>
+ <dimen name="bubble_shadow_padding_size">16dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml
index 8539bd0cf..703e5b509 100644
--- a/java/com/android/incallui/AndroidManifest.xml
+++ b/java/com/android/incallui/AndroidManifest.xml
@@ -15,11 +15,11 @@
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.incallui">
+ package="com.android.incallui">
<uses-sdk
- android:minSdkVersion="23"
- android:targetSdkVersion="26"/>
+ android:minSdkVersion="23"
+ android:targetSdkVersion="26"/>
<uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
<!-- We use this to disable the status bar buttons of home, back and recent
@@ -31,8 +31,8 @@
<!-- Warning: setting the required boolean to true would prevent installation of Dialer on
devices which do not support a camera. -->
<uses-feature
- android:name="android.hardware.camera.any"
- android:required="false"/>
+ android:name="android.hardware.camera.any"
+ android:required="false"/>
<!-- Testing location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
@@ -43,47 +43,49 @@
Set taskAffinity for application is not working because it will be merged and the result is
that all activities here still have same taskAffinity as activities under dialer. -->
<application>
- <meta-data android:name="android.telephony.hide_voicemail_settings_menu"
- android:value="true"/>
+ <meta-data
+ android:name="android.telephony.hide_voicemail_settings_menu"
+ android:value="true"/>
+
<activity
- android:directBootAware="true"
- android:excludeFromRecents="true"
- android:exported="false"
- android:label="@string/phoneAppLabel"
- android:taskAffinity="com.android.incallui"
- android:launchMode="singleInstance"
- android:name="com.android.incallui.InCallActivity"
- android:resizeableActivity="true"
- android:screenOrientation="nosensor"
- android:theme="@style/Theme.InCallScreen">
+ android:directBootAware="true"
+ android:excludeFromRecents="true"
+ android:exported="false"
+ android:label="@string/phoneAppLabel"
+ android:launchMode="singleInstance"
+ android:name="com.android.incallui.InCallActivity"
+ android:resizeableActivity="true"
+ android:screenOrientation="nosensor"
+ android:taskAffinity="com.android.incallui"
+ android:theme="@style/Theme.InCallScreen">
</activity>
<activity
- android:directBootAware="true"
- android:excludeFromRecents="true"
- android:noHistory="true"
- android:exported="false"
- android:label="@string/manageConferenceLabel"
- android:taskAffinity="com.android.incallui"
- android:launchMode="singleTask"
- android:name="com.android.incallui.ManageConferenceActivity"
- android:resizeableActivity="true"
- android:theme="@style/Theme.InCallScreen.ManageConference"/>
+ android:directBootAware="true"
+ android:excludeFromRecents="true"
+ android:exported="false"
+ android:label="@string/manageConferenceLabel"
+ android:launchMode="singleTask"
+ android:name="com.android.incallui.ManageConferenceActivity"
+ android:noHistory="true"
+ android:resizeableActivity="true"
+ android:taskAffinity="com.android.incallui"
+ android:theme="@style/Theme.InCallScreen.ManageConference"/>
<service
- android:directBootAware="true"
- android:exported="true"
- android:name="com.android.incallui.InCallServiceImpl"
- android:permission="android.permission.BIND_INCALL_SERVICE">
+ android:directBootAware="true"
+ android:exported="true"
+ android:name="com.android.incallui.InCallServiceImpl"
+ android:permission="android.permission.BIND_INCALL_SERVICE">
<meta-data
- android:name="android.telecom.IN_CALL_SERVICE_UI"
- android:value="true"/>
+ android:name="android.telecom.IN_CALL_SERVICE_UI"
+ android:value="true"/>
<meta-data
- android:name="android.telecom.IN_CALL_SERVICE_RINGING"
- android:value="false"/>
+ android:name="android.telecom.IN_CALL_SERVICE_RINGING"
+ android:value="false"/>
<meta-data
- android:name="android.telecom.INCLUDE_EXTERNAL_CALLS"
- android:value="true"/>
+ android:name="android.telecom.INCLUDE_EXTERNAL_CALLS"
+ android:value="true"/>
<intent-filter>
<action android:name="android.telecom.InCallService"/>
@@ -97,23 +99,35 @@
excludeFromRecents="true" -> Don't show in "recent apps" screen
-->
<activity
- android:excludeFromRecents="true"
- android:exported="false"
- android:name="com.android.incallui.spam.SpamNotificationActivity"
- android:noHistory="true"
- android:taskAffinity=""
- android:theme="@style/AfterCallNotificationTheme">
+ android:excludeFromRecents="true"
+ android:exported="false"
+ android:name="com.android.incallui.spam.SpamNotificationActivity"
+ android:noHistory="true"
+ android:taskAffinity=""
+ android:theme="@style/AfterCallNotificationTheme">
</activity>
+ <activity
+ android:excludeFromRecents="true"
+ android:exported="false"
+ android:name=".AudioRouteSelectorActivity"
+ android:noHistory="true"
+ android:theme="@style/Theme.Incall.DialogHolder"
+ />
+
<service
- android:exported="false"
- android:name="com.android.incallui.spam.SpamNotificationService"/>
+ android:exported="false"
+ android:name="com.android.incallui.spam.SpamNotificationService"/>
<!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
<receiver
- android:directBootAware="true"
- android:exported="false"
- android:name="com.android.incallui.NotificationBroadcastReceiver"/>
+ android:directBootAware="true"
+ android:exported="false"
+ android:name="com.android.incallui.NotificationBroadcastReceiver"/>
+
+ <receiver
+ android:exported="false"
+ android:name=".ReturnToCallActionReceiver"/>
</application>
diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java
index ca34aa6aa..ddbe6ccef 100644
--- a/java/com/android/incallui/AnswerScreenPresenter.java
+++ b/java/com/android/incallui/AnswerScreenPresenter.java
@@ -124,12 +124,29 @@ public class AnswerScreenPresenter
LogUtil.i("AnswerScreenPresenter.onAnswerAndReleaseCall", "activeCall == null");
onAnswer(false);
} else {
+ activeCall.setReleasedByAnsweringSecondCall(true);
activeCall.addListener(new AnswerOnDisconnected(activeCall));
activeCall.disconnect();
}
}
@Override
+ public void onAnswerAndReleaseButtonDisabled() {
+ DialerCall activeCall = CallList.getInstance().getActiveCall();
+ if (activeCall != null) {
+ activeCall.increaseSecondCallWithoutAnswerAndReleasedButtonTimes();
+ }
+ }
+
+ @Override
+ public void onAnswerAndReleaseButtonEnabled() {
+ DialerCall activeCall = CallList.getInstance().getActiveCall();
+ if (activeCall != null) {
+ activeCall.increaseAnswerAndReleaseButtonDisplayedTimes();
+ }
+ }
+
+ @Override
public void onCannedTextResponsesLoaded(DialerCall call) {
if (isSmsResponseAllowed(call)) {
answerScreen.setTextResponses(call.getCannedSmsResponses());
@@ -183,6 +200,9 @@ public class AnswerScreenPresenter
@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 7bff3299a..d02a181c1 100644
--- a/java/com/android/incallui/AnswerScreenPresenterStub.java
+++ b/java/com/android/incallui/AnswerScreenPresenterStub.java
@@ -43,5 +43,11 @@ public class AnswerScreenPresenterStub implements AnswerScreenDelegate {
public void onAnswerAndReleaseCall() {}
@Override
+ public void onAnswerAndReleaseButtonEnabled() {}
+
+ @Override
+ public void onAnswerAndReleaseButtonDisabled() {}
+
+ @Override
public void updateWindowBackgroundColor(@FloatRange(from = -1f, to = 1.0f) float progress) {}
}
diff --git a/java/com/android/incallui/AudioRouteSelectorActivity.java b/java/com/android/incallui/AudioRouteSelectorActivity.java
new file mode 100644
index 000000000..dfd4d1abf
--- /dev/null
+++ b/java/com/android/incallui/AudioRouteSelectorActivity.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.FragmentActivity;
+import com.android.incallui.audiomode.AudioModeProvider;
+import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment;
+import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter;
+import com.android.incallui.call.TelecomAdapter;
+
+/** Simple activity that just shows the audio route selector fragment */
+public class AudioRouteSelectorActivity extends FragmentActivity
+ implements AudioRouteSelectorPresenter {
+
+ @Override
+ protected void onCreate(@Nullable Bundle bundle) {
+ super.onCreate(bundle);
+ AudioRouteSelectorDialogFragment.newInstance(AudioModeProvider.getInstance().getAudioState())
+ .show(getSupportFragmentManager(), null);
+ }
+
+ @Override
+ public void onAudioRouteSelected(int audioRoute) {
+ TelecomAdapter.getInstance().setAudioRoute(audioRoute);
+ }
+
+ @Override
+ public void onAudioRouteSelectorDismiss() {
+ finish();
+ }
+}
diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java
index b0c3a99ea..f758a9655 100644
--- a/java/com/android/incallui/CallButtonPresenter.java
+++ b/java/com/android/incallui/CallButtonPresenter.java
@@ -300,18 +300,7 @@ public class CallButtonPresenter
*/
@Override
public void switchCameraClicked(boolean useFrontFacingCamera) {
- InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager();
- cameraManager.setUseFrontFacingCamera(useFrontFacingCamera);
-
- String cameraId = cameraManager.getActiveCameraId();
- if (cameraId != null) {
- final int cameraDir =
- cameraManager.isUsingFrontFacingCamera()
- ? CameraDirection.CAMERA_DIRECTION_FRONT_FACING
- : CameraDirection.CAMERA_DIRECTION_BACK_FACING;
- mCall.setCameraDir(cameraDir);
- mCall.getVideoTech().setCamera(cameraId);
- }
+ updateCamera(useFrontFacingCamera);
}
@Override
@@ -345,8 +334,11 @@ public class CallButtonPresenter
mCall.getTimeAddedMs());
if (pause) {
+ mCall.getVideoTech().setCamera(null);
mCall.getVideoTech().stopTransmission();
} else {
+ updateCamera(
+ InCallPresenter.getInstance().getInCallCameraManager().isUsingFrontFacingCamera());
mCall.getVideoTech().resumeTransmission();
}
@@ -354,6 +346,21 @@ public class CallButtonPresenter
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 c2b99c1d1..cd06793ce 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -47,9 +47,6 @@ import com.android.dialer.common.Assert;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.ActivityCompat;
-import com.android.dialer.enrichedcall.EnrichedCallComponent;
-import com.android.dialer.enrichedcall.EnrichedCallManager;
-import com.android.dialer.enrichedcall.Session;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.multimedia.MultimediaData;
@@ -85,8 +82,7 @@ public class CallCardPresenter
InCallDetailsListener,
InCallEventListener,
InCallScreenDelegate,
- DialerCallListener,
- EnrichedCallManager.StateChangedListener {
+ DialerCallListener {
/**
* Amount of time to wait before sending an announcement via the accessibility manager. When the
@@ -376,6 +372,11 @@ public class CallCardPresenter
@Override
public void onInternationalCallOnWifi() {}
+ @Override
+ public void onEnrichedCallSessionUpdate() {
+ updatePrimaryDisplayInfo();
+ }
+
/** Handles a change to the child number by refreshing the primary call info. */
@Override
public void onDialerCallChildNumberChange() {
@@ -418,12 +419,6 @@ public class CallCardPresenter
updatePrimaryCallState();
}
- @Override
- public void onEnrichedCallStateChanged() {
- LogUtil.enterBlock("CallCardPresenter.onEnrichedCallStateChanged");
- updatePrimaryDisplayInfo();
- }
-
private boolean shouldRefreshPrimaryInfo(boolean primaryChanged) {
if (mPrimary == null) {
return false;
@@ -475,7 +470,8 @@ public class CallCardPresenter
mPrimary.getConnectTimeMillis(),
CallerInfoUtils.isVoiceMailNumber(mContext, mPrimary),
mPrimary.isRemotelyHeld(),
- isBusiness));
+ isBusiness,
+ supports2ndCallOnHold()));
InCallActivity activity =
(InCallActivity) (mInCallScreen.getInCallScreenFragment().getActivity());
@@ -505,6 +501,15 @@ public class CallCardPresenter
&& !mIsFullscreen;
}
+ private boolean supports2ndCallOnHold() {
+ DialerCall firstCall = CallList.getInstance().getActiveOrBackgroundCall();
+ DialerCall incomingCall = CallList.getInstance().getIncomingCall();
+ if (firstCall != null && incomingCall != null && firstCall != incomingCall) {
+ return incomingCall.can(Details.CAPABILITY_HOLD);
+ }
+ return true;
+ }
+
@Override
public void onCallStateButtonClicked() {
Intent broadcastIntent = Bindings.get(mContext).getCallStateButtonBroadcastIntent(mContext);
@@ -666,26 +671,8 @@ public class CallCardPresenter
boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL);
MultimediaData multimediaData = null;
- if (mPrimary.getNumber() != null) {
- EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
-
- EnrichedCallManager.Filter filter;
- if (mPrimary.isIncoming()) {
- filter = manager.createIncomingCallComposerFilter();
- } else {
- filter = manager.createOutgoingCallComposerFilter();
- }
-
- Session enrichedCallSession =
- manager.getSession(mPrimary.getUniqueCallId(), mPrimary.getNumber(), filter);
-
- mPrimary.setEnrichedCallSession(enrichedCallSession);
- mPrimary.setEnrichedCallCapabilities(manager.getCapabilities(mPrimary.getNumber()));
-
- if (enrichedCallSession != null) {
- enrichedCallSession.setUniqueDialerCallId(mPrimary.getUniqueCallId());
- multimediaData = enrichedCallSession.getMultimediaData();
- }
+ if (mPrimary.getEnrichedCallSession() != null) {
+ multimediaData = mPrimary.getEnrichedCallSession().getMultimediaData();
}
if (mPrimary.isConferenceCall()) {
@@ -696,7 +683,8 @@ public class CallCardPresenter
mInCallScreen.setPrimary(
new PrimaryInfo(
null /* number */,
- getConferenceString(mPrimary),
+ CallerInfoUtils.getConferenceString(
+ mContext, mPrimary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)),
false /* nameIsNumber */,
null /* location */,
null /* label */,
@@ -880,7 +868,8 @@ public class CallCardPresenter
mInCallScreen.setSecondary(
new SecondaryInfo(
true /* show */,
- getConferenceString(mSecondary),
+ CallerInfoUtils.getConferenceString(
+ mContext, mSecondary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)),
false /* nameIsNumber */,
null /* label */,
mSecondary.getCallProviderLabel(),
@@ -972,7 +961,7 @@ public class CallCardPresenter
}
/** Gets the name to display for the call. */
- String getNameForCall(ContactCacheEntry contactInfo) {
+ private String getNameForCall(ContactCacheEntry contactInfo) {
String preferredName =
ContactDisplayUtils.getPreferredDisplayName(
contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences);
@@ -982,19 +971,6 @@ public class CallCardPresenter
return preferredName;
}
- /** Gets the number to display for a call. */
- String getNumberForCall(ContactCacheEntry contactInfo) {
- // If the name is empty, we use the number for the name...so don't show a second
- // number in the number field
- String preferredName =
- ContactDisplayUtils.getPreferredDisplayName(
- contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences);
- if (TextUtils.isEmpty(preferredName)) {
- return contactInfo.location;
- }
- return contactInfo.number;
- }
-
@Override
public void onSecondaryInfoClicked() {
if (mSecondary == null) {
@@ -1035,15 +1011,6 @@ public class CallCardPresenter
return mPrimary != null && mPrimary.getState() == DialerCall.State.ACTIVE;
}
- private String getConferenceString(DialerCall call) {
- boolean isGenericConference = call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE);
- LogUtil.v("CallCardPresenter.getConferenceString", "" + isGenericConference);
-
- final int resId =
- isGenericConference ? R.string.generic_conference_call_name : R.string.conference_call_name;
- return mContext.getResources().getString(resId);
- }
-
private boolean shouldShowEndCallButton(DialerCall primary, int callState) {
if (primary == null) {
return false;
@@ -1063,7 +1030,6 @@ public class CallCardPresenter
@Override
public void onInCallScreenResumed() {
- EnrichedCallComponent.get(mContext).getEnrichedCallManager().registerStateChangedListener(this);
updatePrimaryDisplayInfo();
if (shouldSendAccessibilityEvent) {
@@ -1072,11 +1038,7 @@ public class CallCardPresenter
}
@Override
- public void onInCallScreenPaused() {
- EnrichedCallComponent.get(mContext)
- .getEnrichedCallManager()
- .unregisterStateChangedListener(this);
- }
+ public void onInCallScreenPaused() {}
static boolean sendAccessibilityEvent(Context context, InCallScreen inCallScreen) {
AccessibilityManager am =
diff --git a/java/com/android/incallui/CallerInfoUtils.java b/java/com/android/incallui/CallerInfoUtils.java
index 564446647..8f2310760 100644
--- a/java/com/android/incallui/CallerInfoUtils.java
+++ b/java/com/android/incallui/CallerInfoUtils.java
@@ -282,4 +282,11 @@ public class CallerInfoUtils {
});
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 e45eb9746..d7eea79bd 100644
--- a/java/com/android/incallui/ContactInfoCache.java
+++ b/java/com/android/incallui/ContactInfoCache.java
@@ -406,7 +406,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener {
} else {
ContactCacheEntry initialCacheEntry =
updateCallerInfoInCacheOnAnyThread(
- callId, call.getNumberPresentation(), callerInfo, isIncoming, false, queryToken);
+ callId, call.getNumberPresentation(), callerInfo, false, queryToken);
sendInfoNotifications(callId, initialCacheEntry);
}
}
@@ -416,7 +416,6 @@ public class ContactInfoCache implements OnImageLoadCompleteListener {
String callId,
int numberPresentation,
CallerInfo callerInfo,
- boolean isIncoming,
boolean didLocalLookup,
CallerInfoQueryToken queryToken) {
Log.d(
@@ -443,16 +442,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener {
Log.d(TAG, "Existing cacheEntry in hashMap " + existingCacheEntry);
if (didLocalLookup) {
- // Before issuing a request for more data from other services, we only check that the
- // contact wasn't found in the local DB. We don't check the if the cache entry already
- // has a name because we allow overriding cnap data with data from other services.
- if (!callerInfo.contactExists && mPhoneNumberService != null) {
- Log.d(TAG, "Contact lookup. Local contacts miss, checking remote");
- final PhoneNumberServiceListener listener =
- new PhoneNumberServiceListener(callId, queryToken.mQueryId);
- cacheEntry.hasPendingQuery = true;
- mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, isIncoming);
- } else if (cacheEntry.displayPhotoUri != null) {
+ if (cacheEntry.displayPhotoUri != null) {
// When the difference between 2 numbers is only the prefix (e.g. + or IDD),
// we will still trigger force query so that the number can be updated on
// the calling screen. We need not query the image again if the previous
@@ -789,7 +779,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener {
maybeUpdateFromCequintCallerId(ci, cw.cnapName, mIsIncoming);
long time = SystemClock.uptimeMillis() - start;
Log.d(TAG, "Cequint Caller Id look up takes " + time + " ms.");
- updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, mIsIncoming, true, mQueryToken);
+ updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, true, mQueryToken);
}
@Override
@@ -807,6 +797,16 @@ public class ContactInfoCache implements OnImageLoadCompleteListener {
clearCallbacks(callId);
return;
}
+ // Before issuing a request for more data from other services, we only check that the
+ // contact wasn't found in the local DB. We don't check the if the cache entry already
+ // has a name because we allow overriding cnap data with data from other services.
+ if (!callerInfo.contactExists && mPhoneNumberService != null) {
+ Log.d(TAG, "Contact lookup. Local contacts miss, checking remote");
+ final PhoneNumberServiceListener listener =
+ new PhoneNumberServiceListener(callId, mQueryToken.mQueryId);
+ cacheEntry.hasPendingQuery = true;
+ mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, mIsIncoming);
+ }
sendInfoNotifications(callId, cacheEntry);
if (!cacheEntry.hasPendingQuery) {
if (callerInfo.contactExists) {
@@ -870,6 +870,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener {
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 0c2493c60..051392e2b 100644
--- a/java/com/android/incallui/ExternalCallNotifier.java
+++ b/java/com/android/incallui/ExternalCallNotifier.java
@@ -384,11 +384,10 @@ public class ExternalCallNotifier implements ExternalCallList.ExternalCallListen
ContactInfoCache.ContactCacheEntry contactInfo,
android.telecom.Call call) {
- if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)
- && !call.getDetails()
- .hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)) {
-
- return context.getResources().getString(R.string.conference_call_name);
+ if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)) {
+ return CallerInfoUtils.getConferenceString(
+ context,
+ call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE));
}
String preferredName =
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index cc9a8e438..bda003ccc 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -694,13 +694,8 @@ public class InCallActivity extends TransactionSafeFragmentActivity
if (didShowInCallScreen) {
return false;
}
- InCallScreen inCallScreen = getInCallScreen();
- if (inCallScreen == null) {
- inCallScreen = InCallBindings.createInCallScreen();
- transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN);
- } else {
- transaction.show(inCallScreen.getInCallScreenFragment());
- }
+ InCallScreen inCallScreen = InCallBindings.createInCallScreen();
+ transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN);
Logger.get(this).logScreenView(ScreenEvent.Type.INCALL, this);
didShowInCallScreen = true;
return true;
@@ -712,7 +707,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity
}
InCallScreen inCallScreen = getInCallScreen();
if (inCallScreen != null) {
- transaction.hide(inCallScreen.getInCallScreenFragment());
+ transaction.remove(inCallScreen.getInCallScreenFragment());
}
didShowInCallScreen = false;
return true;
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index 2d6d83c3c..7c3000144 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -695,7 +695,10 @@ public class InCallPresenter implements CallList.Listener {
if (newState == InCallState.INCOMING
&& (waitingForAccountCall = callList.getWaitingForAccountCall()) != null) {
waitingForAccountCall.disconnect();
- mInCallActivity.dismissPendingDialogs();
+ // The InCallActivity might be destroyed or not started yet at this point.
+ if (isActivityStarted()) {
+ mInCallActivity.dismissPendingDialogs();
+ }
}
newState = startOrFinishUi(newState);
diff --git a/java/com/android/incallui/InCallServiceImpl.java b/java/com/android/incallui/InCallServiceImpl.java
index 4ab92a797..1653334a1 100644
--- a/java/com/android/incallui/InCallServiceImpl.java
+++ b/java/com/android/incallui/InCallServiceImpl.java
@@ -23,6 +23,7 @@ import android.telecom.Call;
import android.telecom.CallAudioState;
import android.telecom.InCallService;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.common.ConfigProviderBindings;
import com.android.incallui.audiomode.AudioModeProvider;
import com.android.incallui.call.CallList;
import com.android.incallui.call.ExternalCallList;
@@ -36,6 +37,8 @@ import com.android.incallui.call.TelecomAdapter;
*/
public class InCallServiceImpl extends InCallService {
+ private ReturnToCallController returnToCallController;
+
@Override
public void onCallAudioStateChanged(CallAudioState audioState) {
AudioModeProvider.getInstance().onAudioStateChanged(audioState);
@@ -79,6 +82,9 @@ public class InCallServiceImpl extends InCallService {
InCallPresenter.getInstance().onServiceBind();
InCallPresenter.getInstance().maybeStartRevealAnimation(intent);
TelecomAdapter.getInstance().setInCallService(this);
+ if (ConfigProviderBindings.get(this).getBoolean("enable_return_to_call_bubble", false)) {
+ returnToCallController = new ReturnToCallController(this);
+ }
return super.onBind(intent);
}
@@ -98,5 +104,9 @@ public class InCallServiceImpl extends InCallService {
// Tear down the InCall system
TelecomAdapter.getInstance().clearInCallService();
InCallPresenter.getInstance().tearDown();
+ if (returnToCallController != null) {
+ returnToCallController.tearDown();
+ returnToCallController = null;
+ }
}
}
diff --git a/java/com/android/incallui/ReturnToCallActionReceiver.java b/java/com/android/incallui/ReturnToCallActionReceiver.java
new file mode 100644
index 000000000..b645c155c
--- /dev/null
+++ b/java/com/android/incallui/ReturnToCallActionReceiver.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.CallAudioState;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
+import com.android.incallui.audiomode.AudioModeProvider;
+import com.android.incallui.call.CallList;
+import com.android.incallui.call.DialerCall;
+import com.android.incallui.call.TelecomAdapter;
+
+/** Handles clicks on the return-to-call bubble */
+public class ReturnToCallActionReceiver extends BroadcastReceiver {
+
+ public static final String ACTION_TOGGLE_SPEAKER = "toggleSpeaker";
+ public static final String ACTION_SHOW_AUDIO_ROUTE_SELECTOR = "showAudioRouteSelector";
+ public static final String ACTION_TOGGLE_MUTE = "toggleMute";
+ public static final String ACTION_END_CALL = "endCall";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ switch (intent.getAction()) {
+ case ACTION_TOGGLE_SPEAKER:
+ toggleSpeaker(context);
+ break;
+ case ACTION_SHOW_AUDIO_ROUTE_SELECTOR:
+ showAudioRouteSelector(context);
+ break;
+ case ACTION_TOGGLE_MUTE:
+ toggleMute(context);
+ break;
+ case ACTION_END_CALL:
+ endCall(context);
+ break;
+ }
+ }
+
+ private void toggleSpeaker(Context context) {
+ CallAudioState audioState = AudioModeProvider.getInstance().getAudioState();
+
+ if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
+ == CallAudioState.ROUTE_BLUETOOTH) {
+ LogUtil.w(
+ "ReturnToCallActionReceiver.toggleSpeaker",
+ "toggleSpeaker() called when bluetooth available."
+ + " Probably should have shown audio route selector");
+ }
+
+ DialerCall call = getCall();
+
+ int newRoute;
+ if (audioState.getRoute() == CallAudioState.ROUTE_SPEAKER) {
+ newRoute = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+ Logger.get(context)
+ .logCallImpression(
+ DialerImpression.Type.BUBBLE_TURN_ON_WIRED_OR_EARPIECE,
+ call != null ? call.getUniqueCallId() : "",
+ call != null ? call.getTimeAddedMs() : 0);
+ } else {
+ newRoute = CallAudioState.ROUTE_SPEAKER;
+ Logger.get(context)
+ .logCallImpression(
+ DialerImpression.Type.BUBBLE_TURN_ON_SPEAKERPHONE,
+ call != null ? call.getUniqueCallId() : "",
+ call != null ? call.getTimeAddedMs() : 0);
+ }
+ TelecomAdapter.getInstance().setAudioRoute(newRoute);
+ }
+
+ public void showAudioRouteSelector(Context context) {
+ context.startActivity(new Intent(context, AudioRouteSelectorActivity.class));
+ }
+
+ private void toggleMute(Context context) {
+ DialerCall call = getCall();
+ boolean shouldMute = !AudioModeProvider.getInstance().getAudioState().isMuted();
+ Logger.get(context)
+ .logCallImpression(
+ shouldMute
+ ? DialerImpression.Type.BUBBLE_MUTE_CALL
+ : DialerImpression.Type.BUBBLE_UNMUTE_CALL,
+ call != null ? call.getUniqueCallId() : "",
+ call != null ? call.getTimeAddedMs() : 0);
+ TelecomAdapter.getInstance().mute(shouldMute);
+ }
+
+ private void endCall(Context context) {
+ DialerCall call = getCall();
+
+ Logger.get(context)
+ .logCallImpression(
+ DialerImpression.Type.BUBBLE_END_CALL,
+ call != null ? call.getUniqueCallId() : "",
+ call != null ? call.getTimeAddedMs() : 0);
+ if (call != null) {
+ call.disconnect();
+ }
+ }
+
+ private DialerCall getCall() {
+ CallList callList = InCallPresenter.getInstance().getCallList();
+ if (callList != null) {
+ DialerCall call = callList.getOutgoingCall();
+ if (call == null) {
+ call = callList.getActiveOrBackgroundCall();
+ }
+ if (call != null) {
+ return call;
+ }
+ }
+ return null;
+ }
+}
diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java
new file mode 100644
index 000000000..4cb6aaf89
--- /dev/null
+++ b/java/com/android/incallui/ReturnToCallController.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Icon;
+import android.support.annotation.NonNull;
+import android.support.annotation.VisibleForTesting;
+import android.telecom.CallAudioState;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.telecom.TelecomUtil;
+import com.android.dialershared.bubble.Bubble;
+import com.android.dialershared.bubble.BubbleInfo;
+import com.android.dialershared.bubble.BubbleInfo.Action;
+import com.android.incallui.InCallPresenter.InCallUiListener;
+import com.android.incallui.audiomode.AudioModeProvider;
+import com.android.incallui.audiomode.AudioModeProvider.AudioModeListener;
+import com.android.incallui.call.CallList;
+import com.android.incallui.call.CallList.Listener;
+import com.android.incallui.call.DialerCall;
+import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo;
+import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Listens for events relevant to the return-to-call bubble and updates the bubble's state as
+ * necessary
+ */
+public class ReturnToCallController implements InCallUiListener, Listener, AudioModeListener {
+
+ private final Context context;
+
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ Bubble bubble;
+
+ private CallAudioState audioState;
+
+ private final PendingIntent toggleSpeaker;
+ private final PendingIntent showSpeakerSelect;
+ private final PendingIntent toggleMute;
+ private final PendingIntent endCall;
+
+ public ReturnToCallController(Context context) {
+ this.context = context;
+
+ toggleSpeaker = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_SPEAKER);
+ showSpeakerSelect =
+ createActionIntent(ReturnToCallActionReceiver.ACTION_SHOW_AUDIO_ROUTE_SELECTOR);
+ toggleMute = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_MUTE);
+ endCall = createActionIntent(ReturnToCallActionReceiver.ACTION_END_CALL);
+
+ InCallPresenter.getInstance().addInCallUiListener(this);
+ CallList.getInstance().addListener(this);
+ AudioModeProvider.getInstance().addListener(this);
+ audioState = AudioModeProvider.getInstance().getAudioState();
+ }
+
+ public void tearDown() {
+ InCallPresenter.getInstance().removeInCallUiListener(this);
+ CallList.getInstance().removeListener(this);
+ AudioModeProvider.getInstance().removeListener(this);
+ }
+
+ @Override
+ public void onUiShowing(boolean showing) {
+ if (showing) {
+ hide();
+ } else {
+ if (TelecomUtil.isInCall(context)) {
+ show();
+ }
+ }
+ }
+
+ private void hide() {
+ if (bubble != null) {
+ bubble.hide();
+ } else {
+ LogUtil.i("ReturnToCallController.hide", "hide() called without calling show()");
+ }
+ }
+
+ private void show() {
+ if (bubble == null) {
+ bubble = startNewBubble();
+ } else {
+ bubble.show();
+ }
+ }
+
+ private Bubble startNewBubble() {
+ if (!Bubble.canShowBubbles(context)) {
+ LogUtil.i("ReturnToCallController.startNewBubble", "can't show bubble, no permission");
+ return null;
+ }
+ Bubble returnToCallBubble = Bubble.createBubble(context, generateBubbleInfo());
+ returnToCallBubble.show();
+ return returnToCallBubble;
+ }
+
+ @Override
+ public void onIncomingCall(DialerCall call) {}
+
+ @Override
+ public void onUpgradeToVideo(DialerCall call) {}
+
+ @Override
+ public void onSessionModificationStateChange(DialerCall call) {}
+
+ @Override
+ public void onCallListChange(CallList callList) {}
+
+ @Override
+ public void onDisconnect(DialerCall call) {
+ if (bubble != null && bubble.isShowing()) {
+ bubble.showText(context.getText(R.string.incall_call_ended));
+ }
+
+ if (!TelecomUtil.isInCall(context)) {
+ hide();
+ }
+ }
+
+ @Override
+ public void onWiFiToLteHandover(DialerCall call) {}
+
+ @Override
+ public void onHandoverToWifiFailed(DialerCall call) {}
+
+ @Override
+ public void onInternationalCallOnWifi(@NonNull DialerCall call) {}
+
+ @Override
+ public void onAudioStateChanged(CallAudioState audioState) {
+ this.audioState = audioState;
+ if (bubble != null) {
+ bubble.updateActions(generateActions());
+ }
+ }
+
+ private BubbleInfo generateBubbleInfo() {
+ return BubbleInfo.builder()
+ .setPrimaryColor(context.getResources().getColor(R.color.dialer_theme_color, null))
+ .setPrimaryIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_white_24))
+ .setPrimaryAction(
+ PendingIntent.getActivity(
+ context, 0, InCallActivity.getIntent(context, false, false, false), 0))
+ .setActions(generateActions())
+ .build();
+ }
+
+ @NonNull
+ private List<Action> generateActions() {
+ List<Action> actions = new ArrayList<>();
+ SpeakerButtonInfo speakerButtonInfo = new SpeakerButtonInfo(audioState, IconSize.SIZE_24_DP);
+
+ actions.add(
+ Action.builder()
+ .setIcon(Icon.createWithResource(context, speakerButtonInfo.icon))
+ .setName(context.getText(speakerButtonInfo.label))
+ .setChecked(speakerButtonInfo.isChecked)
+ .setAction(speakerButtonInfo.checkable ? toggleSpeaker : showSpeakerSelect)
+ .build());
+
+ actions.add(
+ Action.builder()
+ .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_mic_off_white_24))
+ .setName(context.getText(R.string.incall_label_mute))
+ .setChecked(audioState.isMuted())
+ .setAction(toggleMute)
+ .build());
+ actions.add(
+ Action.builder()
+ .setIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_end_white_24))
+ .setName(context.getText(R.string.incall_label_end_call))
+ .setAction(endCall)
+ .build());
+ return actions;
+ }
+
+ @NonNull
+ private PendingIntent createActionIntent(String actionToggleSpeaker) {
+ Intent toggleSpeaker = new Intent(context, ReturnToCallActionReceiver.class);
+ toggleSpeaker.setAction(actionToggleSpeaker);
+ return PendingIntent.getBroadcast(context, 0, toggleSpeaker, 0);
+ }
+}
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index 165b30b52..229f08c8e 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -62,11 +62,11 @@ import android.text.style.ForegroundColorSpan;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.ContactsUtils.UserType;
import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.contacts.common.lettertiles.LetterTileDrawable.ContactType;
import com.android.contacts.common.preference.ContactsPreferences;
import com.android.contacts.common.util.BitmapUtil;
import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.enrichedcall.EnrichedCallManager;
import com.android.dialer.enrichedcall.Session;
import com.android.dialer.multimedia.MultimediaData;
@@ -565,8 +565,9 @@ public class StatusBarNotifier
@VisibleForTesting
@Nullable
String getContentTitle(ContactCacheEntry contactInfo, DialerCall call) {
- if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
- return mContext.getResources().getString(R.string.conference_call_name);
+ if (call.isConferenceCall()) {
+ return CallerInfoUtils.getConferenceString(
+ mContext, call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE));
}
String preferredName =
@@ -604,20 +605,16 @@ public class StatusBarNotifier
if (contactInfo.photo == null) {
int width = (int) resources.getDimension(android.R.dimen.notification_large_icon_width);
int height = (int) resources.getDimension(android.R.dimen.notification_large_icon_height);
- int contactType = LetterTileDrawable.TYPE_DEFAULT;
+ @ContactType
+ int contactType =
+ LetterTileDrawable.getContactTypeFromPrimitives(
+ CallerInfoUtils.isVoiceMailNumber(context, call),
+ call.isSpam(),
+ contactInfo.isBusiness,
+ call.getNumberPresentation(),
+ call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE));
LetterTileDrawable lettertile = new LetterTileDrawable(resources);
- // TODO: Deduplicate across Dialer. b/36195917
- if (CallerInfoUtils.isVoiceMailNumber(context, call)) {
- contactType = LetterTileDrawable.TYPE_VOICEMAIL;
- } else if (contactInfo.isBusiness) {
- contactType = LetterTileDrawable.TYPE_BUSINESS;
- } else if (call.getNumberPresentation() == TelecomManager.PRESENTATION_RESTRICTED) {
- contactType = LetterTileDrawable.TYPE_GENERIC_AVATAR;
- } else if (call.isConferenceCall()
- && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) {
- contactType = LetterTileDrawable.TYPE_CONFERENCE;
- }
lettertile.setCanonicalDialerLetterTileDetails(
contactInfo.namePrimary == null ? contactInfo.number : contactInfo.namePrimary,
contactInfo.lookupKey,
@@ -694,20 +691,10 @@ public class StatusBarNotifier
}
if (isIncomingOrWaiting) {
- EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
- Session session = null;
- if (call.getNumber() != null) {
- session =
- manager.getSession(
- call.getUniqueCallId(),
- call.getNumber(),
- manager.createIncomingCallComposerFilter());
- }
-
if (call.isSpam()) {
resId = R.string.notification_incoming_spam_call;
- } else if (session != null) {
- resId = getECIncomingCallText(session);
+ } else if (shouldShowEnrichedCallNotification(call.getEnrichedCallSession())) {
+ resId = getECIncomingCallText(call.getEnrichedCallSession());
} else if (call.hasProperty(Details.PROPERTY_WIFI)) {
resId = R.string.notification_incoming_call_wifi;
} else {
@@ -731,6 +718,13 @@ public class StatusBarNotifier
return mContext.getString(resId);
}
+ private boolean shouldShowEnrichedCallNotification(Session session) {
+ if (session == null) {
+ return false;
+ }
+ return session.getMultimediaData().hasData() || session.getMultimediaData().isImportant();
+ }
+
private int getECIncomingCallText(Session session) {
int resId;
MultimediaData data = session.getMultimediaData();
@@ -756,8 +750,10 @@ public class StatusBarNotifier
} else {
resId = R.string.important_notification_incoming_call_with_photo;
}
- } else {
+ } else if (hasSubject) {
resId = R.string.important_notification_incoming_call_with_message;
+ } else {
+ resId = R.string.important_notification_incoming_call;
}
if (mContext.getString(resId).length() > 50) {
resId = R.string.important_notification_incoming_call_attachments;
@@ -1005,6 +1001,9 @@ public class StatusBarNotifier
@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 1f0541c4b..6be79305d 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -427,8 +427,10 @@ public class AnswerFragment extends Fragment
if (allowAnswerAndRelease()) {
answerAndReleaseButton.setVisibility(View.VISIBLE);
+ answerScreenDelegate.onAnswerAndReleaseButtonEnabled();
} else {
answerAndReleaseButton.setVisibility(View.INVISIBLE);
+ answerScreenDelegate.onAnswerAndReleaseButtonDisabled();
}
}
@@ -930,7 +932,7 @@ public class AnswerFragment extends Fragment
if (hasCallOnHold()) {
getAnswerMethod()
.setHintText(getText(R.string.call_incoming_default_label_answer_and_release_third));
- } else {
+ } else if (primaryCallState.supportsCallOnHold) {
getAnswerMethod()
.setHintText(getText(R.string.call_incoming_default_label_answer_and_release_second));
}
diff --git a/java/com/android/incallui/answer/impl/PillDrawable.java b/java/com/android/incallui/answer/impl/PillDrawable.java
deleted file mode 100644
index 57d84c45f..000000000
--- a/java/com/android/incallui/answer/impl/PillDrawable.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.incallui.answer.impl;
-
-import android.graphics.Rect;
-import android.graphics.drawable.GradientDrawable;
-
-/** Draws a pill-shaped background */
-public class PillDrawable extends GradientDrawable {
-
- public PillDrawable() {
- super();
- setShape(RECTANGLE);
- }
-
- @Override
- protected void onBoundsChange(Rect r) {
- super.onBoundsChange(r);
- setCornerRadius(r.height() / 2);
- }
-
- @Override
- public void setShape(int shape) {
- if (shape != GradientDrawable.RECTANGLE) {
- throw new UnsupportedOperationException("PillDrawable must be a rectangle");
- }
- super.setShape(shape);
- }
-}
diff --git a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
index 9a49075b8..600115e27 100644
--- a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
+++ b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml
@@ -41,6 +41,7 @@
android:layout_marginBottom="116dp"
android:layout_gravity="center_horizontal"
android:alpha="0"
+ android:gravity="center_horizontal"
android:text="@string/call_incoming_will_disconnect"
android:textColor="@color/blue_grey_100"
android:textSize="16sp"
@@ -59,6 +60,7 @@
android:layout_marginBottom="18dp"
android:layout_gravity="center_horizontal"
android:focusable="false"
+ android:gravity="center_horizontal"
android:text="@string/call_incoming_swipe_to_answer"
android:textAlignment="center"
android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"/>
@@ -110,6 +112,7 @@
android:layout_gravity="center_horizontal"
android:alpha="0"
android:focusable="false"
+ android:gravity="center_horizontal"
android:text="@string/call_incoming_swipe_to_reject"
android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"
tools:alpha="1"/>
diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
index 77b45ec71..9c33b5de6 100644
--- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
+++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
@@ -23,7 +23,6 @@ import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import com.android.dialer.common.Assert;
-import com.android.dialer.common.ConfigProvider;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
import com.android.dialer.util.DialerUtils;
@@ -35,8 +34,9 @@ import com.android.incallui.util.AccessibilityUtil;
*/
public class AnswerHintFactory {
- private static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY =
- "answer_hint_answered_threshold";
+ @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+ static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY = "answer_hint_answered_threshold";
+
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
static final String CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY =
"answer_hint_whitelisted_devices";
@@ -58,12 +58,7 @@ public class AnswerHintFactory {
@NonNull
public AnswerHint create(Context context, long puckUpDuration, long puckUpDelay) {
-
- if (shouldShowAnswerHint(
- context,
- ConfigProviderBindings.get(context),
- DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context),
- Build.PRODUCT)) {
+ if (shouldShowAnswerHint(context, Build.PRODUCT)) {
return new DotAnswerHint(context, puckUpDuration, puckUpDelay);
}
@@ -84,24 +79,23 @@ public class AnswerHintFactory {
}
@VisibleForTesting
- static boolean shouldShowAnswerHint(
- Context context,
- ConfigProvider configProvider,
- SharedPreferences sharedPreferences,
- String device) {
+ static boolean shouldShowAnswerHint(Context context, String device) {
if (AccessibilityUtil.isTouchExplorationEnabled(context)) {
return false;
}
// Devices that has the legacy dialer installed are whitelisted as they are likely to go through
// a UX change during updates.
- if (!isDeviceWhitelisted(device, configProvider)) {
+ if (!isDeviceWhitelisted(context, device)) {
return false;
}
// If the user has gone through the process a few times we can assume they have learnt the
// method.
- int answeredCount = sharedPreferences.getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
- long threshold = configProvider.getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
+ int answeredCount =
+ DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context)
+ .getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
+ long threshold =
+ ConfigProviderBindings.get(context).getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3);
LogUtil.i(
"AnswerHintFactory.shouldShowAnswerHint",
"answerCount: %d, threshold: %d",
@@ -115,8 +109,8 @@ public class AnswerHintFactory {
* @param configProvider should provide a list of devices quoted with '/' concatenated to a
* string.
*/
- private static boolean isDeviceWhitelisted(String device, ConfigProvider configProvider) {
- return configProvider
+ private static boolean isDeviceWhitelisted(Context context, String device) {
+ return ConfigProviderBindings.get(context)
.getString(CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY, DEFAULT_WHITELISTED_DEVICES_CSV)
.contains("/" + device + "/");
}
diff --git a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
index 21154cade..05358d831 100644
--- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
+++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
@@ -24,7 +24,9 @@ import android.os.Build.VERSION_CODES;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.util.DialerUtils;
+import com.android.incallui.answer.impl.hint.PawSecretCodeListener.PawType;
/** Decrypt the event payload to be shown if in a specific time range and the key is received. */
@TargetApi(VERSION_CODES.M)
@@ -40,10 +42,25 @@ public final class PawImageLoaderImpl implements PawImageLoader {
if (!preferences.getBoolean(PawSecretCodeListener.PAW_ENABLED_WITH_SECRET_CODE_KEY, false)) {
return null;
}
- int drawableId = preferences.getInt(PawSecretCodeListener.PAW_DRAWABLE_ID_KEY, 0);
- if (drawableId == 0) {
- return null;
+ @PawType
+ int pawType =
+ preferences.getInt(PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID);
+
+ if (pawType == PawSecretCodeListener.PAW_TYPE_INVALID) {
+ LogUtil.i("PawImageLoaderImpl.loadPayload", "paw type not found, rerolling");
+ PawSecretCodeListener.selectPawType(preferences);
+ pawType =
+ preferences.getInt(
+ PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID);
+ }
+
+ 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 a8737c363..3b4512c4f 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.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
+import android.support.annotation.IntDef;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.widget.Toast;
@@ -29,6 +29,7 @@ import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
import com.android.dialer.logging.DialerImpression.Type;
import com.android.dialer.logging.Logger;
+import com.android.dialer.util.DialerUtils;
import java.util.Random;
/**
@@ -40,7 +41,20 @@ public class PawSecretCodeListener extends BroadcastReceiver {
static final String CONFIG_PAW_SECRET_CODE = "paw_secret_code";
public static final String PAW_ENABLED_WITH_SECRET_CODE_KEY = "paw_enabled_with_secret_code";
- public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id";
+
+ /** Which paw to show, must be {@link PawType} */
+ public static final String PAW_TYPE = "paw_type";
+
+ /** Resource id is not stable across app versions. Use {@link #PAW_TYPE} instead. */
+ @Deprecated public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id";
+
+ /** Enum for all paws. */
+ @IntDef({PAW_TYPE_INVALID, PAW_TYPE_CAT, PAW_TYPE_DOG})
+ @interface PawType {}
+
+ public static final int PAW_TYPE_INVALID = 0;
+ public static final int PAW_TYPE_CAT = 1;
+ public static final int PAW_TYPE_DOG = 2;
@Override
public void onReceive(Context context, Intent intent) {
@@ -54,7 +68,8 @@ public class PawSecretCodeListener extends BroadcastReceiver {
if (!TextUtils.equals(secretCode, host)) {
return;
}
- SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+ SharedPreferences preferences =
+ DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context);
boolean wasEnabled = preferences.getBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false);
if (wasEnabled) {
preferences.edit().putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false).apply();
@@ -62,20 +77,24 @@ public class PawSecretCodeListener extends BroadcastReceiver {
Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_DEACTIVATED);
LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint disabled");
} else {
- int drawableId;
- if (new Random().nextBoolean()) {
- drawableId = R.drawable.cat_paw;
- } else {
- drawableId = R.drawable.dog_paw;
- }
- preferences
- .edit()
- .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true)
- .putInt(PAW_DRAWABLE_ID_KEY, drawableId)
- .apply();
+ selectPawType(preferences);
Toast.makeText(context, R.string.event_activated, Toast.LENGTH_SHORT).show();
Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_ACTIVATED);
LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint enabled");
}
}
+
+ public static void selectPawType(SharedPreferences preferences) {
+ @PawType int pawType;
+ if (new Random().nextBoolean()) {
+ pawType = PAW_TYPE_CAT;
+ } else {
+ pawType = PAW_TYPE_DOG;
+ }
+ preferences
+ .edit()
+ .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true)
+ .putInt(PAW_TYPE, pawType)
+ .apply();
+ }
}
diff --git a/java/com/android/incallui/answer/impl/res/values-af/strings.xml b/java/com/android/incallui/answer/impl/res/values-af/strings.xml
index 82a87963d..b155ee874 100644
--- a/java/com/android/incallui/answer/impl/res/values-af/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-af/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swiep vanaf ikoon om met boodskap af te wys"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Antwoord en beëindig die voortgesette oproep"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is af"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swiep op met twee vingers om te antwoord. Swiep af met twee vingers om af te wys."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Belangrik"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-am/strings.xml b/java/com/android/incallui/answer/impl/res/values-am/strings.xml
index 40869773e..c27705fd2 100644
--- a/java/com/android/incallui/answer/impl/res/values-am/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-am/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"በመልዕክት ላለመቀበል ከአዶ ያንሸራቱ"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ይመልሱ እና በመካሄድ ላይ ያለ ጥሪን ይጨርሱ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ቪዲዮ ጠፍቷል"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ለመመለስ በሁለት ጣት ወደ ላይ ያንሸራቱ። ላለመቀበል በሁለት ጣት ወደ ታች ያንሸራቱ።"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"አስቸኳይ"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"አስፈላጊ"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
index fc29c16fa..e3f84fff5 100644
--- a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"تمرير سريع من الرمز للرفض مع إرسال رسالة"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"الرد وإنهاء مكالمة جارية"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"الفيديو قيد إيقاف التشغيل"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"مرر بأصبعين لأعلى للرد. مرر بأصبعين لأسفل للرفض."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"عاجل"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"مهم"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-az/strings.xml b/java/com/android/incallui/answer/impl/res/values-az/strings.xml
index fff561de3..5d113b48d 100644
--- a/java/com/android/incallui/answer/impl/res/values-az/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-az/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Mesaj göndərərək imtina etmək üçün ikonadan sürüşdürün"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Cavab verin və gedən zəngi bitirin"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoları deaktivdir"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cavab vermək üçün iki barmaq ilə yuxarı sürüşdürün. İmtina etmək üçün iki barmaq ilə aşağı sürüşdürün."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Vacib"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Önəmli"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
index 7b29bfa66..3acc576d9 100644
--- a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prevucite od ikone da biste odbili porukom"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Javite se i završite poziv koji je u toku"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite nagore pomoću dva prsta da biste odgovorili. Prevucite nadole pomoću dva prsta da biste odbili."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-be/strings.xml b/java/com/android/incallui/answer/impl/res/values-be/strings.xml
index 228a80f7f..4f34150e6 100644
--- a/java/com/android/incallui/answer/impl/res/values-be/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-be/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Правядзіце ад значка, каб адхіліць, адправіўшы SMS"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Адказаць і скончыць бягучы выклік"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відэа адключана"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Правядзіце двума пальцамі ўверх, каб адказаць; двума пальцамі ўніз – каб адхіліць."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Тэрмінова"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Важны"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
index 4e9422f00..54a5ab946 100644
--- a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Прекарайте пръст от иконата, за да отхвърлите със съобщение"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Отговор и завършване на текущото обаждане"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е изключено"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Прекарайте два пръста нагоре за отговаряне, надолу за отхвърляне."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Спешно"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
index 869f7b9ae..d2aa4c3f3 100644
--- a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"বার্তা সহ প্রত্যাখ্যান করতে আইকন থেকে সোয়াইপ করুন"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"উত্তর দিন এবং চলছে এমন কল কেটে দিন"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ভিডিও বন্ধ আছে"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"উত্তর দিতে উপরের দিকে, প্রত্যাখ্যান করতে নিচের দিকে দুই আঙুল দিয়ে সোয়াইপ করুন৷"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"জরুরি"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"গুরুত্বপূর্ণ"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
index b36e178f4..e17588750 100644
--- a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prevucite preko ikone da odbijete porukom"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i završite ga"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite pomoću dva prsta prema gore da odgovorite. Prevucite pomoću dva prsta prema dolje da odbijete."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
index 13b3b321a..538e0d3e0 100644
--- a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Llisca des de la icona per rebutjar la trucada amb un missatge"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Respon a la trucada i finalitza l\'actual"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo està desactivat"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Llisca amb dos dits cap amunt per respondre a la trucada i cap avall per rebutjar-la."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
index 6c6903041..626409ead 100644
--- a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Přejetím prstem od ikony hovor odmítnete a pošlete zprávu"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Přijmout hovor a ukončit probíhající hovor"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Přejetím dvěma prsty nahoru hovor přijmete. Přejetím dvěma prsty dolů jej odmítnete."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Naléhavé"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Důležité"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-da/strings.xml b/java/com/android/incallui/answer/impl/res/values-da/strings.xml
index 3a87d44fe..387089116 100644
--- a/java/com/android/incallui/answer/impl/res/values-da/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-da/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Stryg fra ikonet for at afvise med en besked"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Besvar, og afslut det igangværende opkald"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er deaktiveret"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Stryg op med to fingre for at besvare. Stryg ned med to fingre for at afvise."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Vigtigt"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-de/strings.xml b/java/com/android/incallui/answer/impl/res/values-de/strings.xml
index f4356d29f..ab3c33cc5 100644
--- a/java/com/android/incallui/answer/impl/res/values-de/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-de/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Zum Ablehnen mit Nachricht vom Symbol wegwischen"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Nimm den Anruf an und beende den aktuellen Anruf"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video deaktiviert"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Zum Annehmen mit zwei Fingern nach oben wischen. Zum Ablehnen mit zwei Fingern nach unten wischen."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Dringend"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Wichtig"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-el/strings.xml b/java/com/android/incallui/answer/impl/res/values-el/strings.xml
index 9c9a0f35f..d847aac54 100644
--- a/java/com/android/incallui/answer/impl/res/values-el/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-el/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Σύρετε από το εικονίδιο προς τα έξω για απόρριψη του μηνύματος"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Απάντηση και τερματισμός κλήσης σε εξέλιξη"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Το βίντεο είναι ανενεργό"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Σύρετε με δύο δάχτυλα, προς τα επάνω για απάντηση και προς τα κάτω για απόρριψη."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Επείγον"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Σημαντικό"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
index fb8d15682..fe6aa4607 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
index fb8d15682..fe6aa4607 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
index fb8d15682..fe6aa4607 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swipe from icon to decline with a message"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
index 14928eeb6..60fcd014e 100644
--- a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Desliza desde el ícono para rechazar la llamada con un mensaje"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder y finalizar la llamada en curso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"El video está desactivado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder la llamada o hacia abajo para rechazarla."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es/strings.xml b/java/com/android/incallui/answer/impl/res/values-es/strings.xml
index 972bbc503..7b2f19a81 100644
--- a/java/com/android/incallui/answer/impl/res/values-es/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-es/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Desliza desde el icono para rechazar con mensaje"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder a una llamada y finalizar otra en curso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo está desconectado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder o hacia abajo para rechazar la llamada."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-et/strings.xml b/java/com/android/incallui/answer/impl/res/values-et/strings.xml
index 9e303bb16..b4632d184 100644
--- a/java/com/android/incallui/answer/impl/res/values-et/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-et/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sõnumiga keeldumiseks pühkige ikoonilt eemale"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastake ja lõpetage käimasolev kõne"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video on välja lülitatud"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastamiseks pühkige kahe sõrmega üles. Keeldumiseks pühkige kahe sõrmega alla."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Kiireloomuline"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Tähtis"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
index a1f6d717d..118a2c74d 100644
--- a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Pasatu hatza ikonotik baztertzeko eta mezu bat bidaltzeko"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Erantzun eta amaitu uneko deia"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Desaktibatuta dago kamera"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasatu bi hatz gora erantzuteko; eta behera, baztertzeko."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Premiazkoa"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Garrantzitsua"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
index 28cf82619..971b172ef 100644
--- a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"برای رد کردن با ارسال پیام، انگشتتان را تند از روی نماد بکشید"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"پاسخ دادن به تماس درحال انجام و پایان دادن به آن"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویدیو خاموش است"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"برای پاسخ‌گویی، دو انگشتتان را تند به بالا بکشید و برای رد کردن به پایین بکشید."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"فوری"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"مهم"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
index 8b8eac942..7ae9a1f87 100644
--- a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Hylkää ja kirjoita viesti pyyhkäisemällä kuvaketta."</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastaa puheluun ja lopeta nykyinen puhelu"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokuva ei ole käytössä."</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastaa pyyhkäisemällä ylös kahdella sormella. Hylkää pyyhkäisemällä alas kahdella sormella."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Kiireellinen"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Tärkeä"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
index 9ea27b89c..ce454b5ce 100644
--- a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Balayez à partir de l\'icône pour refuser avec un message"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre et mettre fin à l\'appel en cours"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez vers le haut avec deux doigts pour répondre. Balayez vers le bas avec deux doigts pour refuser."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
index 3aa3c12c9..7f77ed0c8 100644
--- a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Appuyer sur l\'icône, puis balayer l\'écran pour refuser l\'appel en envoyant un message"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre ou mettre fin à l\'appel en cours"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée."</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez l\'écran avec deux doigts vers le haut pour répondre, ou vers le bas pour refuser l\'appel."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Importants"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
index 16c0f6969..07e0c516d 100644
--- a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Pasar o dedo desde a icona para rexeitar cunha mensaxe"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responde á chamada entrante e finaliza a chamada en curso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desactivado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasa dous dedos cara arriba para responder a chamada ou cara abaixo para rexeitala."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urxente"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
index 3f99c7108..845e9def8 100644
--- a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"સંદેશ સાથે નકારવા માટે આઇકનથી સ્વાઇપ કરો"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"જવાબ આપો અને ચાલુ કૉલ સમાપ્ત કરો"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"વિડિઓ બંધ છે"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"જવાબ આપવા માટે બે આંગળી ઉપર સ્વાઇપ કરો. નકારવા માટે બે આંગળી નીચે સ્વાઇપ કરો."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"તાત્કાલિક"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"મહત્વપૂર્ણ"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
index f28505f7c..e8e3c75c4 100644
--- a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"संदेश के साथ अस्वीकार करने के लिए आइकन से स्वाइप करें"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"कॉल का जवाब दें और जारी कॉल समाप्त करें"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"वीडियो बंद है"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाब देने के लिए दो अंगुलियों से ऊपर स्वाइप करें. अस्वीकार करने के लिए दो अंगुलियों से नीचे स्वाइप करें."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"बहुत ज़रूरी"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"महत्वपूर्ण"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
index 280743976..ffd0c9b8c 100644
--- a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prijeđite prstom od ikone da biste odbili poruku"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i prekinite poziv u tijeku"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokamera je isključena"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prijeđite dvama prstima prema gore za odgovor, a dvama prstima prema dolje za odbijanje."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Hitno"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Važno"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
index d7dacbfe0..13ec7da17 100644
--- a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Csúsztassa el az ujját az ikonról az üzenettel való elutasításhoz"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Hívásfogadás és a folyamatban lévő hívás befejezése"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"A videokép ki van kapcsolva"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Csúsztassa felfelé két ujját a hívás fogadásához. Csúsztassa lefelé két ujját a hívás elutasításához."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Sürgős"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Fontos"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
index 4492833d9..7fb7ef45f 100644
--- a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Զանգը մերժելու և հաղորդագրություն ուղարկելու համար պատկերակից մատով մի կողմ սահեցրեք"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Պատասխանել և ավարտել ընթացիկ զանգը"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Տեսախցիկն անջատած է"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Պատասխանելու համար երկու մատով սահեցրեք վերև, մերժելու համար՝ ներքև:"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Շտապ"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Կարևոր"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-in/strings.xml b/java/com/android/incallui/answer/impl/res/values-in/strings.xml
index a1fd19f6e..48d71af9a 100644
--- a/java/com/android/incallui/answer/impl/res/values-in/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-in/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Gesek dari ikon untuk menolak dengan pesan"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Menjawab dan mengakhiri panggilan yang sedang berlangsung"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video nonaktif"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Geser ke atas dengan dua jari untuk menjawab. Geser ke bawah dengan dua jari untuk menolak."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Penting"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Penting"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-is/strings.xml b/java/com/android/incallui/answer/impl/res/values-is/strings.xml
index c4f9eb40c..a92a411ee 100644
--- a/java/com/android/incallui/answer/impl/res/values-is/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-is/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Strjúktu frá tákninu til að hafna með skilaboðum"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara og ljúka yfirstandandi símtali"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Slökkt á myndavél"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Strjúktu upp með tveimur fingrum til að svara. Strjúktu niður með tveimur fingrum til að hafna."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Áríðandi"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Mikilvægt"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-it/strings.xml b/java/com/android/incallui/answer/impl/res/values-it/strings.xml
index 70e972212..b29bca7c8 100644
--- a/java/com/android/incallui/answer/impl/res/values-it/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-it/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Fai scorrere dall\'icona per rifiutare e inviare un messaggio"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Rispondi e termina la chiamata in corso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Il video è disattivato"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Fai scorrere con due dita verso l\'alto per rispondere e verso il basso per rifiutare."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
index 08c02e389..6544e8f3c 100644
--- a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"החלק מהסמל כדי לדחות עם הודעה"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"מענה וסיום שיחה"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"הווידאו מושבת"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"החלק עם שתי אצבעות למעלה כדי לענות או למטה כדי לדחות."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"דחופה"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"חשוב"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
index b7bd65bc4..83f8f094a 100644
--- a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"アイコンをスワイプして着信を拒否し、メッセージを送信"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"通話に応答し、進行中の通話を終了"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ビデオ: OFF"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"応答するには 2 本の指で上にスワイプ、拒否するには 2 本の指で下にスワイプします。"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
index 681306776..4a1120c69 100644
--- a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"გადაუსვით ხატულადან შეტყობინებით უარყოფისთვის"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"პასუხი და მიმდინარე ზარის დასრულება"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ვიდეო გამორთულია"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"საპასუხოდ გადაფურცლეთ ზემოთ ორი თითით. უარყოფისთვის გადაფურცლეთ ქვემოთ ორი თითით."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"სასწრაფო"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"მნიშვნელოვანი"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
index 3d1863323..69cf9497d 100644
--- a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Қабылдамай, жай хабар жіберу үшін, белгішеден әрі қарай сырғытыңыз"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Қоңырауға жауап беру және ағымдағы қоңырауды аяқтау"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Бейне өшірулі"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жауап беру үшін екі саусақпен жоғары сырғытылады. Қабылдамау үшін екі саусақпен төмен сырғытылады."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Шұғыл"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Маңызды"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-km/strings.xml b/java/com/android/incallui/answer/impl/res/values-km/strings.xml
index 89f9031e9..db65a97f5 100644
--- a/java/com/android/incallui/answer/impl/res/values-km/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-km/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"អូស​ចេញ​ពី​រូបតំណាង​ដើម្បី​បដិសេធ​​ដោយ​មាន​សារ"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ឆ្លើយ និង​បញ្ចប់​ការ​ហៅ​ទូរសព្ទ​ដែល​កំពុង​ដំណើរការ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"វីដេអូត្រូវបានបិទ"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"អូស​ម្រាម​ដៃ​ពីរ​ឡើងលើ​ ដើម្បី​ឆ្លើយ។ អូស​ម្រាមដៃ​ពីរ​ចុះ​ក្រោម​ ដើម្បី​បដិសេធ។"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"បន្ទាន់"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"សំខាន់"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
index f02a6b8a3..8426aef46 100644
--- a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ಸಂದೇಶದ ಜೊತೆಗೆ ನಿರಾಕರಿಸಲು ಐಕಾನ್‌ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆಗೆ ಉತ್ತರಿಸಿ ಮತ್ತು ಅಂತ್ಯಗೊಳಿಸಿ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ವೀಡಿಯೊ ಆಫ್ ಆಗಿದೆ"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ಉತ್ತರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ನಿರಾಕರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಕೆಳಗೆ ಸ್ವೈಪ್ ಮಾಡಿ."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"ತುರ್ತು"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"ಪ್ರಮುಖ"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
index 850b44007..6b6beff85 100644
--- a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"메시지를 거부하려면 아이콘에서 스와이프하세요."</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"현재 통화를 종료하고 전화 받기"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"동영상이 꺼져 있습니다."</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"받으려면 두 손가락을 위로 스와이프하고 거부하려면 두 손가락을 아래로 스와이프하세요."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"긴급"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"중요"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
index dc08e8449..6dd5a2dd7 100644
--- a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Чалууну билдирүү менен четке кагуу үчүн сүрөтчөнү сүрүңүз"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Чалууга жооп бериңиз же учурдагы чалууну аяктаңыз"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео өчүк"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жооп берүү үчүн экранды өйдө сүрүп, четке кагуу үчүн ылдый сүрүп коюңуз."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Шашылыш"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Маанилүү"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
index 06ad00c88..776c027b5 100644
--- a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ປັດຈາກໄອຄອນເພື່ອປະຕິເສດຂໍ້ຄວາມ"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ຮັບສາຍ ແລະ ວາງສາຍທີ່ກຳລັງໂທອອກ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ວິດີໂອປິດຢູ່"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ປັດສອງນິ້ວຂຶ້ນເພື່ອຮັບສາຍ. ປັດສອງນິ້ວລົງເພື່ອປະຕິເສດ."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"ດ່ວນ"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"ສຳຄັນ"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
index 3366e337b..2ef70eaff 100644
--- a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Perbraukite iš piktogramos, kad atmestumėte išsiųsdami pranešimą"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atsakykite ir užbaikite vykstantį skambutį"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Vaizdas išjungtas"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Perbraukite dviem pirštais aukštyn, kad atsakytumėte. Perbraukite dviem pirštais žemyn, kad atmestumėte."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Skubus"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Svarbu"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
index 49d1dc9f4..3fc754db4 100644
--- a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Lai noraidītu, izmantojot ziņojumu, velciet no ikonas"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atbildiet un beidziet notiekošo zvanu"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video ir izslēgts"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ar diviem pirkstiem velciet augšup, lai atbildētu. Ar diviem pirkstiem velciet lejup, lai noraidītu."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Steidzams"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Svarīgs"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
index c068f665b..deeba45e6 100644
--- a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Повлечете од иконата за да одбиете со порака"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Одговорете и завршете го тековниот повик"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е исклучено"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Повлечете нагоре со два прста за да одговорите. Повлечете надолу со два прста за да одбиете."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Итно"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
index 8e1d492e7..d8ce90dab 100644
--- a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"സന്ദേശമയച്ചുകൊണ്ട് നിരസിക്കാൻ ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"മറുപടി നൽകുകയും നിലവിലുള്ള കോൾ അവസാനിപ്പിക്കുകയും ചെയ്യൂ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"വീഡിയോ ഓഫാണ്"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"മറുപടി നൽകാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക. നിരസിക്കാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് താഴേക്ക് സ്വൈപ്പുചെയ്യുക."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"അടിയന്തിര പ്രാധാന്യം"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"പ്രധാനപ്പെട്ടവ"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
index 4bdd912ad..aaa16213a 100644
--- a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Зурвас явуулангаа татгалзах бол дүрснээс шударна уу"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ирсэн дуудлагыг авч, одоогийн дуудлагыг таслах"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео идэвхгүй байна"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Хариулах бол хоёр хуруугаар дээш шударна уу. Таслах бол хоёр хуруугаар доош шударна уу."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Яаралтай"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Чухал"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
index 11c826896..eea662fa1 100644
--- a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"संदेशासह नाकारण्यासाठी आयकॉनपासून स्वाइप करा"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"उत्तर द्या आणि सुरु असलेला कॉल बंद करा"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"व्हिडिओ बंद आहे"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"उत्तर देण्यासाठी दोन बोटांनी वर स्वाइप करा. नकार देण्यासाठी दोन बोटांनी खाली स्वाइप करा."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"त्वरित"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"महत्त्वाचे"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
index 36ede7568..04b054e4e 100644
--- a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Leret dari ikon untuk menolak dengan mesej"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jawab dan tamatkan panggilan yang sedang berlangsung"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video dimatikan"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Leret dua jari ke atas untuk menjawab. Leret dua jari ke bawah untuk menolak."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Segera"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Penting"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-my/strings.xml b/java/com/android/incallui/answer/impl/res/values-my/strings.xml
index 5ad7a8284..f3d6a2e38 100644
--- a/java/com/android/incallui/answer/impl/res/values-my/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-my/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"မက်ဆေ့ဂျ်ဖြင့်ငြင်းပယ်ရန် သင်္ကေတမှ ပွတ်ဆွဲပါ"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ဖြေကြားပြီး လက်ရှိခေါ်ဆိုမှုကို အပြီးသတ်ပါ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ဗီဒီယို ပိတ်ထားပါသည်"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ဖြေကြားရန် လက်နှစ်ချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပါ။ ငြင်းပယ်ရန် လက်နှစ်ချောင်းဖြင့် အောက်သို့ ပွတ်ဆွဲပါ။"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"အရေးတကြီး"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"အရေးကြီး"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
index b1c32bea4..42ff3d0af 100644
--- a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sveip fra ikonet for å avslå med en melding"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Viktig"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
index 40ef7b6e3..f0b8641af 100644
--- a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"सन्देश सहित अस्वीकार गर्न आइकनबाट स्वाइप गर्नुहोस्"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"जवाफ फर्काउनुहोस् र जारी कललाई अन्त्य गर्नुहोस्"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"भिडियो निष्क्रिय छ"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाफ दिन दुई औंलाले माथितिर स्वाइप गर्नुहोस्। अस्वीकार गर्न दुई औंलाले तलतिर स्वाइप गर्नुहोस्।"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"जरुरी"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"महत्त्वपूर्ण"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
index b2f619fa3..89c956a9f 100644
--- a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Veeg vanaf pictogram om te weigeren met bericht"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Opnemen en actieve oproep beëindigen"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is uit"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Veeg met twee vingers omhoog om te beantwoorden. Veeg met twee vingers omlaag om te weigeren."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Belangrijk"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-no/strings.xml b/java/com/android/incallui/answer/impl/res/values-no/strings.xml
index b1c32bea4..42ff3d0af 100644
--- a/java/com/android/incallui/answer/impl/res/values-no/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-no/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Sveip fra ikonet for å avslå med en melding"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Haster"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Viktig"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
index d2b14523c..3772f291f 100644
--- a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"ਸੁਨੇਹੇ ਦੇ ਨਾਲ ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਚਿੰਨ੍ਹ ਤੋਂ ਸਵਾਈਪ ਕਰੋ"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ਜਵਾਬ ਦਿਓ ਅਤੇ ਜਾਰੀ ਕਾਲ ਨੂੰ ਸਮਾਪਤ ਕਰੋ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ਵੀਡੀਓ ਬੰਦ ਹੈ"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ਜਵਾਬ ਦੇਣ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"ਜ਼ਰੂਰੀ"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"ਮਹੱਤਵਪੂਰਨ"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
index b0c44e72a..f6e1f1ba4 100644
--- a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Przesuń palcem od ikony, aby odrzucić połączenie i wysłać wiadomość"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odbierz połączenie i zakończ trwającą rozmowę"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Wideo jest wyłączone"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Przesuń dwoma palcami w górę, aby odebrać. Przesuń dwoma palcami w dół, aby odrzucić."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Pilne"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Ważne"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
index fe1c89de4..1ed245140 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize a partir do ícone para recusar com uma mensagem"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
index 1a23a4a9d..f1e17a1d9 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize rapidamente a partir do ícone para recusar com uma mensagem"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e terminar uma chamada em curso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize rapidamente com dois dedos para cima para responder. Deslize rapidamente com dois dedos para baixo para recusar."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
index fe1c89de4..1ed245140 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Deslize a partir do ícone para recusar com uma mensagem"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgente"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Importante"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
index 6c8bafa28..0b1f4f481 100644
--- a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Glisați de pe pictogramă pentru a respinge cu un mesaj"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Răspundeți și încheiați apelul în curs"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Camera video este dezactivată."</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Glisați cu două degete în sus pentru a răspunde și în jos pentru a respinge."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgent"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Important"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
index 67ff06a34..d1fdcf73e 100644
--- a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Чтобы отклонить вызов и отправить SMS, проведите пальцем от значка"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ответить и завершить текущий вызов"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера выключена"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведите двумя пальцами по экрану вверх, чтобы ответить, или вниз, чтобы отклонить вызов."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Срочно"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Важный звонок"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-si/strings.xml b/java/com/android/incallui/answer/impl/res/values-si/strings.xml
index ae3c08008..99f4989aa 100644
--- a/java/com/android/incallui/answer/impl/res/values-si/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-si/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"පණිවිඩය සහිතව ප්‍රතික්ෂේප කිරීමට නිරූපකයේ සිට ස්වයිප් කරන්න"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"යන අැමතුමට පිළිතරු දී අවසන් කරන්න"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"වීඩියෝව ක්‍රියාවිරහිතයි"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"පිළිතුරු දීමට ඇඟිලි දෙකකින් ඉහළට ස්වයිප් කරන්න, ප්‍රතික්ෂේප කිරීමට ඇඟිලි දෙකකින් පහළට ස්වයිප් කරන්න."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"හදිසි"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"වැදගත්"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
index 179be7b08..fa00ac4c6 100644
--- a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Prejdením prstom od ikony odmietnuť so správou"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Prijať hovor a ukončiť prebiehajúci hovor"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ak chcete hovor prijať, prejdite dvomi prstami nahor. Ak ho chcete odmietnuť, prejdite dvomi prstami nadol."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Naliehavé"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Dôležité"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
index 5f658be9d..147a09835 100644
--- a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Povlecite z ikone, da klic zavrnete s sporočilom"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sprejmi klic in končaj aktivni klic"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je izklopljen"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Z dvema prstoma povlecite navzgor, da sprejmete klic. Z dvema prstoma povlecite navzdol, da zavrnete klic."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Nujno"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Pomembno"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
index 1de60c9c9..e71691af8 100644
--- a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Rrëshqit nga ikona për të refuzuar me mesazh"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Përgjigju dhe mbyll telefonatën në vazhdim"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoja është joaktive"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Rrëshqit dy gishta lart për t\'u përgjigjur. Rrëshqit dy gishta poshtë për të refuzuar."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Urgjente"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"E rëndësishme"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
index 4d6ef5636..c802b0e97 100644
--- a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Превуците од иконе да бисте одбили поруком"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Јавите се и завршите позив који је у току"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера је искључена"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Превуците нагоре помоћу два прста да бисте одговорили. Превуците надоле помоћу два прста да бисте одбили."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Хитно"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Важно"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
index e47b4e0a3..2265dc4c2 100644
--- a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Svep från ikonen för att avvisa med meddelande"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara och avsluta pågående samtal"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video avstängd"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Dra två fingrar uppåt för att svara och två nedåt för att avvisa."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Brådskande"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Viktigt"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
index 1e5896662..26e1b7ab5 100644
--- a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Telezesha kidole ukianzia kwenye aikoni ili utume ujumbe wa kukataa"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jibu na ukate simu inayoendelea"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video imezimwa"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Telezesha juu kwa vidole viwili ili uijibu. Telezesha chini kwa vidole viwili ili uikate."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Dharura"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Muhimu"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
index 847936f5b..453781dae 100644
--- a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"செய்தியுடன் நிராகரிக்க, ஐகானிலிருந்து ஸ்வைப் செய்யவும்"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"உள்வரும் அழைப்பிற்குப் பதிலளித்து, செயலில் உள்ள அழைப்பை முடிக்கும்"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"வீடியோ முடக்கப்பட்டுள்ளது"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"பதிலளிக்க, இரு விரல்களால் மேலே ஸ்வைப் செய்யவும். நிராகரிக்க, இரு விரல்களால் கீழே ஸ்வைப் செய்யவும்."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"அவசரம்"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"முக்கிய அழைப்பு"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-te/strings.xml b/java/com/android/incallui/answer/impl/res/values-te/strings.xml
index abc390294..e0e508768 100644
--- a/java/com/android/incallui/answer/impl/res/values-te/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-te/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"సందేశంతో తిరస్కరించడానికి చిహ్నం నుండి స్వైప్ చేయండి"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"సమాధానం ఇస్తుంది మరియు కొనసాగుతున్న కాల్‌ను ముగిస్తుంది"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"వీడియో ఆఫ్‌లో ఉంది"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"సమాధానం ఇవ్వడానికి రెండు వేళ్లతో పైకి స్వైప్ చేయండి. తిరస్కరించడానికి రెండు వేళ్లతో క్రిందికి స్వైప్ చేయండి."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"అత్యవసరం"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"ముఖ్యమైనది"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-th/strings.xml b/java/com/android/incallui/answer/impl/res/values-th/strings.xml
index 54069b3d8..695da74f7 100644
--- a/java/com/android/incallui/answer/impl/res/values-th/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-th/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"เลื่อนไอคอนเพื่อปฏิเสธสายด้วยข้อความ"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"รับและวางสาย"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"วิดีโอปิดอยู่"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ใช้สองนิ้วเลื่อนขึ้นเพื่อรับสายและเลื่อนลงเพื่อตัดสาย"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"ด่วน"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"สำคัญ"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
index 8f87b5605..6128d6fad 100644
--- a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"I-swipe mula sa icon upang tanggihan gamit ang mensahe"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sagutin at tapusin ang kasalukuyang tawag"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Naka-off ang video"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"I-swipe nang pataas gamit ang dalawang daliri upang sagutin. I-swipe nang pababa gamit ang dalawang daliri upang tanggihan."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Apurahan"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Mahalaga"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
index 53f5eb9a9..87583c03d 100644
--- a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Mesajla reddetmek için, simgeden hızlıca kaydırın"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Bir çağrı cevaplanır ve devam eden çağrı sona erdirilir"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video kapalı"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cevaplamak için iki parmağınızla hızlıca yukarı kaydırın. Reddetmek içinse iki parmağınızla hızlıca aşağı kaydırın."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Acil"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Önemli"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
index a0332d377..76eb2b0a2 100644
--- a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Проведіть пальцем убік від значка, щоб відхилити з повідомленням"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Відповісти на виклик, завершивши поточний"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відео вимкнено"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведіть двома пальцями вгору, щоб відповісти, або вниз, щоб відхилити дзвінок."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Терміново"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Важливо"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
index e1813cbf7..2a44e9083 100644
--- a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"پیغام کے ساتھ رد کرنے کیلئے آئیکن سے سوائپ کریں"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"جواب دیں اور جاری کال ختم کریں"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویڈیو آف ہے"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"جواب دینے کیلئے دوانگلیوں کے ساتھ اوپر سوائپ کریں۔ مسترد کرنے کیلئے دو انگلیوں کے ساتھ نیچے سوائپ کریں۔"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"ارجنٹ"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"اہم"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
index b83abcce0..f348a499d 100644
--- a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Qo‘ng‘iroqni SMS bilan rad etish uchun nishonchadan suring."</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Kiruvchi chaqiruvga javob berish va joriy qo‘ng‘iroqni tugatish"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera o‘chiq"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Chaqiruvga javob berish uchun ikki barmoq bilan tepaga, rad etish uchun ikki barmoq bilan pastga suring."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Juda muhim"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Muhim qo‘ng‘iroq"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
index 94dd1c386..f4dfa5b1d 100644
--- a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Vuốt từ biểu tượng để từ chối kèm thông báo"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Trả lời và kết thúc cuộc gọi đang diễn ra"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video đã tắt"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vuốt hai ngón tay lên để trả lời. Vuốt hai ngón tay xuống để từ chối."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Khẩn cấp"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Quan trọng"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
index fc7ce6409..9698aa06d 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"滑动图标即可拒接来电并发送信息"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接听并结束当前通话"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"摄像头处于关闭状态"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"双指向上滑动即可接听,向下滑动则可拒接。"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"紧急"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
index 97955396f..81a88151b 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"從圖示快速滑動即可透過訊息拒絕"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽及結束進行中的通話"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"視像已關閉"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"兩指向上滑動可接聽,向下滑動則可拒接。"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"重要事項"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
index f27e5ae5b..8f04992d1 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"滑動圖示即可拒接來電並傳送簡訊"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽來電及結束進行中的通話"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"已關閉攝影機"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"用雙指向上滑動可接聽,向下滑動可拒接。"</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"緊急"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"重要"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
index 52f2400eb..23c988eaa 100644
--- a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="call_incoming_swipe_to_decline_with_message" msgid="2426342919316424240">"Swayipha isithonjana ukuze wenqabe ngomlayezo"</string>
@@ -20,5 +36,5 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Phendula uphinde uqede ikholi eqhubekayo"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Ividiyo ivaliwe"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swayiphela iminwe emibili phezulu ukuze uphendule. Swayiphela iminwe emibili phansi ukuze wenqabe."</string>
- <string name="call_incoming_important" msgid="4090408168895243702">"Okuphuthumayo"</string>
+ <string name="call_incoming_important" msgid="3762352743365137090">"Kubalulekile"</string>
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values/strings.xml b/java/com/android/incallui/answer/impl/res/values/strings.xml
index 235922047..de5ee6e69 100644
--- a/java/com/android/incallui/answer/impl/res/values/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values/strings.xml
@@ -1,4 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
<resources>
<string name="call_incoming_swipe_to_decline_with_message">Swipe from icon to decline with message</string>
<string name="call_incoming_swipe_to_answer_video_as_audio">Swipe from icon to answer as an audio call</string>
@@ -26,5 +41,5 @@
<!-- Voice prompt of swipe gesture when accessibility is turned on. -->
<string description="The message announced to accessibility assistance on incoming call."
name="a11y_incoming_call_swipe_gesture_prompt">Two finger swipe up to answer. Two finger swipe down to decline.</string>
- <string name="call_incoming_important">Urgent</string>
+ <string name="call_incoming_important">Important</string>
</resources>
diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
index 9815981ca..10a3413af 100644
--- a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
+++ b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java
@@ -32,6 +32,10 @@ public interface AnswerScreenDelegate {
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 24fbfc428..fe4ae9f96 100644
--- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
+++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
@@ -143,6 +143,9 @@ public class AnswerProximitySensor
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 c757477f1..c7a9d6332 100644
--- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
+++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java
@@ -18,6 +18,7 @@ package com.android.incallui.audioroute;
import android.app.Dialog;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.res.ColorStateList;
import android.graphics.PorterDuff.Mode;
import android.os.Bundle;
@@ -41,6 +42,8 @@ public class AudioRouteSelectorDialogFragment extends BottomSheetDialogFragment
/** Called when an audio route is picked */
public interface AudioRouteSelectorPresenter {
void onAudioRouteSelected(int audioRoute);
+
+ void onAudioRouteSelectorDismiss();
}
public static AudioRouteSelectorDialogFragment newInstance(CallAudioState audioState) {
@@ -91,6 +94,14 @@ public class AudioRouteSelectorDialogFragment extends BottomSheetDialogFragment
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 d3d3a8b37..5c6aef4be 100644
--- a/java/com/android/incallui/bindings/InCallUiBindings.java
+++ b/java/com/android/incallui/bindings/InCallUiBindings.java
@@ -19,7 +19,6 @@ package com.android.incallui.bindings;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.Nullable;
-import com.android.dialer.common.ConfigProvider;
/** This interface allows the container application to customize the in call UI. */
public interface InCallUiBindings {
@@ -37,12 +36,4 @@ public interface InCallUiBindings {
*/
@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 7b42fb375..3a005b0fb 100644
--- a/java/com/android/incallui/bindings/InCallUiBindingsStub.java
+++ b/java/com/android/incallui/bindings/InCallUiBindingsStub.java
@@ -19,11 +19,9 @@ package com.android.incallui.bindings;
import android.content.Context;
import android.content.Intent;
import android.support.annotation.Nullable;
-import com.android.dialer.common.ConfigProvider;
/** Default implementation for InCallUi bindings. */
public class InCallUiBindingsStub implements InCallUiBindings {
- private ConfigProvider configProvider;
@Override
@Nullable
@@ -42,40 +40,4 @@ public class InCallUiBindingsStub implements InCallUiBindings {
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 34f0cc0d7..3876ca64d 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -32,6 +32,8 @@ import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.enrichedcall.EnrichedCallManager;
import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
@@ -117,6 +119,10 @@ public class CallList implements DialerCallDelegate {
new DialerCall(context, this, telecomCall, latencyReport, true /* registerCallback */);
logSecondIncomingCall(context, call);
+ EnrichedCallManager manager = EnrichedCallComponent.get(context).getEnrichedCallManager();
+ manager.registerCapabilitiesListener(call);
+ manager.registerStateChangedListener(call);
+
final DialerCallListenerImpl dialerCallListener = new DialerCallListenerImpl(call);
call.addListener(dialerCallListener);
LogUtil.d("CallList.onCallAdded", "callState=" + call.getState());
@@ -278,6 +284,10 @@ public class CallList implements DialerCallDelegate {
DialerCall call = mCallByTelecomCall.get(telecomCall);
Assert.checkArgument(!call.isExternalCall());
+ EnrichedCallManager manager = EnrichedCallComponent.get(context).getEnrichedCallManager();
+ manager.unregisterCapabilitiesListener(call);
+ manager.unregisterStateChangedListener(call);
+
// Don't log an already logged call. logCall() might be called multiple times
// for the same call due to b/24109437.
if (call.getLogState() != null && !call.getLogState().isLogged) {
@@ -793,6 +803,9 @@ public class CallList implements DialerCallDelegate {
}
@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 acedf41f1..12edb07e6 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -51,6 +51,10 @@ import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.enrichedcall.EnrichedCallManager;
+import com.android.dialer.enrichedcall.EnrichedCallManager.CapabilitiesListener;
+import com.android.dialer.enrichedcall.EnrichedCallManager.Filter;
+import com.android.dialer.enrichedcall.EnrichedCallManager.StateChangedListener;
import com.android.dialer.enrichedcall.Session;
import com.android.dialer.lightbringer.LightbringerComponent;
import com.android.dialer.logging.ContactLookupResult;
@@ -77,7 +81,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.TimeUnit;
/** Describes a single call and its state. */
-public class DialerCall implements VideoTechListener {
+public class DialerCall implements VideoTechListener, StateChangedListener, CapabilitiesListener {
public static final int CALL_HISTORY_STATUS_UNKNOWN = 0;
public static final int CALL_HISTORY_STATUS_PRESENT = 1;
@@ -143,6 +147,12 @@ public class DialerCall implements VideoTechListener {
private EnrichedCallCapabilities mEnrichedCallCapabilities;
private Session mEnrichedCallSession;
+ private int answerAndReleaseButtonDisplayedTimes = 0;
+ private boolean releasedByAnsweringSecondCall = false;
+ // Times when a second call is received but AnswerAndRelease button is not shown
+ // since it's not supported.
+ private int secondCallWithoutAnswerAndReleasedButtonTimes = 0;
+
public static String getNumberFromHandle(Uri handle) {
return handle == null ? "" : handle.getSchemeSpecificPart();
}
@@ -292,6 +302,8 @@ public class DialerCall implements VideoTechListener {
mTimeAddedMs = System.currentTimeMillis();
parseCallSpecificAppData();
+
+ updateEnrichedCallSession();
}
private static int translateState(int state) {
@@ -413,6 +425,12 @@ public class DialerCall implements VideoTechListener {
for (DialerCallListener listener : mListeners) {
listener.onDialerCallDisconnect();
}
+ EnrichedCallComponent.get(mContext)
+ .getEnrichedCallManager()
+ .unregisterCapabilitiesListener(this);
+ EnrichedCallComponent.get(mContext)
+ .getEnrichedCallManager()
+ .unregisterCapabilitiesListener(this);
} else {
for (DialerCallListener listener : mListeners) {
listener.onDialerCallUpdate();
@@ -960,6 +978,30 @@ public class DialerCall implements VideoTechListener {
return mLatencyReport;
}
+ public int getAnswerAndReleaseButtonDisplayedTimes() {
+ return answerAndReleaseButtonDisplayedTimes;
+ }
+
+ public void increaseAnswerAndReleaseButtonDisplayedTimes() {
+ answerAndReleaseButtonDisplayedTimes++;
+ }
+
+ public boolean getReleasedByAnsweringSecondCall() {
+ return releasedByAnsweringSecondCall;
+ }
+
+ public void setReleasedByAnsweringSecondCall(boolean releasedByAnsweringSecondCall) {
+ this.releasedByAnsweringSecondCall = releasedByAnsweringSecondCall;
+ }
+
+ public int getSecondCallWithoutAnswerAndReleasedButtonTimes() {
+ return secondCallWithoutAnswerAndReleasedButtonTimes;
+ }
+
+ public void increaseSecondCallWithoutAnswerAndReleasedButtonTimes() {
+ secondCallWithoutAnswerAndReleasedButtonTimes++;
+ }
+
@Nullable
public EnrichedCallCapabilities getEnrichedCallCapabilities() {
return mEnrichedCallCapabilities;
@@ -1172,6 +1214,66 @@ public class DialerCall implements VideoTechListener {
TelecomAdapter.getInstance().setAudioRoute(CallAudioState.ROUTE_SPEAKER);
}
+ @Override
+ public void onCapabilitiesUpdated() {
+ if (getNumber() == null) {
+ return;
+ }
+ EnrichedCallCapabilities capabilities =
+ EnrichedCallComponent.get(mContext).getEnrichedCallManager().getCapabilities(getNumber());
+ if (capabilities != null) {
+ setEnrichedCallCapabilities(capabilities);
+ update();
+ }
+ }
+
+ @Override
+ public void onEnrichedCallStateChanged() {
+ updateEnrichedCallSession();
+ }
+
+ private void updateEnrichedCallSession() {
+ if (getNumber() == null) {
+ return;
+ }
+ if (getEnrichedCallSession() != null) {
+ // State changes to existing sessions are currently handled by the UI components (which have
+ // their own listeners). Someday instead we could remove those and just call update() here and
+ // have the usual onDialerCallUpdate update the UI.
+ dispatchOnEnrichedCallSessionUpdate();
+ return;
+ }
+
+ EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
+
+ Filter filter =
+ isIncoming()
+ ? manager.createIncomingCallComposerFilter()
+ : manager.createOutgoingCallComposerFilter();
+
+ Session session = manager.getSession(getUniqueCallId(), getNumber(), filter);
+ if (session == null) {
+ return;
+ }
+
+ session.setUniqueDialerCallId(getUniqueCallId());
+ setEnrichedCallSession(session);
+
+ LogUtil.i(
+ "DialerCall.updateEnrichedCallSession",
+ "setting session %d's dialer id to %s",
+ session.getSessionId(),
+ getUniqueCallId());
+
+ dispatchOnEnrichedCallSessionUpdate();
+ }
+
+ private void dispatchOnEnrichedCallSessionUpdate() {
+ for (DialerCallListener listener : mListeners) {
+ listener.onEnrichedCallSessionUpdate();
+ }
+ }
+
/**
* Specifies whether a number is in the call history or not. {@link #CALL_HISTORY_STATUS_UNKNOWN}
* means there is no result.
@@ -1372,6 +1474,7 @@ public class DialerCall implements VideoTechListener {
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 ed321be05..5d24a4d4b 100644
--- a/java/com/android/incallui/call/DialerCallListener.java
+++ b/java/com/android/incallui/call/DialerCallListener.java
@@ -36,4 +36,6 @@ public interface DialerCallListener {
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 ebf4ecf4f..4fc9f81eb 100644
--- a/java/com/android/incallui/call/TelecomAdapter.java
+++ b/java/com/android/incallui/call/TelecomAdapter.java
@@ -20,12 +20,13 @@ import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Looper;
import android.support.annotation.MainThread;
+import android.support.annotation.VisibleForTesting;
import android.telecom.InCallService;
import com.android.dialer.common.LogUtil;
import java.util.List;
/** Wrapper around Telecom APIs. */
-public final class TelecomAdapter implements InCallServiceListener {
+public class TelecomAdapter implements InCallServiceListener {
private static final String ADD_CALL_MODE_KEY = "add_call_mode";
@@ -45,6 +46,11 @@ public final class TelecomAdapter implements InCallServiceListener {
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 801b0d35c..b093a1b15 100644
--- a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
+++ b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java
@@ -21,6 +21,7 @@ import android.location.Location;
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 3a1478945..99a759bbb 100644
--- a/java/com/android/incallui/calllocation/impl/LocationHelper.java
+++ b/java/com/android/incallui/calllocation/impl/LocationHelper.java
@@ -24,6 +24,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.IntDef;
import android.support.annotation.MainThread;
+import android.support.v4.os.UserManagerCompat;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.util.PermissionsUtil;
@@ -87,6 +88,12 @@ public class LocationHelper {
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 eb5957b05..060ec0b4f 100644
--- a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
+++ b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java
@@ -20,6 +20,7 @@ import android.location.Location;
import android.net.TrafficStats;
import android.os.AsyncTask;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.constants.TrafficStatsTags;
import com.android.incallui.calllocation.impl.LocationPresenter.LocationUi;
import java.lang.ref.WeakReference;
import org.json.JSONArray;
diff --git a/java/com/android/incallui/commontheme/res/anim/blinking.xml b/java/com/android/incallui/commontheme/res/anim/blinking.xml
deleted file mode 100644
index 4b921c611..000000000
--- a/java/com/android/incallui/commontheme/res/anim/blinking.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<set xmlns:android="http://schemas.android.com/apk/res/android">
- <alpha
- android:duration="800"
- android:fromAlpha="0.26"
- android:interpolator="@android:anim/linear_interpolator"
- android:repeatCount="infinite"
- android:repeatMode="reverse"
- android:toAlpha="0.6"/>
-</set> \ No newline at end of file
diff --git a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index 26f3fe001..000000000
--- a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index 5b0a9d663..000000000
--- a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index d595b190d..000000000
--- a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index fb7cf161b..000000000
--- a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png
deleted file mode 100644
index 4bb58d9f5..000000000
--- a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/commontheme/res/values-af/strings.xml b/java/com/android/incallui/commontheme/res/values-af/strings.xml
index 0dfdbc7d5..0721869bb 100644
--- a/java/com/android/incallui/commontheme/res/values-af/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-af/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Beëindig oproep"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video aan"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video af"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Verwissel video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Luidspreker"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Klank"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-am/strings.xml b/java/com/android/incallui/commontheme/res/values-am/strings.xml
index 3155c39be..9d748e380 100644
--- a/java/com/android/incallui/commontheme/res/values-am/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-am/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"ጥሪ ጨርስ"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ቪዲዮ በርቷል"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ቪዲዮ ጠፍቷል"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ቪዲዮ አገላብጥ"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"የድምጽ ማጉያ"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ድምፅ"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ar/strings.xml b/java/com/android/incallui/commontheme/res/values-ar/strings.xml
index ecb3608bd..693bfc57a 100644
--- a/java/com/android/incallui/commontheme/res/values-ar/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ar/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"إنهاء المكالمة"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"الفيديو قيد التشغيل"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"الفيديو ليس قيد التشغيل"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"تبديل الفيديو"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"مكبر الصوت"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"صوت"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-az/strings.xml b/java/com/android/incallui/commontheme/res/values-az/strings.xml
index d935a6c93..a1d88ceef 100644
--- a/java/com/android/incallui/commontheme/res/values-az/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-az/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Zəngi sonlandırın"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video aktivdir"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video deaktivdir"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Videonu dəyişdirin"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Dinamik"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Səs"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
index 36430c42b..05ae59cdd 100644
--- a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Završi poziv"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Uključi video"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Isključi video"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Zameni video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-be/strings.xml b/java/com/android/incallui/commontheme/res/values-be/strings.xml
index 9609a6346..e772e2795 100644
--- a/java/com/android/incallui/commontheme/res/values-be/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-be/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Завяршыць выклік"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Відэа ўкл."</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Відэа выкл."</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Пераключыць відэа"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Вонк.дынамік"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Гук"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bg/strings.xml b/java/com/android/incallui/commontheme/res/values-bg/strings.xml
index 1a0f3e312..63364f8e6 100644
--- a/java/com/android/incallui/commontheme/res/values-bg/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bg/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Край на обаждането"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Видеото е включено"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Видеото е изключено"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Размяна на видеото"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Високогов."</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bn/strings.xml b/java/com/android/incallui/commontheme/res/values-bn/strings.xml
index ef2408f64..9871ea447 100644
--- a/java/com/android/incallui/commontheme/res/values-bn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"কল কেটে দিন"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ভিডিও চালু আছে"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ভিডিও বন্ধ আছে"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ভিডিও অদল বদল করুন"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"স্পিকার"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"শব্দ"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-bs/strings.xml b/java/com/android/incallui/commontheme/res/values-bs/strings.xml
index bfaff983f..76f991d64 100644
--- a/java/com/android/incallui/commontheme/res/values-bs/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-bs/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Prekini poziv"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Kamera je uključena"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Kamera je isključena"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamijeni kameru"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ca/strings.xml b/java/com/android/incallui/commontheme/res/values-ca/strings.xml
index 1b6ed4492..832027d39 100644
--- a/java/com/android/incallui/commontheme/res/values-ca/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ca/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalitza la trucada"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activat"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivat"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Canvia de vídeo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Altaveu"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"So"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-cs/strings.xml b/java/com/android/incallui/commontheme/res/values-cs/strings.xml
index 1f10d85fe..7afdcba0b 100644
--- a/java/com/android/incallui/commontheme/res/values-cs/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-cs/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Ukončit hovor"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Zapnuté video"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vypnuté video"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Přepnout video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Reproduktor"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-da/strings.xml b/java/com/android/incallui/commontheme/res/values-da/strings.xml
index 35d01e317..bd26e90e5 100644
--- a/java/com/android/incallui/commontheme/res/values-da/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-da/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Afslut opkald"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video til"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video fra"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Byt video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Højttaler"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-de/strings.xml b/java/com/android/incallui/commontheme/res/values-de/strings.xml
index 57a95b7f3..3fd10f0e6 100644
--- a/java/com/android/incallui/commontheme/res/values-de/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-de/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Anruf beenden"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video an"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video aus"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Video wechseln"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Lautsprecher"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Tonausgabe"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-el/strings.xml b/java/com/android/incallui/commontheme/res/values-el/strings.xml
index 6bb9edcd1..71c0be9a7 100644
--- a/java/com/android/incallui/commontheme/res/values-el/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-el/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Τερματισμός"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Εικόνα βίντεο ενεργοποιημένη"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Εικόνα βίντεο απενεργοποιημένη"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Εναλλαγή βίντεο"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Ηχείο"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Ήχος"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
index 8133185b5..4869c3fa3 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
index 8133185b5..4869c3fa3 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
index 8133185b5..4869c3fa3 100644
--- a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"End call"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video on"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video off"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Swap video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Sound"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
index 45f2e2f42..a9596d9e6 100644
--- a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar llamada"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video activado"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video desactivado"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Intercambiar video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Altavoz"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Sonido"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-es/strings.xml b/java/com/android/incallui/commontheme/res/values-es/strings.xml
index 56c8b2852..aa84c625b 100644
--- a/java/com/android/incallui/commontheme/res/values-es/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-es/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar llamada"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activado"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivado"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Cambiar de vídeo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Altavoz"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Sonido"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-et/strings.xml b/java/com/android/incallui/commontheme/res/values-et/strings.xml
index 069f3b5fd..ae2e1ba53 100644
--- a/java/com/android/incallui/commontheme/res/values-et/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-et/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Kõne lõpetamine"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video on sees"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video on väljas"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Video vahetamine"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Kõlar"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Heli"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-eu/strings.xml b/java/com/android/incallui/commontheme/res/values-eu/strings.xml
index bbcf5dc6e..0dd126c5a 100644
--- a/java/com/android/incallui/commontheme/res/values-eu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-eu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Amaitu deia"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Aktibatuta dago bideoa"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Desaktibatuta dago bideoa"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Aldatu bideoa"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Bozgorailua"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Soinua"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fa/strings.xml b/java/com/android/incallui/commontheme/res/values-fa/strings.xml
index ea967bb7e..1996ad47b 100644
--- a/java/com/android/incallui/commontheme/res/values-fa/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fa/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"پایان تماس"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ویدئو فعال"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ویدئو غیرفعال"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"جابه‌جایی ویدئو"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"بلندگو"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"صدا"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fi/strings.xml b/java/com/android/incallui/commontheme/res/values-fi/strings.xml
index f0da44f07..5a579816b 100644
--- a/java/com/android/incallui/commontheme/res/values-fi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Päätä puhelu"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Videokuva käytössä"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Videokuva poissa käytöstä"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Vaihda videota"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Kaiutin"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Ääni"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
index bf74dfbef..a1db3065a 100644
--- a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Mettre fin à l\'appel"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vidéo activée"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vidéo désactivée"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Permuter la vidéo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Haut-parleur"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Son"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-fr/strings.xml b/java/com/android/incallui/commontheme/res/values-fr/strings.xml
index fb674a483..e169a3d7a 100644
--- a/java/com/android/incallui/commontheme/res/values-fr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-fr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Mettre fin à l\'appel"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vidéo activée"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vidéo désactivée"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Permuter la vidéo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Haut-parleur"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Audio"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-gl/strings.xml b/java/com/android/incallui/commontheme/res/values-gl/strings.xml
index c7e221416..ba98a98a7 100644
--- a/java/com/android/incallui/commontheme/res/values-gl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-gl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Finalizar chamada"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo activado"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desactivado"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Alternar vídeo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Altofalante"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Son"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-gu/strings.xml b/java/com/android/incallui/commontheme/res/values-gu/strings.xml
index 75584ea0d..194590cec 100644
--- a/java/com/android/incallui/commontheme/res/values-gu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-gu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"કૉલ સમાપ્ત કરો"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"વિડિઓ ચાલુ"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"વિડિઓ બંધ"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"વિડિઓ સ્વેપ કરો"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"સ્પીકર"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ધ્વનિ"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hi/strings.xml b/java/com/android/incallui/commontheme/res/values-hi/strings.xml
index f7ea68ad8..207bbf2be 100644
--- a/java/com/android/incallui/commontheme/res/values-hi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"कॉल समाप्त करें"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"वीडियो चालू"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"वीडियो बंद"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"वीडियो स्वैप करें"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"स्‍पीकर"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ध्वनि"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hr/strings.xml b/java/com/android/incallui/commontheme/res/values-hr/strings.xml
index c30f3977e..c58ab852f 100644
--- a/java/com/android/incallui/commontheme/res/values-hr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Prekid poziva"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Videopoziv uključen"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Videopoziv isključen"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamijeni videopoziv"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Zvučnik"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hu/strings.xml b/java/com/android/incallui/commontheme/res/values-hu/strings.xml
index 9ee2300e2..ba7fec7d5 100644
--- a/java/com/android/incallui/commontheme/res/values-hu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Hívás befejezése"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Videó be"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Videó ki"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Videó cseréje"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Hangszóró"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Hang"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-hy/strings.xml b/java/com/android/incallui/commontheme/res/values-hy/strings.xml
index 96a0cab6f..81262e4c6 100644
--- a/java/com/android/incallui/commontheme/res/values-hy/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-hy/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Ավարտել զանգը"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Տեսախցիկը միացած է"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Տեսախցիկն անջատած է"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Փոխարկել խցիկը"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Բարձրախոս"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Ձայն"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-in/strings.xml b/java/com/android/incallui/commontheme/res/values-in/strings.xml
index 4536f5db0..fb3fc56ec 100644
--- a/java/com/android/incallui/commontheme/res/values-in/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-in/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Akhiri panggilan"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video aktif"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video nonaktif"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Tukar Video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Suara"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-is/strings.xml b/java/com/android/incallui/commontheme/res/values-is/strings.xml
index 357f90eee..438b143e4 100644
--- a/java/com/android/incallui/commontheme/res/values-is/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-is/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Ljúka símtali"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Kveikja á mynd"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Slökkva á mynd"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Skipta um mynd"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Hátalari"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Hljóð"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-it/strings.xml b/java/com/android/incallui/commontheme/res/values-it/strings.xml
index a63d3140a..b7c1d3f4e 100644
--- a/java/com/android/incallui/commontheme/res/values-it/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-it/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Termina chiamata"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video attivo"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video non attivo"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Scambia video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Altoparlante"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Suono"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-iw/strings.xml b/java/com/android/incallui/commontheme/res/values-iw/strings.xml
index 1e2b7f2b1..cbd6d7573 100644
--- a/java/com/android/incallui/commontheme/res/values-iw/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-iw/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"סיים שיחה"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"הווידאו מופעל"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"הווידאו מושבת"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"החלף וידאו"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"רמקול"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"קול"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ja/strings.xml b/java/com/android/incallui/commontheme/res/values-ja/strings.xml
index 658b51349..4ea949581 100644
--- a/java/com/android/incallui/commontheme/res/values-ja/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ja/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"通話を終了"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ビデオが ON になっています"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ビデオが OFF になっています"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ビデオを切り替える"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"スピーカー"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"音声"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ka/strings.xml b/java/com/android/incallui/commontheme/res/values-ka/strings.xml
index ffba7cede..3163476b6 100644
--- a/java/com/android/incallui/commontheme/res/values-ka/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ka/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"ზარის დასრულება"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ვიდეო ჩართულია"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ვიდეო გამორთულია"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ვიდეოს შენაცვლება"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"სპიკერი"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ხმა"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-kk/strings.xml b/java/com/android/incallui/commontheme/res/values-kk/strings.xml
index ace83ecee..23b3a2ad6 100644
--- a/java/com/android/incallui/commontheme/res/values-kk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-kk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Қоңырауды аяқтау"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Бейне қосулы"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Бейне өшірулі"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Бейнені ауыстыру"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Динамик"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Дыбыс"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-km/strings.xml b/java/com/android/incallui/commontheme/res/values-km/strings.xml
index e28f12029..55cfa0a16 100644
--- a/java/com/android/incallui/commontheme/res/values-km/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-km/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"បញ្ចប់​ការ​ហៅ"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"បើក​វីដេអូ​"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"បិទ​វីដេអូ"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ប្ដូរ​វីដេអូ"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"ឧបករណ៍​បំពង​សំឡេង"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"សំឡេង"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-kn/strings.xml b/java/com/android/incallui/commontheme/res/values-kn/strings.xml
index 59186e0a3..685ef642f 100644
--- a/java/com/android/incallui/commontheme/res/values-kn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-kn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ವೀಡಿಯೊ ಆನ್"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ವೀಡಿಯೊ ಆಫ್"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ವೀಡಿಯೊ ಬದಲಾಯಿಸಿ"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"ಸ್ಪೀಕರ್‌"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ಶಬ್ದ"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ko/strings.xml b/java/com/android/incallui/commontheme/res/values-ko/strings.xml
index 0a0e3c9aa..088746ddd 100644
--- a/java/com/android/incallui/commontheme/res/values-ko/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ko/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"통화 종료"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"동영상 켜짐"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"동영상 꺼짐"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"동영상 전환"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"스피커"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"소리"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ky/strings.xml b/java/com/android/incallui/commontheme/res/values-ky/strings.xml
index ac697e4fe..5dd4d0c21 100644
--- a/java/com/android/incallui/commontheme/res/values-ky/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ky/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Чалууну бүтүрүү"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Видео күйүк"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Видео өчүк"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Видеону иштетүү/өчүрүү"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Катуу сүйлөткүч"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Добуш"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lo/strings.xml b/java/com/android/incallui/commontheme/res/values-lo/strings.xml
index da2050ac2..2f0b94b54 100644
--- a/java/com/android/incallui/commontheme/res/values-lo/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lo/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"ວາງສາຍ"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ວິດີໂອເປີດ"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ວິດີໂອປິດ"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ສະຫຼັບວິດີໂອ"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"ລຳໂພງ"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ສຽງ"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lt/strings.xml b/java/com/android/incallui/commontheme/res/values-lt/strings.xml
index bda53d6f6..d0a5e0d9c 100644
--- a/java/com/android/incallui/commontheme/res/values-lt/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lt/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Baigti skambutį"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vaizdas įjungtas"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vaizdas išjungtas"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Sukeisti vaizdą"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Garsiakalbis"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Garsas"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-lv/strings.xml b/java/com/android/incallui/commontheme/res/values-lv/strings.xml
index beaf35c58..443ac5e80 100644
--- a/java/com/android/incallui/commontheme/res/values-lv/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-lv/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Beigt zvanu"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video ieslēgts"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video izslēgts"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Mainīt video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Skaļrunis"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Skaņa"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mk/strings.xml b/java/com/android/incallui/commontheme/res/values-mk/strings.xml
index 5b4f6d0c5..d9a339eab 100644
--- a/java/com/android/incallui/commontheme/res/values-mk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Завршете го повикот"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Видеото е вклучено"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Видеото е исклучено"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Заменете го видеото"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Звучник"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ml/strings.xml b/java/com/android/incallui/commontheme/res/values-ml/strings.xml
index 024266736..0f2d88968 100644
--- a/java/com/android/incallui/commontheme/res/values-ml/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ml/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"കോള്‍ അവസാനിപ്പിക്കൂ"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"വീഡിയോ ഓണാണ്"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"വീഡിയോ ഓഫാണ്"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"വീഡിയോ സ്വാപ്പുചെയ്യുക"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"സ്പീക്കർ"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ശബ്‌ദം"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mn/strings.xml b/java/com/android/incallui/commontheme/res/values-mn/strings.xml
index cd286edb9..3665fcfa6 100644
--- a/java/com/android/incallui/commontheme/res/values-mn/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Дуудлагыг таслах"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Видео идэвхтэй"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Видео идэвхгүй"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Видеог солих"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Чанга яригч"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Дуу"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-mr/strings.xml b/java/com/android/incallui/commontheme/res/values-mr/strings.xml
index 2c626edbd..f7498097f 100644
--- a/java/com/android/incallui/commontheme/res/values-mr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-mr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"कॉल समाप्त करा"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"व्हिडिओ चालू"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"व्हिडिओ बंद"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"व्हिडिओ बदला"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"स्पीकर"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ध्वनी"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ms/strings.xml b/java/com/android/incallui/commontheme/res/values-ms/strings.xml
index f6c358d79..fb38fa9d1 100644
--- a/java/com/android/incallui/commontheme/res/values-ms/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ms/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Tamatkan panggilan"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video dihidupkan"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video dimatikan"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Silih video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Pmbsr suara"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Bunyi"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-my/strings.xml b/java/com/android/incallui/commontheme/res/values-my/strings.xml
index 6b6614c36..5b396be59 100644
--- a/java/com/android/incallui/commontheme/res/values-my/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-my/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"ခေါ်ဆိုမှုအပြီးသတ်ရန်"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ဗီဒီယိုဖွင့်ထားသည်"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ဗီဒီယိုပိတ်ထားသည်"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ဗီဒီယိုဖလှယ်ရန်"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"စပီကာ"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"အသံ"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-nb/strings.xml b/java/com/android/incallui/commontheme/res/values-nb/strings.xml
index 4974411bc..506b15e31 100644
--- a/java/com/android/incallui/commontheme/res/values-nb/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-nb/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Avslutt samtalen"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Bytt video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Høyttaler"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ne/strings.xml b/java/com/android/incallui/commontheme/res/values-ne/strings.xml
index 5cd91b336..fa9d87fb7 100644
--- a/java/com/android/incallui/commontheme/res/values-ne/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ne/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"कल अन्त्य गर्नुहोस्"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"सक्रिय भिडियो"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"निष्क्रिय भिडियो"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"भिडियो साट्नुहोस्"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"स्पिकर"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"आवाज"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-nl/strings.xml b/java/com/android/incallui/commontheme/res/values-nl/strings.xml
index d33d60075..192c47b97 100644
--- a/java/com/android/incallui/commontheme/res/values-nl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-nl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Oproep beëindigen"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video aan"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video uit"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Video wisselen"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Luidspreker"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Geluid"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-no/strings.xml b/java/com/android/incallui/commontheme/res/values-no/strings.xml
index 4974411bc..506b15e31 100644
--- a/java/com/android/incallui/commontheme/res/values-no/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-no/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Avslutt samtalen"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Bytt video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Høyttaler"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Lyd"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pa/strings.xml b/java/com/android/incallui/commontheme/res/values-pa/strings.xml
index 7e59e6114..77ceb252a 100644
--- a/java/com/android/incallui/commontheme/res/values-pa/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pa/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"ਕਾਲ ਸਮਾਪਤ ਕਰੋ"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ਵੀਡੀਓ ਚਾਲੂ"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ਵੀਡੀਓ ਬੰਦ"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ਵੀਡੀਓ ਦੀ ਅਦਲਾ ਬਦਲੀ ਕਰੋ"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"ਸਪੀਕਰ"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ਧੁਨੀ"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pl/strings.xml b/java/com/android/incallui/commontheme/res/values-pl/strings.xml
index 4ab1d244d..d9b037e8d 100644
--- a/java/com/android/incallui/commontheme/res/values-pl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Zakończ połączenie"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Wideo włączone"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Wideo wyłączone"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Przełącz wideo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Głośnik"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Dźwięk"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
index 67f367466..2c1834e0f 100644
--- a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Encerrar chamada"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Trocar vídeo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Alto-falante"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
index 27c564928..f0c14d027 100644
--- a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Terminar chamada"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Alternar vídeo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Altifalante"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-pt/strings.xml b/java/com/android/incallui/commontheme/res/values-pt/strings.xml
index 67f367466..2c1834e0f 100644
--- a/java/com/android/incallui/commontheme/res/values-pt/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-pt/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Encerrar chamada"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vídeo ativado"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Vídeo desativado"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Trocar vídeo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Alto-falante"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Som"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ro/strings.xml b/java/com/android/incallui/commontheme/res/values-ro/strings.xml
index b7fec9a58..f7c8f7257 100644
--- a/java/com/android/incallui/commontheme/res/values-ro/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ro/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Încheiați apelul"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Imaginea video este activată"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Imaginea video este dezactivată"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Schimbați imaginea video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Difuzor"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Sunet"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ru/strings.xml b/java/com/android/incallui/commontheme/res/values-ru/strings.xml
index 5d1807f7a..1853ad23f 100644
--- a/java/com/android/incallui/commontheme/res/values-ru/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ru/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Завершить вызов"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Камера включена"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Камера выключена"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Включить/выключить камеру"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Динамик"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-si/strings.xml b/java/com/android/incallui/commontheme/res/values-si/strings.xml
index 0a0f35c47..ae13cc424 100644
--- a/java/com/android/incallui/commontheme/res/values-si/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-si/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"ඇමතුම අවසන් කරන්න"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"වීඩියෝව ක්‍රියාත්මකයි"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"වීඩියෝව ක්‍රියාවිරහිතයි"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"වීඩියෝව මාරු කරන්න"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"ස්පීකරය"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"හඬ"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sk/strings.xml b/java/com/android/incallui/commontheme/res/values-sk/strings.xml
index 97eabebb4..cd9aa9912 100644
--- a/java/com/android/incallui/commontheme/res/values-sk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Ukončiť hovor"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video je zapnuté"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video je vypnuté"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Zameniť video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Reproduktor"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Zvuk"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sl/strings.xml b/java/com/android/incallui/commontheme/res/values-sl/strings.xml
index 46cf2e8ee..0aa6e699a 100644
--- a/java/com/android/incallui/commontheme/res/values-sl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Končaj klic"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Vklopi video"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Izklopi video"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Zamenjaj video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Zvočnik"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Zvok"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sq/strings.xml b/java/com/android/incallui/commontheme/res/values-sq/strings.xml
index 17ec08167..b9c97d1dd 100644
--- a/java/com/android/incallui/commontheme/res/values-sq/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sq/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Mbylle telefonatën"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Videoja aktive"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Videoja joaktive"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Shkëmbe video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Altoparlanti"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Tingulli"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sr/strings.xml b/java/com/android/incallui/commontheme/res/values-sr/strings.xml
index 2928bc992..67586b72e 100644
--- a/java/com/android/incallui/commontheme/res/values-sr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Заврши позив"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Укључи видео"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Искључи видео"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Замени видео"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Звучник"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sv/strings.xml b/java/com/android/incallui/commontheme/res/values-sv/strings.xml
index 17b5d3745..957a2f85a 100644
--- a/java/com/android/incallui/commontheme/res/values-sv/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sv/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Avsluta samtal"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video på"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video av"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Byt video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Högtalare"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Ljud"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-sw/strings.xml b/java/com/android/incallui/commontheme/res/values-sw/strings.xml
index 165d57622..8752c2d37 100644
--- a/java/com/android/incallui/commontheme/res/values-sw/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-sw/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Kata simu"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Washa video"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Zima video"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Badilisha video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Spika"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Sauti"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ta/strings.xml b/java/com/android/incallui/commontheme/res/values-ta/strings.xml
index fa2dfb280..69258d2e6 100644
--- a/java/com/android/incallui/commontheme/res/values-ta/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ta/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"அழைப்பைத் துண்டிக்கும்"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"வீடியோ இயக்கப்பட்டது"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"வீடியோ முடக்கப்பட்டது"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"வீடியோவிற்கு மாற்றும்"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"ஸ்பீக்கர்"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ஒலி"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-te/strings.xml b/java/com/android/incallui/commontheme/res/values-te/strings.xml
index 3ce431cd1..9454e15b7 100644
--- a/java/com/android/incallui/commontheme/res/values-te/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-te/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"కాల్‌ను ముగిస్తుంది"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"వీడియో ఆన్‌లో ఉంది"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"వీడియో ఆఫ్‌లో ఉంది"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"వీడియోను మారుస్తుంది"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"స్పీకర్"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"ధ్వని"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-th/strings.xml b/java/com/android/incallui/commontheme/res/values-th/strings.xml
index 1fa145c02..823531000 100644
--- a/java/com/android/incallui/commontheme/res/values-th/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-th/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"วางสาย"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"เปิดวิดีโอ"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ปิดวิดีโอ"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"สลับวิดีโอ"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"ลำโพง"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"เสียง"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-tl/strings.xml b/java/com/android/incallui/commontheme/res/values-tl/strings.xml
index a53e11c7d..f368e3a68 100644
--- a/java/com/android/incallui/commontheme/res/values-tl/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-tl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Tapusin ang tawag"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Naka-on ang video"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Naka-off ang video"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Pagpalitin ang video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Speaker"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Tunog"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-tr/strings.xml b/java/com/android/incallui/commontheme/res/values-tr/strings.xml
index 09552730a..cbf550211 100644
--- a/java/com/android/incallui/commontheme/res/values-tr/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-tr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Çağrıyı sonlandırın"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video açık"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video kapalı"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Videoyu değiştirin"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Hoparlör"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Ses"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-uk/strings.xml b/java/com/android/incallui/commontheme/res/values-uk/strings.xml
index e17e781b3..2bcd04c0e 100644
--- a/java/com/android/incallui/commontheme/res/values-uk/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-uk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Завершити виклик"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Відео ввімкнено"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Відео вимкнено"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Поміняти відео"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Динамік"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Звук"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-ur/strings.xml b/java/com/android/incallui/commontheme/res/values-ur/strings.xml
index 5082e9d11..bd8cf6807 100644
--- a/java/com/android/incallui/commontheme/res/values-ur/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-ur/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"کال ختم کریں"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"ویڈیو آن ہے"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"ویڈیو آف ہے"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"ویڈیو کا تبادلہ کریں"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"اسپیکر"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"آواز"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-uz/strings.xml b/java/com/android/incallui/commontheme/res/values-uz/strings.xml
index d349d3f9a..9bc995de2 100644
--- a/java/com/android/incallui/commontheme/res/values-uz/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-uz/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Qo‘ng‘iroqni tugatish"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Video yoniq"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Video o‘chiq"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Videoni yoqish/ochirish"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Karnay"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Tovush"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-vi/strings.xml b/java/com/android/incallui/commontheme/res/values-vi/strings.xml
index 3bd39ae4d..caf8f3434 100644
--- a/java/com/android/incallui/commontheme/res/values-vi/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-vi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Kết thúc cuộc gọi"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Bật video"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Tắt video"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Hoán đổi video"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Loa"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Âm báo"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
index 0f57120e2..4d8bda6bc 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"结束通话"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"视频已开启"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"视频已关闭"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"切换视频"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"免提"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"音频路径"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
index a3809ebca..175b3e657 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"結束通話"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"視像已開啟"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"視像已關閉"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"切換視像"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"喇叭"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"音效"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
index 983dddda7..dee1b9c95 100644
--- a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"結束通話"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"開啟視訊畫面"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"關閉視訊畫面"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"切換視訊畫面"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"擴音"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"音訊"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values-zu/strings.xml b/java/com/android/incallui/commontheme/res/values-zu/strings.xml
index 2dd2c897e..953596231 100644
--- a/java/com/android/incallui/commontheme/res/values-zu/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values-zu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_content_description_end_call" msgid="8232796487777787200">"Qeda ikholi"</string>
@@ -15,4 +31,6 @@
<string name="incall_content_description_video_on" msgid="899266487647420613">"Ividiyo ivuliwe"</string>
<string name="incall_content_description_video_off" msgid="762985912616707076">"Ividiyo ivaliwe"</string>
<string name="incall_content_description_swap_video" msgid="297943299827908998">"Shintsha ividiyo"</string>
+ <string name="incall_label_speaker" msgid="1814254833253409394">"Isipikha"</string>
+ <string name="incall_label_audio" msgid="5923781170533336820">"Umsindo"</string>
</resources>
diff --git a/java/com/android/incallui/commontheme/res/values/strings.xml b/java/com/android/incallui/commontheme/res/values/strings.xml
index 6f346a34d..94a8c901b 100644
--- a/java/com/android/incallui/commontheme/res/values/strings.xml
+++ b/java/com/android/incallui/commontheme/res/values/strings.xml
@@ -1,4 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
<resources>
<string name="incall_content_description_end_call">End call</string>
@@ -32,4 +47,11 @@
<string name="incall_content_description_swap_video">Swap video</string>
+ <!-- Button shown during a phone to route audio from earpiece to speaker phone.
+ [CHAR LIMIT=12] -->
+ <string name="incall_label_speaker">Speaker</string>
+ <!-- Button shown during a phone to switch the audio route.
+ [CHAR LIMIT=12] -->
+ <string name="incall_label_audio">Sound</string>
+
</resources>
diff --git a/java/com/android/incallui/contactgrid/BottomRow.java b/java/com/android/incallui/contactgrid/BottomRow.java
index 228c786a0..d0ff1926a 100644
--- a/java/com/android/incallui/contactgrid/BottomRow.java
+++ b/java/com/android/incallui/contactgrid/BottomRow.java
@@ -22,7 +22,6 @@ import android.telephony.PhoneNumberUtils;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
-import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
import com.android.incallui.call.DialerCall.State;
import com.android.incallui.incall.protocol.PrimaryCallState;
import com.android.incallui.incall.protocol.PrimaryInfo;
@@ -137,7 +136,7 @@ public class BottomRow {
}
private static CharSequence spanDisplayNumber(String displayNumber) {
- return PhoneNumberUtilsCompat.createTtsSpannable(
+ return PhoneNumberUtils.createTtsSpannable(
BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR));
}
diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java
index 1322d58ea..502cc52b8 100644
--- a/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -20,10 +20,8 @@ import android.content.Context;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.Drawable;
import android.os.SystemClock;
-import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.view.ViewCompat;
-import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
@@ -78,6 +76,7 @@ public class ContactGridManager {
private boolean hideAvatar;
private boolean showAnonymousAvatar;
private boolean middleRowVisible = true;
+ private boolean isTimerStarted;
private PrimaryInfo primaryInfo = PrimaryInfo.createEmptyPrimaryInfo();
private PrimaryCallState primaryCallState = PrimaryCallState.createEmptyPrimaryCallState();
@@ -105,6 +104,7 @@ public class ContactGridManager {
contactGridLayout = (View) contactNameTextView.getParent();
letterTile = new LetterTileDrawable(context.getResources());
+ isTimerStarted = false;
}
public void show() {
@@ -213,7 +213,7 @@ public class ContactGridManager {
* </ul>
*/
private void updateTopRow() {
- TopRow.Info info = TopRow.getInfo(context, primaryCallState);
+ TopRow.Info info = TopRow.getInfo(context, primaryCallState, primaryInfo);
if (TextUtils.isEmpty(info.label)) {
// Use INVISIBLE here to prevent the rows below this one from moving up and down.
statusTextView.setVisibility(View.INVISIBLE);
@@ -233,26 +233,6 @@ public class ContactGridManager {
}
/**
- * Returns the appropriate LetterTileDrawable.TYPE_ based on a given call state.
- *
- * <p>If no special state is detected, yields TYPE_DEFAULT.
- */
- private static @LetterTileDrawable.ContactType int getContactTypeForPrimaryCallState(
- @NonNull PrimaryCallState callState, @NonNull PrimaryInfo primaryInfo) {
- if (callState.isVoiceMailNumber) {
- return LetterTileDrawable.TYPE_VOICEMAIL;
- } else if (callState.isBusinessNumber) {
- return LetterTileDrawable.TYPE_BUSINESS;
- } else if (primaryInfo.numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) {
- return LetterTileDrawable.TYPE_GENERIC_AVATAR;
- } else if (callState.isConference) {
- return LetterTileDrawable.TYPE_CONFERENCE;
- } else {
- return LetterTileDrawable.TYPE_DEFAULT;
- }
- }
-
- /**
* Updates row 1. For example:
*
* <ul>
@@ -295,8 +275,12 @@ public class ContactGridManager {
primaryInfo.name,
primaryInfo.contactInfoLookupKey,
LetterTileDrawable.SHAPE_CIRCLE,
- getContactTypeForPrimaryCallState(primaryCallState, primaryInfo));
-
+ LetterTileDrawable.getContactTypeFromPrimitives(
+ primaryCallState.isVoiceMailNumber,
+ primaryInfo.isSpam,
+ primaryCallState.isBusinessNumber,
+ primaryInfo.numberPresentation,
+ primaryCallState.isConference));
// By invalidating the avatarImageView we force a redraw of the letter tile.
// This is required to properly display the updated letter tile iconography based on the
// contact type, because the background drawable reference cached in the view, and the
@@ -363,15 +347,19 @@ public class ContactGridManager {
}
if (info.isTimerVisible) {
- bottomTextSwitcher.setDisplayedChild(1);
- bottomTimerView.setBase(
- primaryCallState.connectTimeMillis
- - System.currentTimeMillis()
- + SystemClock.elapsedRealtime());
- bottomTimerView.start();
+ if (!isTimerStarted) {
+ bottomTextSwitcher.setDisplayedChild(1);
+ bottomTimerView.setBase(
+ primaryCallState.connectTimeMillis
+ - System.currentTimeMillis()
+ + SystemClock.elapsedRealtime());
+ bottomTimerView.start();
+ isTimerStarted = true;
+ }
} else {
bottomTextSwitcher.setDisplayedChild(0);
bottomTimerView.stop();
+ isTimerStarted = false;
}
}
}
diff --git a/java/com/android/incallui/contactgrid/TopRow.java b/java/com/android/incallui/contactgrid/TopRow.java
index 8c3d6b004..ab003570f 100644
--- a/java/com/android/incallui/contactgrid/TopRow.java
+++ b/java/com/android/incallui/contactgrid/TopRow.java
@@ -19,10 +19,14 @@ package com.android.incallui.contactgrid;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
+import android.telephony.PhoneNumberUtils;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import com.android.dialer.common.Assert;
import com.android.incallui.call.DialerCall.State;
import com.android.incallui.incall.protocol.PrimaryCallState;
+import com.android.incallui.incall.protocol.PrimaryInfo;
import com.android.incallui.videotech.utils.SessionModificationState;
import com.android.incallui.videotech.utils.VideoUtils;
@@ -55,7 +59,7 @@ public class TopRow {
private TopRow() {}
- public static Info getInfo(Context context, PrimaryCallState state) {
+ public static Info getInfo(Context context, PrimaryCallState state, PrimaryInfo primaryInfo) {
CharSequence label = null;
Drawable icon = state.connectionIcon;
boolean labelIsSingleLine = true;
@@ -73,6 +77,11 @@ public class TopRow {
labelIsSingleLine = false;
} else {
label = getLabelForIncoming(context, state);
+ // Show phone number if it's not displayed in name (center row) or location field (bottom
+ // row).
+ if (shouldShowNumber(primaryInfo)) {
+ label = TextUtils.concat(label, " ", spanDisplayNumber(primaryInfo.number));
+ }
}
} else if (VideoUtils.hasSentVideoUpgradeRequest(state.sessionModificationState)
|| VideoUtils.hasReceivedVideoUpgradeRequest(state.sessionModificationState)) {
@@ -85,6 +94,8 @@ public class TopRow {
label = getLabelForDialing(context, state);
} else if (state.state == State.ACTIVE && state.isRemotelyHeld) {
label = context.getString(R.string.incall_remotely_held);
+ } else if (state.state == State.ACTIVE && shouldShowNumber(primaryInfo)) {
+ label = spanDisplayNumber(primaryInfo.number);
} else {
// Video calling...
// [Wi-Fi icon] Starbucks Wi-Fi
@@ -94,9 +105,27 @@ public class TopRow {
return new Info(label, icon, labelIsSingleLine);
}
+ private static CharSequence spanDisplayNumber(String displayNumber) {
+ return PhoneNumberUtils.createTtsSpannable(
+ BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR));
+ }
+
+ private static boolean shouldShowNumber(PrimaryInfo primaryInfo) {
+ if (primaryInfo.nameIsNumber) {
+ return false;
+ }
+ if (primaryInfo.location == null) {
+ return false;
+ }
+ if (TextUtils.isEmpty(primaryInfo.number)) {
+ return false;
+ }
+ return true;
+ }
+
private static CharSequence getLabelForIncoming(Context context, PrimaryCallState state) {
if (state.isVideoCall) {
- return getLabelForIncomingVideo(context, state.isWifi);
+ return getLabelForIncomingVideo(context, state.sessionModificationState, state.isWifi);
} else if (state.isWifi && !TextUtils.isEmpty(state.connectionLabel)) {
return state.connectionLabel;
} else if (isAccount(state)) {
@@ -108,11 +137,20 @@ public class TopRow {
}
}
- private static CharSequence getLabelForIncomingVideo(Context context, boolean isWifi) {
- if (isWifi) {
- return context.getString(R.string.contact_grid_incoming_wifi_video_call);
+ private static CharSequence getLabelForIncomingVideo(
+ Context context, @SessionModificationState int sessionModificationState, boolean isWifi) {
+ if (sessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) {
+ if (isWifi) {
+ return context.getString(R.string.contact_grid_incoming_wifi_video_request);
+ } else {
+ return context.getString(R.string.contact_grid_incoming_video_request);
+ }
} else {
- return context.getString(R.string.contact_grid_incoming_video_call);
+ if (isWifi) {
+ return context.getString(R.string.contact_grid_incoming_wifi_video_call);
+ } else {
+ return context.getString(R.string.contact_grid_incoming_video_call);
+ }
}
}
@@ -154,7 +192,7 @@ public class TopRow {
case SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT:
return context.getString(R.string.incall_video_call_request_timed_out);
case SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST:
- return getLabelForIncomingVideo(context, state.isWifi);
+ return getLabelForIncomingVideo(context, state.sessionModificationState, state.isWifi);
case SessionModificationState.NO_REQUEST:
default:
Assert.fail();
diff --git a/java/com/android/incallui/contactgrid/res/values-af/strings.xml b/java/com/android/incallui/contactgrid/res/values-af/strings.xml
index 95ec39bc3..75a8bf37f 100644
--- a/java/com/android/incallui/contactgrid/res/values-af/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-af/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Bel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Hou aan"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video-oproep vanaf"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-video-oproep vanaf"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Versoekvorm vir video-opgradering"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Versoekvorm vir Wi-Fi-video-opgradering"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Oproep vanaf"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Werkoproep vanaf"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-am/strings.xml b/java/com/android/incallui/contactgrid/res/values-am/strings.xml
index d8060c9c5..3d11f73c2 100644
--- a/java/com/android/incallui/contactgrid/res/values-am/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-am/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል በመደወል ላይ"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"ያዝና ቆይ"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ቪዲዮ ጥሪ ከ"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ቪዲዮ ጥሪ ከ"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"የቪዲዮ ማሻሻል ጥያቄ ከ"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"የWi-Fi ቪዲዮ ማሻሻል ጥያቄ ከ"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ጥሪ ከ"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"የሥራ ጥሪ ከ"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"በ<xliff:g id="PROVIDER_NAME">%s</xliff:g> በኩል የገባ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
index 30fd32cfa..cddd1eca9 100644
--- a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"الاتصال عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"معلقة"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"مكالمة فيديو من"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏مكالمة فيديو عبر Wi-Fi من"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"طلب ترقية الفيديو من"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏طلب ترقية فيديو Wi-Fi من"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"اتصال من"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"مكالمة عمل من"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"واردة عبر <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-az/strings.xml b/java/com/android/incallui/contactgrid/res/values-az/strings.xml
index 4fe79eeaa..8c1993dc0 100644
--- a/java/com/android/incallui/contactgrid/res/values-az/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-az/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə zəng edilir"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Gözləmədə"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video zəng edən"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video zəng edən"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video təkmilləşdirilməsi üçün təklif"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video təkmilləşdirilməsi üçün təklif"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Zəng edən"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"İş zəngi edən"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> vasitəsilə gələn"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
index f1a938ea9..caa61bdac 100644
--- a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivamo preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video poziv od"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video poziv od"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahtev za prelazak na video poziv od"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahtev za prelazak na video poziv preko Wi-Fi-ja od"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv od"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv od"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni poziv preko <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-be/strings.xml b/java/com/android/incallui/contactgrid/res/values-be/strings.xml
index aec3a3106..51f7ea97a 100644
--- a/java/com/android/incallui/contactgrid/res/values-be/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-be/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Званкі праз <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"На ўтрыманні"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Відэавыклік ад"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Відэавыклік праз Wi-Fi ад"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запыт на абнаўленне да відэавыкліка ад"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запыт на абнаўленне да відэавыкліка па Wi-Fi ад"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Выклік ад"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Рабочы выклік ад"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Уваходны выклік праз <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
index f162e4cd0..4e313d408 100644
--- a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Задържано"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеообаждане от"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеообаждане по Wi-Fi от"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Заявка за преминаване към видеообаждане от"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Заявка за преминаване към видеообаждане през Wi-Fi от"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Обаждане от"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Служебно обаждане от"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Входящо обаждане чрез <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
index 6d3a50c61..8fce2e460 100644
--- a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে কল করা হচ্ছে"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"হোল্ডে রয়েছে"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"এর থেকে আগত ভিডিও কল"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"এর থেকে আগত Wi-Fi ভিডিও কল"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"এর থেকে ভিডিও আপগ্রেড করার অনুরোধ"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"এর থেকে ওয়াই-ফাই ভিডিও আপগ্রেড করার অনুরোধ"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"এর থেকে আগত কল"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"এর থেকে আগত কর্মক্ষেত্রের কল"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> এর মাধ্যমে আগত কল"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
index 258799215..0d4dfb3d8 100644
--- a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivanje putem mreže <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopoziv od"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi videopoziv od"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahtjev za nadogradnju na videozapis od pozivaoca"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahtjev za nadogradnju na Wi-Fi videozapis od pozivaoca"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv od"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv od"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni poziv putem <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
index 07598a217..b4aa2ddc0 100644
--- a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"S\'està trucant amb <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videotrucada de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videotrucada per Wi-Fi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Sol·licitud d\'actualització a videotrucada procedent de:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Sol·licitud d\'actualització a videotrucada per Wi-Fi procedent de:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Trucada de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Trucada de feina de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
index d27a0283b..b8698f071 100644
--- a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Volání přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Podrženo"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Příchozí videohovor:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Příchozí videohovor přes Wi-Fi:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Žádost o upgrade na videohovor od uživatele"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Žádost o upgrade na videohovor přes Wi-Fi od uživatele"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Příchozí hovor:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Příchozí pracovní hovor:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Příchozí hovor přes poskytovatele <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-da/strings.xml b/java/com/android/incallui/contactgrid/res/values-da/strings.xml
index 555a2ac5f..71a651f18 100644
--- a/java/com/android/incallui/contactgrid/res/values-da/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-da/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"I venteposition"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoopkald fra"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoopkald fra"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Anmodning om opgradering til et videoopkald fra"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Anmodning om opgradering til et Wi-Fi-videoopkald fra"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Opkald fra"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Arbejdsopkald fra"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Indgående opkald via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-de/strings.xml b/java/com/android/incallui/contactgrid/res/values-de/strings.xml
index 3d3838ca2..d69e0f6bb 100644
--- a/java/com/android/incallui/contactgrid/res/values-de/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-de/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Anruf wird gehalten"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanruf von"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WLAN-Videoanruf von"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Anfrage für Upgrade auf Videoanruf von"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Anfrage für Upgrade auf Videoanruf über WLAN von"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anruf von"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Geschäftlicher Anruf von"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Eingehender Anruf über <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-el/strings.xml b/java/com/android/incallui/contactgrid/res/values-el/strings.xml
index 337da7b03..954e7b75d 100644
--- a/java/com/android/incallui/contactgrid/res/values-el/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-el/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Σε αναμονή"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Βιντεοκλήση από"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Βιντεοκλήση μέσω Wi-Fi από"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Αίτημα αναβάθμισης βίντεο από"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Αίτημα αναβάθμισης βίντεο Wi-Fi από"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Κλήση από"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Κλήση από το γραφείο από"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Εισερχόμενη κλήση μέσω <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
index 3748db2f4..a1402ff5c 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
index 3748db2f4..a1402ff5c 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
index 3748db2f4..a1402ff5c 100644
--- a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Calling via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"On hold"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call from"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Call from"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Incoming via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
index fa5684927..abb2b01d9 100644
--- a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Llamada por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videollamada de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videollamada con Wi-Fi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Actualización a video solicitada por"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Actualización a video con Wi-Fi solicitada por"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Llamada de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Llamada laboral de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Entrante por medio de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-es/strings.xml b/java/com/android/incallui/contactgrid/res/values-es/strings.xml
index 1d57f9c6f..ef7c45774 100644
--- a/java/com/android/incallui/contactgrid/res/values-es/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-es/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Llamada a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videollamada de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videollamada por Wi-Fi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitud de actualización de videollamada de"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitud de actualización de videollamada por Wi-Fi de"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Llamada de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Llamada de trabajo de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Recibida a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-et/strings.xml b/java/com/android/incallui/contactgrid/res/values-et/strings.xml
index 2d81062f4..b91f073d0 100644
--- a/java/com/android/incallui/contactgrid/res/values-et/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-et/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Kõne edastab <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Ootel"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videokõne kontaktilt"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WiFi-videokõne kontaktilt"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video täiendamise taotlus:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"WiFi kaudu video täiendamise taotlus:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Kõne kontaktilt"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Töökõne kontaktilt"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Sissetulev kõne teenusepakkuja <xliff:g id="PROVIDER_NAME">%s</xliff:g> kaudu"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
index f08347bf0..ba7995ad9 100644
--- a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez deitzen"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Zain"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Bideo-deia:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi bidezko bideo-deia:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi bidezko bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Deia:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Laneko deia:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> bidez jasotzen"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
index 0dfc0f41f..40873ca15 100644
--- a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"تماس از طریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"درانتظار"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"تماس ویدئویی از"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏تماس ویدئویی Wi-Fi از"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"درخواست ارتقای تماس ویدیویی از"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏در خواست ارتقای تماس ویدیویی Wi-Fi از"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"تماس از"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"تماس کاری از"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"تماس‌های ورودی ازطریق <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
index 00503bf2f..241fef5a1 100644
--- a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Käytetään operaattoria <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Pidossa"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopuhelu henkilöltä"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videopuhelu henkilöltä"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videoon siirtymispyyntö, jonka lähettäjä on"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-videopuheluun siirtymispyyntö, jonka lähettäjän on"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Puhelu henkilöltä"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Työpuhelu henkilöltä"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Saapuva puhelu (<xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
index ee0196d98..3ffc1e918 100644
--- a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Appel par <xliff:g id="PROVIDER_NAME">%s</xliff:g> en cours…"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"En attente"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Appel vidéo de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Appel vidéo Wi-Fi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Demande de mise à niveau vidéo de"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Demande de mise à niveau vidéo Wi-Fi de"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Appel de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Appel professionnel de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Appel entrant par <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
index 9849ad623..0db6ae089 100644
--- a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Appel via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"En attente"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Appel vidéo de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Appel vidéo Wi-Fi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Demande de passage en mode vidéo par"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Demande de passage en mode vidéo Wi-Fi par"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Appel de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Appel professionnel de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Appel entrant via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
index c85f336b8..297001454 100644
--- a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Chamando a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"En espera"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada por wifi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitude de actualización a videochamada de"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitude de actualización a videochamada por wifi de"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de traballo de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada entrante a través de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
index 5179cc0cb..220bebe39 100644
--- a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે કૉલ કરી રહ્યાં છે"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"હોલ્ડ પર"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"આમના તરફથી વિડિઓ કૉલ"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"આમના તરફથી Wi-Fi વિડિઓ કૉલ"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"આમના તરફથી વિડિઓ અપગ્રેડની વિનંતી"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"આમના તરફથી Wi-Fi વિડિઓ અપગ્રેડની વિનંતી"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"આમના તરફથી કૉલ"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"આમના તરફથી કાર્ય કૉલ"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> મારફતે ઇનકમિંગ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
index dec7b629d..da128b644 100644
--- a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> के माध्यम से कॉल किया जा रहा है"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"होल्ड पर"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"इससे वीडियो कॉल"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"इससे वाई-फ़ाई वीडियो कॉल"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"इसकी ओर से वीडियो में अपग्रेड करने का अनुरोध"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"इसकी ओर से वाई-फ़ाई वीडियो में अपग्रेड करने का अनुरोध"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"इससे कॉल"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"इससे कार्य संबंधी कॉल"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> की ओर से इनकमिंग"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
index d7023ac24..24429a248 100644
--- a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Pozivanje putem operatera <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Na čekanju"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videopoziv s broja"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videopoziv putem Wi-Fi veze s broja"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Video upgrade request from"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi video upgrade request from"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Poziv s broja"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Poslovni poziv s broja"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dolazni pozivi putem davatelja <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
index f7da92322..600b69f6d 100644
--- a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Hívás a(z) <xliff:g id="PROVIDER_NAME">%s</xliff:g> szolgáltatón keresztül"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Várakoztatva"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videohívás a következőtől:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videohívás a következőtől:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videófrissítési kérelem a következőtől"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-videófrissítési kérelem a következőtől"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Hívás a következőtől:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Munkahelyi hívás a következőről:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Bejövő hívás a következőn keresztül: <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
index 6384fa924..88a49eb48 100644
--- a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Զանգում է <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ի միջոցով"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Սպասում"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Տեսազանգ հետևյալ բաժանորդից՝"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi տեսազանգ հետևյալ բաժանորդից՝"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi-ի միջոցով տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Զանգ հետևյալ բաժանորդից՝"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Գործնական զանգ հետևյալ բաժանորդից՝"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Մուտքային զանգ <xliff:g id="PROVIDER_NAME">%s</xliff:g> ցանցից"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-in/strings.xml b/java/com/android/incallui/contactgrid/res/values-in/strings.xml
index 75568387b..f6735832a 100644
--- a/java/com/android/incallui/contactgrid/res/values-in/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-in/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Menelepon melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Ditangguhkan"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call dari"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Video call Wi-Fi dari"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Permintaan upgrade video dari"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Permintaan upgrade video Wi-Fi dari"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Telepon dari"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Panggilan telepon kerja dari"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-is/strings.xml b/java/com/android/incallui/contactgrid/res/values-is/strings.xml
index 86d577c64..9e830312d 100644
--- a/java/com/android/incallui/contactgrid/res/values-is/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-is/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Hringt í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Í bið"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Myndsímtal berst frá"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi myndsímtal berst frá"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Beiðni um að uppfæra í myndsímtal frá"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Beiðni um að uppfæra í Wi-Fi myndsímtal frá"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Símtal berst frá"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Vinnusímtal berst frá"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Berst í gegnum <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-it/strings.xml b/java/com/android/incallui/contactgrid/res/values-it/strings.xml
index 9576a6d95..76958cf72 100644
--- a/java/com/android/incallui/contactgrid/res/values-it/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-it/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Chiamate tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"In attesa"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochiamata da"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochiamata Wi-Fi da"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Upgrade della videochiamata richiesto da"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Upgrade della videochiamata Wi-Fi richiesto da"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chiamata da"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chiamata di lavoro da"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"In arrivo tramite <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
index 62771d18f..b06c3212c 100644
--- a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"שיחה באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"בהמתנה"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"שיחת וידאו מאת"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏שיחת וידאו ב-Wi-Fi מאת"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"בקשה לשדרוג לשיחת וידאו מאת"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏בקשת לשדרוג לשיחת וידאו ברשת Wi-Fi מאת"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"שיחה מאת"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"שיחת עבודה מאת"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"שיחה נכנסת באמצעות <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
index a5d958c60..a2fce09cf 100644
--- a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> で発信中"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"保留中"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ビデオハングアウトの着信"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ビデオハングアウトの着信"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ビデオハングアウトへの変更リクエスト"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ビデオハングアウトへの変更リクエスト"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"着信"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"仕事の通話の着信"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> から着信"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
index 7848f595e..cb0094d37 100644
--- a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"მიმდინარეობს დარეკვა <xliff:g id="PROVIDER_NAME">%s</xliff:g>-ის მეშვეობით"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"მოცდის რეჟიმში"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ვიდეოზარი აბონენტისგან"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi ვიდეოზარი აბონენტისგან"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ზარი აბონენტისგან"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"სამსახურებრივი ზარი აბონენტისგან"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"შემომავალი, <xliff:g id="PROVIDER_NAME">%s</xliff:g>-იდან"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
index aaf260b9a..3fc68c2db 100644
--- a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы қоңырау шалу"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Күтуде"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Бейне қоңырау шалушы:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi бейне қоңырау шалушы:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Бейне қоңырауға ауысу өтініші:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi арқылы бейне қоңырауға ауысу өтініші:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Қоңырау шалушы:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Жұмыстан қоңырау шалушы:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> арқылы кіріс"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-km/strings.xml b/java/com/android/incallui/contactgrid/res/values-km/strings.xml
index b2bfc9628..7ee21ba70 100644
--- a/java/com/android/incallui/contactgrid/res/values-km/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-km/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"កំពុង​ហៅតាម <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"កំពុង​រង់ចាំ"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ការ​ហៅ​ជា​វីដេអូ​ពី"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ការ​ហៅ​ជា​វីដេអូ​តាម Wi-Fi ពី"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ស្នើ​ដំឡើង​កំណែ​វីដេអូ​ពី"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ស្នើ​ដំឡើង​កំណែ​វីដេអូតាម Wi-Fi ពី"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ការ​ហៅ​ពី"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ការ​ហៅ​ការងារ​ពី"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"ការ​ហៅ​ចូល​តាម <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
index 0ee73bacc..e90bd6b54 100644
--- a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"ಹೋಲ್ಡ್‌ ಮಾಡಲಾಗಿದೆ"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ಇವರಿಂದ ವೀಡಿಯೊ ಕರೆ"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ಇವರಿಂದ ವೈ-ಫೈ ವೀಡಿಯೊ ಕರೆ"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ಇದರಿಂದ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ಇದರಿಂದ ವೈಫೈ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ಇವರಿಂದ ಕರೆ"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ಇವರಿಂದ ಕೆಲಸದ ಕರೆ"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ಮೂಲಕ ಒಳಬರುತ್ತಿರುವ ಕರೆ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
index a5a34e3d7..85dd613bb 100644
--- a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 거는 전화"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"대기 중"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"화상 통화 발신:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 화상 통화 발신:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"화상 통화로의 업그레이드를 요청한 사용자:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 화상 통화로의 업그레이드를 요청한 사용자:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"통화 발신:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"업무 통화 발신:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>을(를) 통해 걸려온 전화"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
index a020e70d1..6028022e1 100644
--- a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалуу"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Күтүү режиминде"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео чалуу"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi аркылуу видео чалуу:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Видеону кийинки версияга көтөрүү сурамы:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi аркылуу видеомаектешүү сурамы:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Чалып жатат:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Иш боюнча чалып жатат:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> аркылуу чалып жатат"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
index 96c1dcf11..6ad117818 100644
--- a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"ກຳລັງໂທຜ່ານ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"ຖືສາຍລໍຖ້າ"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ການໂທວິດີໂອຈາກ"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi video call from"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ຄຳຮ້ອງອັບເກຣດວິດີໂອຈາກ"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ຄຳຮ້ອງອັບເກຣດວິດີໂອ Wi-Fi ຈາກ"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ການໂທຈາກ"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Work call from"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"ສາຍໂທເຂົ້າ​ຈາກ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
index e8e42fc9b..3cca55c46 100644
--- a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Skambinama naudojantis „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“ paslaugomis"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Sulaikytas"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Vaizdo skambutis nuo"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"„Wi-Fi“ vaizdo skambutis nuo"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Vaizdo skambučio naujovinimo užklausa nuo"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"„Wi-Fi“ vaizdo skambučio naujovinimo užklausa nuo"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Skambutis nuo"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Darbo skambutis nuo"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Gaunama per „<xliff:g id="PROVIDER_NAME">%s</xliff:g>“"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
index 1b3823f1e..87e5c9049 100644
--- a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Zvanu nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Aizturēts"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videozvans no:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi videozvans no:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Videozvana jaunināšanas pieprasījums no:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi videozvana jaunināšanas pieprasījums no:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Zvans no:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Darba zvans no:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Ienākošie zvani, ko nodrošina <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
index 104468359..fcab8f452 100644
--- a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Повикување преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"На чекање"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеоповик од"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеоповик преку Wi-Fi од"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Барање за надградба на видеоповик од"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Барање за надградба на видеоповик преку Wi-Fi од"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Повик од"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Работен повик од"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Дојдовни повици преку <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
index 519e9f478..1dfb46a93 100644
--- a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേന വിളിക്കുന്നു"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"ഹോള്‍ഡിലാണ്"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ഈ വ്യക്തിയിൽ നിന്നുള്ള വീഡിയോ കോൾ"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ഈ വ്യക്തിയിൽ നിന്നുള്ള Wi-Fi വീഡിയോ കോൾ"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള Wi-Fi വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ഈ വ്യക്തിയിൽ നിന്നുള്ള കോൾ"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ഈ വ്യക്തിയിൽ നിന്നുള്ള ഔദ്യോഗിക കോൾ"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> മുഖേനയുള്ള ഇൻകമിംഗ്"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
index c87e07179..c93bd468a 100644
--- a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р залгаж байна"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Хүлээлгэнд байгаа"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео дуудлага"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi видео дуудлага"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Видеог сайжруулах хүсэлт"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi видеог сайжруулах хүсэлт"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Дуудлага"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ажлын дуудлага"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g>-р ирж байна"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
index 6a0181774..81d76dd70 100644
--- a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे कॉल करीत आहे"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"होल्ड वर"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"यावरून व्हिडिओ कॉल"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi व्हिडिओ कॉल"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"याकडून व्हिडिओ श्रेणीसुधारणेची विनंती"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"याकडून Wi-Fi व्हिडिओ श्रेणीसुधारणेची विनंती"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"यावरील कॉल"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"कडून कार्य कॉल"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> द्वारे येणारे"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
index 17ca75369..815df7947 100644
--- a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Memanggil melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Panggilan ditahan"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Panggilan video daripada"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Panggilan video Wi-Fi daripada"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Permintaan peningkatan video daripada"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Permintaan peningkatan video Wi-Fi daripada"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Panggilan daripada"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Panggilan kerja daripada"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Panggilan masuk melalui <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-my/strings.xml b/java/com/android/incallui/contactgrid/res/values-my/strings.xml
index 14770cfaf..3c8a88e41 100644
--- a/java/com/android/incallui/contactgrid/res/values-my/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-my/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် ခေါ်ဆိုနေသည်"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"ဖုန်းကိုင်ထားသည်"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"အောက်ပါထံမှ ဗီဒီယိုခေါ်ဆိုမှု"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"အောက်ပါထံမှ Wi-Fi ဗီဒီယိုခေါ်ဆိုမှု"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"အောက်ပါထံမှ ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"အောက်ပါထံမှ Wi-Fi ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"အောက်ပါထံမှ ခေါ်ဆိုမှု"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"အောက်ပါထံမှ အလုပ်ခေါ်ဆိုမှု"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> မှတစ်ဆင့် အဝင်ခေါ်ဆိုမှု"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
index fbf98954c..9ad8d0d6a 100644
--- a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"På vent"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanrop fra"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoanrop fra"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Forespørsel om videooppdatering fra"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Forespørsel om Wi-Fi-videooppdatering fra"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anrop fra"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbrelatert anrop fra"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
index d618af43f..e6e65c5fb 100644
--- a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत कल गर्दै"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"होल्डमा छ"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"निम्नबाट भिडियो कल आएको छ"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"निम्नबाट Wi-Fi मार्फत गरिएको भिडियो कल आएको छ"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"निम्नबाट आएको भिडियो अपग्रेडसम्बन्धी अनुरोध"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"निम्नबाट आएको Wi-Fi मार्फत भिडियो अपग्रेडसम्बन्धी अनुरोध"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"निम्नबाट कल आएको छ"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"निम्नबाट कार्य सम्बन्धी कल आएको छ"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> मार्फत गरिएको आगमन कल"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
index 10dcd13f0..828a7a228 100644
--- a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Bellen via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"In de wacht"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videogesprek van"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wifi-videogesprek van"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Upgradeverzoek voor videogesprek van"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Upgradeverzoek voor wifi-videogesprek van"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Oproep van"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Zakelijke oproep van"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkomend via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-no/strings.xml b/java/com/android/incallui/contactgrid/res/values-no/strings.xml
index fbf98954c..9ad8d0d6a 100644
--- a/java/com/android/incallui/contactgrid/res/values-no/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-no/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"På vent"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoanrop fra"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videoanrop fra"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Forespørsel om videooppdatering fra"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Forespørsel om Wi-Fi-videooppdatering fra"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Anrop fra"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbrelatert anrop fra"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Innkommende via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
index fb261d649..1d4801c43 100644
--- a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਕਾਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"ਰੋਕ ਕੇ ਰੱਖੀ ਗਈ"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ਇਸ ਤੋਂ ਵੀਡੀਓ ਕਾਲ"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਕਾਲ"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ਇਸ ਤੋਂ ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"ਇਸ ਤੋਂ ਕਾਲ"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"ਇਸ ਤੋਂ ਕੰਮ ਸਬੰਧੀ ਕਾਲ"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ਰਾਹੀਂ ਇਨਕਮਿੰਗ"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
index 998e49e3e..586f39e65 100644
--- a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Dzwonię przez <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Oczekujące"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Rozmowa wideo z:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Rozmowa wideo przez Wi-Fi z:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Prośba o przejście na rozmowę wideo wysłana przez:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Prośba o przejście na rozmowę wideo przez Wi-Fi wysłana przez:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Połączenie z:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Połączenie służbowe z:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Przychodzące z sieci <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
index 4365cba59..a445cdf60 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Ligando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada via Wi-Fi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitação de upgrade de vídeo de"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitação de upgrade de vídeo por Wi-Fi de"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
index 55d3c2695..ca07b3fc9 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"A telefonar através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>…"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada a partir de rede Wi-Fi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Pedido de atualização para videochamada de"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Pedido de atualização para videochamada por Wi-Fi de"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada recebida através de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
index 4365cba59..a445cdf60 100644
--- a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Ligando via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Em espera"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videochamada de"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videochamada via Wi-Fi de"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitação de upgrade de vídeo de"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitação de upgrade de vídeo por Wi-Fi de"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Chamada de"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Chamada de trabalho de"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Chamada de <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
index f8d1c9b54..180a01f4c 100644
--- a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Se apelează prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"În așteptare"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Apel video de la"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Apel video prin Wi-Fi de la"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Solicitare de upgrade la apel video de la"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Solicitare de upgrade la apel video prin Wi-Fi de la"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Apel primit de la"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Apel de serviciu de la"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Primite prin <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
index dfbc08828..e0a63518f 100644
--- a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Вызов через <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"На удержании"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видеовызов от"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Видеовызов по Wi-Fi от"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запрос на переход к видеовстрече от:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запрос на переход к видеовстрече через Wi-Fi от:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Вызов от"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Рабочий вызов от"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Входящий вызов (оператор: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-si/strings.xml b/java/com/android/incallui/contactgrid/res/values-si/strings.xml
index 00ca2aa90..451dc396c 100644
--- a/java/com/android/incallui/contactgrid/res/values-si/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-si/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා අමතමින්"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"රඳවා ගත්"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"වෙතින් වීඩියෝ ඇමතුම"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"වෙතින් Wi-Fi වීඩියෝ ඇමතුම"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"වෙතින් වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"වෙතින් Wi-Fi වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"වෙතින් ඇමතුම"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"වෙතින් කාර්යාල ඇමතුම"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> හරහා එන"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
index 40039ee9a..ae21ec855 100644
--- a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Voláte prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Podržané"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videohovor od:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videohovor cez Wi-Fi od:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Žiadosť o inováciu na videohovor od používateľa"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Žiadosť o inováciu na videohovor cez Wi-Fi od používateľa"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Hovor od:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Pracovný hovor od:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Prichádzajúci hovor prostredníctvom poskytovateľa <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
index f76b5cdac..1d93d21a4 100644
--- a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Klicanje prek ponudnika <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Zadržano"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videoklic osebe"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Videoklic prek omrežja Wi-Fi osebe"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Zahteva za nadgradnjo v video – zahteva osebe"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Zahteva za nadgradnjo v video prek omrežja Wi-Fi – zahteva osebe"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Klic osebe"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Delovni klic osebe"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Dohodni klic prek storitve <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
index 34ec2d1f6..8c28eb7ea 100644
--- a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Telefonatë nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Në pritje"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Telefonatë me video nga"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Telefonatë me video në Wi-Fi nga"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Kërkesë për përmirësimin me video nga"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kërkesë për përmirësimin me video me Wi-Fi nga"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Telefonatë nga"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Telefonatë pune nga"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Telefonatë hyrëse nëpërmjet <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
index 9ad149905..66ea45d6e 100644
--- a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Позивамо преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"На чекању"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Видео позив од"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi видео позив од"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Захтев за прелазак на видео позив од"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Захтев за прелазак на видео позив преко Wi-Fi-ја од"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Позив од"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Пословни позив од"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Долазни позив преко <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
index d5dd15953..931d9c98d 100644
--- a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Ringer med <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Parkerat"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Videosamtal från"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi-videosamtal från"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Begäran om videouppgradering från"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Begäran om uppgradering av Wi-Fi-video från"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Samtal från"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Jobbsamtal från"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Inkommande via <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
index 72bc26f58..581d7970a 100644
--- a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Inapiga simu kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Imesitishwa"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Simu ya video kutoka kwa"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Simu ya video kupitia Wi-Fi kutoka kwa"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Umetumiwa ombi ili ubadilishe utumie simu ya video na"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Umetumiwa ombi ili ubadilishe utumie simu ya video kwenye Wi-Fi na"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Simu kutoka kwa"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Simu ya kazi kutoka kwa"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Simu zinazoingia kupitia <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
index 2f5b1b81d..37ff87681 100644
--- a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> வழியாக அழைக்கிறது"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"ஹோல்டில் உள்ளது"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"வீடியோ அழைப்பு:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"வைஃபை வீடியோ அழைப்பு:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"வைஃபையில் வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"அழைப்பு:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"அழைப்பு (பணி) :"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> மூலம் உள்வரும் அழைப்பு"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-te/strings.xml b/java/com/android/incallui/contactgrid/res/values-te/strings.xml
index 52038dbf8..913c9448a 100644
--- a/java/com/android/incallui/contactgrid/res/values-te/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-te/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా కాల్ చేస్తోంది"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"హోల్డ్‌లో ఉంది"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"వీరి నుండి వీడియో కాల్:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"వీరి నుండి Wi-Fi వీడియో కాల్:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"వీరి నుండి వీడియో అప్‌గ్రేడ్ అభ్యర్థన"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"వీరి నుండి Wi-Fi వీడియో అప్‌గ్రేడ్ అభ్యర్థన"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"వీరి నుండి కాల్:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"వీరి నుండి కార్యాలయ కాల్:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> ద్వారా ఇన్‌కమింగ్ కాల్"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-th/strings.xml b/java/com/android/incallui/contactgrid/res/values-th/strings.xml
index 419db19cc..6503959e4 100644
--- a/java/com/android/incallui/contactgrid/res/values-th/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-th/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"โทรผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"พักสาย"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"แฮงเอาท์วิดีโอจาก"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"แฮงเอาท์วิดีโอผ่าน Wi-Fi จาก"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"คำขออัปเกรดวิดีโอจาก"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"คำขออัปเกรดวิดีโอผ่าน Wi-Fi จาก"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"โทรจาก"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"โทรเรื่องงานจาก"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"สายเรียกเข้าผ่าน <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
index 282ec106f..7fa063b61 100644
--- a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Tumatawag sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Naka-hold"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Video call mula kay"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi na video call mula kay"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Kahilingan upang i-upgrade ang video mula kay"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kahilingan upang i-upgrade ang video gamit ang Wi-Fi mula kay"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Tawag mula kay"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Tawag sa trabaho mula kay"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Papasok sa pamamagitan ng <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
index 5ecbf3543..1ce565dca 100644
--- a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> üzerinden çağrı yapılıyor"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Beklemede"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Gelen video görüşmesi isteği:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Gelen kablosuz video görüşmesi isteği:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Görüntülü görüşmeye geçme isteği alındı:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Kablosuz görüntülü görüşmeye geçme isteği alındı:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Gelen çağrı:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Gelen iş çağrısı:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> adlı sağlayıcı üzerinden gelen çağrı"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
index 7b84fb650..0d4a595ca 100644
--- a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Виклик здійснюється через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Утримується"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Відеодзвінок від:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Відеодзвінок через Wi-Fi від:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Запит на відеодзвінок від користувача"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Запит на відеодзвінок через Wi-Fi від користувача"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Виклик від:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Виклик на робочий телефон від:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Вхідні виклики через оператора <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
index 6584181fb..793e4879d 100644
--- a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"کالنگ بذریعہ <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"ہولڈ پر ہے"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"ویڈیو کال منجانب"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"‏Wi-Fi ویڈیو کال منجانب"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"ویڈیو اپ گریڈ کی درخواست منجانب"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"‏Wi-Fi ویڈیو اپ گریڈ کی درخواست منجانب"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"کال منجانب"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"دفتری کال منجانب"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> کے ذریعے آنے والی کال"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
index db11a1822..a5ce1caea 100644
--- a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"<xliff:g id="PROVIDER_NAME">%s</xliff:g> orqali qo‘ng‘rioq qilinmoqda"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Kutish rejimida"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Kimdan video qo‘ng‘iroq:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi orqali kimdan video qo‘ng‘iroq:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Bu foydalanuvchi video suhbatga o‘tishni so‘ramoqda:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Bu foydalanuvchi Wi-Fi orqali video suhbatga o‘tishni so‘ramoqda:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Kimdan qo‘ng‘iroq:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ish telefoniga kimdan qo‘ng‘iroq:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Kiruvchi qo‘ng‘iroq (operator: <xliff:g id="PROVIDER_NAME">%s</xliff:g>)"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
index 340a11577..9ce0f1838 100644
--- a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Đang gọi điện qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Đang chờ"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Cuộc gọi điện video từ"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Cuộc gọi điện video qua Wi-Fi từ"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Yêu cầu nâng cấp video từ"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Yêu cầu nâng cấp video Wi-Fi từ"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Cuộc gọi từ"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Cuộc gọi về công việc từ"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Cuộc gọi đến qua <xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
index 16031b811..af5008af0 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"正在通过<xliff:g id="PROVIDER_NAME">%s</xliff:g>进行通话"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"保持"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"视频通话来自:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"WLAN 视频通话来自:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"视频通话升级请求来自:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"WLAN 视频通话升级请求来自:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"通话来自:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"工作通话来自:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"有人通过 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 来电"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
index 14a444124..9f4748175 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"保留"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"視像通話來自"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 視像通話來自"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"視像升級要求來自"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 視像升級要求來自"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"通話來自"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"工作通話來自"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 的來電"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
index bdee41e67..563bb2832 100644
--- a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"正在透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 撥號"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"保留中"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"視訊通話來電:"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Wi-Fi 視訊通話來電:"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"視訊升級要求,來自:"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Wi-Fi 視訊升級要求,來自:"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"語音來電:"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"公司來電:"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"有人透過 <xliff:g id="PROVIDER_NAME">%s</xliff:g> 來電"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
index 150d5cc98..19951ccf7 100644
--- a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml
@@ -1,4 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_calling_via_template" msgid="3416867359475780924">"Ishaya ucingo nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
@@ -14,6 +30,8 @@
<string name="incall_remotely_held" msgid="8561379039177396615">"Ibambile"</string>
<string name="contact_grid_incoming_video_call" msgid="4935122585117803710">"Ikholi yevidiyo kusukela ku-"</string>
<string name="contact_grid_incoming_wifi_video_call" msgid="5938822096623593533">"Ikholi yevidiyo ye-Wi-Fi kusukela ku-"</string>
+ <string name="contact_grid_incoming_video_request" msgid="7488892854791471116">"Isicelo sokuthuthukiswa kwevidiyo kusukela"</string>
+ <string name="contact_grid_incoming_wifi_video_request" msgid="4516902096577976768">"Isicelo sokuthuthukiswa kwevidiyo ye-Wi-Fi kusukela"</string>
<string name="contact_grid_incoming_voice_call" msgid="7165853925114955346">"Ikholi esuka ku-"</string>
<string name="contact_grid_incoming_work_call" msgid="837605505036615004">"Ikholi yomsebenzi kusukela ku-"</string>
<string name="contact_grid_incoming_via_template" msgid="7747391077955623969">"Ingena nge-<xliff:g id="PROVIDER_NAME">%s</xliff:g>"</string>
diff --git a/java/com/android/incallui/contactgrid/res/values/strings.xml b/java/com/android/incallui/contactgrid/res/values/strings.xml
index 385f843b1..5a9272ca3 100644
--- a/java/com/android/incallui/contactgrid/res/values/strings.xml
+++ b/java/com/android/incallui/contactgrid/res/values/strings.xml
@@ -1,4 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title displayed in the overlay for outgoing calls which include the name of the provider.
@@ -50,6 +65,12 @@
<!-- Displayed in the answer call screen for incoming video calls over Wi-F. -->
<string name="contact_grid_incoming_wifi_video_call">Wi-Fi video call from</string>
+ <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call. -->
+ <string name="contact_grid_incoming_video_request">Video upgrade request from</string>
+
+ <!-- Displayed in the answer call screen for incoming requests to upgrade to a video call over Wi-F. -->
+ <string name="contact_grid_incoming_wifi_video_request">Wi-Fi video upgrade request from</string>
+
<!-- Displayed in the answer call screen for incoming voice calls. -->
<string name="contact_grid_incoming_voice_call">Call from</string>
diff --git a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
index 0dcfdb5fe..99364e22c 100644
--- a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
+++ b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java
@@ -83,11 +83,18 @@ class ButtonChooserFactory {
mapping.put(
InCallButtonIds.BUTTON_SWITCH_TO_SECONDARY, MappingInfo.builder(4).setSlotOrder(0).build());
mapping.put(
- InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE,
- MappingInfo.builder(4).setSlotOrder(5).build());
- mapping.put(
InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO, MappingInfo.builder(4).setSlotOrder(10).build());
- mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(0).build());
+
+ /*
+ * Unlike the other configurations, MANAGE_VOICE_CONFERENCE shares a spot with HOLD for GSM.
+ * On GSM, pressing hold while there's a background call just swaps to the background call. It
+ * doesn't make sense to show both SWITCH_TO_SECONDARY and HOLD when they do the same thing, so
+ * we show MANAGE_VOICE_CONFERENCE instead. Previously MANAGE_VOICE_CONFERENCE would not show.
+ */
+ mapping.put(
+ InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE,
+ MappingInfo.builder(5).setSlotOrder(0).build());
+ mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(5).build());
return new ButtonChooser(new MappedButtonConfig(mapping));
}
diff --git a/java/com/android/incallui/incall/impl/ButtonController.java b/java/com/android/incallui/incall/impl/ButtonController.java
index 8c113649d..b7a47f08e 100644
--- a/java/com/android/incallui/incall/impl/ButtonController.java
+++ b/java/com/android/incallui/incall/impl/ButtonController.java
@@ -29,6 +29,8 @@ import com.android.incallui.incall.impl.CheckableLabeledButton.OnCheckedChangeLi
import com.android.incallui.incall.protocol.InCallButtonIds;
import com.android.incallui.incall.protocol.InCallButtonUiDelegate;
import com.android.incallui.incall.protocol.InCallScreenDelegate;
+import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo;
+import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize;
/** Manages a single button. */
interface ButtonController {
@@ -376,36 +378,13 @@ interface ButtonController {
}
public void setAudioState(CallAudioState audioState) {
- @StringRes int contentDescriptionResId;
- if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
- == CallAudioState.ROUTE_BLUETOOTH) {
- checkable = false;
- isChecked = false;
- label = R.string.incall_label_audio;
-
- 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;
- }
+ SpeakerButtonInfo info = new SpeakerButtonInfo(audioState, IconSize.SIZE_36_DP);
+
+ checkable = info.checkable;
+ isChecked = info.isChecked;
+ label = info.label;
+ icon = info.icon;
+ @StringRes int contentDescriptionResId = info.contentDescription;
contentDescription = delegate.getContext().getText(contentDescriptionResId);
checkedContentDescription =
diff --git a/java/com/android/incallui/incall/impl/InCallFragment.java b/java/com/android/incallui/incall/impl/InCallFragment.java
index c5d75329f..d329dc903 100644
--- a/java/com/android/incallui/incall/impl/InCallFragment.java
+++ b/java/com/android/incallui/incall/impl/InCallFragment.java
@@ -473,6 +473,9 @@ public class InCallFragment extends Fragment
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 0b1088d2d..bc0c61607 100644
--- a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
+++ b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
@@ -21,7 +21,6 @@ import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.PagerAdapter;
-import android.text.TextUtils;
import com.android.dialer.multimedia.MultimediaData;
import com.android.incallui.sessiondata.MultimediaFragment;
@@ -47,8 +46,7 @@ public class InCallPagerAdapter extends FragmentStatePagerAdapter {
@Override
public int getCount() {
- if (attachments != null
- && (!TextUtils.isEmpty(attachments.getText()) || attachments.hasImageData())) {
+ if (attachments != null && attachments.hasData()) {
return 2;
}
return 1;
diff --git a/java/com/android/incallui/incall/impl/res/values-af/strings.xml b/java/com/android/incallui/incall/impl/res/values-af/strings.xml
index fd632fb9a..64529a51f 100644
--- a/java/com/android/incallui/incall/impl/res/values-af/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-af/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video-oproep"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Hou aan"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Voeg oproep by"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Demp"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Beëindig oproep"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Sleutelblok"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Luidspreker"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is aan"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is af"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Voeg saam"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Bestuur"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Bestuur bellers"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Verwissel"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Klank"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Nota is gestuur"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-am/strings.xml b/java/com/android/incallui/incall/impl/res/values-am/strings.xml
index 9dfd0e61d..66a38680e 100644
--- a/java/com/android/incallui/incall/impl/res/values-am/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-am/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"የቪዲዮ ጥሪ"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ይዘህ ቆይ"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"ጥሪ ያክሉ"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"ድምፀ-ከል አድርግ"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"ጥሪ ጨርስ"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"ቁልፍ ሰሌዳ"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"የድምጽ ማጉያ"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"፣ በርቷል"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"፣ ጠፍቷል"</string>
<string name="incall_label_merge" msgid="720076442985913175">"አዋህድ"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"አስተዳድር"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ደዋዮችን ያስተዳድሩ"</string>
<string name="incall_label_swap" msgid="10458642864243507">"አገላብጥ"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ድምፅ"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"ማስታወሻ ተልኳል"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
index a5f448a31..e4dbfe4b6 100644
--- a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"مكالمة فيديو"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"انتظار"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"إضافة مكالمة"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"كتم"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"إنهاء المكالمة"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"لوحة مفاتيح"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"مكبر الصوت"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، مشغل"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، غير مشغل"</string>
<string name="incall_label_merge" msgid="720076442985913175">"دمج"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"إدارة"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"إدارة المتصلين"</string>
<string name="incall_label_swap" msgid="10458642864243507">"تبديل"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"الصوت"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"تم إرسال الملاحظة"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-az/strings.xml b/java/com/android/incallui/incall/impl/res/values-az/strings.xml
index 5f1f8cb98..9a1f7f8fe 100644
--- a/java/com/android/incallui/incall/impl/res/values-az/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-az/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video zəng"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Xətdə axlayın"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Zəng əlavə edin"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Susdurun"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Zəngi bitirin"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatura"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Dinamik"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktivdir"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", deaktivdir"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Birləşdir"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"İdarə edin"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Zəng edənləri idarə edin"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Dəyişdirin"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Səs"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Qeyd göndərildi"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
index bff7ed079..02d6b7c96 100644
--- a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video poziv"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Na čekanje"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Isključi zvuk"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Završi poziv"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatura"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključen"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključen"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Objedini"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Upravljaj"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljajte pozivaocima"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Zameni"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Beleška je poslata"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-be/strings.xml b/java/com/android/incallui/incall/impl/res/values-be/strings.xml
index 394c7c82e..45e1e1010 100644
--- a/java/com/android/incallui/incall/impl/res/values-be/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-be/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Відэавыклік"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Утрымліваць"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Дадаць выклік"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Адключыць мікрафон"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Сконч. выкл."</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Клавіятура"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Вонк.дынамік"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", уключана"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", выключана"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Аб\'яднаць"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Кіраваць"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Кіраваць выклікаючымі абанентамі"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Пераключыць"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Гук"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Нататка адпраўлена"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
index 4f5933be9..c339d3bca 100644
--- a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Видеообажд."</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Задържане"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Ново обажд."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Без звук"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Затваряне"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Клавиатура"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Високоговорител"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"е включено"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"е изключено"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Обединяване"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Управление"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управление на обаждащите се"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Размяна"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Бележката е изпратена"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
index 9453e14bd..ca5837b0e 100644
--- a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ভিডিও কল"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ধরে থাকুন"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"কল যোগ করুন"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"নিঃশব্দ করুন"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"কল শেষ করুন"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"কীপ্যাড"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"স্পিকার"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", চালু রয়েছে"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", বন্ধ রয়েছে"</string>
<string name="incall_label_merge" msgid="720076442985913175">"মার্জ করুন"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"পরিচালনা করুন"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"কলারদের পরিচালনা করুন"</string>
<string name="incall_label_swap" msgid="10458642864243507">"অদল বদল করুন"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"শব্দ"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"নোট পাঠানো হয়েছে"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
index 4b4796457..26b44ea90 100644
--- a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videopoziv"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Na čekanju"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Isključi"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Prekini poziv"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Telefonska tastatura"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključen"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključen"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Spoji"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Upravljaj"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljanje pozivaocima"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Zamijeni"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Bilješka je poslana"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
index e10b7bd2d..9c76a3a5f 100644
--- a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videotrucada"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Posa en espera"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Afeg. trucada"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Silencia"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Penja"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Teclat"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Altaveu"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activat"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivat"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Combina"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gestiona"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestiona les persones que truquen"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Canvia"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"So"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"La nota s\'ha enviat"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
index a00c10547..69f3e53a0 100644
--- a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videohovor"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Podržet"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Přidat hovor"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Vyp. mikrof."</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Zavěsit"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Klávesnice"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Reproduktor"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"– zapnuto"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"– vypnuto"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Sloučit"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Spravovat"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Spravovat volající"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Přepnout"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Poznámka byla odeslána"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-da/strings.xml b/java/com/android/incallui/incall/impl/res/values-da/strings.xml
index 08b5cbb8e..d9328afe4 100644
--- a/java/com/android/incallui/incall/impl/res/values-da/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-da/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videoopkald"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Parkér"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Tilføj opkald"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Slå lyden fra"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Slut opkald"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Højttaler"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", er til"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", er fra"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Flet"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrer opkaldere"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Byt"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Noten blev sendt"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-de/strings.xml b/java/com/android/incallui/incall/impl/res/values-de/strings.xml
index 5f3f8c1cb..30eae96b3 100644
--- a/java/com/android/incallui/incall/impl/res/values-de/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-de/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videoanruf"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Halten"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Hinzufügen"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Stumm"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Beenden"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Wähltasten"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Lautsprecher"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ist an"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ist aus"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Zusammenf."</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Verwalten"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Anrufer verwalten"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Wechseln"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Audio"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Notiz gesendet"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-el/strings.xml b/java/com/android/incallui/incall/impl/res/values-el/strings.xml
index 0f5a14238..b45314fa7 100644
--- a/java/com/android/incallui/incall/impl/res/values-el/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-el/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Βιντεοκλήση"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Αναμονή"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Προσθ. κλήσ."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Σίγαση"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Τερματισμός"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Πληκτρολόγιο"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Ηχείο"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ενεργό"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ανενεργό"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Συγχώνευση"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Διαχείριση"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Διαχείριση καλούντων"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Ανταλλαγή"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Ήχος"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Η σημείωση εστάλη"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
index 89b72df54..34323f57a 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
index 89b72df54..34323f57a 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
index 89b72df54..34323f57a 100644
--- a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Hold"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Add call"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Mute"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"End call"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is on"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is off"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Merge"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Manage"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Manage callers"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Swap"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Sound"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Note sent"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
index fe9374cb9..d39cf2f6f 100644
--- a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videollamada"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Retener"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Agregar llamada"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Silenciar"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Altavoz"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activado"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivado"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Administrar"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrar números"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Sonido"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Se envió la nota"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-es/strings.xml b/java/com/android/incallui/incall/impl/res/values-es/strings.xml
index f2dd09bb9..db5a7e643 100644
--- a/java/com/android/incallui/incall/impl/res/values-es/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-es/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videollamada"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Retener"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Añadir"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Silenciar"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Altavoz"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activado"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desactivado"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gestionar"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Administrar llamadas"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Sonido"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-et/strings.xml b/java/com/android/incallui/incall/impl/res/values-et/strings.xml
index 03fa7deae..f4587adaa 100644
--- a/java/com/android/incallui/incall/impl/res/values-et/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-et/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videokõne"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Ootele"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Lisa kõne"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Vaigista"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Lõpeta kõne"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatuur"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Kõlar"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", on sees"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", on väljas"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Ühenda"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Halda"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Helistajate haldamine"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Vaheta"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Heli"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Märge on saadetud"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
index 51d300e2e..28d78a70b 100644
--- a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Bideo-deia"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Utzi zain"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Gehitu deia"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Des. audioa"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Amaitu deia"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Teklatua"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Bozgorailua"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktibatuta"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desaktib."</string>
<string name="incall_label_merge" msgid="720076442985913175">"Bateratu"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Kudeatu"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Kudeatu deitzaileak"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Aldatu"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Soinua"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Bidali da oharra"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
index a0701163e..a26ac75a2 100644
--- a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"تماس ویدئویی"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"درحال انتظار"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"افزودن تماس"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"بی‌صدا کردن"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"پایان تماس"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"صفحه کلید"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"بلندگو"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، فعال است"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، غیرفعال است"</string>
<string name="incall_label_merge" msgid="720076442985913175">"ادغام"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"مدیریت"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"مدیریت تماس‌گیرندگان"</string>
<string name="incall_label_swap" msgid="10458642864243507">"جابه‌جایی"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"صدا"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"یادداشت ارسال شد"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
index d81bfbf39..9ae53488a 100644
--- a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videopuhelu"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Pitoon"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Lisää puhelu"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Mykistä"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Päätä puhelu"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Näppäimistö"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Kaiutin"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", käytössä"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ei käytössä"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Yhdistä"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Hallinnoi"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hallinnoi soittajia"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Vaihda"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Ääni"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Muistiinpano lähetettiin."</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
index 1278bce2d..cff6745d1 100644
--- a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Appel vidéo"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"En attente"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Autre appel"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Couper son"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Raccrocher"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Clavier"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Haut-parleur"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activé"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", désactivé"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Fusionner"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gérer"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gérer les appels"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Permuter"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Note envoyée"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
index 5532032b9..14e92beeb 100644
--- a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Appel vidéo"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"En attente"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Autre appel"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Couper micro"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Raccrocher"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Clavier"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Haut-parleur"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", activé"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", désactivé"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Fusionner"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gérer"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gérer les appelants"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Permuter"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Note envoyée"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
index ec99b7c75..4b399f4ee 100644
--- a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videochamada"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"En espera"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Eng. chamada"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Ignorar"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Finalizar chamada"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Altofalante"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"activado"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desactivado"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Combinar"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Xestionar"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Xestionar emisores de chamadas"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Cambiar"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Son"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Enviouse a nota"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
index fb3999c9a..438f0f351 100644
--- a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"વિડિઓ કૉલ"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"હોલ્ડ કરો"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"કૉલ ઉમેરો"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"મ્યૂટ કરો"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"કૉલ સમાપ્ત કરો"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"કીપેડ"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"સ્પીકર"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ચાલુ છે"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", બંધ છે"</string>
<string name="incall_label_merge" msgid="720076442985913175">"મર્જ કરો"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"સંચાલિત કરો"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"કૉલર્સને સંચાલિત કરો"</string>
<string name="incall_label_swap" msgid="10458642864243507">"સ્વેપ કરો"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ધ્વનિ"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"નોંધ મોકલી"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml
deleted file mode 100644
index 1f37cd504..000000000
--- a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="incall_avatar_size">88dp</dimen>
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
new file mode 100644
index 000000000..904aed235
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources>
+ <dimen name="incall_avatar_size">88dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml b/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
index b58ef4819..b58ef4819 100644
--- a/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml
+++ b/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
diff --git a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
index 6a7538dea..39e6e6b6d 100644
--- a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"वीडियो कॉल"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"होल्ड करें"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"कॉल जोड़ें"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"म्यूट करें"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"कॉल समाप्त करें"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"कीपैड"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"स्‍पीकर"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", चालू है"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बंद है"</string>
<string name="incall_label_merge" msgid="720076442985913175">"एक बनाएं"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"प्रबंधित करें"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कॉलर प्रबंधित करें"</string>
<string name="incall_label_swap" msgid="10458642864243507">"स्वैप करें"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ध्वनि"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"नोट भेज दिया गया है"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
index fc431b33b..e440028d8 100644
--- a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videopoziv"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Pauziraj"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poziv"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Isklj. zvuk"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Prekini poziv"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tipkovnica"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Zvučnik"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", uključeno"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", isključeno"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Spoji"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Upravljanje"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljaj pozivateljima"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Zamijeni"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Bilješka je poslana"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
index 194c348d9..e63ce5946 100644
--- a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videohívás"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Várakoztatás"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Hívás felv."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Némítás"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Hívás vége"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Billentyűzet"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Hangszóró"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", be"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ki"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Egyesítés"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Kezelés"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hívók kezelése"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Csere"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Hang"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Üzenet elküldve"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
index 0e8054ec9..ce395e70c 100644
--- a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Տեսազանգ"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Պահել զանգը"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Ավելացնել զանգ"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Անջատել"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Ավարտել զանգը"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Ստեղնաշար"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Բարձրախոս"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", միացած է"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", անջատած է"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Միավորել"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Կառավարել"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Զանգողների կառավարում"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Փոխարկել"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Ձայն"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Գրառումն ուղարկվեց"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-in/strings.xml b/java/com/android/incallui/incall/impl/res/values-in/strings.xml
index f429cb4b7..e9d738a36 100644
--- a/java/com/android/incallui/incall/impl/res/values-in/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-in/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Tahan"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Tambahkan panggilan"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Bisukan"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Akhiri panggilan"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", aktif"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Nonaktif"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Gabungkan"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Kelola"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Kelola penelepon"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Tukar"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Suara"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Catatan telah dikirim"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-is/strings.xml b/java/com/android/incallui/incall/impl/res/values-is/strings.xml
index 9c3bf89bf..f262e3f9f 100644
--- a/java/com/android/incallui/incall/impl/res/values-is/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-is/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Myndsímtal"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Setja í bið"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Bæta við"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Hljóð af"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Ljúka"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Talnaborð"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Hátalari"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", kveikt"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", slökkt"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Sameina"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Stjórna"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hafa umsjón með hringjendum"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Skipta milli"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Hljóð"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Glósa send"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-it/strings.xml b/java/com/android/incallui/incall/impl/res/values-it/strings.xml
index 1cfb0be67..f29a70260 100644
--- a/java/com/android/incallui/incall/impl/res/values-it/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-it/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videochiamata"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"In attesa"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Aggiungi chiamata"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Disattiva"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Termina chiamata"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tastierino"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Altoparlante"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", attivo"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", non attivo"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Unisci"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gestisci"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestisci chiamanti"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Scambia"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Audio"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Nota inviata"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
index 2426fc868..bf08e3b06 100644
--- a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"שיחת וידאו"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"המתנה"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"הוסף שיחה"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"השתק"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"סיום השיחה"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"לוח חיוג"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"רמקול"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", מופעל"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", מושבת"</string>
<string name="incall_label_merge" msgid="720076442985913175">"מזג"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"נהל"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ניהול המתקשרים"</string>
<string name="incall_label_swap" msgid="10458642864243507">"החלף"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"צלילים"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"ההערה נשלחה"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
index 9e313a072..b78ee202e 100644
--- a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ビデオ通話"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"通話を追加"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"ミュート"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"通話を終了"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"キーパッド"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"スピーカー"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"がオンです"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"がオフです"</string>
<string name="incall_label_merge" msgid="720076442985913175">"統合"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"発信者を管理"</string>
<string name="incall_label_swap" msgid="10458642864243507">"切り替え"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"音声"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"メモを送信しました"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
index d33af5a46..f6926f39c 100644
--- a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ვიდეოზარი"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"შეყოვნება"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"ზარის დამატ."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"დადუმება"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"ზარის დასრ."</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"კლავიატურა"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"სპიკერი"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ჩართულია"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", გამორთულია"</string>
<string name="incall_label_merge" msgid="720076442985913175">"გაერთიანება"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"მართვა"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"აბონენტების მართვა"</string>
<string name="incall_label_swap" msgid="10458642864243507">"შენაცვლება"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ხმა"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"ჩანიშვნა გაიგზავნა"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
index db9c4f6ca..8da9982d0 100644
--- a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Бейне қоңырау"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Күттіру"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Қоңырау қосу"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Дыбысын өшіру"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Қоңырауды аяқтау"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Пернетақта"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Динамик"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", қосулы"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", өшірулі"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Біріктіру"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Басқару"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Қоңырау шалушыларды басқару"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Ауыстыру"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Дыбыс"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Ескертпе жіберілді"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-km/strings.xml b/java/com/android/incallui/incall/impl/res/values-km/strings.xml
index 6596bdf0c..88e356a41 100644
--- a/java/com/android/incallui/incall/impl/res/values-km/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-km/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ហៅ​ជា​វីដេអូ"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"រង់ចាំ"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"បន្ថែម​ការ​ហៅ"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"បិទ​សំឡេង"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"បញ្ចប់​ការ​ហៅ"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"បន្ទះ​​ចុច​លេខ"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"ឧបករណ៍​បំពង​សំឡេង"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", បាន​បើក"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", បានបិទ"</string>
<string name="incall_label_merge" msgid="720076442985913175">"បញ្ចូលគ្នា"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"គ្រប់គ្រង"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"គ្រប់គ្រងអ្នក​ហៅ"</string>
<string name="incall_label_swap" msgid="10458642864243507">"ប្ដូរ"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"សំឡេង"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"បានផ្ញើចំណាំ"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
index c03ec09fa..ad29b6d36 100644
--- a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ವೀಡಿಯೊ ಕರೆ"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ಹೋಲ್ಡ್‌‌ ಮಾಡು"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"ಮ್ಯೂಟ್ ಮಾಡಿ"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"ಕೀಪ್ಯಾಡ್‌"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"ಸ್ಪೀಕರ್‌"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ಆನ್ ಆಗಿದೆ"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ಆಫ್ ಆಗಿದೆ"</string>
<string name="incall_label_merge" msgid="720076442985913175">"ವಿಲೀನಗೊಳಿಸು"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"ನಿರ್ವಹಿಸು"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ಕರೆದಾತರನ್ನು ನಿರ್ವಹಿಸಿ"</string>
<string name="incall_label_swap" msgid="10458642864243507">"ಸ್ವ್ಯಾಪ್‌ ಮಾಡು"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ಧ್ವನಿ"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"ಟಿಪ್ಪಣಿ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
index e701e772f..f9bb20f8b 100644
--- a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"화상 통화"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"대기"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"통화 추가"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"음소거"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"통화 종료"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"키패드"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"스피커"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", 켜짐"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", 꺼짐"</string>
<string name="incall_label_merge" msgid="720076442985913175">"병합"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"관리"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"발신자 관리"</string>
<string name="incall_label_swap" msgid="10458642864243507">"전환"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"소리"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"메모가 전송되었습니다."</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
index e51d4c582..f00264dbe 100644
--- a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Видео чалуу"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Күттүрүү"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Чалууну кошуу"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Үнүн өчүрүү"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Чалууну бүтүрүү"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Ном. тергич"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Катуу сүйлөткүч"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", күйүк"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", өчүк"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Бириктирүү"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Башкаруу"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Чалуучуларды башкаруу"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Алмаштыруу"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Добуш"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Билдирүү жөнөтүлдү"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
index 52de3ffcc..2382f3241 100644
--- a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ໂທດ້ວຍວິດີໂອ"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ພັກສາຍຊົ່ວຄາວ"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"ເພີ່ມການໂທ"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"ປີດສຽງ"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"ວາງສາຍ"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"ແປ້ນກົດ"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"ລຳໂພງ"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ເປີດຢູ່"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ປິດຢູ່"</string>
<string name="incall_label_merge" msgid="720076442985913175">"ຮວມສາຍ"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"ຈັດການ"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ຈັດການຜູ້ໂທ"</string>
<string name="incall_label_swap" msgid="10458642864243507">"ສະຫຼັບສາຍ"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ສຽງ"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"ສົ່ງບັນທຶກແລ້ວ"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
index 4cd0356f3..1a10884cb 100644
--- a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Vaizdo skambutis"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Sulaikyti"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Pr. skambutį"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Nutildyti"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Baig. skamb."</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatūra"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Garsiakalbis"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", įjungtas"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", išjungtas"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Sujungti"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Tvarkyti"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Tvarkyti skambintojus"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Sukeisti"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Garsas"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Užrašas išsiųstas"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
index 48f9ae032..c19e7c0ae 100644
--- a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videozvans"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Aizturēt"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Pievienot zvanu"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Izslēgt"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Beigt zvanu"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Cipartast."</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Skaļrunis"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ieslēgts"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", izslēgts"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Apvienot"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Pārvaldīt"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Pārvaldīt zvanītājus"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Pārslēgt"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Skaņa"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Piezīme nosūtīta"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
index 5a61de5d3..610a30803 100644
--- a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Видеоповик"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"На чекање"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Додај повик"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Исклучи звук"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Заврши повик"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Тастатура"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Звучник"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", е вклучен"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", е исклучен"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Спои"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Управувај"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управувајте со повикувачите"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Замени"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Белешката е испратена"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
index 00586ffa7..83c2989f0 100644
--- a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"വീഡിയോ കോള്‍"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ഹോള്‍ഡുചെയ്യുക"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"കോൾ ചേർക്കുക"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"മ്യൂട്ടുചെയ്യുക"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"കോള്‍ അവസാനിപ്പിക്കൂ"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"കീപാഡ്"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"സ്പീക്കർ"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ഓണാണ്"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ഓഫാണ്"</string>
<string name="incall_label_merge" msgid="720076442985913175">"ലയിപ്പിക്കുക"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"മാനേജുചെയ്യുക"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"കോൾ ചെയ്യുന്നവരെ മാനേജുചെയ്യുക"</string>
<string name="incall_label_swap" msgid="10458642864243507">"സ്വാപ്പുചെയ്യുക"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ശബ്‌ദം"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"കുറിപ്പ് അയച്ചു"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
index 085a405b0..9427d86d2 100644
--- a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Видео хурал"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Саатуулах"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Дуудлага нэмэх"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Дууг хаах"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Дуудлагыг таслах"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Товчлуур"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Чанга яригч"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", асаатай"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", унтраатай"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Нэгтгэх"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Удирдах"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Залгагчдыг удирдах"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Солих"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Дуу"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Тэмдэглэлийг илгээсэн"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
index 841923352..194c192bd 100644
--- a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"व्हिडिओ कॉल"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"होल्ड करा"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"कॉल जोडा"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"नि:शब्द करा"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"कॉल समाप्त करा"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"कीपॅड"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"स्पीकर"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", सुरू आहे"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बंद आहे"</string>
<string name="incall_label_merge" msgid="720076442985913175">"विलीन करा"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"व्यवस्थापित करा"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कॉलर व्यवस्थापित करा"</string>
<string name="incall_label_swap" msgid="10458642864243507">"अदलाबदल करा"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ध्वनी"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"टीप पाठविली"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
index c9db8325e..a918dedb4 100644
--- a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Pgln video"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Tunda"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Tambah pgln"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Redam"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Tamatkn pgln"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Pad kekunci"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Pmbsr suara"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", dihidupkan"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Dimatikan"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Gabung"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Urus"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Urus pemanggil"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Silih"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Bunyi"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Nota dihantar"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-my/strings.xml b/java/com/android/incallui/incall/impl/res/values-my/strings.xml
index e0bfb8c71..80070297b 100644
--- a/java/com/android/incallui/incall/impl/res/values-my/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-my/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ဗီဒီယိုခေါ်ဆိုမှု"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ခဏရပ်ထားရန်"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"ထပ်ခေါ်ရန်"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"အသံပိတ်ရန်"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"ဖုန်းချရန်"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"ခလုတ်ခုံ"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"စပီကာ"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"၊ ပွင့်နေသည်"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"၊ ပိတ်နေသည်"</string>
<string name="incall_label_merge" msgid="720076442985913175">"ပေါင်းရန်"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"စီမံရန်"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ခေါ်ဆိုသူများကို စီမံခန့်ခွဲရန်"</string>
<string name="incall_label_swap" msgid="10458642864243507">"ဖလှယ်ရန်"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"အသံ"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"မှတ်စုပို့ပြီးပါပြီ"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
index 75200869c..704384ea0 100644
--- a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtale"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Sett på vent"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Nytt anrop"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Ignorer"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Avslutt samtalen"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Høyttaler"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"er på"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"er av"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Slå sammen"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Håndter innringere"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Bytt"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Notatet er sendt"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
index 6bcfb6dd2..beffa3e74 100644
--- a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"भिडियो कल"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"होल्ड गर्ने"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"कल थप्नुहोस्"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"म्यूट गर्ने"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"कल अन्त्य गर्ने"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"किप्याड"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"स्पिकर"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", खुला छ"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", बन्द छ"</string>
<string name="incall_label_merge" msgid="720076442985913175">"मर्ज गर्ने"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"प्रबन्ध गर्ने"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"कल गर्ने व्यक्तिहरूलाई व्यवस्थित गर्नुहोस्"</string>
<string name="incall_label_swap" msgid="10458642864243507">"साट्नुहोस्"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"आवाज"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"टिपोट पठाइयो"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
index 63f1ebd5d..e3c919e1a 100644
--- a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videogespr."</string>
<string name="incall_label_hold" msgid="4223472584896867896">"In wacht"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Oproep toev."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Dempen"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Oproep beëindigen"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Toetsenblok"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Luidspreker"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", is aan"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", is uit"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Samenvoegen"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Beheren"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Bellers beheren"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Wisselen"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Geluid"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Notitie verzonden"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-no/strings.xml b/java/com/android/incallui/incall/impl/res/values-no/strings.xml
index 75200869c..704384ea0 100644
--- a/java/com/android/incallui/incall/impl/res/values-no/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-no/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtale"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Sett på vent"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Nytt anrop"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Ignorer"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Avslutt samtalen"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatur"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Høyttaler"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"er på"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"er av"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Slå sammen"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Administrer"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Håndter innringere"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Bytt"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Lyd"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Notatet er sendt"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
index 10a2865a6..d7e74ed83 100644
--- a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ਵੀਡੀਓ ਕਾਲ"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ਰੋਕ ਕੇ ਰੱਖੋ"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"ਮਿਊਟ ਕਰੋ"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"ਕਾਲ ਖਤਮ ਕਰੋ"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"ਕੀਪੈਡ"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"ਸਪੀਕਰ"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ਚਾਲੂ ਹੈ"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ਬੰਦ ਹੈ"</string>
<string name="incall_label_merge" msgid="720076442985913175">"ਰਲਗੱਡ ਕਰੋ"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"ਕਾਲਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
<string name="incall_label_swap" msgid="10458642864243507">"ਅਦਲੋ-ਬਦਲੋ"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ਧੁਨੀ"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"ਨੋਟ-ਕਥਨ ਭੇਜਿਆ ਗਿਆ"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
index 4bf6a5833..9971d7553 100644
--- a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Rozmowa wid."</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Wstrzymaj"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj poł."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Wycisz"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Zakończ"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Klawiatura"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Głośnik"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"– włączony"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"– wyłączony"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Scal"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Zarządzaj"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Zarządzaj rozmówcami"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Przełącz"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Dźwięk"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Notatka wysłana"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
index 7ca6b6b6b..538c20c0b 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videocham."</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Adic chamada"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Desativar"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Encerrar"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Alto-falante"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"ativado"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desativado"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Mesclar"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gerenciar"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerenciar os autores das chamadas"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Trocar"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
index 750e57e37..376ee8443 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videochamada"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Adic. cham."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Desativ. som"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Term. cham."</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Altifalante"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ativado"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", desativado"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Unir"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gerir"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerir autores das chamadas"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Alternar"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
index 7ca6b6b6b..538c20c0b 100644
--- a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videocham."</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Em espera"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Adic chamada"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Desativar"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Encerrar"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Teclado"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Alto-falante"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"ativado"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"desativado"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Mesclar"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gerenciar"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gerenciar os autores das chamadas"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Trocar"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Som"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Nota enviada"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
index 1f93da9be..81dcdf3cc 100644
--- a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Apel video"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"În așteptare"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Încă un apel"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Dezactivați"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Încheiați"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tastatură"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Difuzor"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", e activat"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", dezactivat"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Îmbinați"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Gestionați"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Gestionați apelanții"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Schimbați"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Sunet"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Nota a fost trimisă"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
index 89192c3ae..274f8fff7 100644
--- a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Видеовызов"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Удерживать"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Добавить вызов"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Выкл. звук"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Завершить вызов"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Клавиатура"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Динамик"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", включен"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", отключен"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Объединить"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Управление"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управление абонентами"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Переключить"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Сообщение отправлено"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-si/strings.xml b/java/com/android/incallui/incall/impl/res/values-si/strings.xml
index 209bb77b1..a600c2193 100644
--- a/java/com/android/incallui/incall/impl/res/values-si/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-si/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"වීඩියෝ ඇමතුම"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"රඳවා ගන්න"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"ඇමතුම එක් ක."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"නිහඬ කරන්න"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"ඇමතුම නිම ක."</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"යතුරු පුවරුව"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"ස්පීකරය"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", සක්‍රියයි"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", අක්‍රියයි"</string>
<string name="incall_label_merge" msgid="720076442985913175">"ඒකාබද්ධ කර."</string>
<string name="incall_label_manage" msgid="2175471192903568159">"කළමනාකරණය ක."</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"අමතන්නන් කළමනාකරණය කරන්න"</string>
<string name="incall_label_swap" msgid="10458642864243507">"මාරු කරන්න"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"හඬ"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"සටහන යවන ලදී"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
index 4e06aee32..d74d19e22 100644
--- a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videohovor"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Podržať"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Pridať hovor"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Vypnúť zvuk"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Ukonč. hovor"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Klávesnica"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Reproduktor"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", je zapnutý"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", je vypnutý"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Zlúčiť"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Spravovať"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Spravovať volajúcich"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Zameniť"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Zvuk"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Poznámka bola odoslaná"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
index 7cdb6c88c..782ce444b 100644
--- a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videoklic"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Zadrži"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Dodaj klic"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Izklopi zvok"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Končaj klic"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tipkovnica"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Zvočnik"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", vklopljen"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", izklopljen"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Združi"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Upravljanje"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Upravljanje klicateljev"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Zamenjaj"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Zvok"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Opomba je poslana"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
index 9ba18b5f4..a0fca3668 100644
--- a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video tel."</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Në pritje"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Shto telef."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Hiqi zërin"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Mbyll tel."</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Blloku i tasteve"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Altoparlant"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", është aktiv"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", është joaktiv"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Shkri"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Menaxho"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Menaxho telefonuesit"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Shkëmbe"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Tingulli"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Shënimi u dërgua"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
index 56a968453..ec704511b 100644
--- a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Видео позив"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"На чекање"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Додај позив"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Искључи звук"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Заврши позив"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Тастатура"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Звучник"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", укључен"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", искључен"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Обједини"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Управљај"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Управљајте позиваоцима"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Замени"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Белешка је послата"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
index 27d83b74b..ded45221c 100644
--- a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Videosamtal"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Parkera"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Lägg t samt."</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Ljud av"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Avsl. samtal"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Knappsats"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Högtalare"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", är på"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", är av"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Sammanfoga"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Hantera"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Hantera uppringare"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Växla"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Ljud"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Anteckning skickad"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
index 136fe1713..df634f469 100644
--- a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Hangout ya video"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Shikilia"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Ongeza simu"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Zima maikrofoni"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Kata simu"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Vitufe vya Simu"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Spika"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", kimewashwa"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", kimezimwa"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Unganisha"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Dhibiti"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Dhibiti wanaopiga simu"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Badili"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Sauti"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Dokezo limetumwa"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
index 342f8d041..5c94abff4 100644
--- a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"வீடியோ கால்"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ஹோல்டில் வை"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"அழைப்பை சேர்"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"முடக்கு"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"அழைப்பை முடி"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"விசைத்தளம்"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"ஸ்பீக்கர்"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ஆன்"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ஆஃப்"</string>
<string name="incall_label_merge" msgid="720076442985913175">"இணை"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"நிர்வகி"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"அழைப்பாளர்களை நிர்வகிக்கும்"</string>
<string name="incall_label_swap" msgid="10458642864243507">"மாற்று"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"ஒலி"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"குறிப்பு அனுப்பப்பட்டது"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-te/strings.xml b/java/com/android/incallui/incall/impl/res/values-te/strings.xml
index 004895647..0cb3fb837 100644
--- a/java/com/android/incallui/incall/impl/res/values-te/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-te/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"వీడియో కాల్"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"హోల్డ్ చేయి"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"కాల్ జోడించు"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"మ్యూట్ చేయి"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"కాల్ ముగించు"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"కీప్యాడ్"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"స్పీకర్"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ఆన్‌లో ఉంది"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ఆఫ్‌లో ఉంది"</string>
<string name="incall_label_merge" msgid="720076442985913175">"విలీనం చేయి"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"నిర్వహించు"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"కాలర్‌లను నిర్వహిస్తుంది"</string>
<string name="incall_label_swap" msgid="10458642864243507">"మార్చు"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"శబ్దం"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"గమనిక పంపబడింది"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-th/strings.xml b/java/com/android/incallui/incall/impl/res/values-th/strings.xml
index a74028842..0929cfc23 100644
--- a/java/com/android/incallui/incall/impl/res/values-th/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-th/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"แฮงเอาท์วิดีโอ"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"พักสาย"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"เพิ่มการโทร"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"ปิดเสียง"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"วางสาย"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"ปุ่มกด"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"ลำโพง"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"เปิดอยู่"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"ปิดอยู่"</string>
<string name="incall_label_merge" msgid="720076442985913175">"รวม"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"จัดการ"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"จัดการผู้โทร"</string>
<string name="incall_label_swap" msgid="10458642864243507">"สลับ"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"เสียง"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"ส่งโน้ตแล้ว"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
index 46ff79731..1ac2ef88c 100644
--- a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video call"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"I-hold"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Mag-add: tawag"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"I-mute"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Tapusin ang tawag"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Keypad"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Speaker"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">",ay On"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ay Off"</string>
<string name="incall_label_merge" msgid="720076442985913175">"I-merge"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Pamahalaan"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Pamahalaan ang mga tumatawag"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Pagpalitin"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Tunog"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Naipadala ang tala"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
index 89ca3302f..241b69429 100644
--- a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Görü. görüş."</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Beklemeye al"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Çağrı ekle"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Sesi kapat"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Çğryı sonldr"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Tuş takımı"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Hoparlör"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", Açık"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", Kapalı"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Birleştir"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Yönet"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Arayanları yönetin"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Değiştir"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Ses"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Not gönderildi"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
index 516bcb757..1821556fa 100644
--- a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Відеодзвінок"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Утримувати"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Дод. виклик"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Без звуку"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Завер. викл."</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Клавіатура"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Динамік"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", увімкнено"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", вимкнено"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Об’єднати"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Керувати"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Керувати абонентами"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Поміняти"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Звук"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Нотатку надіслано"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
index 53ba19031..fed0af6c2 100644
--- a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"ویڈیو کال"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"ہولڈ کریں"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"کال شامل کریں"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"خاموش کریں"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"کال ختم کریں"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"کی پیڈ"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"اسپیکر"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">"، آن ہے"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">"، آف ہے"</string>
<string name="incall_label_merge" msgid="720076442985913175">"ضم کریں"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"نظم کریں"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"کالرز کا نظم کریں"</string>
<string name="incall_label_swap" msgid="10458642864243507">"تبادلہ کریں"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"آواز"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"نوٹ بھیج دیا گیا"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
index 881848965..7d6af27b2 100644
--- a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Video qo‘n."</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Pauza"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Chaqiruv"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Ovozsiz"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Tugatish"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Klaviatura"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Karnay"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", yoniq"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", o‘chiq"</string>
- <string name="incall_label_merge" msgid="720076442985913175">"Birlashtir."</string>
+ <string name="incall_label_merge" msgid="720076442985913175">"Birlashtirish"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Boshqarish"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Qo‘ng‘iroq qiluvchilarni boshqarish"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Almashish"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Ovoz"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Qayd yuborildi"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
index 29f85efab..42e320a7a 100644
--- a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Gọi điện video"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Giữ"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Thêm cuộc gọi"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Tắt tiếng"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Kết thúc cuộc gọi"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Bàn phím"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Loa"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", đang bật"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", đang tắt"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Hợp nhất"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Quản lý"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Quản lý người gọi"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Hoán đổi"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Âm thanh"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Đã gửi ghi chú"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml
deleted file mode 100644
index e73eb934c..000000000
--- a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="incall_button_horizontal_padding">16dp</dimen>
- <dimen name="incall_button_vertical_padding">16dp</dimen>
- <dimen name="incall_labeled_button_size">64dp</dimen>
- <dimen name="tools_button_height">92dp</dimen>
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
new file mode 100644
index 000000000..834ea2f30
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources>
+ <dimen name="incall_button_horizontal_padding">16dp</dimen>
+ <dimen name="incall_button_vertical_padding">16dp</dimen>
+ <dimen name="incall_labeled_button_size">64dp</dimen>
+ <dimen name="tools_button_height">92dp</dimen>
+</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml
deleted file mode 100644
index 502ae72dc..000000000
--- a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <dimen name="incall_button_horizontal_padding">32dp</dimen>
- <dimen name="incall_button_vertical_padding">32dp</dimen>
-</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
new file mode 100644
index 000000000..c7ac35efc
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources>
+ <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 ec6404569..f0cca9060 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"视频通话"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"保持"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"添加通话"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"静音"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"结束通话"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"拨号键盘"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"免提"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">",已开启"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">",已关闭"</string>
<string name="incall_label_merge" msgid="720076442985913175">"合并"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理来电者"</string>
<string name="incall_label_swap" msgid="10458642864243507">"切换"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"声音"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"已发送备注"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
index 63cd6d8c8..c38ef35a0 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"視像通話"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"新增通話"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"靜音"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"結束通話"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"小鍵盤"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"揚聲器"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">",已開啟"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">",已關閉"</string>
<string name="incall_label_merge" msgid="720076442985913175">"合併"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理來電者"</string>
<string name="incall_label_swap" msgid="10458642864243507">"切換"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"音效"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"已傳送筆記"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
index be3103ba6..c04b8309e 100644
--- a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"視訊通話"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"保留"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"新增通話"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"靜音"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"結束通話"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"撥號鍵盤"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"擴音模式"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">",已開啟"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">",已關閉"</string>
<string name="incall_label_merge" msgid="720076442985913175">"合併"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"管理"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"管理來電者"</string>
<string name="incall_label_swap" msgid="10458642864243507">"切換"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"音訊"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"備註已送出"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
index df3f79484..a23a1d5e3 100644
--- a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml
@@ -1,18 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="incall_label_videocall" msgid="2208755440134676113">"Ikholi yevidiyo ye-Hangout"</string>
<string name="incall_label_hold" msgid="4223472584896867896">"Bamba"</string>
<string name="incall_label_add_call" msgid="5641663436373994915">"Engeza ikholi"</string>
<string name="incall_label_mute" msgid="2180667027331706737">"Thulisa"</string>
+ <string name="incall_label_end_call" msgid="5434079261446614887">"Qeda ikholi"</string>
<string name="incall_label_dialpad" msgid="8609779533654156550">"Ikhiphedi"</string>
- <string name="incall_label_speaker" msgid="8100402799687856933">"Isipikha"</string>
<string name="incall_talkback_speaker_on" msgid="5819463769258124228">", ivuliwe"</string>
<string name="incall_talkback_speaker_off" msgid="7486836772563090186">", ivaliwe"</string>
<string name="incall_label_merge" msgid="720076442985913175">"Hlanganisa"</string>
<string name="incall_label_manage" msgid="2175471192903568159">"Phatha"</string>
<string name="a11y_description_incall_label_manage_content" msgid="8298638893449287602">"Phatha abashayi"</string>
<string name="incall_label_swap" msgid="10458642864243507">"Shintsha"</string>
- <string name="incall_label_audio" msgid="8616473242030174797">"Umsindo"</string>
<string name="incall_note_sent" msgid="4524130323127388367">"Inothi lithunyelwe"</string>
</resources>
diff --git a/java/com/android/incallui/incall/impl/res/values/strings.xml b/java/com/android/incallui/incall/impl/res/values/strings.xml
index 054ca9687..2b30dfa53 100644
--- a/java/com/android/incallui/incall/impl/res/values/strings.xml
+++ b/java/com/android/incallui/incall/impl/res/values/strings.xml
@@ -1,4 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
<resources>
<!-- Button shown during a phone call to upgrade to video.
@@ -17,13 +32,13 @@
[CHAR LIMIT=12] -->
<string name="incall_label_mute">Mute</string>
- <!-- Button shown during a phone call to show the dialpad.
+ <!-- Button shown during a phone call to end the call.
[CHAR LIMIT=12] -->
- <string name="incall_label_dialpad">Keypad</string>
+ <string name="incall_label_end_call">End call</string>
- <!-- Button shown during a phone to route audio from earpiece to speaker phone.
+ <!-- Button shown during a phone call to show the dialpad.
[CHAR LIMIT=12] -->
- <string name="incall_label_speaker">Speaker</string>
+ <string name="incall_label_dialpad">Keypad</string>
<!-- Talkback text for speaker button status. [CHAR LIMIT=12] -->
<string name="incall_talkback_speaker_on">, is on</string>
@@ -45,12 +60,9 @@
[CHAR LIMIT=12] -->
<string name="incall_label_swap">Swap</string>
- <!-- Button shown during a phone to switch the audio route.
- [CHAR LIMIT=12] -->
- <string name="incall_label_audio">Sound</string>
<!-- Used to inform the user that the note associated with an outgoing call has been sent.
[CHAR LIMIT=32] -->
<string name="incall_note_sent">Note sent</string>
-</resources> \ No newline at end of file
+</resources>
diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java
index 2ae6a18e5..26dd3887a 100644
--- a/java/com/android/incallui/incall/protocol/PrimaryCallState.java
+++ b/java/com/android/incallui/incall/protocol/PrimaryCallState.java
@@ -44,6 +44,7 @@ public class PrimaryCallState {
public final boolean isVoiceMailNumber;
public final boolean isRemotelyHeld;
public final boolean isBusinessNumber;
+ public final boolean supportsCallOnHold;
// TODO: Convert to autovalue. b/34502119
public static PrimaryCallState createEmptyPrimaryCallState() {
@@ -67,7 +68,8 @@ public class PrimaryCallState {
0,
false /* isVoiceMailNumber */,
false /* isRemotelyHeld */,
- false /* isBusinessNumber */);
+ false /* isBusinessNumber */,
+ true /* supportsCallOnHold */);
}
public PrimaryCallState(
@@ -90,7 +92,8 @@ public class PrimaryCallState {
long connectTimeMillis,
boolean isVoiceMailNumber,
boolean isRemotelyHeld,
- boolean isBusinessNumber) {
+ boolean isBusinessNumber,
+ boolean supportsCallOnHold) {
this.state = state;
this.isVideoCall = isVideoCall;
this.sessionModificationState = sessionModificationState;
@@ -111,6 +114,7 @@ public class PrimaryCallState {
this.isVoiceMailNumber = isVoiceMailNumber;
this.isRemotelyHeld = isRemotelyHeld;
this.isBusinessNumber = isBusinessNumber;
+ this.supportsCallOnHold = supportsCallOnHold;
}
@Override
diff --git a/java/com/android/incallui/res/drawable-hdpi/img_conference.png b/java/com/android/incallui/res/drawable-hdpi/img_conference.png
deleted file mode 100644
index 3d9f683a5..000000000
--- a/java/com/android/incallui/res/drawable-hdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-mdpi/img_conference.png b/java/com/android/incallui/res/drawable-mdpi/img_conference.png
deleted file mode 100644
index 0694dbd55..000000000
--- a/java/com/android/incallui/res/drawable-mdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png
deleted file mode 100644
index b0dbcc2dc..000000000
--- a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png
deleted file mode 100644
index a8dba5ed0..000000000
--- a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png
deleted file mode 100644
index eb42b5552..000000000
--- a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png
+++ /dev/null
Binary files differ
diff --git a/java/com/android/incallui/res/values-ca/strings.xml b/java/com/android/incallui/res/values-ca/strings.xml
index 5148db540..ad34b00ef 100644
--- a/java/com/android/incallui/res/values-ca/strings.xml
+++ b/java/com/android/incallui/res/values-ca/strings.xml
@@ -136,6 +136,6 @@
<string name="generic_conference_call_name" msgid="1546941472424243894">"En una trucada"</string>
<string name="video_call_wifi_to_lte_handover_toast" msgid="2495974172657183700">"S\'està continuant la trucada mitjançant dades mòbils…"</string>
<string name="video_call_lte_to_wifi_failed_title" msgid="2793524281399509056">"No s\'ha pogut canviar a la xarxa Wi-Fi"</string>
- <string name="video_call_lte_to_wifi_failed_message" msgid="5950700221126447109">"La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'apliquin càrrecs de dades estàndard."</string>
+ <string name="video_call_lte_to_wifi_failed_message" msgid="5950700221126447109">"La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'hi apliquin càrrecs de dades estàndard."</string>
<string name="video_call_lte_to_wifi_failed_do_not_show" msgid="7609115874511223150">"No ho tornis a mostrar"</string>
</resources>
diff --git a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml
new file mode 100644
index 000000000..2679653a7
--- /dev/null
+++ b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2013 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources>
+ <!-- This is customization of wifi call notification only for DTAG of Germany. -->
+ <!-- The "label" of the in-call Notification for an ongoing call, which is being made over
+ Wi-Fi. [CHAR LIMIT=60] -->
+ <string name="notification_ongoing_call_wifi">Ongoing WLAN Call</string>
+ <!-- The "label" of the in-call Notification for an ongoing work call, which is being made
+ over Wi-Fi. [CHAR LIMIT=60] -->
+ <string name="notification_ongoing_work_call_wifi">Ongoing WLAN work call</string>
+ <!-- The "label" of the in-call Notification for an incoming ringing call,
+ which is being made over Wi-Fi. [CHAR LIMIT=60] -->
+ <string name="notification_incoming_call_wifi">Incoming WLAN Call</string>
+ <!-- The "label" of the in-call Notification for an incoming ringing work call,
+ which is being made over Wi-Fi. [CHAR LIMIT=60] -->
+ <string name="notification_incoming_work_call_wifi">Incoming WLAN work call</string>
+</resources> \ No newline at end of file
diff --git a/java/com/android/incallui/res/values-uz/strings.xml b/java/com/android/incallui/res/values-uz/strings.xml
index 38285015a..b04972ffd 100644
--- a/java/com/android/incallui/res/values-uz/strings.xml
+++ b/java/com/android/incallui/res/values-uz/strings.xml
@@ -36,7 +36,7 @@
<string name="notification_ongoing_call_wifi" msgid="297183051021070949">"Chiquvchi Wi-Fi qo‘ng‘irog‘i"</string>
<string name="notification_ongoing_work_call_wifi" msgid="6769311641293583197">"Chiquvchi Wi-Fi ishchi qo‘ng‘irog‘i"</string>
<string name="notification_on_hold" msgid="7141827443379205682">"Kutmoqda"</string>
- <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi qo‘ng‘iroq"</string>
+ <string name="notification_incoming_call" msgid="7520580807513849283">"Kiruvchi chaqiruv"</string>
<string name="notification_incoming_call_with_photo" msgid="4360505044807517422">"Suratga ega kiruvchi chaqiruv"</string>
<string name="notification_incoming_call_with_message" msgid="5608687985694956601">"Xabarga ega kiruvchi chaqiruv"</string>
<string name="notification_incoming_call_with_location" msgid="4519498445081598767">"Joylashuv axborotiga ega kiruvchi chaqiruv"</string>
diff --git a/java/com/android/incallui/res/values/dimens.xml b/java/com/android/incallui/res/values/dimens.xml
index 18816f645..fb4934d01 100644
--- a/java/com/android/incallui/res/values/dimens.xml
+++ b/java/com/android/incallui/res/values/dimens.xml
@@ -38,7 +38,7 @@
<dimen name="incall_dialpad_zero_key_number_margin_bottom">0dp</dimen>
<dimen name="incall_dialpad_digits_adjustable_text_size">20sp</dimen>
<dimen name="incall_dialpad_digits_adjustable_height">50dp</dimen>
- <dimen name="incall_dialpad_key_numbers_size">36sp</dimen>
+ <dimen name="incall_dialpad_key_numbers_size">36dp</dimen>
<!-- Dimensions for OTA Call Card -->
<dimen name="otaactivate_layout_marginTop">10dp</dimen>
diff --git a/java/com/android/incallui/res/values/styles.xml b/java/com/android/incallui/res/values/styles.xml
index 68a38f0b2..3c036c95f 100644
--- a/java/com/android/incallui/res/values/styles.xml
+++ b/java/com/android/incallui/res/values/styles.xml
@@ -78,4 +78,13 @@
<item name="android:colorAccent">@color/dialer_theme_color</item>
</style>
+ <style name="Theme.Incall.DialogHolder" parent="Theme.AppCompat.Translucent">
+ <item name="android:windowBackground">@android:color/transparent</item>
+ <item name="android:windowActivityTransitions">false</item>
+
+ <item name="android:statusBarColor">@android:color/transparent</item>
+ <item name="android:navigationBarColor">@android:color/transparent</item>
+ <item name="android:windowDrawsSystemBarBackgrounds">true</item>
+ </style>
+
</resources>
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
index ed29e78c4..3b3327d4f 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
@@ -24,8 +24,8 @@
<ImageView
android:id="@id/answer_message_image"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
android:layout_marginTop="@dimen/answer_message_contents_margin_top"
android:layout_marginBottom="4dp"
android:layout_centerInParent="true"
@@ -34,7 +34,7 @@
android:background="@drawable/answer_data_background"
android:elevation="@dimen/answer_data_elevation"
android:adjustViewBounds="true"
- android:scaleType="fitCenter"/>
+ android:scaleType="centerCrop"/>
<ProgressBar
android:layout_width="wrap_content"
diff --git a/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml b/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
new file mode 100644
index 000000000..9557d0362
--- /dev/null
+++ b/java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml
@@ -0,0 +1,18 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<manifest
+ package="com.android.incallui.speakerbuttonlogic">
+</manifest>
diff --git a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java
new file mode 100644
index 000000000..5ab821be0
--- /dev/null
+++ b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.speakerbuttonlogic;
+
+import android.support.annotation.DrawableRes;
+import android.support.annotation.IntDef;
+import android.support.annotation.StringRes;
+import android.telecom.CallAudioState;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/** Info about how a "Speaker" button should be displayed */
+public class SpeakerButtonInfo {
+
+ // Testing note: most of this is exercised in ReturnToCallTest.java
+
+ /** Preferred size for icons */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({IconSize.SIZE_24_DP, IconSize.SIZE_36_DP})
+ public @interface IconSize {
+ int SIZE_24_DP = 1;
+ int SIZE_36_DP = 2;
+ }
+
+ @DrawableRes public final int icon;
+ @StringRes public final int contentDescription;
+ @StringRes public final int label;
+ public final boolean checkable;
+ public final boolean isChecked;
+
+ public SpeakerButtonInfo(CallAudioState audioState, @IconSize int iconSize) {
+ if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH)
+ == CallAudioState.ROUTE_BLUETOOTH) {
+ checkable = false;
+ isChecked = false;
+ label = R.string.incall_label_audio;
+
+ if ((audioState.getRoute() & CallAudioState.ROUTE_BLUETOOTH)
+ == CallAudioState.ROUTE_BLUETOOTH) {
+ icon =
+ iconSize == IconSize.SIZE_36_DP
+ ? R.drawable.quantum_ic_bluetooth_audio_white_36
+ : R.drawable.quantum_ic_bluetooth_audio_white_24;
+ contentDescription = R.string.incall_content_description_bluetooth;
+ } else if ((audioState.getRoute() & CallAudioState.ROUTE_SPEAKER)
+ == CallAudioState.ROUTE_SPEAKER) {
+ icon =
+ iconSize == IconSize.SIZE_36_DP
+ ? R.drawable.quantum_ic_volume_up_white_36
+ : R.drawable.quantum_ic_volume_up_white_24;
+ contentDescription = R.string.incall_content_description_speaker;
+ } else if ((audioState.getRoute() & CallAudioState.ROUTE_WIRED_HEADSET)
+ == CallAudioState.ROUTE_WIRED_HEADSET) {
+ icon =
+ iconSize == IconSize.SIZE_36_DP
+ ? R.drawable.quantum_ic_headset_white_36
+ : R.drawable.quantum_ic_headset_white_24;
+ contentDescription = R.string.incall_content_description_headset;
+ } else {
+ icon =
+ iconSize == IconSize.SIZE_36_DP
+ ? R.drawable.quantum_ic_phone_in_talk_white_36
+ : R.drawable.quantum_ic_phone_in_talk_white_24;
+ contentDescription = R.string.incall_content_description_earpiece;
+ }
+ } else {
+ checkable = true;
+ isChecked = audioState.getRoute() == CallAudioState.ROUTE_SPEAKER;
+ label = R.string.incall_label_speaker;
+ icon =
+ iconSize == IconSize.SIZE_36_DP
+ ? R.drawable.quantum_ic_volume_up_white_36
+ : R.drawable.quantum_ic_volume_up_white_24;
+ contentDescription = R.string.incall_content_description_speaker;
+ }
+ }
+}
diff --git a/java/com/android/incallui/video/impl/SpeakerButtonController.java b/java/com/android/incallui/video/impl/SpeakerButtonController.java
index e12032abf..d98545feb 100644
--- a/java/com/android/incallui/video/impl/SpeakerButtonController.java
+++ b/java/com/android/incallui/video/impl/SpeakerButtonController.java
@@ -88,7 +88,7 @@ public class SpeakerButtonController implements OnCheckedChangeListener, OnClick
icon = R.drawable.quantum_ic_headset_white_36;
contentDescriptionResId = R.string.incall_content_description_headset;
} else {
- icon = R.drawable.ic_phone_audio_white_36dp;
+ icon = R.drawable.quantum_ic_phone_in_talk_white_36;
contentDescriptionResId = R.string.incall_content_description_earpiece;
}
} else {
diff --git a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
index b7a960e35..489f72b7d 100644
--- a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
@@ -495,7 +495,7 @@ public class SurfaceViewVideoCallFragment extends Fragment
}
private View[] getAllPreviewRelatedViews() {
- return new View[] {previewRoot};
+ return new View[] {previewRoot, mutePreviewOverlay};
}
private int getOffsetTop(View view) {
@@ -644,12 +644,6 @@ public class SurfaceViewVideoCallFragment extends Fragment
updateVideoOffViews();
}
- /**
- * This method scales the video feed inside the texture view, it doesn't change the texture view's
- * size. In the old UI we would change the view size to match the aspect ratio of the video. In
- * the new UI the view is always square (with the circular clip) so we have to do additional work
- * to make sure the non-square video doesn't look squished.
- */
@Override
public void onLocalVideoDimensionsChanged() {
LogUtil.i("SurfaceViewVideoCallFragment.onLocalVideoDimensionsChanged", null);
@@ -834,6 +828,9 @@ public class SurfaceViewVideoCallFragment extends Fragment
}
@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 8e2f5aefd..6e45f928a 100644
--- a/java/com/android/incallui/video/impl/VideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/VideoCallFragment.java
@@ -59,6 +59,7 @@ import android.widget.TextView;
import com.android.dialer.common.Assert;
import com.android.dialer.common.FragmentUtils;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.ThreadUtil;
import com.android.dialer.compat.ActivityCompat;
import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment;
import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter;
@@ -665,22 +666,14 @@ public class VideoCallFragment extends Fragment
updateRemoteVideoScaling();
}
- /**
- * This method scales the video feed inside the texture view, it doesn't change the texture view's
- * size. In the old UI we would change the view size to match the aspect ratio of the video. In
- * the new UI the view is always square (with the circular clip) so we have to do additional work
- * to make sure the non-square video doesn't look squished.
- */
@Override
public void onLocalVideoDimensionsChanged() {
LogUtil.i("VideoCallFragment.onLocalVideoDimensionsChanged", null);
- updatePreviewVideoScaling();
}
@Override
public void onLocalVideoOrientationChanged() {
LogUtil.i("VideoCallFragment.onLocalVideoOrientationChanged", null);
- updatePreviewVideoScaling();
}
/** Called when the remote video's dimensions change. */
@@ -853,6 +846,9 @@ public class VideoCallFragment extends Fragment
}
@Override
+ public void onAudioRouteSelectorDismiss() {}
+
+ @Override
public void setPrimary(@NonNull PrimaryInfo primaryInfo) {
LogUtil.i("VideoCallFragment.setPrimary", primaryInfo.toString());
contactGridManager.setPrimary(primaryInfo);
@@ -1045,7 +1041,6 @@ public class VideoCallFragment extends Fragment
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
previewTextureView.setLayoutParams(params);
previewTextureView.setOutlineProvider(circleOutlineProvider);
- updatePreviewVideoScaling();
updateOverlayBackground();
contactGridManager.setIsMiddleRowVisible(false);
updateMutePreviewOverlayVisibility();
@@ -1053,6 +1048,9 @@ public class VideoCallFragment extends Fragment
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 c67246675..1a2bc2429 100644
--- a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
+++ b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml
@@ -14,7 +14,7 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -32,7 +32,7 @@
android:id="@+id/videocall_remote_video_off"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center"
+ android:layout_centerInParent="true"
android:accessibilityTraversalBefore="@+id/videocall_speaker_button"
android:drawablePadding="8dp"
android:drawableTop="@drawable/quantum_ic_videocam_off_white_36"
@@ -71,20 +71,23 @@
android:visibility="gone"
android:importantForAccessibility="no"
tools:visibility="visible"/>
-
- <ImageView
- android:id="@+id/videocall_video_preview_mute_overlay"
- android:layout_width="32dp"
- android:layout_height="32dp"
- android:layout_gravity="center"
- android:background="@drawable/videocall_background_circle_white"
- android:contentDescription="@string/incall_content_description_muted"
- android:scaleType="center"
- android:src="@drawable/quantum_ic_mic_off_black_24"
- android:visibility="gone"
- tools:visibility="visible"/>
</FrameLayout>
+ <ImageView
+ android:id="@+id/videocall_video_preview_mute_overlay"
+ android:layout_width="32dp"
+ android:layout_height="32dp"
+ android:layout_alignBottom="@id/videocall_preview_root"
+ android:layout_alignEnd="@id/videocall_preview_root"
+ android:layout_marginBottom="-8dp"
+ android:layout_marginEnd="-8dp"
+ android:background="@drawable/videocall_background_circle_white"
+ android:contentDescription="@string/incall_content_description_muted"
+ android:scaleType="center"
+ android:src="@drawable/quantum_ic_mic_off_black_24"
+ android:visibility="gone"
+ tools:visibility="visible"/>
+
<View
android:id="@+id/videocall_green_screen_background"
android:layout_width="match_parent"
@@ -102,4 +105,4 @@
android:layout_height="wrap_content"
android:layout_gravity="top"/>
-</FrameLayout>
+</RelativeLayout>
diff --git a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
index a53fb6404..e9e7f9e8b 100644
--- a/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-h580dp/dimens.xml
@@ -19,5 +19,5 @@
<dimen name="videocall_button_size">72dp</dimen>
<dimen name="videocall_preview_width">88dp</dimen>
<dimen name="videocall_preview_height">88dp</dimen>
- <dimen name="videocall_preview_long">104dp</dimen>
+ <dimen name="videocall_preview_long">116dp</dimen>
</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-land/dimens.xml b/java/com/android/incallui/video/impl/res/values-land/dimens.xml
index 6485735e2..d0a5e409a 100644
--- a/java/com/android/incallui/video/impl/res/values-land/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-land/dimens.xml
@@ -15,5 +15,5 @@
~ limitations under the License
-->
<resources>
- <dimen name="videocall_preview_long">92dp</dimen>
+ <dimen name="videocall_preview_long">96dp</dimen>
</resources>
diff --git a/java/com/android/incallui/video/impl/res/values-land/styles.xml b/java/com/android/incallui/video/impl/res/values-land/styles.xml
index a809708df..f60dbd1d6 100644
--- a/java/com/android/incallui/video/impl/res/values-land/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values-land/styles.xml
@@ -16,7 +16,8 @@
-->
<resources>
<style name="VideoPreviewHolder">
- <item name="android:layout_gravity">bottom|end</item>
+ <item name="android:layout_alignParentBottom">true</item>
+ <item name="android:layout_alignParentEnd">true</item>
<item name="android:layout_width">@dimen/videocall_preview_long</item>
<item name="android:layout_height">@dimen/videocall_preview_height</item>
<item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item>
diff --git a/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml b/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
index a53fb6404..e9e7f9e8b 100644
--- a/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values-w460dp/dimens.xml
@@ -19,5 +19,5 @@
<dimen name="videocall_button_size">72dp</dimen>
<dimen name="videocall_preview_width">88dp</dimen>
<dimen name="videocall_preview_height">88dp</dimen>
- <dimen name="videocall_preview_long">104dp</dimen>
+ <dimen name="videocall_preview_long">116dp</dimen>
</resources>
diff --git a/java/com/android/incallui/video/impl/res/values/dimens.xml b/java/com/android/incallui/video/impl/res/values/dimens.xml
index aa08c9d6d..606b158d9 100644
--- a/java/com/android/incallui/video/impl/res/values/dimens.xml
+++ b/java/com/android/incallui/video/impl/res/values/dimens.xml
@@ -17,7 +17,7 @@
<resources>
<dimen name="videocall_preview_width">72dp</dimen>
<dimen name="videocall_preview_height">72dp</dimen>
- <dimen name="videocall_preview_long">84dp</dimen>
+ <dimen name="videocall_preview_long">96dp</dimen>
<dimen name="videocall_preview_margin_bottom">24dp</dimen>
<dimen name="videocall_preview_margin_start">24dp</dimen>
<dimen name="videocall_preview_margin_end">24dp</dimen>
diff --git a/java/com/android/incallui/video/impl/res/values/styles.xml b/java/com/android/incallui/video/impl/res/values/styles.xml
index f73075f09..010aca2d1 100644
--- a/java/com/android/incallui/video/impl/res/values/styles.xml
+++ b/java/com/android/incallui/video/impl/res/values/styles.xml
@@ -23,7 +23,8 @@
<item name="android:stateListAnimator">@animator/disabled_alpha</item>
</style>
<style name="VideoPreviewHolder">
- <item name="android:layout_gravity">bottom|start</item>
+ <item name="android:layout_alignParentBottom">true</item>
+ <item name="android:layout_alignParentStart">true</item>
<item name="android:layout_width">@dimen/videocall_preview_width</item>
<item name="android:layout_height">@dimen/videocall_preview_long</item>
<item name="android:layout_marginBottom">@dimen/videocall_preview_margin_bottom</item>
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
index 01e4bb84c..2a0b7c504 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
@@ -183,8 +183,6 @@ public class ImsVideoTech implements VideoTech {
public void stopTransmission() {
LogUtil.enterBlock("ImsVideoTech.stopTransmission");
- setCamera(null);
-
int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
call.getVideoCall()
.sendSessionModifyRequest(
@@ -248,7 +246,7 @@ public class ImsVideoTech implements VideoTech {
private boolean canPause() {
return call.getDetails().can(Details.CAPABILITY_CAN_PAUSE_VIDEO)
&& call.getState() == Call.STATE_ACTIVE
- && isTransmitting();
+ && isTransmittingOrReceiving();
}
static int getUnpausedVideoState(int videoState) {
diff --git a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
index e49d0b84d..386afdc45 100644
--- a/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
+++ b/java/com/android/incallui/videotech/lightbringer/LightbringerTech.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.support.annotation.NonNull;
import android.telecom.Call;
import com.android.dialer.common.Assert;
+import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.lightbringer.Lightbringer;
import com.android.dialer.lightbringer.LightbringerListener;
import com.android.incallui.video.protocol.VideoCallScreen;
@@ -46,7 +47,10 @@ public class LightbringerTech implements VideoTech, LightbringerListener {
@Override
public boolean isAvailable(Context context) {
- return callState == Call.STATE_ACTIVE && lightbringer.isReachable(context, callingNumber);
+ return ConfigProviderBindings.get(context)
+ .getBoolean("enable_lightbringer_video_upgrade", false)
+ && callState == Call.STATE_ACTIVE
+ && lightbringer.isReachable(context, callingNumber);
}
@Override
diff --git a/java/com/android/voicemail/permissions.xml b/java/com/android/voicemail/AndroidManifest.xml
index bedf06898..aedfd6fbf 100644
--- a/java/com/android/voicemail/permissions.xml
+++ b/java/com/android/voicemail/AndroidManifest.xml
@@ -1,3 +1,18 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.voicemailomtp">
diff --git a/java/com/android/voicemail/impl/AndroidManifest.xml b/java/com/android/voicemail/impl/AndroidManifest.xml
index 95e6e8212..be7dac10d 100644
--- a/java/com/android/voicemail/impl/AndroidManifest.xml
+++ b/java/com/android/voicemail/impl/AndroidManifest.xml
@@ -97,6 +97,11 @@
android:exported="false"/>
<service
+ android:name="com.android.voicemail.impl.transcribe.TranscriptionService"
+ android:permission="android.permission.BIND_JOB_SERVICE"
+ android:exported="false"/>
+
+ <service
android:name="com.android.voicemail.impl.OmtpService"
android:permission="android.permission.BIND_VISUAL_VOICEMAIL_SERVICE"
android:exported="true"
diff --git a/java/com/android/voicemail/impl/OmtpReceiver.java b/java/com/android/voicemail/impl/OmtpReceiver.java
deleted file mode 100644
index 9baf95415..000000000
--- a/java/com/android/voicemail/impl/OmtpReceiver.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.voicemail.impl;
-
-import android.annotation.TargetApi;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build.VERSION_CODES;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.VisualVoicemailSms;
-import com.android.dialer.common.Assert;
-import com.android.dialer.logging.DialerImpression;
-import com.android.dialer.logging.Logger;
-import com.android.voicemail.VoicemailComponent;
-import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
-import com.android.voicemail.impl.sync.VvmAccountManager;
-
-/** Listens to com.android.phone.vvm.ACTION_TEMP_VISUAL_VOICEMAIL_SERVICE_EVENT */
-@TargetApi(VERSION_CODES.O)
-public class OmtpReceiver extends BroadcastReceiver {
-
- private static final String TAG = "VvmOmtpReceiver";
-
- public static final String ACTION_SMS_RECEIVED = "com.android.vociemailomtp.sms.sms_received";
-
- public static final String EXTRA_VOICEMAIL_SMS = "extra_voicemail_sms";
-
- private static final String EXTRA_WHAT = "what";
-
- private static final int MSG_ON_CELL_SERVICE_CONNECTED = 1;
-
- private static final int MSG_ON_SMS_RECEIVED = 2;
-
- private static final int MSG_ON_SIM_REMOVED = 3;
-
- private static final int MSG_TASK_STOPPED = 5;
-
- private static final String DATA_PHONE_ACCOUNT_HANDLE = "data_phone_account_handle";
-
- private static final String DATA_SMS = "data_sms";
-
- @Override
- public void onReceive(Context context, Intent intent) {
- // ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT is not a protected broadcast pre-O.
- if (!VoicemailComponent.get(context).getVoicemailClient().isVoicemailModuleEnabled()) {
- VvmLog.e(TAG, "ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT received when module is disabled");
- return;
- }
-
- int what = intent.getIntExtra(EXTRA_WHAT, -1);
- PhoneAccountHandle phoneAccountHandle = intent.getParcelableExtra(DATA_PHONE_ACCOUNT_HANDLE);
- OmtpVvmCarrierConfigHelper config = new OmtpVvmCarrierConfigHelper(context, phoneAccountHandle);
- if (!config.isValid()) {
- VvmLog.i(TAG, "VVM not supported on " + phoneAccountHandle);
- return;
- }
- if (!VisualVoicemailSettingsUtil.isEnabled(context, phoneAccountHandle)
- && !config.isLegacyModeEnabled()) {
- VvmLog.i(TAG, "VVM is disabled");
- return;
- }
- switch (what) {
- case MSG_ON_CELL_SERVICE_CONNECTED:
- VvmLog.i(TAG, "onCellServiceConnected");
- Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
- ActivationTask.start(context, phoneAccountHandle, null);
- break;
- case MSG_ON_SMS_RECEIVED:
- VvmLog.i(TAG, "onSmsReceived");
- Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
- VisualVoicemailSms sms = intent.getParcelableExtra(DATA_SMS);
- Intent receivedIntent = new Intent(ACTION_SMS_RECEIVED);
- receivedIntent.setPackage(context.getPackageName());
- receivedIntent.putExtra(EXTRA_VOICEMAIL_SMS, sms);
- context.sendBroadcast(receivedIntent);
- break;
- case MSG_ON_SIM_REMOVED:
- VvmLog.i(TAG, "onSimRemoved");
- Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
- VvmAccountManager.removeAccount(context, phoneAccountHandle);
- break;
- case MSG_TASK_STOPPED:
- VvmLog.i(TAG, "onStopped");
- Logger.get(context).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
- break;
- default:
- throw Assert.createIllegalStateFailException("unexpected what: " + what);
- }
- }
-}
diff --git a/java/com/android/voicemail/impl/TelephonyManagerStub.java b/java/com/android/voicemail/impl/TelephonyManagerStub.java
deleted file mode 100644
index 4762e9023..000000000
--- a/java/com/android/voicemail/impl/TelephonyManagerStub.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.voicemail.impl;
-
-import android.annotation.TargetApi;
-import android.os.Build.VERSION_CODES;
-
-/**
- * Temporary stub for public APIs that should be added into telephony manager.
- *
- * <p>TODO(b/32637799) remove this.
- */
-@TargetApi(VERSION_CODES.O)
-public class TelephonyManagerStub {
-
- public static void showVoicemailNotification(int voicemailCount) {}
-
- /**
- * Dismisses the message waiting (voicemail) indicator.
- *
- * @param subId the subscription id we should dismiss the notification for.
- */
- public static void clearMwiIndicator(int subId) {}
-
- public static void setShouldCheckVisualVoicemailConfigurationForMwi(int subId, boolean enabled) {}
-}
diff --git a/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java b/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java
deleted file mode 100644
index 1e2de6070..000000000
--- a/java/com/android/voicemail/impl/VvmPackageInstallReceiver.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.voicemail.impl;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import com.android.voicemail.VoicemailComponent;
-import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
-
-/**
- * When a new package is installed, check if it matches any of the vvm carrier apps of the currently
- * enabled dialer VVM sources. The dialer VVM client will be disabled upon carrier VVM app
- * installation, unless it was explicitly enabled by the user.
- */
-public class VvmPackageInstallReceiver extends BroadcastReceiver {
-
- private static final String TAG = "VvmPkgInstallReceiver";
-
- @Override
- public void onReceive(Context context, Intent intent) {
- if (!VoicemailComponent.get(context).getVoicemailClient().isVoicemailModuleEnabled()) {
- return;
- }
-
- if (intent.getData() == null) {
- return;
- }
-
- String packageName = intent.getData().getSchemeSpecificPart();
- if (packageName == null) {
- return;
- }
-
- // This get called every time an app is installed and will be noisy. Don't log until the app
- // is identified as a carrier VVM app.
- for (PhoneAccountHandle phoneAccount :
- context.getSystemService(TelecomManager.class).getCallCapablePhoneAccounts()) {
- OmtpVvmCarrierConfigHelper carrierConfigHelper =
- new OmtpVvmCarrierConfigHelper(context, phoneAccount);
- if (!carrierConfigHelper.isValid()) {
- continue;
- }
- if (carrierConfigHelper.getCarrierVvmPackageNames() == null) {
- continue;
- }
- if (!carrierConfigHelper.getCarrierVvmPackageNames().contains(packageName)) {
- continue;
- }
-
- VvmLog.i(TAG, "Carrier app installed");
- if (VisualVoicemailSettingsUtil.isEnabledUserSet(context, phoneAccount)) {
- // Skip the check if this voicemail source's setting is overridden by the user.
- VvmLog.i(TAG, "VVM enabled by user, not disabling");
- continue;
- }
-
- // Force deactivate the client. The user can re-enable it in the settings.
- // There is no need to update the settings for deactivation. At this point, if the
- // default value is used it should be false because a carrier package is present.
- VvmLog.i(TAG, "Carrier VVM package installed, disabling system VVM client");
- VisualVoicemailSettingsUtil.setEnabled(context, phoneAccount, false);
- }
- }
-}
diff --git a/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java b/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java
new file mode 100644
index 000000000..448c69356
--- /dev/null
+++ b/java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java
@@ -0,0 +1,254 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.google.internal.communications.voicemailtranscription.v1;
+
+import static io.grpc.stub.ClientCalls.asyncUnaryCall;
+import static io.grpc.stub.ClientCalls.asyncServerStreamingCall;
+import static io.grpc.stub.ClientCalls.asyncClientStreamingCall;
+import static io.grpc.stub.ClientCalls.asyncBidiStreamingCall;
+import static io.grpc.stub.ClientCalls.blockingUnaryCall;
+import static io.grpc.stub.ClientCalls.blockingServerStreamingCall;
+import static io.grpc.stub.ClientCalls.futureUnaryCall;
+import static io.grpc.MethodDescriptor.generateFullMethodName;
+import static io.grpc.stub.ServerCalls.asyncUnaryCall;
+import static io.grpc.stub.ServerCalls.asyncServerStreamingCall;
+import static io.grpc.stub.ServerCalls.asyncClientStreamingCall;
+import static io.grpc.stub.ServerCalls.asyncBidiStreamingCall;
+import static io.grpc.stub.ServerCalls.asyncUnimplementedUnaryCall;
+import static io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall;
+
+/**
+ * <pre>
+ * RPC service for transcribing voicemails.
+ * </pre>
+ */
+@javax.annotation.Generated(
+ value = "by gRPC proto compiler (version 1.0.3)",
+ comments = "Source: voicemail_transcription.proto")
+public class VoicemailTranscriptionServiceGrpc {
+
+ private VoicemailTranscriptionServiceGrpc() {}
+
+ public static final String SERVICE_NAME = "google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionService";
+
+ // Static method descriptors that strictly reflect the proto.
+ @io.grpc.ExperimentalApi("https://github.com/grpc/grpc-java/issues/1901")
+ public static final io.grpc.MethodDescriptor<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest,
+ com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> METHOD_TRANSCRIBE_VOICEMAIL =
+ io.grpc.MethodDescriptor.create(
+ io.grpc.MethodDescriptor.MethodType.UNARY,
+ generateFullMethodName(
+ "google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionService", "TranscribeVoicemail"),
+ io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest.getDefaultInstance()),
+ io.grpc.protobuf.lite.ProtoLiteUtils.marshaller(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse.getDefaultInstance()));
+
+ /**
+ * Creates a new async stub that supports all call types for the service
+ */
+ public static VoicemailTranscriptionServiceStub newStub(io.grpc.Channel channel) {
+ return new VoicemailTranscriptionServiceStub(channel);
+ }
+
+ /**
+ * Creates a new blocking-style stub that supports unary and streaming output calls on the service
+ */
+ public static VoicemailTranscriptionServiceBlockingStub newBlockingStub(
+ io.grpc.Channel channel) {
+ return new VoicemailTranscriptionServiceBlockingStub(channel);
+ }
+
+ /**
+ * Creates a new ListenableFuture-style stub that supports unary and streaming output calls on the service
+ */
+ public static VoicemailTranscriptionServiceFutureStub newFutureStub(
+ io.grpc.Channel channel) {
+ return new VoicemailTranscriptionServiceFutureStub(channel);
+ }
+
+ /**
+ * <pre>
+ * RPC service for transcribing voicemails.
+ * </pre>
+ */
+ public static abstract class VoicemailTranscriptionServiceImplBase implements io.grpc.BindableService {
+
+ /**
+ * <pre>
+ * Returns a transcript of the given voicemail.
+ * </pre>
+ */
+ public void transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request,
+ io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> responseObserver) {
+ asyncUnimplementedUnaryCall(METHOD_TRANSCRIBE_VOICEMAIL, responseObserver);
+ }
+
+ @java.lang.Override public io.grpc.ServerServiceDefinition bindService() {
+ return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
+ .addMethod(
+ METHOD_TRANSCRIBE_VOICEMAIL,
+ asyncUnaryCall(
+ new MethodHandlers<
+ com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest,
+ com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse>(
+ this, METHODID_TRANSCRIBE_VOICEMAIL)))
+ .build();
+ }
+ }
+
+ /**
+ * <pre>
+ * RPC service for transcribing voicemails.
+ * </pre>
+ */
+ public static final class VoicemailTranscriptionServiceStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceStub> {
+ private VoicemailTranscriptionServiceStub(io.grpc.Channel channel) {
+ super(channel);
+ }
+
+ private VoicemailTranscriptionServiceStub(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected VoicemailTranscriptionServiceStub build(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ return new VoicemailTranscriptionServiceStub(channel, callOptions);
+ }
+
+ /**
+ * <pre>
+ * Returns a transcript of the given voicemail.
+ * </pre>
+ */
+ public void transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request,
+ io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> responseObserver) {
+ asyncUnaryCall(
+ getChannel().newCall(METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions()), request, responseObserver);
+ }
+ }
+
+ /**
+ * <pre>
+ * RPC service for transcribing voicemails.
+ * </pre>
+ */
+ public static final class VoicemailTranscriptionServiceBlockingStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceBlockingStub> {
+ private VoicemailTranscriptionServiceBlockingStub(io.grpc.Channel channel) {
+ super(channel);
+ }
+
+ private VoicemailTranscriptionServiceBlockingStub(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected VoicemailTranscriptionServiceBlockingStub build(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ return new VoicemailTranscriptionServiceBlockingStub(channel, callOptions);
+ }
+
+ /**
+ * <pre>
+ * Returns a transcript of the given voicemail.
+ * </pre>
+ */
+ public com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse transcribeVoicemail(com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request) {
+ return blockingUnaryCall(
+ getChannel(), METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions(), request);
+ }
+ }
+
+ /**
+ * <pre>
+ * RPC service for transcribing voicemails.
+ * </pre>
+ */
+ public static final class VoicemailTranscriptionServiceFutureStub extends io.grpc.stub.AbstractStub<VoicemailTranscriptionServiceFutureStub> {
+ private VoicemailTranscriptionServiceFutureStub(io.grpc.Channel channel) {
+ super(channel);
+ }
+
+ private VoicemailTranscriptionServiceFutureStub(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ super(channel, callOptions);
+ }
+
+ @java.lang.Override
+ protected VoicemailTranscriptionServiceFutureStub build(io.grpc.Channel channel,
+ io.grpc.CallOptions callOptions) {
+ return new VoicemailTranscriptionServiceFutureStub(channel, callOptions);
+ }
+
+ /**
+ * <pre>
+ * Returns a transcript of the given voicemail.
+ * </pre>
+ */
+ public com.google.common.util.concurrent.ListenableFuture<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse> transcribeVoicemail(
+ com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest request) {
+ return futureUnaryCall(
+ getChannel().newCall(METHOD_TRANSCRIBE_VOICEMAIL, getCallOptions()), request);
+ }
+ }
+
+ private static final int METHODID_TRANSCRIBE_VOICEMAIL = 0;
+
+ private static class MethodHandlers<Req, Resp> implements
+ io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
+ io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
+ io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
+ io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
+ private final VoicemailTranscriptionServiceImplBase serviceImpl;
+ private final int methodId;
+
+ public MethodHandlers(VoicemailTranscriptionServiceImplBase serviceImpl, int methodId) {
+ this.serviceImpl = serviceImpl;
+ this.methodId = methodId;
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) {
+ switch (methodId) {
+ case METHODID_TRANSCRIBE_VOICEMAIL:
+ serviceImpl.transcribeVoicemail((com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest) request,
+ (io.grpc.stub.StreamObserver<com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse>) responseObserver);
+ break;
+ default:
+ throw new AssertionError();
+ }
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("unchecked")
+ public io.grpc.stub.StreamObserver<Req> invoke(
+ io.grpc.stub.StreamObserver<Resp> responseObserver) {
+ switch (methodId) {
+ default:
+ throw new AssertionError();
+ }
+ }
+ }
+
+ public static io.grpc.ServiceDescriptor getServiceDescriptor() {
+ return new io.grpc.ServiceDescriptor(SERVICE_NAME,
+ METHOD_TRANSCRIBE_VOICEMAIL);
+ }
+
+}
diff --git a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
index f386fce0e..d15ce12ef 100644
--- a/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
+++ b/java/com/android/voicemail/impl/fetch/VoicemailFetchedCallback.java
@@ -23,9 +23,12 @@ import android.provider.VoicemailContract.Voicemails;
import android.support.annotation.Nullable;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.concurrent.ThreadUtil;
import com.android.voicemail.impl.R;
import com.android.voicemail.impl.VvmLog;
import com.android.voicemail.impl.imap.VoicemailPayload;
+import com.android.voicemail.impl.transcribe.TranscriptionService;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
@@ -56,6 +59,7 @@ public class VoicemailFetchedCallback {
* @param voicemailPayload The object containing the content data for the voicemail
*/
public void setVoicemailContent(@Nullable VoicemailPayload voicemailPayload) {
+ Assert.isWorkerThread();
if (voicemailPayload == null) {
VvmLog.i(TAG, "Payload not found, message has unsupported format");
ContentValues values = new ContentValues();
@@ -90,13 +94,23 @@ public class VoicemailFetchedCallback {
ContentValues values = new ContentValues();
values.put(Voicemails.MIME_TYPE, voicemailPayload.getMimeType());
values.put(Voicemails.HAS_CONTENT, true);
- updateVoicemail(values);
+ if (updateVoicemail(values)) {
+ ThreadUtil.postOnUiThread(
+ () -> {
+ if (!TranscriptionService.transcribeVoicemail(mContext, mUri)) {
+ VvmLog.w(TAG, String.format("Failed to schedule transcription for %s", mUri));
+ }
+ });
+ }
}
- private void updateVoicemail(ContentValues values) {
+ private boolean updateVoicemail(ContentValues values) {
int updatedCount = mContentResolver.update(mUri, values, null, null);
if (updatedCount != 1) {
VvmLog.e(TAG, "Updating voicemail should have updated 1 row, was: " + updatedCount);
+ return false;
+ } else {
+ return true;
}
}
}
diff --git a/java/com/android/voicemail/impl/mail/MailTransport.java b/java/com/android/voicemail/impl/mail/MailTransport.java
index 3df36d544..00339f03d 100644
--- a/java/com/android/voicemail/impl/mail/MailTransport.java
+++ b/java/com/android/voicemail/impl/mail/MailTransport.java
@@ -17,7 +17,9 @@ package com.android.voicemail.impl.mail;
import android.content.Context;
import android.net.Network;
+import android.net.TrafficStats;
import android.support.annotation.VisibleForTesting;
+import com.android.dialer.constants.TrafficStatsTags;
import com.android.voicemail.impl.OmtpEvents;
import com.android.voicemail.impl.imap.ImapHelper;
import com.android.voicemail.impl.mail.store.ImapStore;
@@ -188,6 +190,7 @@ public class MailTransport {
try {
LogUtils.v(TAG, "createSocket: network specified");
+ TrafficStats.setThreadStatsTag(TrafficStatsTags.VISUAL_VOICEMAIL_TAG);
return mNetwork.getSocketFactory().createSocket();
} catch (IOException ioe) {
LogUtils.d(TAG, ioe.toString());
diff --git a/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java b/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java
deleted file mode 100644
index 5ad2447de..000000000
--- a/java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.voicemail.impl.scheduling;
-
-import android.annotation.TargetApi;
-import android.app.Service;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.Build.VERSION_CODES;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.Message;
-import android.support.annotation.MainThread;
-import android.support.annotation.Nullable;
-import android.support.annotation.VisibleForTesting;
-import android.support.annotation.WorkerThread;
-import com.android.voicemail.impl.Assert;
-import com.android.voicemail.impl.NeededForTesting;
-import com.android.voicemail.impl.VvmLog;
-import com.android.voicemail.impl.scheduling.TaskQueue.NextTask;
-import java.util.List;
-
-/**
- * A service to queue and run {@link Task} with the {@link android.app.job.JobScheduler}. A task is
- * queued using {@link Context#startService(Intent)}. The intent should contain enough information
- * in {@link Intent#getExtras()} to construct the task (see {@link Tasks#createIntent(Context,
- * Class)}).
- *
- * <p>All tasks are ran in the background with a wakelock being held by the {@link
- * android.app.job.JobScheduler}, which is between {@link #onStartJob(Job, List)} and {@link
- * #finishJob()}. The {@link TaskSchedulerJobService} also has a {@link TaskQueue}, but the data is
- * stored in the {@link android.app.job.JobScheduler} instead of the process memory, so if the
- * process is killed the queued tasks will be restored. If a new task is added, a new {@link
- * TaskSchedulerJobService} will be scheduled to run the task. If the job is already scheduled, the
- * new task will be pushed into the queue of the scheduled job. If the job is already running, the
- * job will be queued in process memory.
- *
- * <p>Only one task will be ran at a time, and same task cannot exist in the queue at the same time.
- * Refer to {@link TaskQueue} for queuing and execution order.
- *
- * <p>If there are still tasks in the queue but none are executable immediately, the service will
- * enter a "sleep", pushing all remaining task into a new job and end the current job.
- *
- * <p>The service will be started when a intent is received, and stopped when there are no more
- * tasks in the queue.
- *
- * <p>{@link android.app.job.JobScheduler} is not used directly due to:
- *
- * <ul>
- * <li>The {@link android.telecom.PhoneAccountHandle} used to differentiate task can not be easily
- * mapped into an integer for job id
- * <li>A job cannot be mutated to store information such as retry count.
- * </ul>
- */
-@SuppressWarnings("AndroidApiChecker") /* stream() */
-@TargetApi(VERSION_CODES.O)
-public class TaskSchedulerService extends Service {
-
- interface Job {
- void finish();
- }
-
- private static final String TAG = "VvmTaskScheduler";
-
- private static final int READY_TOLERANCE_MILLISECONDS = 100;
-
- /**
- * Threshold to determine whether to do a short or long sleep when a task is scheduled in the
- * future.
- *
- * <p>A short sleep will continue the job and use {@link Handler#postDelayed(Runnable, long)} to
- * wait for the next task.
- *
- * <p>A long sleep will finish the job and schedule a new one. The exact execution time is
- * subjected to {@link android.app.job.JobScheduler} battery optimization, and is not exact.
- */
- private static final int SHORT_SLEEP_THRESHOLD_MILLISECONDS = 10_000;
- /**
- * When there are no more tasks to be run the service should be stopped. But when all tasks has
- * finished there might still be more tasks in the message queue waiting to be processed,
- * especially the ones submitted in {@link Task#onCompleted()}. Wait for a while before stopping
- * the service to make sure there are no pending messages.
- */
- private static final int STOP_DELAY_MILLISECONDS = 5_000;
-
- // The thread to run tasks on
- private volatile WorkerThreadHandler mWorkerThreadHandler;
-
- /**
- * Used by tests to turn task handling into a single threaded process by calling {@link
- * Handler#handleMessage(Message)} directly
- */
- private MessageSender mMessageSender = new MessageSender();
-
- private MainThreadHandler mMainThreadHandler;
-
- // Binder given to clients
- private final IBinder mBinder = new LocalBinder();
-
- /** Main thread only, access through {@link #getTasks()} */
- private final TaskQueue mTasks = new TaskQueue();
-
- private boolean mWorkerThreadIsBusy = false;
-
- private Job mJob;
-
- private final Runnable mStopServiceWithDelay =
- new Runnable() {
- @MainThread
- @Override
- public void run() {
- VvmLog.i(TAG, "Stopping service");
- finishJob();
- stopSelf();
- }
- };
-
- /** Should attempt to run the next task when a task has finished or been added. */
- private boolean mTaskAutoRunDisabledForTesting = false;
-
- @VisibleForTesting
- final class WorkerThreadHandler extends Handler {
-
- public WorkerThreadHandler(Looper looper) {
- super(looper);
- }
-
- @Override
- @WorkerThread
- public void handleMessage(Message msg) {
- Assert.isNotMainThread();
- Task task = (Task) msg.obj;
- try {
- VvmLog.i(TAG, "executing task " + task);
- task.onExecuteInBackgroundThread();
- } catch (Throwable throwable) {
- VvmLog.e(TAG, "Exception while executing task " + task + ":", throwable);
- }
-
- Message schedulerMessage = mMainThreadHandler.obtainMessage();
- schedulerMessage.obj = task;
- mMessageSender.send(schedulerMessage);
- }
- }
-
- @VisibleForTesting
- final class MainThreadHandler extends Handler {
-
- public MainThreadHandler(Looper looper) {
- super(looper);
- }
-
- @Override
- @MainThread
- public void handleMessage(Message msg) {
- Assert.isMainThread();
- Task task = (Task) msg.obj;
- getTasks().remove(task);
- task.onCompleted();
- mWorkerThreadIsBusy = false;
- maybeRunNextTask();
- }
- }
-
- @Override
- @MainThread
- public void onCreate() {
- super.onCreate();
- HandlerThread thread = new HandlerThread("VvmTaskSchedulerService");
- thread.start();
-
- mWorkerThreadHandler = new WorkerThreadHandler(thread.getLooper());
- mMainThreadHandler = new MainThreadHandler(Looper.getMainLooper());
- }
-
- @Override
- public void onDestroy() {
- mWorkerThreadHandler.getLooper().quit();
- }
-
- @Override
- @MainThread
- public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
- Assert.isMainThread();
- if (intent == null) {
- VvmLog.w(TAG, "null intent received");
- return START_NOT_STICKY;
- }
- Task task = Tasks.createTask(this, intent.getExtras());
- Assert.isTrue(task != null);
- addTask(task);
-
- mMainThreadHandler.removeCallbacks(mStopServiceWithDelay);
- VvmLog.i(TAG, "task added");
- if (mJob == null) {
- scheduleJob(0, true);
- } else {
- maybeRunNextTask();
- }
- // STICKY means the service will be automatically restarted will the last intent if it is
- // killed.
- return START_NOT_STICKY;
- }
-
- @MainThread
- @VisibleForTesting
- void addTask(Task task) {
- Assert.isMainThread();
- getTasks().add(task);
- }
-
- @MainThread
- @VisibleForTesting
- TaskQueue getTasks() {
- Assert.isMainThread();
- return mTasks;
- }
-
- @MainThread
- private void maybeRunNextTask() {
- Assert.isMainThread();
- if (mWorkerThreadIsBusy) {
- return;
- }
- if (mTaskAutoRunDisabledForTesting) {
- // If mTaskAutoRunDisabledForTesting is true, runNextTask() must be explicitly called
- // to run the next task.
- return;
- }
-
- runNextTask();
- }
-
- @VisibleForTesting
- @MainThread
- void runNextTask() {
- Assert.isMainThread();
- if (getTasks().isEmpty()) {
- prepareStop();
- return;
- }
- NextTask nextTask = getTasks().getNextTask(READY_TOLERANCE_MILLISECONDS);
-
- if (nextTask.task != null) {
- nextTask.task.onBeforeExecute();
- Message message = mWorkerThreadHandler.obtainMessage();
- message.obj = nextTask.task;
- mWorkerThreadIsBusy = true;
- mMessageSender.send(message);
- return;
- }
- VvmLog.i(TAG, "minimal wait time:" + nextTask.minimalWaitTimeMillis);
- if (!mTaskAutoRunDisabledForTesting && nextTask.minimalWaitTimeMillis != null) {
- // No tasks are currently ready. Sleep until the next one should be.
- // If a new task is added during the sleep the service will wake immediately.
- sleep(nextTask.minimalWaitTimeMillis);
- }
- }
-
- @MainThread
- private void sleep(long timeMillis) {
- VvmLog.i(TAG, "sleep for " + timeMillis + " millis");
- if (timeMillis < SHORT_SLEEP_THRESHOLD_MILLISECONDS) {
- mMainThreadHandler.postDelayed(
- new Runnable() {
- @Override
- public void run() {
- maybeRunNextTask();
- }
- },
- timeMillis);
- return;
- }
- finishJob();
- mMainThreadHandler.post(() -> scheduleJob(timeMillis, false));
- }
-
- private List<Bundle> serializePendingTasks() {
- return getTasks().toBundles();
- }
-
- private void prepareStop() {
- VvmLog.i(
- TAG,
- "no more tasks, stopping service if no task are added in "
- + STOP_DELAY_MILLISECONDS
- + " millis");
- mMainThreadHandler.postDelayed(mStopServiceWithDelay, STOP_DELAY_MILLISECONDS);
- }
-
- @NeededForTesting
- static class MessageSender {
-
- public void send(Message message) {
- message.sendToTarget();
- }
- }
-
- @NeededForTesting
- void setTaskAutoRunDisabledForTest(boolean value) {
- mTaskAutoRunDisabledForTesting = value;
- }
-
- @NeededForTesting
- void setMessageSenderForTest(MessageSender sender) {
- mMessageSender = sender;
- }
-
- /**
- * The {@link TaskSchedulerJobService} has started and all queued task should be executed in the
- * worker thread.
- */
- @MainThread
- public void onStartJob(Job job, List<Bundle> pendingTasks) {
- VvmLog.i(TAG, "onStartJob");
- mJob = job;
- mTasks.fromBundles(this, pendingTasks);
- maybeRunNextTask();
- }
-
- /**
- * The {@link TaskSchedulerJobService} is being terminated by the system (timeout or network
- * lost). A new job will be queued to resume all pending tasks. The current unfinished job may be
- * ran again.
- */
- @MainThread
- public void onStopJob() {
- VvmLog.e(TAG, "onStopJob");
- if (isJobRunning()) {
- finishJob();
- mMainThreadHandler.post(() -> scheduleJob(0, true));
- }
- }
-
- /**
- * Serializes all pending tasks and schedule a new {@link TaskSchedulerJobService}.
- *
- * @param delayMillis the delay before stating the job, see {@link
- * android.app.job.JobInfo.Builder#setMinimumLatency(long)}. This must be 0 if {@code
- * isNewJob} is true.
- * @param isNewJob a new job will be requested to run immediately, bypassing all requirements.
- */
- @MainThread
- private void scheduleJob(long delayMillis, boolean isNewJob) {
- Assert.isMainThread();
- TaskSchedulerJobService.scheduleJob(this, serializePendingTasks(), delayMillis, isNewJob);
- mTasks.clear();
- }
-
- /**
- * Signals {@link TaskSchedulerJobService} the current session of tasks has finished, and the wake
- * lock can be released. Note: this only takes effect after the main thread has been returned. If
- * a new job need to be scheduled, it should be posted on the main thread handler instead of
- * calling directly.
- */
- @MainThread
- private void finishJob() {
- Assert.isMainThread();
- VvmLog.i(TAG, "finishing Job");
- mJob.finish();
- mJob = null;
- }
-
- @Override
- @Nullable
- public IBinder onBind(Intent intent) {
- return mBinder;
- }
-
- @NeededForTesting
- class LocalBinder extends Binder {
-
- @NeededForTesting
- public TaskSchedulerService getService() {
- return TaskSchedulerService.this;
- }
- }
-
- private boolean isJobRunning() {
- return mJob != null;
- }
-}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
new file mode 100644
index 000000000..17c9be73b
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+import android.content.Context;
+import com.android.dialer.common.ConfigProviderBindings;
+
+/** Provides configuration values needed to connect to the transcription server. */
+public class TranscriptionConfigProvider {
+ private final Context context;
+
+ public TranscriptionConfigProvider(Context context) {
+ this.context = context;
+ }
+
+ public boolean isVoicemailTranscriptionEnabled() {
+ return ConfigProviderBindings.get(context).getBoolean("voicemail_transcription_enabled", false);
+ }
+
+ public String getServerAddress() {
+ // Private voicemail transcription service
+ return ConfigProviderBindings.get(context)
+ .getString(
+ "voicemail_transcription_server_address", "voicemailtranscription-pa.googleapis.com");
+ }
+
+ public String getApiKey() {
+ // Android API key restricted to com.google.android.dialer
+ return ConfigProviderBindings.get(context)
+ .getString(
+ "voicemail_transcription_client_api_key", "AIzaSyAXdDnif6B7sBYxU8hzw9qAp3pRPVHs060");
+ }
+
+ public String getAuthToken() {
+ return null;
+ }
+
+ public boolean shouldUsePlaintext() {
+ return ConfigProviderBindings.get(context)
+ .getBoolean("voicemail_transcription_server_use_plaintext", false);
+ }
+
+ @Override
+ public String toString() {
+ return String.format(
+ "{ address: %s, api key: %s, auth token: %s, plaintext: %b }",
+ getServerAddress(), getApiKey(), getAuthToken(), shouldUsePlaintext());
+ }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
new file mode 100644
index 000000000..cbc5cb8a0
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+import android.annotation.TargetApi;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Build.VERSION_CODES;
+import android.provider.VoicemailContract.Voicemails;
+import android.support.annotation.WorkerThread;
+import android.support.v4.os.BuildCompat;
+import android.util.Pair;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+
+/** Helper class for reading and writing transcription data in the database */
+@TargetApi(VERSION_CODES.O)
+public class TranscriptionDbHelper {
+ private static final String[] PROJECTION =
+ new String[] {
+ Voicemails.TRANSCRIPTION, // 0
+ VoicemailCompat.TRANSCRIPTION_STATE // 1
+ };
+
+ public static final int TRANSCRIPTION = 0;
+ public static final int TRANSCRIPTION_STATE = 1;
+
+ private final ContentResolver contentResolver;
+ private final Uri uri;
+
+ TranscriptionDbHelper(Context context, Uri uri) {
+ Assert.isNotNull(uri);
+ this.contentResolver = context.getContentResolver();
+ this.uri = uri;
+ }
+
+ @WorkerThread
+ @TargetApi(VERSION_CODES.M) // used for try with resources
+ Pair<String, Integer> getTranscriptionAndState() {
+ Assert.checkArgument(BuildCompat.isAtLeastO());
+ Assert.isWorkerThread();
+ try (Cursor cursor = contentResolver.query(uri, PROJECTION, null, null, null)) {
+ if (cursor == null) {
+ LogUtil.e("TranscriptionDbHelper.getTranscriptionAndState", "query failed.");
+ return null;
+ }
+
+ if (cursor.moveToFirst()) {
+ String transcription = cursor.getString(TRANSCRIPTION);
+ int transcriptionState = cursor.getInt(TRANSCRIPTION_STATE);
+ return new Pair<>(transcription, transcriptionState);
+ }
+ }
+ LogUtil.i("TranscriptionDbHelper.getTranscriptionAndState", "query returned no results");
+ return null;
+ }
+
+ @WorkerThread
+ void setTranscriptionState(int transcriptionState) {
+ Assert.isWorkerThread();
+ LogUtil.i(
+ "TranscriptionDbHelper.setTranscriptionState",
+ "uri: " + uri + ", state: " + transcriptionState);
+ ContentValues values = new ContentValues();
+ values.put(VoicemailCompat.TRANSCRIPTION_STATE, transcriptionState);
+ updateDatabase(values);
+ }
+
+ @WorkerThread
+ void setTranscriptionAndState(String transcription, int transcriptionState) {
+ Assert.isWorkerThread();
+ LogUtil.i(
+ "TranscriptionDbHelper.setTranscriptionAndState",
+ "uri: " + uri + ", state: " + transcriptionState);
+ ContentValues values = new ContentValues();
+ values.put(Voicemails.TRANSCRIPTION, transcription);
+ values.put(VoicemailCompat.TRANSCRIPTION_STATE, transcriptionState);
+ updateDatabase(values);
+ }
+
+ private void updateDatabase(ContentValues values) {
+ int updatedCount = contentResolver.update(uri, values, null, null);
+ if (updatedCount != 1) {
+ LogUtil.e(
+ "TranscriptionDbHelper.updateDatabase",
+ "Wrong row count, should have updated 1 row, was: " + updatedCount);
+ }
+ }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionService.java b/java/com/android/voicemail/impl/transcribe/TranscriptionService.java
new file mode 100644
index 000000000..3e80a7f59
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionService.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+import android.app.job.JobInfo;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.app.job.JobWorkItem;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.StrictMode;
+import android.support.annotation.MainThread;
+import android.support.annotation.VisibleForTesting;
+import android.support.v4.os.BuildCompat;
+import android.text.TextUtils;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.constants.ScheduledJobIds;
+import com.android.voicemail.impl.transcribe.grpc.TranscriptionClientFactory;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * Job scheduler callback for launching voicemail transcription tasks. The transcription tasks will
+ * run in the background and will typically last for approximately the length of the voicemail audio
+ * (since thats how long the backend transcription service takes to do the transcription).
+ */
+public class TranscriptionService extends JobService {
+ @VisibleForTesting static final String EXTRA_VOICEMAIL_URI = "extra_voicemail_uri";
+
+ private ExecutorService executorService;
+ private JobParameters jobParameters;
+ private TranscriptionClientFactory clientFactory;
+ private TranscriptionConfigProvider configProvider;
+ private StrictMode.VmPolicy originalPolicy;
+
+ /** Callback used by a task to indicate it has finished processing its work item */
+ interface JobCallback {
+ void onWorkCompleted(JobWorkItem completedWorkItem);
+ }
+
+ // Schedule a task to transcribe the indicated voicemail, return true if transcription task was
+ // scheduled.
+ public static boolean transcribeVoicemail(Context context, Uri voicemailUri) {
+ Assert.isMainThread();
+ if (BuildCompat.isAtLeastO()) {
+ LogUtil.i("TranscriptionService.transcribeVoicemail", "scheduling transcription");
+ ComponentName componentName = new ComponentName(context, TranscriptionService.class);
+ JobInfo.Builder builder =
+ new JobInfo.Builder(ScheduledJobIds.VVM_TRANSCRIPTION_JOB, componentName)
+ .setMinimumLatency(0)
+ .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
+ JobScheduler scheduler = context.getSystemService(JobScheduler.class);
+ JobWorkItem workItem = makeWorkItem(voicemailUri);
+ return scheduler.enqueue(builder.build(), workItem) == JobScheduler.RESULT_SUCCESS;
+ } else {
+ LogUtil.i("TranscriptionService.transcribeVoicemail", "not supported");
+ return false;
+ }
+ }
+
+ // Cancel all transcription tasks
+ public static void cancelTranscriptions(Context context) {
+ Assert.isMainThread();
+ LogUtil.enterBlock("TranscriptionService.cancelTranscriptions");
+ JobScheduler scheduler = context.getSystemService(JobScheduler.class);
+ scheduler.cancel(ScheduledJobIds.VVM_TRANSCRIPTION_JOB);
+ }
+
+ public TranscriptionService() {
+ Assert.isMainThread();
+ }
+
+ @VisibleForTesting
+ TranscriptionService(
+ ExecutorService executorService,
+ TranscriptionClientFactory clientFactory,
+ TranscriptionConfigProvider configProvider) {
+ this.executorService = executorService;
+ this.clientFactory = clientFactory;
+ this.configProvider = configProvider;
+ }
+
+ @Override
+ public boolean onStartJob(JobParameters params) {
+ Assert.isMainThread();
+ LogUtil.enterBlock("TranscriptionService.onStartJob");
+ if (!getConfigProvider().isVoicemailTranscriptionEnabled()) {
+ LogUtil.i("TranscriptionService.onStartJob", "transcription not enabled, exiting.");
+ return false;
+ } else if (TextUtils.isEmpty(getConfigProvider().getServerAddress())) {
+ LogUtil.i("TranscriptionService.onStartJob", "transcription server not configured, exiting.");
+ return false;
+ } else {
+ LogUtil.i(
+ "TranscriptionService.onStartJob",
+ "transcription server address: " + configProvider.getServerAddress());
+ originalPolicy = StrictMode.getVmPolicy();
+ StrictMode.enableDefaults();
+ jobParameters = params;
+ return checkForWork();
+ }
+ }
+
+ @Override
+ public boolean onStopJob(JobParameters params) {
+ Assert.isMainThread();
+ LogUtil.enterBlock("TranscriptionService.onStopJob");
+ cleanup();
+ return true;
+ }
+
+ @Override
+ public void onDestroy() {
+ Assert.isMainThread();
+ LogUtil.enterBlock("TranscriptionService.onDestroy");
+ cleanup();
+ }
+
+ private void cleanup() {
+ if (clientFactory != null) {
+ clientFactory.shutdown();
+ clientFactory = null;
+ }
+ if (executorService != null) {
+ executorService.shutdownNow();
+ executorService = null;
+ }
+ if (originalPolicy != null) {
+ StrictMode.setVmPolicy(originalPolicy);
+ originalPolicy = null;
+ }
+ }
+
+ @MainThread
+ private boolean checkForWork() {
+ Assert.isMainThread();
+ JobWorkItem workItem = jobParameters.dequeueWork();
+ if (workItem != null) {
+ getExecutorService()
+ .execute(new TranscriptionTask(this, new Callback(), workItem, getClientFactory()));
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ private ExecutorService getExecutorService() {
+ if (executorService == null) {
+ // The common use case is transcribing a single voicemail so just use a single thread executor
+ // The reason we're not using DialerExecutor here is because the transcription task can be
+ // very long running (ie. multiple minutes).
+ executorService = Executors.newSingleThreadExecutor();
+ }
+ return executorService;
+ }
+
+ private class Callback implements JobCallback {
+ @Override
+ public void onWorkCompleted(JobWorkItem completedWorkItem) {
+ Assert.isMainThread();
+ LogUtil.i("TranscriptionService.Callback.onWorkCompleted", completedWorkItem.toString());
+ jobParameters.completeWork(completedWorkItem);
+ checkForWork();
+ }
+ }
+
+ private static JobWorkItem makeWorkItem(Uri voicemailUri) {
+ Intent intent = new Intent();
+ intent.putExtra(EXTRA_VOICEMAIL_URI, voicemailUri);
+ return new JobWorkItem(intent);
+ }
+
+ private TranscriptionConfigProvider getConfigProvider() {
+ if (configProvider == null) {
+ configProvider = new TranscriptionConfigProvider(this);
+ }
+ return configProvider;
+ }
+
+ private TranscriptionClientFactory getClientFactory() {
+ if (clientFactory == null) {
+ clientFactory = new TranscriptionClientFactory(this, getConfigProvider());
+ }
+ return clientFactory;
+ }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
new file mode 100644
index 000000000..0fbc33ad5
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/TranscriptionTask.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+import android.annotation.TargetApi;
+import android.app.job.JobWorkItem;
+import android.content.Context;
+import android.net.Uri;
+import android.text.TextUtils;
+import com.android.dialer.common.concurrent.ThreadUtil;
+import com.android.voicemail.impl.VvmLog;
+import com.android.voicemail.impl.transcribe.TranscriptionService.JobCallback;
+import com.android.voicemail.impl.transcribe.grpc.TranscriptionClient;
+import com.android.voicemail.impl.transcribe.grpc.TranscriptionClientFactory;
+import com.google.internal.communications.voicemailtranscription.v1.AudioFormat;
+import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest;
+import com.google.protobuf.ByteString;
+import io.grpc.Status;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Background task to get a voicemail transcription and update the database.
+ *
+ * <pre>
+ * This task performs the following steps:
+ * 1. Update the transcription-state in the database to 'in-progress'
+ * 2. Create grpc client and transcription request
+ * 3. Make synchronous grpc transcription request to backend server
+ * 3a. On response
+ * Update the database with transcription (if successful) and new transcription-state
+ * 3b. On network error
+ * If retry-count < max then increment retry-count and retry the request
+ * Otherwise update the transcription-state in the database to 'transcription-failed'
+ * 4. Notify the callback that the work item is complete
+ * </pre>
+ */
+public class TranscriptionTask implements Runnable {
+ private static final String TAG = "TranscriptionTask";
+
+ private final Context context;
+ private final JobCallback callback;
+ private final JobWorkItem workItem;
+ private final TranscriptionClientFactory clientFactory;
+ private final Uri voicemailUri;
+ private final TranscriptionDbHelper databaseHelper;
+ private ByteString audioData;
+ private AudioFormat encoding;
+
+ private static final int MAX_RETRIES = 2;
+ static final String AMR_PREFIX = "#!AMR\n";
+
+ public TranscriptionTask(
+ Context context,
+ JobCallback callback,
+ JobWorkItem workItem,
+ TranscriptionClientFactory clientFactory) {
+ this.context = context;
+ this.callback = callback;
+ this.workItem = workItem;
+ this.clientFactory = clientFactory;
+ this.voicemailUri = getVoicemailUri(workItem);
+ databaseHelper = new TranscriptionDbHelper(context, voicemailUri);
+ }
+
+ @Override
+ public void run() {
+ VvmLog.i(TAG, "run");
+ if (readAndValidateAudioFile()) {
+ updateTranscriptionState(VoicemailCompat.TRANSCRIPTION_IN_PROGRESS);
+ transcribeVoicemail();
+ } else {
+ updateTranscriptionState(VoicemailCompat.TRANSCRIPTION_FAILED);
+ }
+ ThreadUtil.postOnUiThread(
+ () -> {
+ callback.onWorkCompleted(workItem);
+ });
+ }
+
+ private void transcribeVoicemail() {
+ VvmLog.i(TAG, "transcribeVoicemail");
+ TranscribeVoicemailRequest request = makeRequest();
+ TranscriptionClient client = clientFactory.getClient();
+ String transcript = null;
+ for (int i = 0; transcript == null && i < MAX_RETRIES; i++) {
+ VvmLog.i(TAG, "transcribeVoicemail, try: " + (i + 1));
+ TranscriptionClient.TranscriptionResponseWrapper responseWrapper =
+ client.transcribeVoicemail(request);
+ if (responseWrapper.status != null) {
+ VvmLog.i(TAG, "transcribeVoicemail, status: " + responseWrapper.status.getCode());
+ if (shouldRetryRequest(responseWrapper.status)) {
+ backoff(i);
+ } else {
+ break;
+ }
+ } else if (responseWrapper.response != null) {
+ if (!TextUtils.isEmpty(responseWrapper.response.getTranscript())) {
+ VvmLog.i(TAG, "transcribeVoicemail, got response");
+ transcript = responseWrapper.response.getTranscript();
+ } else {
+ VvmLog.i(TAG, "transcribeVoicemail, empty transcription");
+ }
+ } else {
+ VvmLog.w(TAG, "transcribeVoicemail, no response");
+ }
+ }
+
+ int newState =
+ (transcript == null)
+ ? VoicemailCompat.TRANSCRIPTION_FAILED
+ : VoicemailCompat.TRANSCRIPTION_AVAILABLE;
+ updateTranscriptionAndState(transcript, newState);
+ }
+
+ private static boolean shouldRetryRequest(Status status) {
+ return status.getCode() == Status.Code.UNAVAILABLE;
+ }
+
+ private static void backoff(int retryCount) {
+ VvmLog.i(TAG, "backoff, count: " + retryCount);
+ try {
+ long millis = (1 << retryCount) * 1000;
+ Thread.sleep(millis);
+ } catch (InterruptedException e) {
+ VvmLog.w(TAG, "interrupted");
+ Thread.currentThread().interrupt();
+ }
+ }
+
+ private void updateTranscriptionAndState(String transcript, int newState) {
+ databaseHelper.setTranscriptionAndState(transcript, newState);
+ }
+
+ private void updateTranscriptionState(int newState) {
+ databaseHelper.setTranscriptionState(newState);
+ }
+
+ private TranscribeVoicemailRequest makeRequest() {
+ return TranscribeVoicemailRequest.newBuilder()
+ .setVoicemailData(audioData)
+ .setAudioFormat(encoding)
+ .build();
+ }
+
+ // Uses try-with-resource
+ @TargetApi(android.os.Build.VERSION_CODES.M)
+ private boolean readAndValidateAudioFile() {
+ if (voicemailUri == null) {
+ VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, file not found.");
+ return false;
+ } else {
+ VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, reading: " + voicemailUri);
+ }
+
+ try (InputStream in = context.getContentResolver().openInputStream(voicemailUri)) {
+ audioData = ByteString.readFrom(in);
+ VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, read " + audioData.size() + " bytes");
+ } catch (IOException e) {
+ VvmLog.e(TAG, "Transcriber.readAndValidateAudioFile", e);
+ return false;
+ }
+
+ if (audioData.startsWith(ByteString.copyFromUtf8(AMR_PREFIX))) {
+ encoding = AudioFormat.AMR_NB_8KHZ;
+ } else {
+ VvmLog.i(TAG, "Transcriber.readAndValidateAudioFile, unknown encoding");
+ encoding = AudioFormat.AUDIO_FORMAT_UNSPECIFIED;
+ return false;
+ }
+
+ return true;
+ }
+
+ private static Uri getVoicemailUri(JobWorkItem workItem) {
+ return workItem.getIntent().getParcelableExtra(TranscriptionService.EXTRA_VOICEMAIL_URI);
+ }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java b/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java
new file mode 100644
index 000000000..c6e30c6de
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/VoicemailCompat.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe;
+
+/**
+ * Provide access to new API constants before they're publicly available
+ *
+ * <p>Copied from android.provider.VoicemailContract.Voicemails. These should become public in O-MR1
+ * and these constants can be removed then.
+ */
+public class VoicemailCompat {
+
+ /**
+ * The state of the voicemail transcription.
+ *
+ * <p>Possible values: {@link #TRANSCRIPTION_NOT_STARTED}, {@link #TRANSCRIPTION_IN_PROGRESS},
+ * {@link #TRANSCRIPTION_FAILED}, {@link #TRANSCRIPTION_AVAILABLE}.
+ *
+ * <p>Type: INTEGER
+ */
+ public static final String TRANSCRIPTION_STATE = "transcription_state";
+
+ /**
+ * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has not yet been
+ * attempted.
+ */
+ public static final int TRANSCRIPTION_NOT_STARTED = 0;
+
+ /**
+ * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has begun but is not yet
+ * complete.
+ */
+ public static final int TRANSCRIPTION_IN_PROGRESS = 1;
+
+ /**
+ * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has been attempted and
+ * failed.
+ */
+ public static final int TRANSCRIPTION_FAILED = 2;
+
+ /**
+ * Value of {@link #TRANSCRIPTION_STATE} when the voicemail transcription has completed and the
+ * result has been stored in the {@link #TRANSCRIPTION} column.
+ */
+ public static final int TRANSCRIPTION_AVAILABLE = 3;
+}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java
new file mode 100644
index 000000000..27603d910
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe.grpc;
+
+import android.support.annotation.Nullable;
+import android.support.annotation.WorkerThread;
+import com.android.dialer.common.Assert;
+import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailRequest;
+import com.google.internal.communications.voicemailtranscription.v1.TranscribeVoicemailResponse;
+import com.google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionServiceGrpc;
+import io.grpc.Status;
+import io.grpc.StatusRuntimeException;
+
+/** Wrapper around Grpc transcription server stub */
+public class TranscriptionClient {
+
+ private final VoicemailTranscriptionServiceGrpc.VoicemailTranscriptionServiceBlockingStub stub;
+
+ /** Wraps the server response and status objects, either of which may be null. */
+ public static class TranscriptionResponseWrapper {
+ public final TranscribeVoicemailResponse response;
+ public final Status status;
+
+ public TranscriptionResponseWrapper(
+ @Nullable TranscribeVoicemailResponse response, @Nullable Status status) {
+ Assert.checkArgument(!(response == null && status == null));
+ this.response = response;
+ this.status = status;
+ }
+ }
+
+ TranscriptionClient(
+ VoicemailTranscriptionServiceGrpc.VoicemailTranscriptionServiceBlockingStub stub) {
+ this.stub = stub;
+ }
+
+ @WorkerThread
+ public TranscriptionResponseWrapper transcribeVoicemail(TranscribeVoicemailRequest request) {
+ TranscribeVoicemailResponse response = null;
+ Status status = null;
+ try {
+ response = stub.transcribeVoicemail(request);
+ } catch (StatusRuntimeException e) {
+ status = e.getStatus();
+ }
+ return new TranscriptionClient.TranscriptionResponseWrapper(response, status);
+ }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java
new file mode 100644
index 000000000..6101ed516
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.voicemail.impl.transcribe.grpc;
+
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.text.TextUtils;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import com.android.voicemail.impl.transcribe.TranscriptionConfigProvider;
+import com.google.internal.communications.voicemailtranscription.v1.VoicemailTranscriptionServiceGrpc;
+import io.grpc.CallOptions;
+import io.grpc.Channel;
+import io.grpc.ClientCall;
+import io.grpc.ClientInterceptor;
+import io.grpc.ClientInterceptors;
+import io.grpc.ForwardingClientCall;
+import io.grpc.ManagedChannel;
+import io.grpc.ManagedChannelBuilder;
+import io.grpc.Metadata;
+import io.grpc.MethodDescriptor;
+import io.grpc.okhttp.OkHttpChannelBuilder;
+import java.security.MessageDigest;
+
+/**
+ * Factory for creating grpc clients that talk to the transcription server. This allows all clients
+ * to share the same channel, which is relatively expensive to create.
+ */
+public class TranscriptionClientFactory {
+ private static final String DIGEST_ALGORITHM_SHA1 = "SHA1";
+ private static final char[] HEX_UPPERCASE = {
+ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
+ };
+
+ private final TranscriptionConfigProvider configProvider;
+ private final ManagedChannel originalChannel;
+ private final String packageName;
+ private final String cert;
+
+ public TranscriptionClientFactory(Context context, TranscriptionConfigProvider configProvider) {
+ this(context, configProvider, getManagedChannel(configProvider));
+ }
+
+ public TranscriptionClientFactory(
+ Context context, TranscriptionConfigProvider configProvider, ManagedChannel managedChannel) {
+ this.configProvider = configProvider;
+ this.packageName = context.getPackageName();
+ this.cert = getCertificateFingerprint(context);
+ originalChannel = managedChannel;
+ }
+
+ public TranscriptionClient getClient() {
+ LogUtil.enterBlock("TranscriptionClientFactory.getClient");
+ Assert.checkState(!originalChannel.isShutdown());
+ Channel channel =
+ ClientInterceptors.intercept(
+ originalChannel,
+ new Interceptor(
+ packageName, cert, configProvider.getApiKey(), configProvider.getAuthToken()));
+ return new TranscriptionClient(VoicemailTranscriptionServiceGrpc.newBlockingStub(channel));
+ }
+
+ public void shutdown() {
+ LogUtil.enterBlock("TranscriptionClientFactory.shutdown");
+ originalChannel.shutdown();
+ }
+
+ private static ManagedChannel getManagedChannel(TranscriptionConfigProvider configProvider) {
+ ManagedChannelBuilder<OkHttpChannelBuilder> builder =
+ OkHttpChannelBuilder.forTarget(configProvider.getServerAddress());
+ // Only use plaintext for debugging
+ if (configProvider.shouldUsePlaintext()) {
+ // Just passing 'false' doesnt have the same effect as not setting this field
+ builder.usePlaintext(true);
+ }
+ return builder.build();
+ }
+
+ private static String getCertificateFingerprint(Context context) {
+ try {
+ PackageInfo packageInfo =
+ context
+ .getPackageManager()
+ .getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
+ if (packageInfo != null
+ && packageInfo.signatures != null
+ && packageInfo.signatures.length > 0) {
+ MessageDigest messageDigest = MessageDigest.getInstance(DIGEST_ALGORITHM_SHA1);
+ if (messageDigest == null) {
+ LogUtil.w(
+ "TranscriptionClientFactory.getCertificateFingerprint", "error getting digest.");
+ return null;
+ }
+ byte[] bytes = messageDigest.digest(packageInfo.signatures[0].toByteArray());
+ if (bytes == null) {
+ LogUtil.w(
+ "TranscriptionClientFactory.getCertificateFingerprint", "empty message digest.");
+ return null;
+ }
+
+ int length = bytes.length;
+ StringBuilder out = new StringBuilder(length * 2);
+ for (int i = 0; i < length; i++) {
+ out.append(HEX_UPPERCASE[(bytes[i] & 0xf0) >>> 4]);
+ out.append(HEX_UPPERCASE[bytes[i] & 0x0f]);
+ }
+ return out.toString();
+ } else {
+ LogUtil.w(
+ "TranscriptionClientFactory.getCertificateFingerprint",
+ "failed to get package signature.");
+ }
+ } catch (Exception e) {
+ LogUtil.e(
+ "TranscriptionClientFactory.getCertificateFingerprint",
+ "error getting certificate fingerprint.",
+ e);
+ }
+
+ return null;
+ }
+
+ private static final class Interceptor implements ClientInterceptor {
+ private final String packageName;
+ private final String cert;
+ private final String apiKey;
+ private final String authToken;
+
+ private static final Metadata.Key<String> API_KEY_HEADER =
+ Metadata.Key.of("X-Goog-Api-Key", Metadata.ASCII_STRING_MARSHALLER);
+ private static final Metadata.Key<String> ANDROID_PACKAGE_HEADER =
+ Metadata.Key.of("X-Android-Package", Metadata.ASCII_STRING_MARSHALLER);
+ private static final Metadata.Key<String> ANDROID_CERT_HEADER =
+ Metadata.Key.of("X-Android-Cert", Metadata.ASCII_STRING_MARSHALLER);
+ private static final Metadata.Key<String> AUTHORIZATION_HEADER =
+ Metadata.Key.of("authorization", Metadata.ASCII_STRING_MARSHALLER);
+
+ public Interceptor(String packageName, String cert, String apiKey, String authToken) {
+ this.packageName = packageName;
+ this.cert = cert;
+ this.apiKey = apiKey;
+ this.authToken = authToken;
+ }
+
+ @Override
+ public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(
+ MethodDescriptor<ReqT, RespT> method, CallOptions callOptions, Channel next) {
+ LogUtil.enterBlock(
+ "TranscriptionClientFactory.interceptCall, intercepted " + method.getFullMethodName());
+ ClientCall<ReqT, RespT> call = next.newCall(method, callOptions);
+
+ call =
+ new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(call) {
+ @Override
+ public void start(Listener<RespT> responseListener, Metadata headers) {
+ if (!TextUtils.isEmpty(packageName)) {
+ LogUtil.i(
+ "TranscriptionClientFactory.interceptCall",
+ "attaching package name: " + packageName);
+ headers.put(ANDROID_PACKAGE_HEADER, packageName);
+ }
+ if (!TextUtils.isEmpty(cert)) {
+ LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching android cert");
+ headers.put(ANDROID_CERT_HEADER, cert);
+ }
+ if (!TextUtils.isEmpty(apiKey)) {
+ LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching API Key");
+ headers.put(API_KEY_HEADER, apiKey);
+ }
+ if (!TextUtils.isEmpty(authToken)) {
+ LogUtil.i("TranscriptionClientFactory.interceptCall", "attaching auth token");
+ headers.put(AUTHORIZATION_HEADER, "Bearer " + authToken);
+ }
+ super.start(responseListener, headers);
+ }
+ };
+ return call;
+ }
+ }
+}
diff --git a/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto b/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto
new file mode 100644
index 000000000..4b1e19b8a
--- /dev/null
+++ b/java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto
@@ -0,0 +1,44 @@
+// LINT.IfChange
+
+syntax = "proto2";
+
+package google.internal.communications.voicemailtranscription.v1;
+
+option java_multiple_files = true;
+option java_package = "com.google.internal.communications.voicemailtranscription.v1";
+option optimize_for = LITE_RUNTIME;
+
+// Enum that specifies supported audio formats.
+enum AudioFormat {
+ // Default but invalid value.
+ AUDIO_FORMAT_UNSPECIFIED = 0;
+
+ // Adaptive Multi-Rate Narrowband, 8kHz sampling frequency.
+ // https://en.wikipedia.org/wiki/Adaptive_Multi-Rate_audio_codec
+ AMR_NB_8KHZ = 1;
+}
+
+// Request for synchronous voicemail transcription.
+message TranscribeVoicemailRequest {
+ // Voicemail audio file containing the raw bytes we receive from the carrier.
+ optional bytes voicemail_data = 1;
+
+ // Audio format of the voicemail file.
+ optional AudioFormat audio_format = 2;
+}
+
+// Response for synchronous voicemail transcription.
+message TranscribeVoicemailResponse {
+ // The transcribed text of the voicemail.
+ optional string transcript = 1;
+}
+
+// RPC service for transcribing voicemails.
+service VoicemailTranscriptionService {
+ // Returns a transcript of the given voicemail.
+ rpc TranscribeVoicemail(TranscribeVoicemailRequest)
+ returns (TranscribeVoicemailResponse) {}
+}
+
+// LINT.ThenChange(//depot/google3/google/internal/communications/voicemailtranscription/v1/\
+// voicemail_transcription.proto)