summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-06-08 11:06:23 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-06-08 11:06:23 +0000
commitd1f3df5ec1d96c0f97d244db030343a0618d8acf (patch)
treeb9bbc285430ffb5363a70eb27e382c38f5a85b7a
parent4c78777d729ce4f887e787a82fcc32aee0ade406 (diff)
parent91ce7d2a476bd04fe525049a37a2f8b2824e9724 (diff)
downloadandroid_packages_apps_Dialer-d1f3df5ec1d96c0f97d244db030343a0618d8acf.tar.gz
android_packages_apps_Dialer-d1f3df5ec1d96c0f97d244db030343a0618d8acf.tar.bz2
android_packages_apps_Dialer-d1f3df5ec1d96c0f97d244db030343a0618d8acf.zip
release-request-b0f9b1bd-ac0a-4e84-a708-f5297f555cc4-for-git_oc-dr1-release-4080478 snap-temp-L21400000072129299
Change-Id: I600c536ccf87a6dcb6ee3ac52af696ef5fa9fd8a
-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)