From cded3beaf28a703e1ef8f71bbc6836e6806c3736 Mon Sep 17 00:00:00 2001 From: Tobias Thierer Date: Fri, 9 Jun 2017 14:16:05 +0000 Subject: Revert "Update AOSP Dialer source from internal google3 repository at cl/158012278. am: 91ce7d2a47" This reverts commit c67d658e7daa453fe9ad9fd1a37f81eaf2048c44. Reason for revert: This CL broke the sailfish-userdebug_javac-all target on master. Change-Id: I9b54333a654c00154ca84f4ece84bea4f07cc19b --- .../android/contacts/common/ClipboardUtils.java | 2 + .../contacts/common/ContactPhotoManager.java | 31 +- .../contacts/common/ContactPhotoManagerImpl.java | 5 +- .../android/contacts/common/ContactStatusUtil.java | 2 + .../com/android/contacts/common/ContactsUtils.java | 185 +++++- java/com/android/contacts/common/GeoUtil.java | 55 ++ .../android/contacts/common/MoreContactUtils.java | 36 ++ .../contacts/common/compat/ContactsCompat.java | 16 + .../contacts/common/compat/PhoneAccountCompat.java | 55 +- .../common/compat/PhoneNumberUtilsCompat.java | 132 +++- .../common/compat/TelephonyManagerCompat.java | 71 ++- .../compat/telecom/TelecomManagerCompat.java | 260 +++++++- .../contacts/common/dialog/CallSubjectDialog.java | 12 +- .../contacts/common/format/FormatUtils.java | 181 ++++++ .../contacts/common/format/TextHighlighter.java | 55 +- .../common/format/testing/SpannedTestUtils.java | 85 +++ .../common/lettertiles/LetterTileDrawable.java | 28 - .../common/list/ContactEntryListAdapter.java | 9 +- .../common/list/ContactEntryListFragment.java | 1 + .../contacts/common/list/ContactListItemView.java | 216 ++++--- .../contacts/common/list/ContactTileView.java | 19 +- .../common/list/PhoneNumberListAdapter.java | 56 +- .../common/list/PhoneNumberPickerFragment.java | 66 +- .../contacts/common/list/ViewPagerTabs.java | 29 +- .../contacts/common/location/CountryDetector.java | 221 +++++++ .../common/location/UpdateCountryService.java | 104 ++++ .../contacts/common/model/ContactLoader.java | 1 - .../common/model/account/BaseAccountType.java | 4 +- .../common/res/drawable-hdpi/ic_ab_search.png | Bin 0 -> 1115 bytes .../res/drawable-hdpi/ic_arrow_back_24dp.png | Bin 0 -> 612 bytes .../res/drawable-hdpi/ic_business_white_120dp.png | Bin 0 -> 2477 bytes .../common/res/drawable-hdpi/ic_call_24dp.png | Bin 0 -> 340 bytes .../common/res/drawable-hdpi/ic_close_dk.png | Bin 0 -> 609 bytes .../common/res/drawable-hdpi/ic_create_24dp.png | Bin 0 -> 370 bytes .../res/drawable-hdpi/ic_group_white_24dp.png | Bin 0 -> 389 bytes .../ic_history_white_drawable_24dp.png | Bin 0 -> 525 bytes .../res/drawable-hdpi/ic_info_outline_24dp.png | Bin 0 -> 485 bytes .../common/res/drawable-hdpi/ic_menu_back.png | Bin 0 -> 799 bytes .../common/res/drawable-hdpi/ic_menu_group_dk.png | Bin 0 -> 1954 bytes .../common/res/drawable-hdpi/ic_menu_group_lt.png | Bin 0 -> 1922 bytes .../res/drawable-hdpi/ic_menu_overflow_lt.png | Bin 0 -> 220 bytes .../common/res/drawable-hdpi/ic_menu_person_dk.png | Bin 0 -> 1439 bytes .../common/res/drawable-hdpi/ic_menu_person_lt.png | Bin 0 -> 1416 bytes .../ic_menu_remove_field_holo_light.png | Bin 0 -> 515 bytes .../common/res/drawable-hdpi/ic_menu_star_dk.png | Bin 0 -> 1438 bytes .../res/drawable-hdpi/ic_menu_star_holo_light.png | Bin 0 -> 1211 bytes .../common/res/drawable-hdpi/ic_menu_star_lt.png | Bin 0 -> 1414 bytes .../common/res/drawable-hdpi/ic_person_24dp.png | Bin 0 -> 273 bytes .../common/res/drawable-hdpi/ic_rx_videocam.png | Bin 0 -> 413 bytes .../common/res/drawable-hdpi/ic_tx_videocam.png | Bin 0 -> 370 bytes .../common/res/drawable-hdpi/ic_videocam.png | Bin 0 -> 269 bytes .../res/drawable-hdpi/ic_voicemail_avatar.png | Bin 0 -> 2856 bytes .../res/drawable-hdpi/list_activated_holo.9.png | Bin 0 -> 154 bytes .../res/drawable-hdpi/list_background_holo.9.png | Bin 0 -> 224 bytes .../res/drawable-hdpi/list_focused_holo.9.png | Bin 0 -> 235 bytes .../list_longpressed_holo_light.9.png | Bin 0 -> 158 bytes .../drawable-hdpi/list_pressed_holo_light.9.png | Bin 0 -> 159 bytes .../list_section_divider_holo_custom.9.png | Bin 0 -> 205 bytes .../common/res/drawable-hdpi/list_title_holo.9.png | Bin 0 -> 267 bytes .../drawable-ldrtl-hdpi/list_focused_holo.9.png | Bin 0 -> 234 bytes .../list_section_divider_holo_custom.9.png | Bin 0 -> 191 bytes .../res/drawable-ldrtl-hdpi/list_title_holo.9.png | Bin 0 -> 258 bytes .../drawable-ldrtl-mdpi/list_focused_holo.9.png | Bin 0 -> 234 bytes .../list_section_divider_holo_custom.9.png | Bin 0 -> 180 bytes .../res/drawable-ldrtl-mdpi/list_title_holo.9.png | Bin 0 -> 186 bytes .../list_activated_holo.9.png | Bin 0 -> 1666 bytes .../list_activated_holo.9.png | Bin 0 -> 1034 bytes .../list_activated_holo.9.png | Bin 0 -> 2486 bytes .../drawable-ldrtl-xhdpi/list_focused_holo.9.png | Bin 0 -> 234 bytes .../list_section_divider_holo_custom.9.png | Bin 0 -> 196 bytes .../res/drawable-ldrtl-xhdpi/list_title_holo.9.png | Bin 0 -> 255 bytes .../res/drawable-mdpi/list_activated_holo.9.png | Bin 0 -> 151 bytes .../res/drawable-mdpi/list_focused_holo.9.png | Bin 0 -> 235 bytes .../list_longpressed_holo_light.9.png | Bin 0 -> 155 bytes .../drawable-mdpi/list_pressed_holo_light.9.png | Bin 0 -> 158 bytes .../list_section_divider_holo_custom.9.png | Bin 0 -> 198 bytes .../list_activated_holo.9.png | Bin 0 -> 1659 bytes .../list_activated_holo.9.png | Bin 0 -> 1005 bytes .../list_activated_holo.9.png | Bin 0 -> 2478 bytes .../res/drawable-xhdpi/list_activated_holo.9.png | Bin 0 -> 158 bytes .../res/drawable-xhdpi/list_focused_holo.9.png | Bin 0 -> 235 bytes .../list_longpressed_holo_light.9.png | Bin 0 -> 162 bytes .../drawable-xhdpi/list_pressed_holo_light.9.png | Bin 0 -> 163 bytes .../list_section_divider_holo_custom.9.png | Bin 0 -> 210 bytes .../res/drawable-xxhdpi/list_activated_holo.9.png | Bin 0 -> 1140 bytes .../res/drawable-xxhdpi/list_focused_holo.9.png | Bin 0 -> 1147 bytes .../list_longpressed_holo_light.9.png | Bin 0 -> 1051 bytes .../drawable-xxhdpi/list_pressed_holo_light.9.png | Bin 0 -> 1051 bytes .../contacts/common/res/drawable/ic_back_arrow.xml | 20 + .../common/res/drawable/ic_call_and_share.xml | 22 + .../res/drawable/ic_person_add_tinted_24dp.xml | 20 + .../common/res/drawable/ic_search_add_contact.xml | 20 + .../common/res/drawable/ic_search_video_call.xml | 22 + ...t_selector_background_transition_holo_light.xml | 20 + .../common/res/layout/dialog_call_subject.xml | 2 +- .../common/res/layout/search_bar_expanded.xml | 4 +- .../contacts/common/res/values-af/strings.xml | 2 +- .../contacts/common/res/values-am/strings.xml | 2 +- .../contacts/common/res/values-ar/strings.xml | 2 +- .../contacts/common/res/values-az/strings.xml | 2 +- .../common/res/values-b+sr+Latn/strings.xml | 2 +- .../contacts/common/res/values-be/strings.xml | 2 +- .../contacts/common/res/values-bg/strings.xml | 2 +- .../contacts/common/res/values-bn/strings.xml | 2 +- .../contacts/common/res/values-bs/strings.xml | 2 +- .../contacts/common/res/values-ca/strings.xml | 2 +- .../contacts/common/res/values-cs/strings.xml | 2 +- .../contacts/common/res/values-da/strings.xml | 2 +- .../contacts/common/res/values-de/strings.xml | 2 +- .../contacts/common/res/values-el/strings.xml | 2 +- .../contacts/common/res/values-en-rAU/strings.xml | 2 +- .../contacts/common/res/values-en-rGB/strings.xml | 2 +- .../contacts/common/res/values-en-rIN/strings.xml | 2 +- .../contacts/common/res/values-es-rUS/strings.xml | 2 +- .../contacts/common/res/values-es/strings.xml | 2 +- .../contacts/common/res/values-et/strings.xml | 2 +- .../contacts/common/res/values-eu/strings.xml | 2 +- .../contacts/common/res/values-fa/strings.xml | 2 +- .../contacts/common/res/values-fi/strings.xml | 2 +- .../contacts/common/res/values-fr-rCA/strings.xml | 2 +- .../contacts/common/res/values-fr/strings.xml | 2 +- .../contacts/common/res/values-gl/strings.xml | 2 +- .../contacts/common/res/values-gu/strings.xml | 2 +- .../contacts/common/res/values-hi/strings.xml | 2 +- .../contacts/common/res/values-hr/strings.xml | 2 +- .../contacts/common/res/values-hu/strings.xml | 2 +- .../contacts/common/res/values-hy/strings.xml | 2 +- .../contacts/common/res/values-in/strings.xml | 2 +- .../contacts/common/res/values-is/strings.xml | 2 +- .../contacts/common/res/values-it/strings.xml | 2 +- .../contacts/common/res/values-iw/strings.xml | 2 +- .../contacts/common/res/values-ja/strings.xml | 2 +- .../contacts/common/res/values-ka/strings.xml | 2 +- .../contacts/common/res/values-kk/strings.xml | 2 +- .../contacts/common/res/values-km/strings.xml | 2 +- .../contacts/common/res/values-kn/strings.xml | 2 +- .../contacts/common/res/values-ko/strings.xml | 2 +- .../contacts/common/res/values-ky/strings.xml | 2 +- .../contacts/common/res/values-lo/strings.xml | 2 +- .../contacts/common/res/values-lt/strings.xml | 2 +- .../contacts/common/res/values-lv/strings.xml | 2 +- .../contacts/common/res/values-mk/strings.xml | 2 +- .../contacts/common/res/values-ml/strings.xml | 2 +- .../contacts/common/res/values-mn/strings.xml | 2 +- .../contacts/common/res/values-mr/strings.xml | 2 +- .../contacts/common/res/values-ms/strings.xml | 2 +- .../contacts/common/res/values-my/strings.xml | 2 +- .../contacts/common/res/values-nb/strings.xml | 2 +- .../contacts/common/res/values-ne/strings.xml | 2 +- .../contacts/common/res/values-nl/strings.xml | 2 +- .../contacts/common/res/values-no/strings.xml | 2 +- .../contacts/common/res/values-pa/strings.xml | 2 +- .../contacts/common/res/values-pl/strings.xml | 2 +- .../contacts/common/res/values-pt-rBR/strings.xml | 2 +- .../contacts/common/res/values-pt-rPT/strings.xml | 2 +- .../contacts/common/res/values-pt/strings.xml | 2 +- .../contacts/common/res/values-ro/strings.xml | 2 +- .../contacts/common/res/values-ru/strings.xml | 2 +- .../contacts/common/res/values-si/strings.xml | 2 +- .../contacts/common/res/values-sk/strings.xml | 2 +- .../contacts/common/res/values-sl/strings.xml | 2 +- .../contacts/common/res/values-sq/strings.xml | 2 +- .../contacts/common/res/values-sr/strings.xml | 2 +- .../contacts/common/res/values-sv/strings.xml | 2 +- .../contacts/common/res/values-sw/strings.xml | 2 +- .../contacts/common/res/values-ta/strings.xml | 2 +- .../contacts/common/res/values-te/strings.xml | 2 +- .../contacts/common/res/values-th/strings.xml | 2 +- .../contacts/common/res/values-tl/strings.xml | 2 +- .../contacts/common/res/values-tr/strings.xml | 2 +- .../contacts/common/res/values-uk/strings.xml | 2 +- .../contacts/common/res/values-ur/strings.xml | 2 +- .../contacts/common/res/values-uz/strings.xml | 2 +- .../contacts/common/res/values-vi/strings.xml | 2 +- .../contacts/common/res/values-zh-rCN/strings.xml | 2 +- .../contacts/common/res/values-zh-rHK/strings.xml | 2 +- .../contacts/common/res/values-zh-rTW/strings.xml | 2 +- .../contacts/common/res/values-zu/strings.xml | 2 +- .../com/android/contacts/common/res/values/ids.xml | 1 - .../android/contacts/common/res/values/strings.xml | 6 +- .../android/contacts/common/res/values/styles.xml | 1 + .../contacts/common/util/AccountFilterUtil.java | 42 ++ .../android/contacts/common/util/BitmapUtil.java | 26 + .../contacts/common/util/ContactDisplayUtils.java | 12 +- .../android/contacts/common/util/DateUtils.java | 241 ++++++++ .../common/util/MaterialColorMapUtils.java | 8 + .../contacts/common/util/NameConverter.java | 242 ++++++++ .../android/contacts/common/util/StopWatch.java | 28 +- .../common/util/TelephonyManagerUtils.java | 9 + .../contacts/common/util/TrafficStatsTags.java | 22 + java/com/android/dialer/about/AndroidManifest.xml | 2 +- java/com/android/dialer/about/res/raw/keep.xml | 1 + java/com/android/dialer/app/AndroidManifest.xml | 1 - java/com/android/dialer/app/DialtactsActivity.java | 69 +-- .../android/dialer/app/SpecialCharSequenceMgr.java | 5 +- .../android/dialer/app/calllog/CallLogAdapter.java | 158 +---- .../dialer/app/calllog/CallLogFragment.java | 29 +- .../app/calllog/CallLogListItemViewHolder.java | 82 +-- .../app/calllog/DefaultVoicemailNotifier.java | 11 +- .../android/dialer/app/calllog/IntentProvider.java | 9 +- .../app/calllog/calllogcache/CallLogCache.java | 6 +- .../calllog/calllogcache/CallLogCacheLollipop.java | 74 +++ .../dialer/app/contactinfo/ContactInfoCache.java | 8 +- .../dialer/app/dialpad/DialpadFragment.java | 10 - .../dialer/app/filterednumber/NumbersAdapter.java | 5 +- .../app/legacybindings/DialerLegacyBindings.java | 1 - .../legacybindings/DialerLegacyBindingsStub.java | 2 - .../dialer/app/list/AllContactsFragment.java | 8 +- .../app/list/DialerPhoneNumberListAdapter.java | 33 +- .../android/dialer/app/list/DialerViewPager.java | 55 -- .../com/android/dialer/app/list/ListsFragment.java | 59 +- .../dialer/app/list/OldSpeedDialFragment.java | 18 +- .../dialer/app/list/PhoneFavoriteListView.java | 19 +- .../app/list/PhoneFavoriteSquareTileView.java | 4 - .../dialer/app/list/PhoneFavoriteTileView.java | 38 +- .../dialer/app/list/PhoneFavoritesTileAdapter.java | 79 +-- .../dialer/app/list/RegularSearchFragment.java | 4 +- java/com/android/dialer/app/list/RemoveView.java | 2 +- .../android/dialer/app/list/SearchFragment.java | 4 +- .../dialer/app/list/SmartDialSearchFragment.java | 2 +- .../app/manifests/activities/AndroidManifest.xml | 2 +- .../app/res/drawable-hdpi/empty_contacts.png | Bin 0 -> 2461 bytes .../app/res/drawable-hdpi/ic_check_mark_48dp.png | Bin 749 -> 0 bytes .../res/drawable-hdpi/ic_check_mark_blue_24dp.png | Bin 408 -> 0 bytes .../ic_empty_check_mark_white_24dp.png | Bin 375 -> 0 bytes .../app/res/drawable-hdpi/ic_results_phone.png | Bin 0 -> 1084 bytes .../app/res/drawable-mdpi/empty_contacts.png | Bin 0 -> 1778 bytes .../app/res/drawable-mdpi/ic_check_mark_48dp.png | Bin 526 -> 0 bytes .../app/res/drawable-mdpi/ic_results_phone.png | Bin 0 -> 801 bytes .../app/res/drawable-xhdpi/empty_contacts.png | Bin 0 -> 3352 bytes .../app/res/drawable-xhdpi/ic_check_mark_48dp.png | Bin 981 -> 0 bytes .../app/res/drawable-xhdpi/ic_results_phone.png | Bin 0 -> 1376 bytes .../app/res/drawable-xxhdpi/empty_contacts.png | Bin 0 -> 3686 bytes .../app/res/drawable-xxhdpi/ic_check_mark_48dp.png | Bin 1443 -> 0 bytes .../app/res/drawable-xxhdpi/ic_results_phone.png | Bin 0 -> 2090 bytes .../app/res/drawable-xxxhdpi/empty_contacts.png | Bin 0 -> 5204 bytes .../res/drawable-xxxhdpi/ic_check_mark_48dp.png | Bin 1893 -> 0 bytes .../app/res/drawable-xxxhdpi/ic_results_phone.png | Bin 0 -> 2281 bytes .../dialer/app/res/drawable/ic_search_phone.xml | 20 + .../dialer/app/res/drawable/ic_wifi_calling.xml | 29 - .../empty_content_view_dialpad_search.xml | 6 +- .../app/res/layout/action_mode_close_button.xml | 31 - .../app/res/layout/all_contacts_fragment.xml | 2 +- .../dialer/app/res/layout/call_log_fragment.xml | 2 +- .../dialer/app/res/layout/call_log_list_item.xml | 2 +- .../app/res/layout/call_log_list_item_actions.xml | 4 +- .../dialer/app/res/layout/dialpad_fragment.xml | 47 +- .../dialer/app/res/layout/empty_content_view.xml | 54 ++ .../layout/empty_content_view_dialpad_search.xml | 6 +- .../dialer/app/res/layout/lists_fragment.xml | 143 ++--- .../dialer/app/res/layout/search_edittext.xml | 2 +- .../dialer/app/res/layout/speed_dial_fragment.xml | 2 +- .../android/dialer/app/res/values-af/strings.xml | 12 +- .../android/dialer/app/res/values-am/strings.xml | 12 +- .../android/dialer/app/res/values-ar/strings.xml | 12 +- .../android/dialer/app/res/values-az/strings.xml | 12 +- .../dialer/app/res/values-b+sr+Latn/strings.xml | 12 +- .../android/dialer/app/res/values-be/strings.xml | 12 +- .../android/dialer/app/res/values-bg/strings.xml | 12 +- .../android/dialer/app/res/values-bn/strings.xml | 12 +- .../android/dialer/app/res/values-bs/strings.xml | 12 +- .../android/dialer/app/res/values-ca/strings.xml | 12 +- .../android/dialer/app/res/values-cs/strings.xml | 12 +- .../android/dialer/app/res/values-da/strings.xml | 12 +- .../android/dialer/app/res/values-de/strings.xml | 12 +- .../android/dialer/app/res/values-el/strings.xml | 12 +- .../dialer/app/res/values-en-rAU/strings.xml | 12 +- .../dialer/app/res/values-en-rGB/strings.xml | 12 +- .../dialer/app/res/values-en-rIN/strings.xml | 12 +- .../dialer/app/res/values-es-rUS/strings.xml | 12 +- .../android/dialer/app/res/values-es/strings.xml | 12 +- .../android/dialer/app/res/values-et/strings.xml | 12 +- .../android/dialer/app/res/values-eu/strings.xml | 12 +- .../android/dialer/app/res/values-fa/strings.xml | 12 +- .../android/dialer/app/res/values-fi/strings.xml | 12 +- .../dialer/app/res/values-fr-rCA/strings.xml | 12 +- .../android/dialer/app/res/values-fr/strings.xml | 12 +- .../android/dialer/app/res/values-gl/strings.xml | 12 +- .../android/dialer/app/res/values-gu/strings.xml | 12 +- .../android/dialer/app/res/values-hi/strings.xml | 12 +- .../android/dialer/app/res/values-hr/strings.xml | 12 +- .../android/dialer/app/res/values-hu/strings.xml | 12 +- .../android/dialer/app/res/values-hy/strings.xml | 12 +- .../android/dialer/app/res/values-in/strings.xml | 12 +- .../android/dialer/app/res/values-is/strings.xml | 12 +- .../android/dialer/app/res/values-it/strings.xml | 12 +- .../android/dialer/app/res/values-iw/strings.xml | 12 +- .../android/dialer/app/res/values-ja/strings.xml | 12 +- .../android/dialer/app/res/values-ka/strings.xml | 12 +- .../android/dialer/app/res/values-kk/strings.xml | 12 +- .../android/dialer/app/res/values-km/strings.xml | 12 +- .../android/dialer/app/res/values-kn/strings.xml | 12 +- .../android/dialer/app/res/values-ko/strings.xml | 12 +- .../android/dialer/app/res/values-ky/strings.xml | 12 +- .../android/dialer/app/res/values-lo/strings.xml | 12 +- .../android/dialer/app/res/values-lt/strings.xml | 12 +- .../android/dialer/app/res/values-lv/strings.xml | 12 +- .../android/dialer/app/res/values-mk/strings.xml | 12 +- .../android/dialer/app/res/values-ml/strings.xml | 12 +- .../android/dialer/app/res/values-mn/strings.xml | 12 +- .../android/dialer/app/res/values-mr/strings.xml | 12 +- .../android/dialer/app/res/values-ms/strings.xml | 12 +- .../android/dialer/app/res/values-my/strings.xml | 12 +- .../android/dialer/app/res/values-nb/strings.xml | 12 +- .../android/dialer/app/res/values-ne/strings.xml | 12 +- .../android/dialer/app/res/values-nl/strings.xml | 12 +- .../android/dialer/app/res/values-no/strings.xml | 12 +- .../android/dialer/app/res/values-pa/strings.xml | 12 +- .../android/dialer/app/res/values-pl/strings.xml | 12 +- .../dialer/app/res/values-pt-rBR/strings.xml | 12 +- .../dialer/app/res/values-pt-rPT/strings.xml | 12 +- .../android/dialer/app/res/values-pt/strings.xml | 12 +- .../android/dialer/app/res/values-ro/strings.xml | 12 +- .../android/dialer/app/res/values-ru/strings.xml | 12 +- .../android/dialer/app/res/values-si/strings.xml | 12 +- .../android/dialer/app/res/values-sk/strings.xml | 12 +- .../android/dialer/app/res/values-sl/strings.xml | 12 +- .../android/dialer/app/res/values-sq/strings.xml | 12 +- .../android/dialer/app/res/values-sr/strings.xml | 12 +- .../android/dialer/app/res/values-sv/strings.xml | 12 +- .../android/dialer/app/res/values-sw/strings.xml | 12 +- .../android/dialer/app/res/values-ta/strings.xml | 12 +- .../android/dialer/app/res/values-te/strings.xml | 12 +- .../android/dialer/app/res/values-th/strings.xml | 14 +- .../android/dialer/app/res/values-tl/strings.xml | 12 +- .../android/dialer/app/res/values-tr/strings.xml | 12 +- .../android/dialer/app/res/values-uk/strings.xml | 12 +- .../android/dialer/app/res/values-ur/strings.xml | 12 +- .../android/dialer/app/res/values-uz/strings.xml | 12 +- .../android/dialer/app/res/values-vi/strings.xml | 12 +- .../dialer/app/res/values-zh-rCN/strings.xml | 12 +- .../dialer/app/res/values-zh-rHK/strings.xml | 12 +- .../dialer/app/res/values-zh-rTW/strings.xml | 12 +- .../android/dialer/app/res/values-zu/strings.xml | 12 +- java/com/android/dialer/app/res/values/colors.xml | 4 + java/com/android/dialer/app/res/values/dimens.xml | 3 + java/com/android/dialer/app/res/values/strings.xml | 55 +- java/com/android/dialer/app/res/values/styles.xml | 14 +- .../android/dialer/app/res/xml/sound_settings.xml | 4 +- .../app/settings/AppCompatPreferenceActivity.java | 5 + .../app/settings/DialerSettingsActivity.java | 15 +- .../dialer/app/settings/SoundSettingsFragment.java | 10 +- .../LegacyVoicemailNotificationReceiver.java | 13 +- .../app/voicemail/VoicemailPlaybackPresenter.java | 4 +- .../app/voicemail/error/res/values-hi/strings.xml | 2 +- .../app/widget/DialpadSearchEmptyContentView.java | 1 - .../dialer/app/widget/EmptyContentView.java | 121 ++++ .../dialer/app/widget/SearchEditTextLayout.java | 22 +- .../binary/aosp/AospDialerRootComponent.java | 2 - .../basecomponent/BaseDialerRootComponent.java | 4 - .../dialer/binary/common/DialerApplication.java | 5 +- .../dialer/callcomposer/AndroidManifest.xml | 2 +- .../dialer/callcomposer/CallComposerActivity.java | 73 ++- .../callcomposer/CameraComposerFragment.java | 13 +- .../dialer/callcomposer/GalleryCursorLoader.java | 4 +- .../callcomposer/MessageComposerFragment.java | 36 +- .../dialer/callcomposer/camera/CameraManager.java | 19 +- .../callcomposer/camera/ImagePersistTask.java | 38 +- .../callcomposer/proto/call_composer_contact.proto | 18 + .../res/layout/call_composer_activity.xml | 12 +- .../res/layout/fragment_message_composer.xml | 2 +- .../dialer/callcomposer/res/values-ca/strings.xml | 4 +- .../dialer/callcomposer/res/values/styles.xml | 2 +- .../android/dialer/calldetails/AndroidManifest.xml | 4 +- .../dialer/calldetails/CallDetailsActivity.java | 15 +- .../dialer/calldetails/CallDetailsAdapter.java | 14 +- .../calldetails/CallDetailsHeaderViewHolder.java | 19 +- .../calldetails/res/layout/contact_container.xml | 6 +- .../dialer/calldetails/res/values-af/strings.xml | 1 + .../dialer/calldetails/res/values-am/strings.xml | 1 + .../dialer/calldetails/res/values-ar/strings.xml | 1 + .../dialer/calldetails/res/values-az/strings.xml | 1 + .../calldetails/res/values-b+sr+Latn/strings.xml | 1 + .../dialer/calldetails/res/values-be/strings.xml | 1 + .../dialer/calldetails/res/values-bg/strings.xml | 1 + .../dialer/calldetails/res/values-bn/strings.xml | 1 + .../dialer/calldetails/res/values-bs/strings.xml | 1 + .../dialer/calldetails/res/values-ca/strings.xml | 1 + .../dialer/calldetails/res/values-cs/strings.xml | 1 + .../dialer/calldetails/res/values-da/strings.xml | 1 + .../dialer/calldetails/res/values-de/strings.xml | 1 + .../dialer/calldetails/res/values-el/strings.xml | 1 + .../calldetails/res/values-en-rAU/strings.xml | 1 + .../calldetails/res/values-en-rGB/strings.xml | 1 + .../calldetails/res/values-en-rIN/strings.xml | 1 + .../calldetails/res/values-es-rUS/strings.xml | 1 + .../dialer/calldetails/res/values-es/strings.xml | 1 + .../dialer/calldetails/res/values-et/strings.xml | 1 + .../dialer/calldetails/res/values-eu/strings.xml | 1 + .../dialer/calldetails/res/values-fa/strings.xml | 1 + .../dialer/calldetails/res/values-fi/strings.xml | 1 + .../calldetails/res/values-fr-rCA/strings.xml | 1 + .../dialer/calldetails/res/values-fr/strings.xml | 1 + .../dialer/calldetails/res/values-gl/strings.xml | 1 + .../dialer/calldetails/res/values-gu/strings.xml | 1 + .../dialer/calldetails/res/values-hi/strings.xml | 1 + .../dialer/calldetails/res/values-hr/strings.xml | 1 + .../dialer/calldetails/res/values-hu/strings.xml | 1 + .../dialer/calldetails/res/values-hy/strings.xml | 1 + .../dialer/calldetails/res/values-in/strings.xml | 1 + .../dialer/calldetails/res/values-is/strings.xml | 1 + .../dialer/calldetails/res/values-it/strings.xml | 1 + .../dialer/calldetails/res/values-iw/strings.xml | 1 + .../dialer/calldetails/res/values-ja/strings.xml | 1 + .../dialer/calldetails/res/values-ka/strings.xml | 1 + .../dialer/calldetails/res/values-kk/strings.xml | 1 + .../dialer/calldetails/res/values-km/strings.xml | 1 + .../dialer/calldetails/res/values-kn/strings.xml | 1 + .../dialer/calldetails/res/values-ko/strings.xml | 1 + .../dialer/calldetails/res/values-ky/strings.xml | 1 + .../dialer/calldetails/res/values-lo/strings.xml | 1 + .../dialer/calldetails/res/values-lt/strings.xml | 1 + .../dialer/calldetails/res/values-lv/strings.xml | 1 + .../dialer/calldetails/res/values-mk/strings.xml | 1 + .../dialer/calldetails/res/values-ml/strings.xml | 1 + .../dialer/calldetails/res/values-mn/strings.xml | 1 + .../dialer/calldetails/res/values-mr/strings.xml | 1 + .../dialer/calldetails/res/values-ms/strings.xml | 1 + .../dialer/calldetails/res/values-my/strings.xml | 1 + .../dialer/calldetails/res/values-nb/strings.xml | 1 + .../dialer/calldetails/res/values-ne/strings.xml | 1 + .../dialer/calldetails/res/values-nl/strings.xml | 1 + .../dialer/calldetails/res/values-no/strings.xml | 1 + .../dialer/calldetails/res/values-pa/strings.xml | 1 + .../dialer/calldetails/res/values-pl/strings.xml | 1 + .../calldetails/res/values-pt-rBR/strings.xml | 1 + .../calldetails/res/values-pt-rPT/strings.xml | 1 + .../dialer/calldetails/res/values-pt/strings.xml | 1 + .../dialer/calldetails/res/values-ro/strings.xml | 1 + .../dialer/calldetails/res/values-ru/strings.xml | 1 + .../dialer/calldetails/res/values-si/strings.xml | 1 + .../dialer/calldetails/res/values-sk/strings.xml | 1 + .../dialer/calldetails/res/values-sl/strings.xml | 1 + .../dialer/calldetails/res/values-sq/strings.xml | 1 + .../dialer/calldetails/res/values-sr/strings.xml | 1 + .../dialer/calldetails/res/values-sv/strings.xml | 1 + .../dialer/calldetails/res/values-sw/strings.xml | 1 + .../dialer/calldetails/res/values-ta/strings.xml | 1 + .../dialer/calldetails/res/values-te/strings.xml | 1 + .../dialer/calldetails/res/values-th/strings.xml | 1 + .../dialer/calldetails/res/values-tl/strings.xml | 1 + .../dialer/calldetails/res/values-tr/strings.xml | 1 + .../dialer/calldetails/res/values-uk/strings.xml | 1 + .../dialer/calldetails/res/values-ur/strings.xml | 1 + .../dialer/calldetails/res/values-uz/strings.xml | 1 + .../dialer/calldetails/res/values-vi/strings.xml | 1 + .../calldetails/res/values-zh-rCN/strings.xml | 1 + .../calldetails/res/values-zh-rHK/strings.xml | 1 + .../calldetails/res/values-zh-rTW/strings.xml | 1 + .../dialer/calldetails/res/values-zu/strings.xml | 1 + .../dialer/calldetails/res/values/dimens.xml | 2 + .../dialer/calldetails/res/values/strings.xml | 4 + .../dialer/calldetails/res/values/styles.xml | 18 + .../dialer/callintent/call_specific_app_data.proto | 4 - .../callintent/speed_dial_contact_type.proto | 18 - .../android/dialer/calllog/CallLogComponent.java | 2 - .../android/dialer/calllog/CallLogFramework.java | 3 +- java/com/android/dialer/calllog/CallLogModule.java | 8 +- java/com/android/dialer/calllog/DataSources.java | 31 + .../calllog/RefreshAnnotatedCallLogWorker.java | 113 ++-- .../dialer/calllog/database/AndroidManifest.xml | 28 - .../dialer/calllog/database/AnnotatedCallLog.java | 53 ++ .../database/AnnotatedCallLogContentProvider.java | 310 ---------- .../database/AnnotatedCallLogDatabaseHelper.java | 17 +- .../calllog/database/CallLogDatabaseComponent.java | 40 -- .../dialer/calllog/database/CallLogMutations.java | 58 ++ .../android/dialer/calllog/database/Coalescer.java | 142 ----- .../dialer/calllog/database/MutationApplier.java | 105 ---- .../contract/AnnotatedCallLogContract.java | 114 ---- .../calllog/datasources/CallLogDataSource.java | 67 +-- .../calllog/datasources/CallLogMutations.java | 110 ---- .../dialer/calllog/datasources/DataSources.java | 30 - .../datasources/contacts/ContactsDataSource.java | 22 +- .../systemcalllog/SystemCallLogDataSource.java | 209 +------ .../calllog/datasources/util/RowCombiner.java | 53 -- .../calllog/testing/FakeCallLogApplication.java | 39 -- .../android/dialer/calllog/ui/AndroidManifest.xml | 2 +- .../calllog/ui/AnnotatedCallLogCursorLoader.java | 48 ++ .../dialer/calllog/ui/NewCallLogAdapter.java | 53 -- .../dialer/calllog/ui/NewCallLogFragment.java | 93 ++- .../dialer/calllog/ui/NewCallLogViewHolder.java | 43 -- .../calllog/ui/res/layout/new_call_log_entry.xml | 16 +- .../ui/res/layout/new_call_log_fragment.xml | 7 +- java/com/android/dialer/common/Assert.java | 4 + .../common/concurrent/DialerExecutorComponent.java | 39 -- .../common/concurrent/DialerExecutorModule.java | 28 - java/com/android/dialer/compat/CompatUtils.java | 155 +++++ java/com/android/dialer/constants/Constants.java | 3 - .../android/dialer/constants/ScheduledJobIds.java | 1 - .../android/dialer/constants/TrafficStatsTags.java | 28 - .../dialer/constants/aospdialer/ConstantsImpl.java | 6 - .../dialer/contactactions/AndroidManifest.xml | 16 - .../contactactions/ContactActionBottomSheet.java | 136 ----- .../dialer/contactactions/ContactActionModule.java | 38 -- .../dialer/contactactions/DividerModule.java | 41 -- .../dialer/contactactions/IntentModule.java | 75 --- .../contactactions/res/layout/contact_layout.xml | 53 -- .../contactactions/res/layout/divider_layout.xml | 23 - .../contactactions/res/layout/module_layout.xml | 40 -- .../contactactions/res/layout/sheet_layout.xml | 24 - .../dialer/contactactions/res/values/dimens.xml | 20 - .../dialer/contactsfragment/ContactViewHolder.java | 11 - .../dialer/contactsfragment/ContactsAdapter.java | 49 +- .../contactsfragment/ContactsCursorLoader.java | 27 +- .../dialer/contactsfragment/ContactsFragment.java | 138 +---- .../dialer/contactsfragment/FastScroller.java | 129 ---- .../fast_scroller_container_background.xml | 28 - .../res/drawable/fast_scroller_scroll_bar.xml | 32 - .../contactsfragment/res/layout/contact_row.xml | 6 +- .../res/layout/fragment_contacts.xml | 40 +- .../dialer/contactsfragment/res/values/dimens.xml | 9 +- .../dialer/database/DialerDatabaseHelper.java | 357 +++++------ .../dialer/dialercontact/dialer_contact.proto | 18 - .../dialer/dialpadview/res/values/dimens.xml | 2 +- .../interactions/PhoneNumberInteraction.java | 9 - .../android/dialer/location/CountryDetector.java | 6 +- .../android/dialer/logging/LoggingBindings.java | 18 +- .../dialer/logging/LoggingBindingsStub.java | 17 - .../dialer/logging/contact_lookup_result.proto | 1 - .../android/dialer/logging/contact_source.proto | 1 - .../android/dialer/logging/dialer_impression.proto | 19 +- .../android/dialer/logging/interaction_event.proto | 20 - .../dialer/logging/reporting_location.proto | 1 - java/com/android/dialer/logging/screen_event.proto | 1 - .../android/dialer/multimedia/MultimediaData.java | 6 - .../android/dialer/oem/CequintCallerIdManager.java | 98 ++- .../dialer/oem/MotorolaHiddenMenuKeySequence.java | 4 +- java/com/android/dialer/oem/MotorolaUtils.java | 25 - .../res/values-mcc310-mnc000/motorola_config.xml | 17 +- .../res/values-mcc310-mnc120/motorola_config.xml | 17 +- .../res/values-mcc311-mnc490/motorola_config.xml | 17 +- .../res/values-mcc311-mnc870/motorola_config.xml | 17 +- .../res/values-mcc312-mnc530/motorola_config.xml | 17 +- .../res/values-mcc316-mnc010/motorola_config.xml | 17 +- .../dialer/oem/res/values/motorola_config.xml | 19 +- .../dialer/phonenumbercache/ContactInfo.java | 4 +- .../dialer/phonenumbercache/ContactInfoHelper.java | 8 +- .../android/dialer/postcall/AndroidManifest.xml | 2 +- java/com/android/dialer/postcall/PostCall.java | 16 +- java/com/android/dialer/protos/ProtoParsers.java | 125 +++- .../dialer/searchfragment/AndroidManifest.xml | 16 - .../dialer/searchfragment/NewSearchFragment.java | 83 --- .../android/dialer/searchfragment/QueryUtil.java | 269 --------- java/com/android/dialer/searchfragment/README.md | 62 -- .../dialer/searchfragment/SearchAdapter.java | 84 --- .../dialer/searchfragment/SearchContactCursor.java | 390 ------------ .../searchfragment/SearchContactViewHolder.java | 203 ------- .../searchfragment/SearchContactsCursorLoader.java | 57 -- .../dialer/searchfragment/SearchCursorManager.java | 229 ------- .../searchfragment/res/layout/fragment_search.xml | 21 - .../res/layout/search_contact_row.xml | 75 --- .../dialer/searchfragment/res/values/dimens.xml | 23 - .../android/dialer/shortcuts/AndroidManifest.xml | 2 +- java/com/android/dialer/telecom/TelecomUtil.java | 80 ++- .../android/dialer/theme/res/values-af/strings.xml | 2 - .../android/dialer/theme/res/values-am/strings.xml | 2 - .../android/dialer/theme/res/values-ar/strings.xml | 2 - .../android/dialer/theme/res/values-az/strings.xml | 2 - .../dialer/theme/res/values-b+sr+Latn/strings.xml | 2 - .../android/dialer/theme/res/values-be/strings.xml | 2 - .../android/dialer/theme/res/values-bg/strings.xml | 2 - .../android/dialer/theme/res/values-bn/strings.xml | 2 - .../android/dialer/theme/res/values-bs/strings.xml | 2 - .../android/dialer/theme/res/values-ca/strings.xml | 2 - .../android/dialer/theme/res/values-cs/strings.xml | 2 - .../android/dialer/theme/res/values-da/strings.xml | 2 - .../android/dialer/theme/res/values-de/strings.xml | 2 - .../android/dialer/theme/res/values-el/strings.xml | 2 - .../dialer/theme/res/values-en-rAU/strings.xml | 2 - .../dialer/theme/res/values-en-rGB/strings.xml | 2 - .../dialer/theme/res/values-en-rIN/strings.xml | 2 - .../dialer/theme/res/values-es-rUS/strings.xml | 2 - .../android/dialer/theme/res/values-es/strings.xml | 2 - .../android/dialer/theme/res/values-et/strings.xml | 2 - .../android/dialer/theme/res/values-eu/strings.xml | 2 - .../android/dialer/theme/res/values-fa/strings.xml | 2 - .../android/dialer/theme/res/values-fi/strings.xml | 2 - .../dialer/theme/res/values-fr-rCA/strings.xml | 2 - .../android/dialer/theme/res/values-fr/strings.xml | 2 - .../android/dialer/theme/res/values-gl/strings.xml | 2 - .../android/dialer/theme/res/values-gu/strings.xml | 2 - .../android/dialer/theme/res/values-hi/strings.xml | 2 - .../android/dialer/theme/res/values-hr/strings.xml | 2 - .../android/dialer/theme/res/values-hu/strings.xml | 2 - .../android/dialer/theme/res/values-hy/strings.xml | 2 - .../android/dialer/theme/res/values-in/strings.xml | 2 - .../android/dialer/theme/res/values-is/strings.xml | 2 - .../android/dialer/theme/res/values-it/strings.xml | 2 - .../android/dialer/theme/res/values-iw/strings.xml | 2 - .../android/dialer/theme/res/values-ja/strings.xml | 2 - .../android/dialer/theme/res/values-ka/strings.xml | 2 - .../android/dialer/theme/res/values-kk/strings.xml | 2 - .../android/dialer/theme/res/values-km/strings.xml | 2 - .../android/dialer/theme/res/values-kn/strings.xml | 2 - .../android/dialer/theme/res/values-ko/strings.xml | 2 - .../android/dialer/theme/res/values-ky/strings.xml | 2 - .../android/dialer/theme/res/values-lo/strings.xml | 2 - .../android/dialer/theme/res/values-lt/strings.xml | 2 - .../android/dialer/theme/res/values-lv/strings.xml | 2 - .../android/dialer/theme/res/values-mk/strings.xml | 2 - .../android/dialer/theme/res/values-ml/strings.xml | 2 - .../android/dialer/theme/res/values-mn/strings.xml | 2 - .../android/dialer/theme/res/values-mr/strings.xml | 2 - .../android/dialer/theme/res/values-ms/strings.xml | 2 - .../android/dialer/theme/res/values-my/strings.xml | 2 - .../android/dialer/theme/res/values-nb/strings.xml | 2 - .../android/dialer/theme/res/values-ne/strings.xml | 2 - .../android/dialer/theme/res/values-nl/strings.xml | 2 - .../android/dialer/theme/res/values-no/strings.xml | 2 - .../android/dialer/theme/res/values-pa/strings.xml | 2 - .../android/dialer/theme/res/values-pl/strings.xml | 2 - .../dialer/theme/res/values-pt-rBR/strings.xml | 2 - .../dialer/theme/res/values-pt-rPT/strings.xml | 2 - .../android/dialer/theme/res/values-pt/strings.xml | 2 - .../android/dialer/theme/res/values-ro/strings.xml | 2 - .../android/dialer/theme/res/values-ru/strings.xml | 2 - .../android/dialer/theme/res/values-si/strings.xml | 2 - .../android/dialer/theme/res/values-sk/strings.xml | 2 - .../android/dialer/theme/res/values-sl/strings.xml | 2 - .../android/dialer/theme/res/values-sq/strings.xml | 2 - .../android/dialer/theme/res/values-sr/strings.xml | 2 - .../android/dialer/theme/res/values-sv/strings.xml | 2 - .../android/dialer/theme/res/values-sw/strings.xml | 2 - .../android/dialer/theme/res/values-ta/strings.xml | 2 - .../android/dialer/theme/res/values-te/strings.xml | 2 - .../android/dialer/theme/res/values-th/strings.xml | 2 - .../android/dialer/theme/res/values-tl/strings.xml | 2 - .../android/dialer/theme/res/values-tr/strings.xml | 2 - .../android/dialer/theme/res/values-uk/strings.xml | 2 - .../android/dialer/theme/res/values-ur/strings.xml | 2 - .../android/dialer/theme/res/values-uz/strings.xml | 2 - .../android/dialer/theme/res/values-vi/strings.xml | 2 - .../dialer/theme/res/values-zh-rCN/strings.xml | 2 - .../dialer/theme/res/values-zh-rHK/strings.xml | 2 - .../dialer/theme/res/values-zh-rTW/strings.xml | 2 - .../android/dialer/theme/res/values-zu/strings.xml | 2 - .../android/dialer/theme/res/values/strings.xml | 6 - .../com/android/dialer/theme/res/values/themes.xml | 43 -- java/com/android/dialer/util/CallUtil.java | 22 +- java/com/android/dialer/util/PermissionsUtil.java | 8 +- java/com/android/dialer/widget/DialerToolbar.java | 5 - .../android/dialer/widget/EmptyContentView.java | 127 ---- .../com/android/dialer/widget/MessageFragment.java | 29 +- .../widget/res/drawable-hdpi/empty_contacts.png | Bin 2461 -> 0 bytes .../widget/res/drawable-mdpi/empty_contacts.png | Bin 1778 -> 0 bytes .../widget/res/drawable-xhdpi/empty_contacts.png | Bin 3352 -> 0 bytes .../widget/res/drawable-xxhdpi/empty_contacts.png | Bin 3686 -> 0 bytes .../widget/res/drawable-xxxhdpi/empty_contacts.png | Bin 5204 -> 0 bytes .../dialer/widget/res/layout/dialer_toolbar.xml | 8 +- .../widget/res/layout/empty_content_view.xml | 54 -- .../dialer/widget/res/layout/fragment_message.xml | 4 +- .../dialer/widget/res/values-af/strings.xml | 5 - .../dialer/widget/res/values-am/strings.xml | 5 - .../dialer/widget/res/values-ar/strings.xml | 5 - .../dialer/widget/res/values-az/strings.xml | 5 - .../dialer/widget/res/values-b+sr+Latn/strings.xml | 5 - .../dialer/widget/res/values-be/strings.xml | 5 - .../dialer/widget/res/values-bg/strings.xml | 5 - .../dialer/widget/res/values-bn/strings.xml | 5 - .../dialer/widget/res/values-bs/strings.xml | 5 - .../dialer/widget/res/values-ca/strings.xml | 5 - .../dialer/widget/res/values-cs/strings.xml | 5 - .../dialer/widget/res/values-da/strings.xml | 5 - .../dialer/widget/res/values-de/strings.xml | 5 - .../dialer/widget/res/values-el/strings.xml | 5 - .../dialer/widget/res/values-en-rAU/strings.xml | 5 - .../dialer/widget/res/values-en-rGB/strings.xml | 5 - .../dialer/widget/res/values-en-rIN/strings.xml | 5 - .../dialer/widget/res/values-es-rUS/strings.xml | 5 - .../dialer/widget/res/values-es/strings.xml | 5 - .../dialer/widget/res/values-et/strings.xml | 5 - .../dialer/widget/res/values-eu/strings.xml | 5 - .../dialer/widget/res/values-fa/strings.xml | 5 - .../dialer/widget/res/values-fi/strings.xml | 5 - .../dialer/widget/res/values-fr-rCA/strings.xml | 5 - .../dialer/widget/res/values-fr/strings.xml | 5 - .../dialer/widget/res/values-gl/strings.xml | 5 - .../dialer/widget/res/values-gu/strings.xml | 5 - .../dialer/widget/res/values-hi/strings.xml | 5 - .../dialer/widget/res/values-hr/strings.xml | 5 - .../dialer/widget/res/values-hu/strings.xml | 5 - .../dialer/widget/res/values-hy/strings.xml | 5 - .../dialer/widget/res/values-in/strings.xml | 5 - .../dialer/widget/res/values-is/strings.xml | 5 - .../dialer/widget/res/values-it/strings.xml | 5 - .../dialer/widget/res/values-iw/strings.xml | 5 - .../dialer/widget/res/values-ja/strings.xml | 5 - .../dialer/widget/res/values-ka/strings.xml | 5 - .../dialer/widget/res/values-kk/strings.xml | 5 - .../dialer/widget/res/values-km/strings.xml | 5 - .../dialer/widget/res/values-kn/strings.xml | 5 - .../dialer/widget/res/values-ko/strings.xml | 5 - .../dialer/widget/res/values-ky/strings.xml | 5 - .../dialer/widget/res/values-lo/strings.xml | 5 - .../dialer/widget/res/values-lt/strings.xml | 5 - .../dialer/widget/res/values-lv/strings.xml | 5 - .../dialer/widget/res/values-mk/strings.xml | 5 - .../dialer/widget/res/values-ml/strings.xml | 5 - .../dialer/widget/res/values-mn/strings.xml | 5 - .../dialer/widget/res/values-mr/strings.xml | 5 - .../dialer/widget/res/values-ms/strings.xml | 5 - .../dialer/widget/res/values-my/strings.xml | 5 - .../dialer/widget/res/values-nb/strings.xml | 5 - .../dialer/widget/res/values-ne/strings.xml | 5 - .../dialer/widget/res/values-nl/strings.xml | 5 - .../dialer/widget/res/values-no/strings.xml | 5 - .../dialer/widget/res/values-pa/strings.xml | 5 - .../dialer/widget/res/values-pl/strings.xml | 5 - .../dialer/widget/res/values-pt-rBR/strings.xml | 5 - .../dialer/widget/res/values-pt-rPT/strings.xml | 5 - .../dialer/widget/res/values-pt/strings.xml | 5 - .../dialer/widget/res/values-ro/strings.xml | 5 - .../dialer/widget/res/values-ru/strings.xml | 5 - .../dialer/widget/res/values-si/strings.xml | 5 - .../dialer/widget/res/values-sk/strings.xml | 5 - .../dialer/widget/res/values-sl/strings.xml | 5 - .../dialer/widget/res/values-sq/strings.xml | 5 - .../dialer/widget/res/values-sr/strings.xml | 5 - .../dialer/widget/res/values-sv/strings.xml | 5 - .../dialer/widget/res/values-sw/strings.xml | 5 - .../dialer/widget/res/values-ta/strings.xml | 5 - .../dialer/widget/res/values-te/strings.xml | 5 - .../dialer/widget/res/values-th/strings.xml | 5 - .../dialer/widget/res/values-tl/strings.xml | 5 - .../dialer/widget/res/values-tr/strings.xml | 5 - .../dialer/widget/res/values-uk/strings.xml | 5 - .../dialer/widget/res/values-ur/strings.xml | 5 - .../dialer/widget/res/values-uz/strings.xml | 5 - .../dialer/widget/res/values-vi/strings.xml | 5 - .../dialer/widget/res/values-zh-rCN/strings.xml | 5 - .../dialer/widget/res/values-zh-rHK/strings.xml | 5 - .../dialer/widget/res/values-zh-rTW/strings.xml | 5 - .../dialer/widget/res/values-zu/strings.xml | 5 - .../android/dialer/widget/res/values/colors.xml | 4 - .../android/dialer/widget/res/values/dimens.xml | 5 - .../android/dialer/widget/res/values/strings.xml | 15 - .../dialershared/bubble/AndroidManifest.xml | 22 - java/com/android/dialershared/bubble/Bubble.java | 667 --------------------- .../android/dialershared/bubble/BubbleInfo.java | 116 ---- .../dialershared/bubble/ChangeOnScreenBounds.java | 166 ----- .../dialershared/bubble/CheckableImageButton.java | 101 ---- .../android/dialershared/bubble/MoveHandler.java | 250 -------- .../android/dialershared/bubble/WindowRoot.java | 55 -- .../bubble/res/color/bubble_checkable_mask.xml | 21 - .../bubble/res/color/bubble_icon_tint_states.xml | 21 - .../res/drawable/bubble_background_pill_ltr.xml | 23 - .../res/drawable/bubble_background_pill_rtl.xml | 23 - .../drawable/bubble_ripple_checkable_circle.xml | 30 - .../bubble/res/drawable/bubble_ripple_circle.xml | 26 - .../dialershared/bubble/res/layout/bubble_base.xml | 116 ---- .../dialershared/bubble/res/values/colors.xml | 20 - .../dialershared/bubble/res/values/values.xml | 27 - java/com/android/incallui/AndroidManifest.xml | 110 ++-- .../android/incallui/AnswerScreenPresenter.java | 20 - .../incallui/AnswerScreenPresenterStub.java | 6 - .../incallui/AudioRouteSelectorActivity.java | 47 -- java/com/android/incallui/CallButtonPresenter.java | 31 +- java/com/android/incallui/CallCardPresenter.java | 88 ++- java/com/android/incallui/CallerInfoUtils.java | 7 - java/com/android/incallui/ContactInfoCache.java | 27 +- .../com/android/incallui/ExternalCallNotifier.java | 9 +- java/com/android/incallui/InCallActivity.java | 11 +- java/com/android/incallui/InCallPresenter.java | 5 +- java/com/android/incallui/InCallServiceImpl.java | 10 - .../incallui/ReturnToCallActionReceiver.java | 132 ---- .../android/incallui/ReturnToCallController.java | 204 ------- java/com/android/incallui/StatusBarNotifier.java | 55 +- .../incallui/answer/impl/AnswerFragment.java | 4 +- .../android/incallui/answer/impl/PillDrawable.java | 43 ++ .../res/layout/swipe_up_down_method.xml | 3 - .../answer/impl/hint/AnswerHintFactory.java | 32 +- .../answer/impl/hint/PawImageLoaderImpl.java | 25 +- .../answer/impl/hint/PawSecretCodeListener.java | 47 +- .../incallui/answer/impl/res/values-af/strings.xml | 18 +- .../incallui/answer/impl/res/values-am/strings.xml | 18 +- .../incallui/answer/impl/res/values-ar/strings.xml | 18 +- .../incallui/answer/impl/res/values-az/strings.xml | 18 +- .../answer/impl/res/values-b+sr+Latn/strings.xml | 18 +- .../incallui/answer/impl/res/values-be/strings.xml | 18 +- .../incallui/answer/impl/res/values-bg/strings.xml | 18 +- .../incallui/answer/impl/res/values-bn/strings.xml | 18 +- .../incallui/answer/impl/res/values-bs/strings.xml | 18 +- .../incallui/answer/impl/res/values-ca/strings.xml | 18 +- .../incallui/answer/impl/res/values-cs/strings.xml | 18 +- .../incallui/answer/impl/res/values-da/strings.xml | 18 +- .../incallui/answer/impl/res/values-de/strings.xml | 18 +- .../incallui/answer/impl/res/values-el/strings.xml | 18 +- .../answer/impl/res/values-en-rAU/strings.xml | 18 +- .../answer/impl/res/values-en-rGB/strings.xml | 18 +- .../answer/impl/res/values-en-rIN/strings.xml | 18 +- .../answer/impl/res/values-es-rUS/strings.xml | 18 +- .../incallui/answer/impl/res/values-es/strings.xml | 18 +- .../incallui/answer/impl/res/values-et/strings.xml | 18 +- .../incallui/answer/impl/res/values-eu/strings.xml | 18 +- .../incallui/answer/impl/res/values-fa/strings.xml | 18 +- .../incallui/answer/impl/res/values-fi/strings.xml | 18 +- .../answer/impl/res/values-fr-rCA/strings.xml | 18 +- .../incallui/answer/impl/res/values-fr/strings.xml | 18 +- .../incallui/answer/impl/res/values-gl/strings.xml | 18 +- .../incallui/answer/impl/res/values-gu/strings.xml | 18 +- .../incallui/answer/impl/res/values-hi/strings.xml | 18 +- .../incallui/answer/impl/res/values-hr/strings.xml | 18 +- .../incallui/answer/impl/res/values-hu/strings.xml | 18 +- .../incallui/answer/impl/res/values-hy/strings.xml | 18 +- .../incallui/answer/impl/res/values-in/strings.xml | 18 +- .../incallui/answer/impl/res/values-is/strings.xml | 18 +- .../incallui/answer/impl/res/values-it/strings.xml | 18 +- .../incallui/answer/impl/res/values-iw/strings.xml | 18 +- .../incallui/answer/impl/res/values-ja/strings.xml | 18 +- .../incallui/answer/impl/res/values-ka/strings.xml | 18 +- .../incallui/answer/impl/res/values-kk/strings.xml | 18 +- .../incallui/answer/impl/res/values-km/strings.xml | 18 +- .../incallui/answer/impl/res/values-kn/strings.xml | 18 +- .../incallui/answer/impl/res/values-ko/strings.xml | 18 +- .../incallui/answer/impl/res/values-ky/strings.xml | 18 +- .../incallui/answer/impl/res/values-lo/strings.xml | 18 +- .../incallui/answer/impl/res/values-lt/strings.xml | 18 +- .../incallui/answer/impl/res/values-lv/strings.xml | 18 +- .../incallui/answer/impl/res/values-mk/strings.xml | 18 +- .../incallui/answer/impl/res/values-ml/strings.xml | 18 +- .../incallui/answer/impl/res/values-mn/strings.xml | 18 +- .../incallui/answer/impl/res/values-mr/strings.xml | 18 +- .../incallui/answer/impl/res/values-ms/strings.xml | 18 +- .../incallui/answer/impl/res/values-my/strings.xml | 18 +- .../incallui/answer/impl/res/values-nb/strings.xml | 18 +- .../incallui/answer/impl/res/values-ne/strings.xml | 18 +- .../incallui/answer/impl/res/values-nl/strings.xml | 18 +- .../incallui/answer/impl/res/values-no/strings.xml | 18 +- .../incallui/answer/impl/res/values-pa/strings.xml | 18 +- .../incallui/answer/impl/res/values-pl/strings.xml | 18 +- .../answer/impl/res/values-pt-rBR/strings.xml | 18 +- .../answer/impl/res/values-pt-rPT/strings.xml | 18 +- .../incallui/answer/impl/res/values-pt/strings.xml | 18 +- .../incallui/answer/impl/res/values-ro/strings.xml | 18 +- .../incallui/answer/impl/res/values-ru/strings.xml | 18 +- .../incallui/answer/impl/res/values-si/strings.xml | 18 +- .../incallui/answer/impl/res/values-sk/strings.xml | 18 +- .../incallui/answer/impl/res/values-sl/strings.xml | 18 +- .../incallui/answer/impl/res/values-sq/strings.xml | 18 +- .../incallui/answer/impl/res/values-sr/strings.xml | 18 +- .../incallui/answer/impl/res/values-sv/strings.xml | 18 +- .../incallui/answer/impl/res/values-sw/strings.xml | 18 +- .../incallui/answer/impl/res/values-ta/strings.xml | 18 +- .../incallui/answer/impl/res/values-te/strings.xml | 18 +- .../incallui/answer/impl/res/values-th/strings.xml | 18 +- .../incallui/answer/impl/res/values-tl/strings.xml | 18 +- .../incallui/answer/impl/res/values-tr/strings.xml | 18 +- .../incallui/answer/impl/res/values-uk/strings.xml | 18 +- .../incallui/answer/impl/res/values-ur/strings.xml | 18 +- .../incallui/answer/impl/res/values-uz/strings.xml | 18 +- .../incallui/answer/impl/res/values-vi/strings.xml | 18 +- .../answer/impl/res/values-zh-rCN/strings.xml | 18 +- .../answer/impl/res/values-zh-rHK/strings.xml | 18 +- .../answer/impl/res/values-zh-rTW/strings.xml | 18 +- .../incallui/answer/impl/res/values-zu/strings.xml | 18 +- .../incallui/answer/impl/res/values/strings.xml | 17 +- .../answer/protocol/AnswerScreenDelegate.java | 4 - .../AnswerProximitySensor.java | 3 - .../AudioRouteSelectorDialogFragment.java | 11 - .../incallui/bindings/InCallUiBindings.java | 9 + .../incallui/bindings/InCallUiBindingsStub.java | 38 ++ java/com/android/incallui/call/CallList.java | 13 - java/com/android/incallui/call/DialerCall.java | 105 +--- .../android/incallui/call/DialerCallListener.java | 2 - java/com/android/incallui/call/TelecomAdapter.java | 8 +- .../calllocation/impl/DownloadMapImageTask.java | 1 - .../incallui/calllocation/impl/LocationHelper.java | 7 - .../calllocation/impl/ReverseGeocodeTask.java | 1 - .../calllocation/impl/TrafficStatsTags.java | 29 + .../incallui/commontheme/res/anim/blinking.xml | 10 + .../drawable-hdpi/ic_phone_audio_white_36dp.png | Bin 0 -> 1010 bytes .../drawable-mdpi/ic_phone_audio_white_36dp.png | Bin 0 -> 682 bytes .../drawable-xhdpi/ic_phone_audio_white_36dp.png | Bin 0 -> 1362 bytes .../drawable-xxhdpi/ic_phone_audio_white_36dp.png | Bin 0 -> 2259 bytes .../drawable-xxxhdpi/ic_phone_audio_white_36dp.png | Bin 0 -> 3156 bytes .../incallui/commontheme/res/values-af/strings.xml | 18 - .../incallui/commontheme/res/values-am/strings.xml | 18 - .../incallui/commontheme/res/values-ar/strings.xml | 18 - .../incallui/commontheme/res/values-az/strings.xml | 18 - .../commontheme/res/values-b+sr+Latn/strings.xml | 18 - .../incallui/commontheme/res/values-be/strings.xml | 18 - .../incallui/commontheme/res/values-bg/strings.xml | 18 - .../incallui/commontheme/res/values-bn/strings.xml | 18 - .../incallui/commontheme/res/values-bs/strings.xml | 18 - .../incallui/commontheme/res/values-ca/strings.xml | 18 - .../incallui/commontheme/res/values-cs/strings.xml | 18 - .../incallui/commontheme/res/values-da/strings.xml | 18 - .../incallui/commontheme/res/values-de/strings.xml | 18 - .../incallui/commontheme/res/values-el/strings.xml | 18 - .../commontheme/res/values-en-rAU/strings.xml | 18 - .../commontheme/res/values-en-rGB/strings.xml | 18 - .../commontheme/res/values-en-rIN/strings.xml | 18 - .../commontheme/res/values-es-rUS/strings.xml | 18 - .../incallui/commontheme/res/values-es/strings.xml | 18 - .../incallui/commontheme/res/values-et/strings.xml | 18 - .../incallui/commontheme/res/values-eu/strings.xml | 18 - .../incallui/commontheme/res/values-fa/strings.xml | 18 - .../incallui/commontheme/res/values-fi/strings.xml | 18 - .../commontheme/res/values-fr-rCA/strings.xml | 18 - .../incallui/commontheme/res/values-fr/strings.xml | 18 - .../incallui/commontheme/res/values-gl/strings.xml | 18 - .../incallui/commontheme/res/values-gu/strings.xml | 18 - .../incallui/commontheme/res/values-hi/strings.xml | 18 - .../incallui/commontheme/res/values-hr/strings.xml | 18 - .../incallui/commontheme/res/values-hu/strings.xml | 18 - .../incallui/commontheme/res/values-hy/strings.xml | 18 - .../incallui/commontheme/res/values-in/strings.xml | 18 - .../incallui/commontheme/res/values-is/strings.xml | 18 - .../incallui/commontheme/res/values-it/strings.xml | 18 - .../incallui/commontheme/res/values-iw/strings.xml | 18 - .../incallui/commontheme/res/values-ja/strings.xml | 18 - .../incallui/commontheme/res/values-ka/strings.xml | 18 - .../incallui/commontheme/res/values-kk/strings.xml | 18 - .../incallui/commontheme/res/values-km/strings.xml | 18 - .../incallui/commontheme/res/values-kn/strings.xml | 18 - .../incallui/commontheme/res/values-ko/strings.xml | 18 - .../incallui/commontheme/res/values-ky/strings.xml | 18 - .../incallui/commontheme/res/values-lo/strings.xml | 18 - .../incallui/commontheme/res/values-lt/strings.xml | 18 - .../incallui/commontheme/res/values-lv/strings.xml | 18 - .../incallui/commontheme/res/values-mk/strings.xml | 18 - .../incallui/commontheme/res/values-ml/strings.xml | 18 - .../incallui/commontheme/res/values-mn/strings.xml | 18 - .../incallui/commontheme/res/values-mr/strings.xml | 18 - .../incallui/commontheme/res/values-ms/strings.xml | 18 - .../incallui/commontheme/res/values-my/strings.xml | 18 - .../incallui/commontheme/res/values-nb/strings.xml | 18 - .../incallui/commontheme/res/values-ne/strings.xml | 18 - .../incallui/commontheme/res/values-nl/strings.xml | 18 - .../incallui/commontheme/res/values-no/strings.xml | 18 - .../incallui/commontheme/res/values-pa/strings.xml | 18 - .../incallui/commontheme/res/values-pl/strings.xml | 18 - .../commontheme/res/values-pt-rBR/strings.xml | 18 - .../commontheme/res/values-pt-rPT/strings.xml | 18 - .../incallui/commontheme/res/values-pt/strings.xml | 18 - .../incallui/commontheme/res/values-ro/strings.xml | 18 - .../incallui/commontheme/res/values-ru/strings.xml | 18 - .../incallui/commontheme/res/values-si/strings.xml | 18 - .../incallui/commontheme/res/values-sk/strings.xml | 18 - .../incallui/commontheme/res/values-sl/strings.xml | 18 - .../incallui/commontheme/res/values-sq/strings.xml | 18 - .../incallui/commontheme/res/values-sr/strings.xml | 18 - .../incallui/commontheme/res/values-sv/strings.xml | 18 - .../incallui/commontheme/res/values-sw/strings.xml | 18 - .../incallui/commontheme/res/values-ta/strings.xml | 18 - .../incallui/commontheme/res/values-te/strings.xml | 18 - .../incallui/commontheme/res/values-th/strings.xml | 18 - .../incallui/commontheme/res/values-tl/strings.xml | 18 - .../incallui/commontheme/res/values-tr/strings.xml | 18 - .../incallui/commontheme/res/values-uk/strings.xml | 18 - .../incallui/commontheme/res/values-ur/strings.xml | 18 - .../incallui/commontheme/res/values-uz/strings.xml | 18 - .../incallui/commontheme/res/values-vi/strings.xml | 18 - .../commontheme/res/values-zh-rCN/strings.xml | 18 - .../commontheme/res/values-zh-rHK/strings.xml | 18 - .../commontheme/res/values-zh-rTW/strings.xml | 18 - .../incallui/commontheme/res/values-zu/strings.xml | 18 - .../incallui/commontheme/res/values/strings.xml | 22 - .../android/incallui/contactgrid/BottomRow.java | 3 +- .../incallui/contactgrid/ContactGridManager.java | 50 +- java/com/android/incallui/contactgrid/TopRow.java | 52 +- .../incallui/contactgrid/res/values-af/strings.xml | 18 - .../incallui/contactgrid/res/values-am/strings.xml | 18 - .../incallui/contactgrid/res/values-ar/strings.xml | 18 - .../incallui/contactgrid/res/values-az/strings.xml | 18 - .../contactgrid/res/values-b+sr+Latn/strings.xml | 18 - .../incallui/contactgrid/res/values-be/strings.xml | 18 - .../incallui/contactgrid/res/values-bg/strings.xml | 18 - .../incallui/contactgrid/res/values-bn/strings.xml | 18 - .../incallui/contactgrid/res/values-bs/strings.xml | 18 - .../incallui/contactgrid/res/values-ca/strings.xml | 18 - .../incallui/contactgrid/res/values-cs/strings.xml | 18 - .../incallui/contactgrid/res/values-da/strings.xml | 18 - .../incallui/contactgrid/res/values-de/strings.xml | 18 - .../incallui/contactgrid/res/values-el/strings.xml | 18 - .../contactgrid/res/values-en-rAU/strings.xml | 18 - .../contactgrid/res/values-en-rGB/strings.xml | 18 - .../contactgrid/res/values-en-rIN/strings.xml | 18 - .../contactgrid/res/values-es-rUS/strings.xml | 18 - .../incallui/contactgrid/res/values-es/strings.xml | 18 - .../incallui/contactgrid/res/values-et/strings.xml | 18 - .../incallui/contactgrid/res/values-eu/strings.xml | 18 - .../incallui/contactgrid/res/values-fa/strings.xml | 18 - .../incallui/contactgrid/res/values-fi/strings.xml | 18 - .../contactgrid/res/values-fr-rCA/strings.xml | 18 - .../incallui/contactgrid/res/values-fr/strings.xml | 18 - .../incallui/contactgrid/res/values-gl/strings.xml | 18 - .../incallui/contactgrid/res/values-gu/strings.xml | 18 - .../incallui/contactgrid/res/values-hi/strings.xml | 18 - .../incallui/contactgrid/res/values-hr/strings.xml | 18 - .../incallui/contactgrid/res/values-hu/strings.xml | 18 - .../incallui/contactgrid/res/values-hy/strings.xml | 18 - .../incallui/contactgrid/res/values-in/strings.xml | 18 - .../incallui/contactgrid/res/values-is/strings.xml | 18 - .../incallui/contactgrid/res/values-it/strings.xml | 18 - .../incallui/contactgrid/res/values-iw/strings.xml | 18 - .../incallui/contactgrid/res/values-ja/strings.xml | 18 - .../incallui/contactgrid/res/values-ka/strings.xml | 18 - .../incallui/contactgrid/res/values-kk/strings.xml | 18 - .../incallui/contactgrid/res/values-km/strings.xml | 18 - .../incallui/contactgrid/res/values-kn/strings.xml | 18 - .../incallui/contactgrid/res/values-ko/strings.xml | 18 - .../incallui/contactgrid/res/values-ky/strings.xml | 18 - .../incallui/contactgrid/res/values-lo/strings.xml | 18 - .../incallui/contactgrid/res/values-lt/strings.xml | 18 - .../incallui/contactgrid/res/values-lv/strings.xml | 18 - .../incallui/contactgrid/res/values-mk/strings.xml | 18 - .../incallui/contactgrid/res/values-ml/strings.xml | 18 - .../incallui/contactgrid/res/values-mn/strings.xml | 18 - .../incallui/contactgrid/res/values-mr/strings.xml | 18 - .../incallui/contactgrid/res/values-ms/strings.xml | 18 - .../incallui/contactgrid/res/values-my/strings.xml | 18 - .../incallui/contactgrid/res/values-nb/strings.xml | 18 - .../incallui/contactgrid/res/values-ne/strings.xml | 18 - .../incallui/contactgrid/res/values-nl/strings.xml | 18 - .../incallui/contactgrid/res/values-no/strings.xml | 18 - .../incallui/contactgrid/res/values-pa/strings.xml | 18 - .../incallui/contactgrid/res/values-pl/strings.xml | 18 - .../contactgrid/res/values-pt-rBR/strings.xml | 18 - .../contactgrid/res/values-pt-rPT/strings.xml | 18 - .../incallui/contactgrid/res/values-pt/strings.xml | 18 - .../incallui/contactgrid/res/values-ro/strings.xml | 18 - .../incallui/contactgrid/res/values-ru/strings.xml | 18 - .../incallui/contactgrid/res/values-si/strings.xml | 18 - .../incallui/contactgrid/res/values-sk/strings.xml | 18 - .../incallui/contactgrid/res/values-sl/strings.xml | 18 - .../incallui/contactgrid/res/values-sq/strings.xml | 18 - .../incallui/contactgrid/res/values-sr/strings.xml | 18 - .../incallui/contactgrid/res/values-sv/strings.xml | 18 - .../incallui/contactgrid/res/values-sw/strings.xml | 18 - .../incallui/contactgrid/res/values-ta/strings.xml | 18 - .../incallui/contactgrid/res/values-te/strings.xml | 18 - .../incallui/contactgrid/res/values-th/strings.xml | 18 - .../incallui/contactgrid/res/values-tl/strings.xml | 18 - .../incallui/contactgrid/res/values-tr/strings.xml | 18 - .../incallui/contactgrid/res/values-uk/strings.xml | 18 - .../incallui/contactgrid/res/values-ur/strings.xml | 18 - .../incallui/contactgrid/res/values-uz/strings.xml | 18 - .../incallui/contactgrid/res/values-vi/strings.xml | 18 - .../contactgrid/res/values-zh-rCN/strings.xml | 18 - .../contactgrid/res/values-zh-rHK/strings.xml | 18 - .../contactgrid/res/values-zh-rTW/strings.xml | 18 - .../incallui/contactgrid/res/values-zu/strings.xml | 18 - .../incallui/contactgrid/res/values/strings.xml | 21 - .../incallui/incall/impl/ButtonChooserFactory.java | 15 +- .../incallui/incall/impl/ButtonController.java | 39 +- .../incallui/incall/impl/InCallFragment.java | 3 - .../incallui/incall/impl/InCallPagerAdapter.java | 4 +- .../incallui/incall/impl/res/values-af/strings.xml | 19 +- .../incallui/incall/impl/res/values-am/strings.xml | 19 +- .../incallui/incall/impl/res/values-ar/strings.xml | 19 +- .../incallui/incall/impl/res/values-az/strings.xml | 19 +- .../incall/impl/res/values-b+sr+Latn/strings.xml | 19 +- .../incallui/incall/impl/res/values-be/strings.xml | 19 +- .../incallui/incall/impl/res/values-bg/strings.xml | 19 +- .../incallui/incall/impl/res/values-bn/strings.xml | 19 +- .../incallui/incall/impl/res/values-bs/strings.xml | 19 +- .../incallui/incall/impl/res/values-ca/strings.xml | 19 +- .../incallui/incall/impl/res/values-cs/strings.xml | 19 +- .../incallui/incall/impl/res/values-da/strings.xml | 19 +- .../incallui/incall/impl/res/values-de/strings.xml | 19 +- .../incallui/incall/impl/res/values-el/strings.xml | 19 +- .../incall/impl/res/values-en-rAU/strings.xml | 19 +- .../incall/impl/res/values-en-rGB/strings.xml | 19 +- .../incall/impl/res/values-en-rIN/strings.xml | 19 +- .../incall/impl/res/values-es-rUS/strings.xml | 19 +- .../incallui/incall/impl/res/values-es/strings.xml | 19 +- .../incallui/incall/impl/res/values-et/strings.xml | 19 +- .../incallui/incall/impl/res/values-eu/strings.xml | 19 +- .../incallui/incall/impl/res/values-fa/strings.xml | 19 +- .../incallui/incall/impl/res/values-fi/strings.xml | 19 +- .../incall/impl/res/values-fr-rCA/strings.xml | 19 +- .../incallui/incall/impl/res/values-fr/strings.xml | 19 +- .../incallui/incall/impl/res/values-gl/strings.xml | 19 +- .../incallui/incall/impl/res/values-gu/strings.xml | 19 +- .../incall/impl/res/values-h580dp/dimens.xml | 4 + .../incall/impl/res/values-h580dp/styles.xml | 24 + .../incall/impl/res/values-h600dp/dimens.xml | 20 - .../incall/impl/res/values-h650dp/styles.xml | 24 - .../incallui/incall/impl/res/values-hi/strings.xml | 19 +- .../incallui/incall/impl/res/values-hr/strings.xml | 19 +- .../incallui/incall/impl/res/values-hu/strings.xml | 19 +- .../incallui/incall/impl/res/values-hy/strings.xml | 19 +- .../incallui/incall/impl/res/values-in/strings.xml | 19 +- .../incallui/incall/impl/res/values-is/strings.xml | 19 +- .../incallui/incall/impl/res/values-it/strings.xml | 19 +- .../incallui/incall/impl/res/values-iw/strings.xml | 19 +- .../incallui/incall/impl/res/values-ja/strings.xml | 19 +- .../incallui/incall/impl/res/values-ka/strings.xml | 19 +- .../incallui/incall/impl/res/values-kk/strings.xml | 19 +- .../incallui/incall/impl/res/values-km/strings.xml | 19 +- .../incallui/incall/impl/res/values-kn/strings.xml | 19 +- .../incallui/incall/impl/res/values-ko/strings.xml | 19 +- .../incallui/incall/impl/res/values-ky/strings.xml | 19 +- .../incallui/incall/impl/res/values-lo/strings.xml | 19 +- .../incallui/incall/impl/res/values-lt/strings.xml | 19 +- .../incallui/incall/impl/res/values-lv/strings.xml | 19 +- .../incallui/incall/impl/res/values-mk/strings.xml | 19 +- .../incallui/incall/impl/res/values-ml/strings.xml | 19 +- .../incallui/incall/impl/res/values-mn/strings.xml | 19 +- .../incallui/incall/impl/res/values-mr/strings.xml | 19 +- .../incallui/incall/impl/res/values-ms/strings.xml | 19 +- .../incallui/incall/impl/res/values-my/strings.xml | 19 +- .../incallui/incall/impl/res/values-nb/strings.xml | 19 +- .../incallui/incall/impl/res/values-ne/strings.xml | 19 +- .../incallui/incall/impl/res/values-nl/strings.xml | 19 +- .../incallui/incall/impl/res/values-no/strings.xml | 19 +- .../incallui/incall/impl/res/values-pa/strings.xml | 19 +- .../incallui/incall/impl/res/values-pl/strings.xml | 19 +- .../incall/impl/res/values-pt-rBR/strings.xml | 19 +- .../incall/impl/res/values-pt-rPT/strings.xml | 19 +- .../incallui/incall/impl/res/values-pt/strings.xml | 19 +- .../incallui/incall/impl/res/values-ro/strings.xml | 19 +- .../incallui/incall/impl/res/values-ru/strings.xml | 19 +- .../incallui/incall/impl/res/values-si/strings.xml | 19 +- .../incallui/incall/impl/res/values-sk/strings.xml | 19 +- .../incallui/incall/impl/res/values-sl/strings.xml | 19 +- .../incallui/incall/impl/res/values-sq/strings.xml | 19 +- .../incallui/incall/impl/res/values-sr/strings.xml | 19 +- .../incallui/incall/impl/res/values-sv/strings.xml | 19 +- .../incallui/incall/impl/res/values-sw/strings.xml | 19 +- .../incallui/incall/impl/res/values-ta/strings.xml | 19 +- .../incallui/incall/impl/res/values-te/strings.xml | 19 +- .../incallui/incall/impl/res/values-th/strings.xml | 19 +- .../incallui/incall/impl/res/values-tl/strings.xml | 19 +- .../incallui/incall/impl/res/values-tr/strings.xml | 19 +- .../incallui/incall/impl/res/values-uk/strings.xml | 19 +- .../incallui/incall/impl/res/values-ur/strings.xml | 19 +- .../incallui/incall/impl/res/values-uz/strings.xml | 21 +- .../incallui/incall/impl/res/values-vi/strings.xml | 19 +- .../impl/res/values-w260dp-h520dp/dimens.xml | 7 + .../impl/res/values-w260dp-h580dp/dimens.xml | 23 - .../impl/res/values-w300dp-h540dp/dimens.xml | 5 + .../impl/res/values-w300dp-h620dp/dimens.xml | 21 - .../incall/impl/res/values-zh-rCN/strings.xml | 19 +- .../incall/impl/res/values-zh-rHK/strings.xml | 19 +- .../incall/impl/res/values-zh-rTW/strings.xml | 19 +- .../incallui/incall/impl/res/values-zu/strings.xml | 19 +- .../incallui/incall/impl/res/values/strings.xml | 28 +- .../incallui/incall/protocol/PrimaryCallState.java | 8 +- .../incallui/res/drawable-hdpi/img_conference.png | Bin 0 -> 7037 bytes .../incallui/res/drawable-mdpi/img_conference.png | Bin 0 -> 4629 bytes .../incallui/res/drawable-xhdpi/img_conference.png | Bin 0 -> 9517 bytes .../res/drawable-xxhdpi/img_conference.png | Bin 0 -> 16306 bytes .../res/drawable-xxxhdpi/img_conference.png | Bin 0 -> 19584 bytes .../res/drawable/img_conference_automirrored.xml | 21 + .../com/android/incallui/res/values-ca/strings.xml | 2 +- .../incallui/res/values-mcc262-mnc01/strings.xml | 32 - .../com/android/incallui/res/values-uz/strings.xml | 2 +- java/com/android/incallui/res/values/dimens.xml | 2 +- java/com/android/incallui/res/values/styles.xml | 9 - .../res/layout/fragment_composer_image.xml | 6 +- .../speakerbuttonlogic/AndroidManifest.xml | 18 - .../speakerbuttonlogic/SpeakerButtonInfo.java | 91 --- .../video/impl/SpeakerButtonController.java | 2 +- .../video/impl/SurfaceViewVideoCallFragment.java | 11 +- .../incallui/video/impl/VideoCallFragment.java | 16 +- .../impl/res/layout/frag_videocall_surfaceview.xml | 33 +- .../video/impl/res/values-h580dp/dimens.xml | 2 +- .../incallui/video/impl/res/values-land/dimens.xml | 2 +- .../incallui/video/impl/res/values-land/styles.xml | 3 +- .../video/impl/res/values-w460dp/dimens.xml | 2 +- .../incallui/video/impl/res/values/dimens.xml | 2 +- .../incallui/video/impl/res/values/styles.xml | 3 +- .../incallui/videotech/ims/ImsVideoTech.java | 4 +- .../videotech/lightbringer/LightbringerTech.java | 6 +- java/com/android/voicemail/AndroidManifest.xml | 36 -- .../com/android/voicemail/impl/AndroidManifest.xml | 5 - java/com/android/voicemail/impl/OmtpReceiver.java | 105 ++++ .../voicemail/impl/TelephonyManagerStub.java | 40 ++ .../voicemail/impl/VvmPackageInstallReceiver.java | 80 +++ .../v1/VoicemailTranscriptionServiceGrpc.java | 254 -------- .../impl/fetch/VoicemailFetchedCallback.java | 18 +- .../android/voicemail/impl/mail/MailTransport.java | 3 - .../impl/scheduling/TaskSchedulerService.java | 400 ++++++++++++ .../transcribe/TranscriptionConfigProvider.java | 62 -- .../impl/transcribe/TranscriptionDbHelper.java | 105 ---- .../impl/transcribe/TranscriptionService.java | 203 ------- .../impl/transcribe/TranscriptionTask.java | 191 ------ .../voicemail/impl/transcribe/VoicemailCompat.java | 59 -- .../impl/transcribe/grpc/TranscriptionClient.java | 61 -- .../grpc/TranscriptionClientFactory.java | 194 ------ .../transcribe/grpc/voicemail_transcription.proto | 44 -- java/com/android/voicemail/permissions.xml | 21 + 1184 files changed, 6192 insertions(+), 17267 deletions(-) create mode 100644 java/com/android/contacts/common/GeoUtil.java create mode 100644 java/com/android/contacts/common/format/FormatUtils.java create mode 100644 java/com/android/contacts/common/format/testing/SpannedTestUtils.java create mode 100644 java/com/android/contacts/common/location/CountryDetector.java create mode 100644 java/com/android/contacts/common/location/UpdateCountryService.java create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png create mode 100644 java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png create mode 100644 java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png create mode 100644 java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png create mode 100644 java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png create mode 100644 java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png create mode 100644 java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png create mode 100644 java/com/android/contacts/common/res/drawable/ic_back_arrow.xml create mode 100644 java/com/android/contacts/common/res/drawable/ic_call_and_share.xml create mode 100644 java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml create mode 100644 java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml create mode 100644 java/com/android/contacts/common/res/drawable/ic_search_video_call.xml create mode 100644 java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml create mode 100644 java/com/android/contacts/common/util/NameConverter.java create mode 100644 java/com/android/contacts/common/util/TrafficStatsTags.java create mode 100644 java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java delete mode 100644 java/com/android/dialer/app/list/DialerViewPager.java create mode 100644 java/com/android/dialer/app/res/drawable-hdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_48dp.png delete mode 100644 java/com/android/dialer/app/res/drawable-hdpi/ic_check_mark_blue_24dp.png delete mode 100644 java/com/android/dialer/app/res/drawable-hdpi/ic_empty_check_mark_white_24dp.png create mode 100644 java/com/android/dialer/app/res/drawable-hdpi/ic_results_phone.png create mode 100644 java/com/android/dialer/app/res/drawable-mdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/app/res/drawable-mdpi/ic_check_mark_48dp.png create mode 100644 java/com/android/dialer/app/res/drawable-mdpi/ic_results_phone.png create mode 100644 java/com/android/dialer/app/res/drawable-xhdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/app/res/drawable-xhdpi/ic_check_mark_48dp.png create mode 100644 java/com/android/dialer/app/res/drawable-xhdpi/ic_results_phone.png create mode 100644 java/com/android/dialer/app/res/drawable-xxhdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/app/res/drawable-xxhdpi/ic_check_mark_48dp.png create mode 100644 java/com/android/dialer/app/res/drawable-xxhdpi/ic_results_phone.png create mode 100644 java/com/android/dialer/app/res/drawable-xxxhdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/app/res/drawable-xxxhdpi/ic_check_mark_48dp.png create mode 100644 java/com/android/dialer/app/res/drawable-xxxhdpi/ic_results_phone.png create mode 100644 java/com/android/dialer/app/res/drawable/ic_search_phone.xml delete mode 100644 java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml delete mode 100644 java/com/android/dialer/app/res/layout/action_mode_close_button.xml create mode 100644 java/com/android/dialer/app/res/layout/empty_content_view.xml create mode 100644 java/com/android/dialer/app/widget/EmptyContentView.java create mode 100644 java/com/android/dialer/callcomposer/proto/call_composer_contact.proto delete mode 100644 java/com/android/dialer/callintent/speed_dial_contact_type.proto create mode 100644 java/com/android/dialer/calllog/DataSources.java delete mode 100644 java/com/android/dialer/calllog/database/AndroidManifest.xml create mode 100644 java/com/android/dialer/calllog/database/AnnotatedCallLog.java delete mode 100644 java/com/android/dialer/calllog/database/AnnotatedCallLogContentProvider.java delete mode 100644 java/com/android/dialer/calllog/database/CallLogDatabaseComponent.java create mode 100644 java/com/android/dialer/calllog/database/CallLogMutations.java delete mode 100644 java/com/android/dialer/calllog/database/Coalescer.java delete mode 100644 java/com/android/dialer/calllog/database/MutationApplier.java delete mode 100644 java/com/android/dialer/calllog/database/contract/AnnotatedCallLogContract.java delete mode 100644 java/com/android/dialer/calllog/datasources/CallLogMutations.java delete mode 100644 java/com/android/dialer/calllog/datasources/DataSources.java delete mode 100644 java/com/android/dialer/calllog/datasources/util/RowCombiner.java delete mode 100644 java/com/android/dialer/calllog/testing/FakeCallLogApplication.java create mode 100644 java/com/android/dialer/calllog/ui/AnnotatedCallLogCursorLoader.java delete mode 100644 java/com/android/dialer/calllog/ui/NewCallLogAdapter.java delete mode 100644 java/com/android/dialer/calllog/ui/NewCallLogViewHolder.java delete mode 100644 java/com/android/dialer/common/concurrent/DialerExecutorComponent.java delete mode 100644 java/com/android/dialer/common/concurrent/DialerExecutorModule.java delete mode 100644 java/com/android/dialer/constants/TrafficStatsTags.java delete mode 100644 java/com/android/dialer/contactactions/AndroidManifest.xml delete mode 100644 java/com/android/dialer/contactactions/ContactActionBottomSheet.java delete mode 100644 java/com/android/dialer/contactactions/ContactActionModule.java delete mode 100644 java/com/android/dialer/contactactions/DividerModule.java delete mode 100644 java/com/android/dialer/contactactions/IntentModule.java delete mode 100644 java/com/android/dialer/contactactions/res/layout/contact_layout.xml delete mode 100644 java/com/android/dialer/contactactions/res/layout/divider_layout.xml delete mode 100644 java/com/android/dialer/contactactions/res/layout/module_layout.xml delete mode 100644 java/com/android/dialer/contactactions/res/layout/sheet_layout.xml delete mode 100644 java/com/android/dialer/contactactions/res/values/dimens.xml delete mode 100644 java/com/android/dialer/contactsfragment/FastScroller.java delete mode 100644 java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_container_background.xml delete mode 100644 java/com/android/dialer/contactsfragment/res/drawable/fast_scroller_scroll_bar.xml delete mode 100644 java/com/android/dialer/dialercontact/dialer_contact.proto delete mode 100644 java/com/android/dialer/searchfragment/AndroidManifest.xml delete mode 100644 java/com/android/dialer/searchfragment/NewSearchFragment.java delete mode 100644 java/com/android/dialer/searchfragment/QueryUtil.java delete mode 100644 java/com/android/dialer/searchfragment/README.md delete mode 100644 java/com/android/dialer/searchfragment/SearchAdapter.java delete mode 100644 java/com/android/dialer/searchfragment/SearchContactCursor.java delete mode 100644 java/com/android/dialer/searchfragment/SearchContactViewHolder.java delete mode 100644 java/com/android/dialer/searchfragment/SearchContactsCursorLoader.java delete mode 100644 java/com/android/dialer/searchfragment/SearchCursorManager.java delete mode 100644 java/com/android/dialer/searchfragment/res/layout/fragment_search.xml delete mode 100644 java/com/android/dialer/searchfragment/res/layout/search_contact_row.xml delete mode 100644 java/com/android/dialer/searchfragment/res/values/dimens.xml delete mode 100644 java/com/android/dialer/widget/EmptyContentView.java delete mode 100644 java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png delete mode 100644 java/com/android/dialer/widget/res/layout/empty_content_view.xml delete mode 100644 java/com/android/dialer/widget/res/values/colors.xml delete mode 100644 java/com/android/dialershared/bubble/AndroidManifest.xml delete mode 100644 java/com/android/dialershared/bubble/Bubble.java delete mode 100644 java/com/android/dialershared/bubble/BubbleInfo.java delete mode 100644 java/com/android/dialershared/bubble/ChangeOnScreenBounds.java delete mode 100644 java/com/android/dialershared/bubble/CheckableImageButton.java delete mode 100644 java/com/android/dialershared/bubble/MoveHandler.java delete mode 100644 java/com/android/dialershared/bubble/WindowRoot.java delete mode 100644 java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml delete mode 100644 java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml delete mode 100644 java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml delete mode 100644 java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml delete mode 100644 java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml delete mode 100644 java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml delete mode 100644 java/com/android/dialershared/bubble/res/layout/bubble_base.xml delete mode 100644 java/com/android/dialershared/bubble/res/values/colors.xml delete mode 100644 java/com/android/dialershared/bubble/res/values/values.xml delete mode 100644 java/com/android/incallui/AudioRouteSelectorActivity.java delete mode 100644 java/com/android/incallui/ReturnToCallActionReceiver.java delete mode 100644 java/com/android/incallui/ReturnToCallController.java create mode 100644 java/com/android/incallui/answer/impl/PillDrawable.java create mode 100644 java/com/android/incallui/calllocation/impl/TrafficStatsTags.java create mode 100644 java/com/android/incallui/commontheme/res/anim/blinking.xml create mode 100644 java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png create mode 100644 java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png create mode 100644 java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png create mode 100644 java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png create mode 100644 java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png create mode 100644 java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml create mode 100644 java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml delete mode 100644 java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml delete mode 100644 java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml create mode 100644 java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml delete mode 100644 java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml create mode 100644 java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml delete mode 100644 java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml create mode 100644 java/com/android/incallui/res/drawable-hdpi/img_conference.png create mode 100644 java/com/android/incallui/res/drawable-mdpi/img_conference.png create mode 100644 java/com/android/incallui/res/drawable-xhdpi/img_conference.png create mode 100644 java/com/android/incallui/res/drawable-xxhdpi/img_conference.png create mode 100644 java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png create mode 100644 java/com/android/incallui/res/drawable/img_conference_automirrored.xml delete mode 100644 java/com/android/incallui/res/values-mcc262-mnc01/strings.xml delete mode 100644 java/com/android/incallui/speakerbuttonlogic/AndroidManifest.xml delete mode 100644 java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java delete mode 100644 java/com/android/voicemail/AndroidManifest.xml create mode 100644 java/com/android/voicemail/impl/OmtpReceiver.java create mode 100644 java/com/android/voicemail/impl/TelephonyManagerStub.java create mode 100644 java/com/android/voicemail/impl/VvmPackageInstallReceiver.java delete mode 100644 java/com/android/voicemail/impl/com/google/internal/communications/voicemailtranscription/v1/VoicemailTranscriptionServiceGrpc.java create mode 100644 java/com/android/voicemail/impl/scheduling/TaskSchedulerService.java delete mode 100644 java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java delete mode 100644 java/com/android/voicemail/impl/transcribe/TranscriptionDbHelper.java delete mode 100644 java/com/android/voicemail/impl/transcribe/TranscriptionService.java delete mode 100644 java/com/android/voicemail/impl/transcribe/TranscriptionTask.java delete mode 100644 java/com/android/voicemail/impl/transcribe/VoicemailCompat.java delete mode 100644 java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClient.java delete mode 100644 java/com/android/voicemail/impl/transcribe/grpc/TranscriptionClientFactory.java delete mode 100644 java/com/android/voicemail/impl/transcribe/grpc/voicemail_transcription.proto create mode 100644 java/com/android/voicemail/permissions.xml (limited to 'java/com/android') diff --git a/java/com/android/contacts/common/ClipboardUtils.java b/java/com/android/contacts/common/ClipboardUtils.java index 3d7683941..9345b0f9c 100644 --- a/java/com/android/contacts/common/ClipboardUtils.java +++ b/java/com/android/contacts/common/ClipboardUtils.java @@ -24,6 +24,8 @@ 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 3e1a78f63..169348b25 100644 --- a/java/com/android/contacts/common/ContactPhotoManager.java +++ b/java/com/android/contacts/common/ContactPhotoManager.java @@ -36,6 +36,14 @@ 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; @@ -80,7 +88,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { if (!TextUtils.isEmpty(request.identifier)) { builder.appendQueryParameter(IDENTIFIER_PARAM_KEY, request.identifier); } - if (request.contactType != LetterTileDrawable.TYPE_DEFAULT) { + if (request.contactType != TYPE_DEFAULT) { builder.appendQueryParameter(CONTACT_TYPE_PARAM_KEY, String.valueOf(request.contactType)); } if (request.scale != SCALE_DEFAULT) { @@ -106,7 +114,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { public static String appendBusinessContactType(String photoUrl) { Uri uri = Uri.parse(photoUrl); Builder builder = uri.buildUpon(); - builder.encodedFragment(String.valueOf(LetterTileDrawable.TYPE_BUSINESS)); + builder.encodedFragment(String.valueOf(TYPE_BUSINESS)); return builder.build().toString(); } @@ -139,7 +147,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { String encodedFragment = photoUri.getEncodedFragment(); return !TextUtils.isEmpty(encodedFragment) - && encodedFragment.equals(String.valueOf(LetterTileDrawable.TYPE_BUSINESS)); + && encodedFragment.equals(String.valueOf(TYPE_BUSINESS)); } protected static DefaultImageRequest getDefaultImageRequestFromUri(Uri uri) { @@ -370,7 +378,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { * be returned. */ public static final DefaultImageRequest EMPTY_DEFAULT_BUSINESS_IMAGE_REQUEST = - new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, false); + new DefaultImageRequest(null, null, TYPE_BUSINESS, false); /** * Used to indicate that a circular drawable that represents a contact without any contact * details should be returned. @@ -382,7 +390,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { * should be returned. */ public static final DefaultImageRequest EMPTY_CIRCULAR_BUSINESS_IMAGE_REQUEST = - new DefaultImageRequest(null, null, LetterTileDrawable.TYPE_BUSINESS, true); + new DefaultImageRequest(null, null, TYPE_BUSINESS, true); /** The contact's display name. The display name is used to */ public String displayName; /** @@ -395,9 +403,10 @@ 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. + * identifier. See: {@link #TYPE_PERSON} {@link #TYPE_BUSINESS} {@link #TYPE_PERSON} {@link + * #TYPE_DEFAULT} */ - public @LetterTileDrawable.ContactType int contactType = LetterTileDrawable.TYPE_DEFAULT; + public int contactType = TYPE_DEFAULT; /** * The amount to scale the letter or bitmap to, as a ratio of its default size (from a range of * 0.0f to 2.0f). The default value is 1.0f. @@ -420,13 +429,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 { public DefaultImageRequest() {} public DefaultImageRequest(String displayName, String identifier, boolean isCircular) { - this( - displayName, - identifier, - LetterTileDrawable.TYPE_DEFAULT, - SCALE_DEFAULT, - OFFSET_DEFAULT, - isCircular); + this(displayName, identifier, TYPE_DEFAULT, SCALE_DEFAULT, OFFSET_DEFAULT, isCircular); } public DefaultImageRequest( diff --git a/java/com/android/contacts/common/ContactPhotoManagerImpl.java b/java/com/android/contacts/common/ContactPhotoManagerImpl.java index 28ecf3421..2e6ff9fdc 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,9 +634,8 @@ 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 c5347e778..97d84c876 100644 --- a/java/com/android/contacts/common/ContactStatusUtil.java +++ b/java/com/android/contacts/common/ContactStatusUtil.java @@ -23,6 +23,8 @@ 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 66ccc90e7..60af44b9a 100644 --- a/java/com/android/contacts/common/ContactsUtils.java +++ b/java/com/android/contacts/common/ContactsUtils.java @@ -16,17 +16,184 @@ package com.android.contacts.common; -import android.provider.ContactsContract.Contacts; +import android.content.Context; +import android.content.Intent; +import android.database.Cursor; +import android.net.Uri; +import android.provider.ContactsContract.CommonDataKinds.Im; +import android.provider.ContactsContract.DisplayPhoto; import android.support.annotation.IntDef; +import android.text.TextUtils; +import android.util.Pair; +import com.android.contacts.common.compat.ContactsCompat; import com.android.contacts.common.compat.DirectoryCompat; +import com.android.contacts.common.model.AccountTypeManager; +import com.android.contacts.common.model.account.AccountWithDataSet; +import com.android.contacts.common.model.dataitem.ImDataItem; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.List; public class ContactsUtils { // Telecomm related schemes are in CallUtil + public static final String SCHEME_IMTO = "imto"; + public static final String SCHEME_MAILTO = "mailto"; + public static final String SCHEME_SMSTO = "smsto"; public static final long USER_TYPE_CURRENT = 0; public static final long USER_TYPE_WORK = 1; + private static final String TAG = "ContactsUtils"; + private static final int DEFAULT_THUMBNAIL_SIZE = 96; + private static int sThumbnailSize = -1; + + /** + * This looks up the provider name defined in ProviderNames from the predefined IM protocol id. + * This is used for interacting with the IM application. + * + * @param protocol the protocol ID + * @return the provider name the IM app uses for the given protocol, or null if no provider is + * defined for the given protocol + * @hide + */ + public static String lookupProviderNameFromId(int protocol) { + switch (protocol) { + case Im.PROTOCOL_GOOGLE_TALK: + return ProviderNames.GTALK; + case Im.PROTOCOL_AIM: + return ProviderNames.AIM; + case Im.PROTOCOL_MSN: + return ProviderNames.MSN; + case Im.PROTOCOL_YAHOO: + return ProviderNames.YAHOO; + case Im.PROTOCOL_ICQ: + return ProviderNames.ICQ; + case Im.PROTOCOL_JABBER: + return ProviderNames.JABBER; + case Im.PROTOCOL_SKYPE: + return ProviderNames.SKYPE; + case Im.PROTOCOL_QQ: + return ProviderNames.QQ; + } + return null; + } + + /** + * Test if the given {@link CharSequence} contains any graphic characters, first checking {@link + * TextUtils#isEmpty(CharSequence)} to handle null. + */ + public static boolean isGraphic(CharSequence str) { + return !TextUtils.isEmpty(str) && TextUtils.isGraphic(str); + } + + /** Returns true if two objects are considered equal. Two null references are equal here. */ + public static boolean areObjectsEqual(Object a, Object b) { + return a == b || (a != null && a.equals(b)); + } + + /** Returns true if two {@link Intent}s are both null, or have the same action. */ + public static final boolean areIntentActionEqual(Intent a, Intent b) { + if (a == b) { + return true; + } + if (a == null || b == null) { + return false; + } + return TextUtils.equals(a.getAction(), b.getAction()); + } + + public static boolean areGroupWritableAccountsAvailable(Context context) { + final List 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 buildImIntent(Context context, ImDataItem im) { + Intent intent = null; + Intent secondaryIntent = null; + final boolean isEmail = im.isCreatedFromEmail(); + + if (!isEmail && !im.isProtocolValid()) { + return new Pair<>(null, null); + } + + final String data = im.getData(); + if (TextUtils.isEmpty(data)) { + return new Pair<>(null, null); + } + + final int protocol = isEmail ? Im.PROTOCOL_GOOGLE_TALK : im.getProtocol(); + + if (protocol == Im.PROTOCOL_GOOGLE_TALK) { + final int chatCapability = im.getChatCapability(); + if ((chatCapability & Im.CAPABILITY_HAS_CAMERA) != 0) { + intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); + secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call")); + } else if ((chatCapability & Im.CAPABILITY_HAS_VOICE) != 0) { + // Allow Talking and Texting + intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); + secondaryIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?call")); + } else { + intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("xmpp:" + data + "?message")); + } + } else { + // Build an IM Intent + intent = getCustomImIntent(im, protocol); + } + return new Pair<>(intent, secondaryIntent); + } /** * Determine UserType from directory id and contact id. @@ -65,13 +232,27 @@ public class ContactsUtils { : USER_TYPE_CURRENT; } // Only check contact id if directory id is null - if (contactId != null && contactId != 0L && Contacts.isEnterpriseContactId(contactId)) { + if (contactId != null && contactId != 0L && ContactsCompat.isEnterpriseContactId(contactId)) { return USER_TYPE_WORK; } else { return USER_TYPE_CURRENT; } } + // TODO find a proper place for the canonical version of these + public interface ProviderNames { + + String YAHOO = "Yahoo"; + String GTALK = "GTalk"; + String MSN = "MSN"; + String ICQ = "ICQ"; + String AIM = "AIM"; + String XMPP = "XMPP"; + String JABBER = "JABBER"; + String SKYPE = "SKYPE"; + String QQ = "QQ"; + } + /** * UserType indicates the user type of the contact. If the contact is from Work User (Work Profile * in Android Multi-User System), it's {@link #USER_TYPE_WORK}, otherwise, {@link diff --git a/java/com/android/contacts/common/GeoUtil.java b/java/com/android/contacts/common/GeoUtil.java new file mode 100644 index 000000000..50b0cd9e3 --- /dev/null +++ b/java/com/android/contacts/common/GeoUtil.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.contacts.common; + +import android.app.Application; +import android.content.Context; +import com.android.contacts.common.location.CountryDetector; +import com.google.i18n.phonenumbers.NumberParseException; +import com.google.i18n.phonenumbers.PhoneNumberUtil; +import com.google.i18n.phonenumbers.Phonenumber; +import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder; +import java.util.Locale; + +/** Static methods related to Geo. */ +public class GeoUtil { + + /** + * Returns the country code of the country the user is currently in. Before calling this method, + * make sure that {@link CountryDetector#initialize(Context)} has already been called in {@link + * Application#onCreate()}. + * + * @return The ISO 3166-1 two letters country code of the country the user is in. + */ + public static String getCurrentCountryIso(Context context) { + // The {@link CountryDetector} should never return null so this is safe to return as-is. + return CountryDetector.getInstance(context).getCurrentCountryIso(); + } + + public static String getGeocodedLocationFor(Context context, String phoneNumber) { + final PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance(); + final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); + try { + final Phonenumber.PhoneNumber structuredPhoneNumber = + phoneNumberUtil.parse(phoneNumber, getCurrentCountryIso(context)); + final Locale locale = context.getResources().getConfiguration().locale; + return geocoder.getDescriptionForNumber(structuredPhoneNumber, locale); + } catch (NumberParseException e) { + return null; + } + } +} diff --git a/java/com/android/contacts/common/MoreContactUtils.java b/java/com/android/contacts/common/MoreContactUtils.java index 26241b34f..028f89971 100644 --- a/java/com/android/contacts/common/MoreContactUtils.java +++ b/java/com/android/contacts/common/MoreContactUtils.java @@ -16,6 +16,7 @@ package com.android.contacts.common; +import android.content.Context; import android.content.Intent; import android.graphics.Rect; import android.net.Uri; @@ -23,6 +24,7 @@ import android.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; @@ -191,6 +193,40 @@ public class MoreContactUtils { return rect; } + /** + * 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 diff --git a/java/com/android/contacts/common/compat/ContactsCompat.java b/java/com/android/contacts/common/compat/ContactsCompat.java index e0c9b7e53..39d0b55d3 100644 --- a/java/com/android/contacts/common/compat/ContactsCompat.java +++ b/java/com/android/contacts/common/compat/ContactsCompat.java @@ -21,6 +21,7 @@ import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.provider.ContactsContract; import android.provider.ContactsContract.Contacts; +import com.android.dialer.compat.CompatUtils; /** Compatibility class for {@link ContactsContract.Contacts} */ public class ContactsCompat { @@ -28,6 +29,8 @@ 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() {} @@ -38,4 +41,17 @@ 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 aa22c6861..6a24ec033 100644 --- a/java/com/android/contacts/common/compat/PhoneAccountCompat.java +++ b/java/com/android/contacts/common/compat/PhoneAccountCompat.java @@ -20,10 +20,33 @@ import android.graphics.drawable.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. @@ -38,16 +61,44 @@ public class PhoneAccountCompat { if (phoneAccount == null || context == null) { return null; } - return createIconDrawableMarshmallow(phoneAccount, context); + + if (CompatUtils.isMarshmallowCompatible()) { + return createIconDrawableMarshmallow(phoneAccount, context); + } + + if (CompatUtils.isLollipopMr1Compatible()) { + return createIconDrawableLollipopMr1(phoneAccount, context); + } + return null; } @Nullable private static Drawable createIconDrawableMarshmallow( PhoneAccount phoneAccount, Context context) { - Icon accountIcon = phoneAccount.getIcon(); + Icon accountIcon = getIcon(phoneAccount); if (accountIcon == null) { return null; } return accountIcon.loadDrawable(context); } + + @Nullable + private static Drawable createIconDrawableLollipopMr1( + PhoneAccount phoneAccount, Context context) { + try { + return (Drawable) + PhoneAccount.class + .getMethod("createIconDrawable", Context.class) + .invoke(phoneAccount, context); + } catch (ReflectiveOperationException e) { + return null; + } catch (Throwable t) { + Log.e( + TAG, + "Unexpected exception when attempting to call " + + "android.telecom.PhoneAccount#createIconDrawable", + t); + return null; + } + } } diff --git a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java index a6cfe07cd..960b340d8 100644 --- a/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java +++ b/java/com/android/contacts/common/compat/PhoneNumberUtilsCompat.java @@ -17,7 +17,13 @@ package com.android.contacts.common.compat; import android.telephony.PhoneNumberUtils; +import android.text.Spannable; +import android.text.TextUtils; import android.text.style.TtsSpan; +import com.android.dialer.compat.CompatUtils; +import com.google.i18n.phonenumbers.NumberParseException; +import com.google.i18n.phonenumbers.PhoneNumberUtil; +import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; /** * This class contains static utility methods extracted from PhoneNumberUtils, and the methods were @@ -31,16 +37,138 @@ 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) { - return PhoneNumberUtils.createTtsSpannable(phoneNumber); + if (CompatUtils.isMarshmallowCompatible()) { + return PhoneNumberUtils.createTtsSpannable(phoneNumber); + } else { + return createTtsSpannableInternal(phoneNumber); + } } public static TtsSpan createTtsSpan(String phoneNumber) { - return PhoneNumberUtils.createTtsSpan(phoneNumber); + if (CompatUtils.isMarshmallowCompatible()) { + return PhoneNumberUtils.createTtsSpan(phoneNumber); + } else if (CompatUtils.isLollipopCompatible()) { + return createTtsSpanLollipop(phoneNumber); + } else { + return null; + } + } + + /** Copied from {@link PhoneNumberUtils#createTtsSpannable} */ + private static CharSequence createTtsSpannableInternal(CharSequence phoneNumber) { + if (phoneNumber == null) { + return null; + } + Spannable spannable = Spannable.Factory.getInstance().newSpannable(phoneNumber); + addTtsSpanInternal(spannable, 0, spannable.length()); + return spannable; + } + + /** Compat method for addTtsSpan, see {@link PhoneNumberUtils#addTtsSpan} */ + public static void addTtsSpan(Spannable s, int start, int endExclusive) { + if (CompatUtils.isMarshmallowCompatible()) { + PhoneNumberUtils.addTtsSpan(s, start, endExclusive); + } else { + addTtsSpanInternal(s, start, endExclusive); + } + } + + /** Copied from {@link PhoneNumberUtils#addTtsSpan} */ + private static void addTtsSpanInternal(Spannable s, int start, int endExclusive) { + s.setSpan( + createTtsSpan(s.subSequence(start, endExclusive).toString()), + start, + endExclusive, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + } + + /** Copied from {@link PhoneNumberUtils#createTtsSpan} */ + private static TtsSpan createTtsSpanLollipop(String phoneNumberString) { + if (phoneNumberString == null) { + return null; + } + + // Parse the phone number + final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance(); + PhoneNumber phoneNumber = null; + try { + // Don't supply a defaultRegion so this fails for non-international numbers because + // we don't want to TalkBalk to read a country code (e.g. +1) if it is not already + // present + phoneNumber = phoneNumberUtil.parse(phoneNumberString, /* defaultRegion */ null); + } catch (NumberParseException ignored) { + } + + // Build a telephone tts span + final TtsSpan.TelephoneBuilder builder = new TtsSpan.TelephoneBuilder(); + if (phoneNumber == null) { + // Strip separators otherwise TalkBack will be silent + // (this behavior was observed with TalkBalk 4.0.2 from their alpha channel) + builder.setNumberParts(splitAtNonNumerics(phoneNumberString)); + } else { + if (phoneNumber.hasCountryCode()) { + builder.setCountryCode(Integer.toString(phoneNumber.getCountryCode())); + } + builder.setNumberParts(Long.toString(phoneNumber.getNationalNumber())); + } + return builder.build(); + } + + /** + * Split a phone number using spaces, ignoring anything that is not a digit + * + * @param number A {@code CharSequence} before splitting, e.g., "+20(123)-456#" + * @return A {@code String} after splitting, e.g., "20 123 456". + */ + private static String splitAtNonNumerics(CharSequence number) { + StringBuilder sb = new StringBuilder(number.length()); + for (int i = 0; i < number.length(); i++) { + sb.append(PhoneNumberUtils.isISODigit(number.charAt(i)) ? number.charAt(i) : " "); + } + // It is very important to remove extra spaces. At time of writing, any leading or trailing + // spaces, or any sequence of more than one space, will confuse TalkBack and cause the TTS + // span to be non-functional! + return sb.toString().replaceAll(" +", " ").trim(); } } diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java index 4a16fb855..7e4803ca5 100644 --- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java +++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java @@ -27,6 +27,7 @@ import android.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 { @@ -47,6 +48,31 @@ 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". + *

"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. + *

Note: the meaning of this flag is subtly different from the + * PackageManager.FEATURE_TELEPHONY system feature, which is available on any device with a + * telephony radio, even if the device is data-only. + */ + public static boolean isVoiceCapable(@Nullable TelephonyManager telephonyManager) { + if (telephonyManager == null) { + return false; + } + if (CompatUtils.isLollipopMr1Compatible() + || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isVoiceCapable")) { + // isVoiceCapable was unhidden in L-MR1 + return telephonyManager.isVoiceCapable(); + } + final int phoneType = telephonyManager.getPhoneType(); + return phoneType == TelephonyManager.PHONE_TYPE_CDMA + || phoneType == TelephonyManager.PHONE_TYPE_GSM; + } + /** * Returns the number of phones available. Returns 1 for Single standby mode (Single SIM * functionality) Returns 2 for Dual standby mode.(Dual SIM functionality) @@ -59,7 +85,31 @@ public class TelephonyManagerCompat { if (telephonyManager == null) { return 1; } - return telephonyManager.getPhoneCount(); + if (CompatUtils.isMarshmallowCompatible() + || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getPhoneCount")) { + return telephonyManager.getPhoneCount(); + } + return 1; + } + + /** + * Returns the unique device ID of a subscription, for example, the IMEI for GSM and the MEID for + * CDMA phones. Return null if device ID is not available. + * + *

Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} + * + * @param telephonyManager The telephony manager instance to use for method calls. + * @param slotId of which deviceID is returned + */ + public static String getDeviceId(@Nullable TelephonyManager telephonyManager, int slotId) { + if (telephonyManager == null) { + return null; + } + if (CompatUtils.isMarshmallowCompatible() + || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.class)) { + return telephonyManager.getDeviceId(slotId); + } + return null; } /** @@ -69,7 +119,14 @@ public class TelephonyManagerCompat { * @return {@code true} if the device supports TTY mode, and {@code false} otherwise. */ public static boolean isTtyModeSupported(@Nullable TelephonyManager telephonyManager) { - return telephonyManager != null && telephonyManager.isTtyModeSupported(); + if (telephonyManager == null) { + return false; + } + if (CompatUtils.isMarshmallowCompatible() + || CompatUtils.isMethodAvailable(TELEPHONY_MANAGER_CLASS, "isTtyModeSupported")) { + return telephonyManager.isTtyModeSupported(); + } + return false; } /** @@ -81,7 +138,15 @@ public class TelephonyManagerCompat { */ public static boolean isHearingAidCompatibilitySupported( @Nullable TelephonyManager telephonyManager) { - return telephonyManager != null && telephonyManager.isHearingAidCompatibilitySupported(); + if (telephonyManager == null) { + return false; + } + if (CompatUtils.isMarshmallowCompatible() + || CompatUtils.isMethodAvailable( + TELEPHONY_MANAGER_CLASS, "isHearingAidCompatibilitySupported")) { + return telephonyManager.isHearingAidCompatibilitySupported(); + } + return false; } /** diff --git a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java index 43eae589d..5687f6fbf 100644 --- a/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java +++ b/java/com/android/contacts/common/compat/telecom/TelecomManagerCompat.java @@ -15,18 +15,274 @@ */ 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 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: + * + *

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. + * + *

If no PhoneAccount fits the criteria above, this method will return {@code null}. + * + * @param telecomManager the {@link TelecomManager} used for method calls, if possible. + * @param uriScheme The URI scheme. + * @return The {@link PhoneAccountHandle} corresponding to the account to be used. + */ + @Nullable + public static PhoneAccountHandle getDefaultOutgoingPhoneAccount( + @Nullable TelecomManager telecomManager, @Nullable String uriScheme) { + if (telecomManager != null + && (CompatUtils.isMarshmallowCompatible() + || CompatUtils.isMethodAvailable( + TELECOM_MANAGER_CLASS, "getDefaultOutgoingPhoneAccount", String.class))) { + return telecomManager.getDefaultOutgoingPhoneAccount(uriScheme); + } + return null; + } + + /** + * Return the line 1 phone number for given phone account. + * + * @param telecomManager the {@link TelecomManager} to use in the event that {@link + * TelecomManager#getLine1Number(PhoneAccountHandle)} is available + * @param telephonyManager the {@link TelephonyManager} to use if TelecomManager#getLine1Number is + * unavailable + * @param phoneAccountHandle the phoneAccountHandle upon which to check the line one number + * @return the line one number + */ + @Nullable + public static String getLine1Number( + @Nullable TelecomManager telecomManager, + @Nullable TelephonyManager telephonyManager, + @Nullable PhoneAccountHandle phoneAccountHandle) { + if (telecomManager != null && CompatUtils.isMarshmallowCompatible()) { + return telecomManager.getLine1Number(phoneAccountHandle); + } + if (telephonyManager != null) { + return telephonyManager.getLine1Number(); + } + return null; + } + + /** + * Return whether a given phone number is the configured voicemail number for a particular phone + * account. + * + * @param telecomManager the {@link TelecomManager} to use for checking the number. + * @param accountHandle The handle for the account to check the voicemail number against + * @param number The number to look up. + */ + public static boolean isVoiceMailNumber( + @Nullable TelecomManager telecomManager, + @Nullable PhoneAccountHandle accountHandle, + @Nullable String number) { + if (telecomManager != null + && (CompatUtils.isMarshmallowCompatible() + || CompatUtils.isMethodAvailable( + TELECOM_MANAGER_CLASS, + "isVoiceMailNumber", + PhoneAccountHandle.class, + String.class))) { + return telecomManager.isVoiceMailNumber(accountHandle, number); + } + return PhoneNumberUtils.isVoiceMailNumber(number); + } + + /** + * Return the {@link PhoneAccount} for a specified {@link PhoneAccountHandle}. Object includes + * resources which can be used in a user interface. + * + * @param telecomManager the {@link TelecomManager} used for method calls, if possible. + * @param account The {@link PhoneAccountHandle}. + * @return The {@link PhoneAccount} object or null if it doesn't exist. + */ + @Nullable + public static PhoneAccount getPhoneAccount( + @Nullable TelecomManager telecomManager, @Nullable PhoneAccountHandle accountHandle) { + if (telecomManager != null + && (CompatUtils.isMethodAvailable( + TELECOM_MANAGER_CLASS, "getPhoneAccount", PhoneAccountHandle.class))) { + return telecomManager.getPhoneAccount(accountHandle); + } + return null; + } + + /** + * Return the voicemail number for a given phone account. + * + * @param telecomManager The {@link TelecomManager} object to use for retrieving the voicemail + * number if accountHandle is specified. + * @param telephonyManager The {@link TelephonyManager} object to use for retrieving the voicemail + * number if accountHandle is null. + * @param accountHandle The handle for the phone account. + * @return The voicemail number for the phone account, and {@code null} if one has not been + * configured. + */ + @Nullable + public static String getVoiceMailNumber( + @Nullable TelecomManager telecomManager, + @Nullable TelephonyManager telephonyManager, + @Nullable PhoneAccountHandle accountHandle) { + if (telecomManager != null + && (CompatUtils.isMethodAvailable( + TELECOM_MANAGER_CLASS, "getVoiceMailNumber", PhoneAccountHandle.class))) { + return telecomManager.getVoiceMailNumber(accountHandle); + } else if (telephonyManager != null) { + return telephonyManager.getVoiceMailNumber(); + } + return null; + } + + /** + * Processes the specified dial string as an MMI code. MMI codes are any sequence of characters + * entered into the dialpad that contain a "*" or "#". Some of these sequences launch special + * behavior through handled by Telephony. + * + * @param telecomManager The {@link TelecomManager} object to use for handling MMI. + * @param dialString The digits to dial. + * @return {@code true} if the digits were processed as an MMI code, {@code false} otherwise. + */ + public static boolean handleMmi( + @Nullable TelecomManager telecomManager, + @Nullable String dialString, + @Nullable PhoneAccountHandle accountHandle) { + if (telecomManager == null || TextUtils.isEmpty(dialString)) { + return false; + } + if (CompatUtils.isMarshmallowCompatible()) { + return telecomManager.handleMmi(dialString, accountHandle); + } + + Object handleMmiResult = + CompatUtils.invokeMethod( + telecomManager, + "handleMmi", + new Class[] {PhoneAccountHandle.class, String.class}, + new Object[] {accountHandle, dialString}); + if (handleMmiResult != null) { + return (boolean) handleMmiResult; + } + + return telecomManager.handleMmi(dialString); + } + + /** + * Silences the ringer if a ringing call exists. Noop if {@link TelecomManager#silenceRinger()} is + * unavailable. + * + * @param telecomManager the TelecomManager to use to silence the ringer. + */ + public static void silenceRinger(@Nullable TelecomManager telecomManager) { + if (telecomManager != null + && (CompatUtils.isMarshmallowCompatible() + || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "silenceRinger"))) { + telecomManager.silenceRinger(); + } + } + /** * Returns the current SIM call manager. Apps must be prepared for this method to return null, * indicating that there currently exists no registered SIM call manager. @@ -36,7 +292,9 @@ public class TelecomManagerCompat { */ @Nullable public static PhoneAccountHandle getSimCallManager(TelecomManager telecomManager) { - if (telecomManager != null) { + if (telecomManager != null + && (CompatUtils.isMarshmallowCompatible() + || CompatUtils.isMethodAvailable(TELECOM_MANAGER_CLASS, "getSimCallManager"))) { return telecomManager.getSimCallManager(); } return null; diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java index 88fac0256..0e7937102 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.lettertiles.LetterTileDrawable; +import com.android.contacts.common.compat.telecom.TelecomManagerCompat; import com.android.dialer.animation.AnimUtils; import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallIntentBuilder; @@ -154,7 +154,11 @@ public class CallSubjectDialog extends Activity { .setCallSubject(subject) .build(); - getSystemService(TelecomManager.class).placeCall(intent.getData(), intent.getExtras()); + TelecomManagerCompat.placeCall( + CallSubjectDialog.this, + (TelecomManager) getSystemService(Context.TELECOM_SERVICE), + intent); + mSubjectHistory.add(subject); saveSubjectHistory(mSubjectHistory); finish(); @@ -198,7 +202,7 @@ public class CallSubjectDialog extends Activity { number /* number */, null /* displayNumber */, null /* numberLabel */, - LetterTileDrawable.TYPE_DEFAULT, + ContactPhotoManager.TYPE_DEFAULT, null /* phoneAccountHandle */); } @@ -352,7 +356,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, LetterTileDrawable.TYPE_DEFAULT); + mContactType = arguments.getInt(ARG_CONTACT_TYPE, ContactPhotoManager.TYPE_DEFAULT); mPhoneAccountHandle = arguments.getParcelable(ARG_PHONE_ACCOUNT_HANDLE); } diff --git a/java/com/android/contacts/common/format/FormatUtils.java b/java/com/android/contacts/common/format/FormatUtils.java new file mode 100644 index 000000000..727c15b83 --- /dev/null +++ b/java/com/android/contacts/common/format/FormatUtils.java @@ -0,0 +1,181 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.contacts.common.format; + +import android.database.CharArrayBuffer; +import android.graphics.Typeface; +import android.support.annotation.VisibleForTesting; +import android.text.SpannableString; +import android.text.style.StyleSpan; +import java.util.Arrays; + +/** Assorted utility methods related to text formatting in Contacts. */ +public class FormatUtils { + + /** + * Finds the earliest point in buffer1 at which the first part of buffer2 matches. For example, + * overlapPoint("abcd", "cdef") == 2. + */ + public static int overlapPoint(CharArrayBuffer buffer1, CharArrayBuffer buffer2) { + if (buffer1 == null || buffer2 == null) { + return -1; + } + return overlapPoint( + Arrays.copyOfRange(buffer1.data, 0, buffer1.sizeCopied), + Arrays.copyOfRange(buffer2.data, 0, buffer2.sizeCopied)); + } + + /** + * Finds the earliest point in string1 at which the first part of string2 matches. For example, + * overlapPoint("abcd", "cdef") == 2. + */ + @VisibleForTesting + public static int overlapPoint(String string1, String string2) { + if (string1 == null || string2 == null) { + return -1; + } + return overlapPoint(string1.toCharArray(), string2.toCharArray()); + } + + /** + * Finds the earliest point in array1 at which the first part of array2 matches. For example, + * overlapPoint("abcd", "cdef") == 2. + */ + public static int overlapPoint(char[] array1, char[] array2) { + if (array1 == null || array2 == null) { + return -1; + } + int count1 = array1.length; + int count2 = array2.length; + + // Ignore matching tails of the two arrays. + while (count1 > 0 && count2 > 0 && array1[count1 - 1] == array2[count2 - 1]) { + count1--; + count2--; + } + + int size = count2; + for (int i = 0; i < count1; i++) { + if (i + size > count1) { + size = count1 - i; + } + int j; + for (j = 0; j < size; j++) { + if (array1[i + j] != array2[j]) { + break; + } + } + if (j == size) { + return i; + } + } + + return -1; + } + + /** + * Applies the given style to a range of the input CharSequence. + * + * @param style The style to apply (see the style constants in {@link Typeface}). + * @param input The CharSequence to style. + * @param start Starting index of the range to style (will be clamped to be a minimum of 0). + * @param end Ending index of the range to style (will be clamped to a maximum of the input + * length). + * @param flags Bitmask for configuring behavior of the span. See {@link android.text.Spanned}. + * @return The styled CharSequence. + */ + public static CharSequence applyStyleToSpan( + int style, CharSequence input, int start, int end, int flags) { + // Enforce bounds of the char sequence. + start = Math.max(0, start); + end = Math.min(input.length(), end); + SpannableString text = new SpannableString(input); + text.setSpan(new StyleSpan(style), start, end, flags); + return text; + } + + @VisibleForTesting + public static void copyToCharArrayBuffer(String text, CharArrayBuffer buffer) { + if (text != null) { + char[] data = buffer.data; + if (data == null || data.length < text.length()) { + buffer.data = text.toCharArray(); + } else { + text.getChars(0, text.length(), data, 0); + } + buffer.sizeCopied = text.length(); + } else { + buffer.sizeCopied = 0; + } + } + + /** Returns a String that represents the content of the given {@link CharArrayBuffer}. */ + @VisibleForTesting + public static String charArrayBufferToString(CharArrayBuffer buffer) { + return new String(buffer.data, 0, buffer.sizeCopied); + } + + /** + * Finds the index of the first word that starts with the given prefix. + * + *

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 f397f0429..30c03fdf3 100644 --- a/java/com/android/contacts/common/format/TextHighlighter.java +++ b/java/com/android/contacts/common/format/TextHighlighter.java @@ -24,6 +24,8 @@ 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; @@ -79,7 +81,7 @@ public class TextHighlighter { } final String trimmedPrefix = prefix.substring(prefixStart); - int index = indexOfWordPrefix(text, trimmedPrefix); + int index = FormatUtils.indexOfWordPrefix(text, trimmedPrefix); if (index != -1) { final SpannableString result = new SpannableString(text); result.setSpan(mTextStyleSpan, index, index + trimmedPrefix.length(), 0 /* flags */); @@ -88,55 +90,4 @@ public class TextHighlighter { return text; } } - - /** - * Finds the index of the first word that starts with the given prefix. - * - *

If not found, returns -1. - * - * @param text the text in which to search for the prefix - * @param prefix the text to find, in upper case letters - */ - public static int indexOfWordPrefix(CharSequence text, String prefix) { - if (prefix == null || text == null) { - return -1; - } - - int textLength = text.length(); - int prefixLength = prefix.length(); - - if (prefixLength == 0 || textLength < prefixLength) { - return -1; - } - - int i = 0; - while (i < textLength) { - // Skip non-word characters - while (i < textLength && !Character.isLetterOrDigit(text.charAt(i))) { - i++; - } - - if (i + prefixLength > textLength) { - return -1; - } - - // Compare the prefixes - int j; - for (j = 0; j < prefixLength; j++) { - if (Character.toUpperCase(text.charAt(i + j)) != prefix.charAt(j)) { - break; - } - } - if (j == prefixLength) { - return i; - } - - // Skip this word - while (i < textLength && Character.isLetterOrDigit(text.charAt(i))) { - i++; - } - } - - return -1; - } } diff --git a/java/com/android/contacts/common/format/testing/SpannedTestUtils.java b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java new file mode 100644 index 000000000..293d9d5ad --- /dev/null +++ b/java/com/android/contacts/common/format/testing/SpannedTestUtils.java @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.contacts.common.format.testing; + +import android.test.suitebuilder.annotation.SmallTest; +import android.text.Html; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.TextUtils; +import android.text.style.StyleSpan; +import android.widget.TextView; +import junit.framework.Assert; + +/** Utility class to check the value of spanned text in text views. */ +@SmallTest +public class SpannedTestUtils { + + /** + * Checks that the text contained in the text view matches the given HTML text. + * + * @param expectedHtmlText the expected text to be in the text view + * @param textView the text view from which to get the text + */ + public static void checkHtmlText(String expectedHtmlText, TextView textView) { + String actualHtmlText = Html.toHtml((Spanned) textView.getText()); + if (TextUtils.isEmpty(expectedHtmlText)) { + // If the text is empty, it does not add the

bits to it. + Assert.assertEquals("", actualHtmlText); + } else { + Assert.assertEquals("

" + expectedHtmlText + "

\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 5e77b696b..88522c44b 100644 --- a/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java +++ b/java/com/android/contacts/common/lettertiles/LetterTileDrawable.java @@ -30,10 +30,8 @@ import android.graphics.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; @@ -408,30 +406,4 @@ public class LetterTileDrawable extends Drawable { } return this; } - - /** - * Returns the appropriate LetterTileDrawable.TYPE_ based on the given primitive conditions. - * - *

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 064214ef2..18bbae382 100644 --- a/java/com/android/contacts/common/list/ContactEntryListAdapter.java +++ b/java/com/android/contacts/common/list/ContactEntryListAdapter.java @@ -26,6 +26,7 @@ import android.provider.ContactsContract.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; @@ -38,10 +39,7 @@ 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; /** @@ -356,7 +354,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. - LogUtil.e( + Log.e( TAG, "Directory search loader returned an empty cursor, which implies we have " + "no directory entries.", @@ -680,9 +678,6 @@ 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 146986f75..278175c0b 100644 --- a/java/com/android/contacts/common/list/ContactEntryListFragment.java +++ b/java/com/android/contacts/common/list/ContactEntryListFragment.java @@ -555,6 +555,7 @@ public abstract class ContactEntryListFragment(); + mNumberHighlightSequence = new ArrayList<>(); + } + + public ContactListItemView( + Context context, + AttributeSet attrs, + boolean supportVideoCallIcon, + boolean supportCallAndShare) { this(context, attrs); mSupportVideoCall = supportVideoCallIcon; + mSupportCallAndShare = supportCallAndShare; } public ContactListItemView(Context context, AttributeSet attrs) { @@ -273,20 +284,19 @@ 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() { - int layoutDirection = TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()); - return layoutDirection == View.LAYOUT_DIRECTION_RTL ? PhotoPosition.RIGHT : PhotoPosition.LEFT; + public static PhotoPosition getDefaultPhotoPosition(boolean opposite) { + final Locale locale = Locale.getDefault(); + final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale); + switch (layoutDirection) { + case View.LAYOUT_DIRECTION_RTL: + return (opposite ? PhotoPosition.LEFT : PhotoPosition.RIGHT); + case View.LAYOUT_DIRECTION_LTR: + default: + return (opposite ? PhotoPosition.RIGHT : PhotoPosition.LEFT); + } } /** @@ -323,47 +333,35 @@ 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) { - mCallToAction = action; - mPosition = position; - - Drawable drawable; + int drawable; int description; OnClickListener onClickListener; - if (action == CALL_AND_SHARE) { - drawable = getContext().getResources().getDrawable(R.drawable.ic_phone_attach); - drawable.setAutoMirrored(true); - description = R.string.description_search_call_and_share; + if (action == CALL_AND_SHARE && mSupportCallAndShare) { + drawable = R.drawable.ic_call_and_share; + description = R.string.description_search_video_call; onClickListener = v -> listener.onCallAndShareIconClicked(position); } else if (action == VIDEO && mSupportVideoCall) { - drawable = - getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24); - drawable.setAutoMirrored(true); - description = R.string.description_search_video_call; + drawable = R.drawable.ic_search_video_call; + description = R.string.description_search_call_and_share; onClickListener = v -> listener.onVideoCallIconClicked(position); - } else if (action == LIGHTBRINGER) { - drawable = - getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24); - drawable.setAutoMirrored(true); - description = R.string.description_search_video_call; - onClickListener = v -> listener.onLightbringerIconClicked(position); } else { - mCallToActionView.setVisibility(View.GONE); - mCallToActionView.setOnClickListener(null); + if (mCallToAction != null) { + mCallToAction.setVisibility(View.GONE); + mCallToAction.setOnClickListener(null); + } return; } - mCallToActionView.setContentDescription(getContext().getString(description)); - mCallToActionView.setOnClickListener(onClickListener); - mCallToActionView.setImageDrawable(drawable); - mCallToActionView.setVisibility(View.VISIBLE); - } - - public @CallToAction int getCallToAction() { - return mCallToAction; - } - - public int getPosition() { - return mPosition; + if (mCallToAction == null) { + mCallToAction = new ImageView(getContext()); + mCallToAction.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize)); + mCallToAction.setScaleType(ScaleType.CENTER); + addView(mCallToAction); + } + mCallToAction.setContentDescription(getContext().getString(description)); + mCallToAction.setOnClickListener(onClickListener); + mCallToAction.setImageResource(drawable); + mCallToAction.setVisibility(View.VISIBLE); } /** @@ -378,6 +376,18 @@ 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 @@ -413,7 +423,9 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj effectiveWidth -= mHeaderWidth + mGapBetweenImageAndText; } - effectiveWidth -= (mCallToActionSize + mCallToActionMargin); + if (mSupportVideoCall || mSupportCallAndShare) { + effectiveWidth -= (mCallToActionSize + mCallToActionMargin); + } // Go over all visible text views and measure actual width of each of them. // Also calculate their heights to get the total height for this entire view. @@ -484,9 +496,11 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight(); } - mCallToActionView.measure( - MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY), - MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY)); + if ((mSupportVideoCall || mSupportCallAndShare) && isVisible(mCallToAction)) { + mCallToAction.measure( + MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY)); + } if (isVisible(mWorkProfileIcon)) { mWorkProfileIcon.measure( @@ -615,30 +629,34 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj leftBound += mTextIndent; } - // Place the call to action at the end of the list (e.g. take into account RTL mode). - // Center the icon vertically - final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2; + if (mSupportVideoCall || mSupportCallAndShare) { + // Place the call to action at the end of the list (e.g. take into account RTL mode). + if (isVisible(mCallToAction)) { + // Center the icon vertically + final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2; - if (!isLayoutRtl) { - // When photo is on left, icon is placed on the right edge. - mCallToActionView.layout( - rightBound - mCallToActionSize, - callToActionTop, - rightBound, - callToActionTop + mCallToActionSize); - } else { - // When photo is on right, icon is placed on the left edge. - mCallToActionView.layout( - leftBound, - callToActionTop, - leftBound + mCallToActionSize, - callToActionTop + mCallToActionSize); - } + if (!isLayoutRtl) { + // When photo is on left, icon is placed on the right edge. + mCallToAction.layout( + rightBound - mCallToActionSize, + callToActionTop, + rightBound, + callToActionTop + mCallToActionSize); + } else { + // When photo is on right, icon is placed on the left edge. + mCallToAction.layout( + leftBound, + callToActionTop, + leftBound + mCallToActionSize, + callToActionTop + mCallToActionSize); + } + } - if (mPhotoPosition == PhotoPosition.LEFT) { - rightBound -= (mCallToActionSize + mCallToActionMargin); - } else { - leftBound += mCallToActionSize + mCallToActionMargin; + if (mPhotoPosition == PhotoPosition.LEFT) { + rightBound -= (mCallToActionSize + mCallToActionMargin); + } else { + leftBound += mCallToActionSize + mCallToActionMargin; + } } // Center text vertically, then apply the top offset. @@ -883,7 +901,9 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj } if (mQuickContact == null) { mQuickContact = new QuickContactBadge(getContext()); - mQuickContact.setOverlay(null); + if (CompatUtils.isLollipopCompatible()) { + mQuickContact.setOverlay(null); + } mQuickContact.setLayoutParams(getDefaultPhotoLayoutParams()); if (mNameTextView != null) { mQuickContact.setContentDescription( @@ -988,7 +1008,9 @@ 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); - mNameTextView.setElegantTextHeight(false); + if (CompatUtils.isLollipopCompatible()) { + mNameTextView.setElegantTextHeight(false); + } addView(mNameTextView); } return mNameTextView; @@ -1034,7 +1056,6 @@ 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); @@ -1065,10 +1086,6 @@ 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 @@ -1092,7 +1109,9 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); mDataView.setActivated(isActivated()); mDataView.setId(R.id.cliv_data_view); - mDataView.setElegantTextHeight(false); + if (CompatUtils.isLollipopCompatible()) { + mDataView.setElegantTextHeight(false); + } addView(mDataView); } return mDataView; @@ -1450,17 +1469,28 @@ 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 drawable A drawable resource. + * @param drawableId Id of drawable resource. */ - public void setDrawable(Drawable drawable) { + public void setDrawableResource(int drawableId) { ImageView photo = getPhotoView(); photo.setScaleType(ImageView.ScaleType.CENTER); - int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color); - photo.setImageDrawable(drawable); - photo.setImageTintList(ColorStateList.valueOf(iconColor)); + final Drawable drawable = ContextCompat.getDrawable(getContext(), drawableId); + final int iconColor = ContextCompat.getColor(getContext(), R.color.search_shortcut_icon_color); + if (CompatUtils.isLollipopCompatible()) { + photo.setImageDrawable(drawable); + photo.setImageTintList(ColorStateList.valueOf(iconColor)); + } else { + final Drawable drawableWrapper = DrawableCompat.wrap(drawable).mutate(); + DrawableCompat.setTint(drawableWrapper, iconColor); + photo.setImageDrawable(drawableWrapper); + } } @Override diff --git a/java/com/android/contacts/common/list/ContactTileView.java b/java/com/android/contacts/common/list/ContactTileView.java index 15582d684..9273b0583 100644 --- a/java/com/android/contacts/common/list/ContactTileView.java +++ b/java/com/android/contacts/common/list/ContactTileView.java @@ -19,6 +19,7 @@ import android.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; @@ -27,9 +28,6 @@ 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 { @@ -62,14 +60,8 @@ 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), - callSpecificAppData); + getLookupUri(), MoreContactUtils.getTargetRectFromView(ContactTileView.this)); } }; } @@ -105,7 +97,7 @@ public abstract class ContactTileView extends FrameLayout { } } else { - LogUtil.w(TAG, "contactPhotoManager not set"); + Log.w(TAG, "contactPhotoManager not set"); } } else { setVisibility(View.INVISIBLE); @@ -171,10 +163,9 @@ 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, CallSpecificAppData callSpecificAppData); + void onContactSelected(Uri contactLookupUri, Rect viewRect); /** Notification that the specified number is to be called. */ - void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData); + void onCallNumberDirectly(String phoneNumber); } } diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java index 65e6f2da2..9a490d78a 100644 --- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java +++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java @@ -30,6 +30,7 @@ import android.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; @@ -37,17 +38,15 @@ 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; @@ -69,15 +68,16 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { // A list of extended directories to add to the directories from the database private final List mExtendedDirectories; private final CharSequence mUnknownNameText; - private final boolean mIsPresenceEnabled; - protected final boolean mIsImsVideoEnabled; - + private final boolean mCallAndShareEnabled; // Extended directories will have ID's that are higher than any of the id's from the database, // so that we can identify them and set them up properly. If no extended directories // exist, this will be Long.MAX_VALUE private long mFirstExtendedDirectoryId = Long.MAX_VALUE; + private ContactListItemView.PhotoPosition mPhotoPosition; private boolean mUseCallableUri; private Listener mListener; + private boolean mIsVideoEnabled; + private boolean mIsPresenceEnabled; public PhoneNumberListAdapter(Context context) { super(context); @@ -88,8 +88,11 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { PhoneDirectoryExtenderAccessor.get(mContext).getExtendedDirectories(mContext); int videoCapabilities = CallUtil.getVideoCallingAvailability(context); - mIsImsVideoEnabled = CallUtil.isVideoEnabled(context); + mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0; mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0; + + // TODO + mCallAndShareEnabled = true; } @Override @@ -246,10 +249,10 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null; } - public DialerContact getDialerContact(int position) { + public CallComposerContact getCallComposerContact(int position) { Cursor cursor = (Cursor) getItem(position); if (cursor == null) { - LogUtil.e("PhoneNumberListAdapter.getDialerContact", "cursor was null."); + LogUtil.e("PhoneNumberListAdapter.getCallComposerContact", "cursor was null."); return null; } @@ -260,11 +263,11 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { Contacts.getLookupUri( cursor.getLong(PhoneQuery.CONTACT_ID), cursor.getString(PhoneQuery.LOOKUP_KEY)); - DialerContact.Builder contact = DialerContact.newBuilder(); + CallComposerContact.Builder contact = CallComposerContact.newBuilder(); contact .setNumber(number) .setPhotoId(cursor.getLong(PhoneQuery.PHOTO_ID)) - .setContactType(LetterTileDrawable.TYPE_DEFAULT) + .setContactType(ContactPhotoManager.TYPE_DEFAULT) .setNameOrNumber(displayName) .setNumberLabel( Phone.getTypeLabel( @@ -294,6 +297,7 @@ 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; } @@ -397,17 +401,13 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE); boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0; - boolean isVideoIconShown = mIsImsVideoEnabled && (!mIsPresenceEnabled || isPresent); + boolean isVideoIconShown = mIsVideoEnabled && (!mIsPresenceEnabled || isPresent); if (isVideoIconShown) { action = ContactListItemView.VIDEO; } } - if (LightbringerComponent.get(mContext).getLightbringer().isReachable(mContext, number)) { - action = ContactListItemView.LIGHTBRINGER; - } - - if (action == ContactListItemView.NONE) { + if (isCallAndShareEnabled() && action == ContactListItemView.NONE && number != null) { EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); EnrichedCallCapabilities capabilities = manager.getCapabilities(number); if (capabilities != null && capabilities.supportsCallComposer()) { @@ -481,6 +481,14 @@ public 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; } @@ -562,12 +570,14 @@ 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); } @@ -632,14 +642,18 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { static { final List projectionList = new ArrayList<>(Arrays.asList(PROJECTION_PRIMARY_INTERNAL)); - projectionList.add(Phone.CARRIER_PRESENCE); // 9 + if (CompatUtils.isMarshmallowCompatible()) { + projectionList.add(Phone.CARRIER_PRESENCE); // 9 + } PROJECTION_PRIMARY = projectionList.toArray(new String[projectionList.size()]); } static { final List projectionList = new ArrayList<>(Arrays.asList(PROJECTION_ALTERNATIVE_INTERNAL)); - projectionList.add(Phone.CARRIER_PRESENCE); // 9 + if (CompatUtils.isMarshmallowCompatible()) { + projectionList.add(Phone.CARRIER_PRESENCE); // 9 + } PROJECTION_ALTERNATIVE = projectionList.toArray(new String[projectionList.size()]); } } diff --git a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java index 79e670010..8f25f82a5 100644 --- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java +++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java @@ -29,18 +29,15 @@ import android.view.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; @@ -64,6 +61,9 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment mLoadFinishedListeners = new ArraySet<>(); private CursorReranker mCursorReranker; @@ -71,7 +71,7 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment in the future private static final int[] ATTRS = @@ -59,6 +54,20 @@ 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. @@ -102,8 +111,10 @@ public class ViewPagerTabs extends HorizontalScrollView implements ViewPager.OnP new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); a.recycle(); - // enable shadow casting from view bounds - setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER); + if (CompatUtils.isLollipopCompatible()) { + // enable shadow casting from view bounds + setOutlineProvider(VIEW_BOUNDS_OUTLINE_PROVIDER); + } } public void setViewPager(ViewPager viewPager) { diff --git a/java/com/android/contacts/common/location/CountryDetector.java b/java/com/android/contacts/common/location/CountryDetector.java new file mode 100644 index 000000000..7d9e42b38 --- /dev/null +++ b/java/com/android/contacts/common/location/CountryDetector.java @@ -0,0 +1,221 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.contacts.common.location; + +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.location.Geocoder; +import android.location.Location; +import android.location.LocationManager; +import android.preference.PreferenceManager; +import android.telephony.TelephonyManager; +import android.text.TextUtils; +import android.util.Log; +import com.android.dialer.util.PermissionsUtil; +import java.util.Locale; + +/** + * This class is used to detect the country where the user is. It is a simplified version of the + * country detector service in the framework. The sources of country location are queried in the + * following order of reliability: + * + *

    + *
  • Mobile network + *
  • Location manager + *
  • SIM's country + *
  • User's default locale + *
+ * + * As far as possible this class tries to replicate the behavior of the system's country detector + * service: 1) Order in priority of sources of country location 2) Mobile network information + * provided by CDMA phones is ignored 3) Location information is updated every 12 hours (instead of + * 24 hours in the system) 4) Location updates only uses the {@link + * LocationManager#PASSIVE_PROVIDER} to avoid active use of the GPS 5) If a location is successfully + * obtained and geocoded, we never fall back to use of the SIM's country (for the system, the + * fallback never happens without a reboot) 6) Location is not used if the device does not implement + * a {@link android.location.Geocoder} + */ +public class CountryDetector { + + public static final String KEY_PREFERENCE_TIME_UPDATED = "preference_time_updated"; + public static final String KEY_PREFERENCE_CURRENT_COUNTRY = "preference_current_country"; + private static final String TAG = "CountryDetector"; + // Wait 12 hours between updates + private static final long TIME_BETWEEN_UPDATES_MS = 1000L * 60 * 60 * 12; + // Minimum distance before an update is triggered, in meters. We don't need this to be too + // exact because all we care about is what country the user is in. + private static final long DISTANCE_BETWEEN_UPDATES_METERS = 5000; + private static CountryDetector sInstance; + private final TelephonyManager mTelephonyManager; + private final LocationManager mLocationManager; + private final LocaleProvider mLocaleProvider; + // Used as a default country code when all the sources of country data have failed in the + // exceedingly rare event that the device does not have a default locale set for some reason. + private static final String DEFAULT_COUNTRY_ISO = "US"; + private final Context mContext; + + private CountryDetector(Context context) { + this( + context, + (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE), + (LocationManager) context.getSystemService(Context.LOCATION_SERVICE), + new LocaleProvider()); + } + + private CountryDetector( + Context context, + TelephonyManager telephonyManager, + LocationManager locationManager, + LocaleProvider localeProvider) { + mTelephonyManager = telephonyManager; + mLocationManager = locationManager; + mLocaleProvider = localeProvider; + mContext = context; + + registerForLocationUpdates(context, mLocationManager); + } + + public static void registerForLocationUpdates(Context context, LocationManager locationManager) { + if (!PermissionsUtil.hasLocationPermissions(context)) { + Log.w(TAG, "No location permissions, not registering for location updates."); + return; + } + + if (!Geocoder.isPresent()) { + // Certain devices do not have an implementation of a geocoder - in that case there is + // no point trying to get location updates because we cannot retrieve the country based + // on the location anyway. + return; + } + final Intent activeIntent = new Intent(context, LocationChangedReceiver.class); + final PendingIntent pendingIntent = + PendingIntent.getBroadcast(context, 0, activeIntent, PendingIntent.FLAG_UPDATE_CURRENT); + + locationManager.requestLocationUpdates( + LocationManager.PASSIVE_PROVIDER, + TIME_BETWEEN_UPDATES_MS, + DISTANCE_BETWEEN_UPDATES_METERS, + pendingIntent); + } + + /** + * Returns the instance of the country detector. {@link #initialize(Context)} must have been + * called previously. + * + * @return the initialized country detector. + */ + public static synchronized CountryDetector getInstance(Context context) { + if (sInstance == null) { + sInstance = new CountryDetector(context.getApplicationContext()); + } + return sInstance; + } + + /** Factory method for {@link CountryDetector} that allows the caller to provide mock objects. */ + public CountryDetector getInstanceForTest( + Context context, + TelephonyManager telephonyManager, + LocationManager locationManager, + LocaleProvider localeProvider, + Geocoder geocoder) { + return new CountryDetector(context, telephonyManager, locationManager, localeProvider); + } + + public String getCurrentCountryIso() { + String result = null; + if (isNetworkCountryCodeAvailable()) { + result = getNetworkBasedCountryIso(); + } + if (TextUtils.isEmpty(result)) { + result = getLocationBasedCountryIso(); + } + if (TextUtils.isEmpty(result)) { + result = getSimBasedCountryIso(); + } + if (TextUtils.isEmpty(result)) { + result = getLocaleBasedCountryIso(); + } + if (TextUtils.isEmpty(result)) { + result = DEFAULT_COUNTRY_ISO; + } + return result.toUpperCase(Locale.US); + } + + /** @return the country code of the current telephony network the user is connected to. */ + private String getNetworkBasedCountryIso() { + return mTelephonyManager.getNetworkCountryIso(); + } + + /** @return the geocoded country code detected by the {@link LocationManager}. */ + private String getLocationBasedCountryIso() { + if (!Geocoder.isPresent() || !PermissionsUtil.hasLocationPermissions(mContext)) { + return null; + } + final SharedPreferences sharedPreferences = + PreferenceManager.getDefaultSharedPreferences(mContext); + return sharedPreferences.getString(KEY_PREFERENCE_CURRENT_COUNTRY, null); + } + + /** @return the country code of the SIM card currently inserted in the device. */ + private String getSimBasedCountryIso() { + return mTelephonyManager.getSimCountryIso(); + } + + /** @return the country code of the user's currently selected locale. */ + private String getLocaleBasedCountryIso() { + Locale defaultLocale = mLocaleProvider.getDefaultLocale(); + if (defaultLocale != null) { + return defaultLocale.getCountry(); + } + return null; + } + + private boolean isNetworkCountryCodeAvailable() { + // On CDMA TelephonyManager.getNetworkCountryIso() just returns the SIM's country code. + // In this case, we want to ignore the value returned and fallback to location instead. + return mTelephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM; + } + + /** + * Class that can be used to return the user's default locale. This is in its own class so that it + * can be mocked out. + */ + public static class LocaleProvider { + + public Locale getDefaultLocale() { + return Locale.getDefault(); + } + } + + public static class LocationChangedReceiver extends BroadcastReceiver { + + @Override + public void onReceive(final Context context, Intent intent) { + if (!intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) { + return; + } + + final Location location = + (Location) intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED); + + UpdateCountryService.updateCountry(context, location); + } + } +} diff --git a/java/com/android/contacts/common/location/UpdateCountryService.java b/java/com/android/contacts/common/location/UpdateCountryService.java new file mode 100644 index 000000000..f23e09e20 --- /dev/null +++ b/java/com/android/contacts/common/location/UpdateCountryService.java @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.contacts.common.location; + +import android.app.IntentService; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; +import android.location.Address; +import android.location.Geocoder; +import android.location.Location; +import android.preference.PreferenceManager; +import android.util.Log; +import java.io.IOException; +import java.util.List; + +/** + * Service used to perform asynchronous geocoding from within a broadcast receiver. Given a {@link + * Location}, convert it into a country code, and save it in shared preferences. + */ +public class UpdateCountryService extends IntentService { + + private static final String TAG = UpdateCountryService.class.getSimpleName(); + + private static final String ACTION_UPDATE_COUNTRY = "saveCountry"; + + private static final String KEY_INTENT_LOCATION = "location"; + + public UpdateCountryService() { + super(TAG); + } + + public static void updateCountry(Context context, Location location) { + final Intent serviceIntent = new Intent(context, UpdateCountryService.class); + serviceIntent.setAction(ACTION_UPDATE_COUNTRY); + serviceIntent.putExtra(UpdateCountryService.KEY_INTENT_LOCATION, location); + context.startService(serviceIntent); + } + + @Override + protected void onHandleIntent(Intent intent) { + if (intent == null) { + Log.d(TAG, "onHandleIntent: could not handle null intent"); + return; + } + if (ACTION_UPDATE_COUNTRY.equals(intent.getAction())) { + final Location location = intent.getParcelableExtra(KEY_INTENT_LOCATION); + final String country = getCountryFromLocation(getApplicationContext(), location); + + if (country == null) { + return; + } + + final SharedPreferences prefs = + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + + final Editor editor = prefs.edit(); + editor.putLong(CountryDetector.KEY_PREFERENCE_TIME_UPDATED, System.currentTimeMillis()); + editor.putString(CountryDetector.KEY_PREFERENCE_CURRENT_COUNTRY, country); + editor.commit(); + } + } + + /** + * Given a {@link Location}, return a country code. + * + * @return the ISO 3166-1 two letter country code + */ + private String getCountryFromLocation(Context context, Location location) { + final Geocoder geocoder = new Geocoder(context); + String country = null; + try { + double latitude = location.getLatitude(); + // Latitude has to be between 90 and -90 (latitude of north and south poles wrt equator) + if (latitude <= 90 && latitude >= -90) { + final List
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 7ef3b73a0..55464b161 100644 --- a/java/com/android/contacts/common/model/ContactLoader.java +++ b/java/com/android/contacts/common/model/ContactLoader.java @@ -522,7 +522,6 @@ public class ContactLoader extends AsyncTaskLoader { 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 ccdad3641..8e9ba738c 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_vd_theme_24; + kind.iconAltRes = R.drawable.quantum_ic_message_white_24; kind.iconAltDescriptionRes = R.string.sms; kind.actionHeader = new PhoneActionInflater(); kind.actionAltHeader = new PhoneActionAltInflater(); @@ -1228,7 +1228,7 @@ public abstract class BaseAccountType extends AccountType { new PhoneActionInflater(), new SimpleInflater(Phone.NUMBER)); - kind.iconAltRes = R.drawable.quantum_ic_message_vd_theme_24; + kind.iconAltRes = R.drawable.quantum_ic_message_white_24; kind.iconAltDescriptionRes = R.string.sms; kind.actionAltHeader = new PhoneActionAltInflater(); diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png new file mode 100644 index 000000000..d86b2195a Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_ab_search.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png new file mode 100644 index 000000000..ddbb2c459 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_arrow_back_24dp.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png new file mode 100644 index 000000000..d5942dcad Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_business_white_120dp.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png new file mode 100644 index 000000000..4dc506515 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_call_24dp.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png new file mode 100644 index 000000000..969552935 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_close_dk.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png new file mode 100644 index 000000000..540ab4dee Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_create_24dp.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png new file mode 100644 index 000000000..017e4bbf7 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_group_white_24dp.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png new file mode 100644 index 000000000..703d30b92 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_history_white_drawable_24dp.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png new file mode 100644 index 000000000..c7b1113cf Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_info_outline_24dp.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png new file mode 100644 index 000000000..deb3a6dc1 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_back.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png new file mode 100644 index 000000000..06bd18fbb Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_dk.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png new file mode 100644 index 000000000..d829d11e2 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_group_lt.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png new file mode 100644 index 000000000..1ba12950c Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_overflow_lt.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png new file mode 100644 index 000000000..5ff3ac574 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_dk.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png new file mode 100644 index 000000000..b4ebfc7b2 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_person_lt.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png new file mode 100644 index 000000000..03fd2fb10 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_remove_field_holo_light.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png new file mode 100644 index 000000000..e8cb0f5fe Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_dk.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png new file mode 100644 index 000000000..45137967c Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_holo_light.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png new file mode 100644 index 000000000..1c9bb81fa Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_menu_star_lt.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png new file mode 100644 index 000000000..56708b0ba Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_person_24dp.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png new file mode 100644 index 000000000..ccdda6701 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_rx_videocam.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png new file mode 100644 index 000000000..603ddc895 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_tx_videocam.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png new file mode 100644 index 000000000..97905c9f5 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_videocam.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png b/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png new file mode 100644 index 000000000..2121878ae Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/ic_voicemail_avatar.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png new file mode 100644 index 000000000..4ea7afa00 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png new file mode 100644 index 000000000..cddf9be75 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/list_background_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png new file mode 100644 index 000000000..86578be45 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/list_focused_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png new file mode 100644 index 000000000..e9afcc924 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/list_longpressed_holo_light.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png new file mode 100644 index 000000000..2054530ed Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/list_pressed_holo_light.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png new file mode 100644 index 000000000..a0f17568e Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/list_section_divider_holo_custom.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png new file mode 100644 index 000000000..ae937176e Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-hdpi/list_title_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png new file mode 100644 index 000000000..4139942d6 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_focused_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png new file mode 100644 index 000000000..569d28f54 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_section_divider_holo_custom.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png new file mode 100644 index 000000000..5ec4c96a7 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-hdpi/list_title_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png new file mode 100644 index 000000000..4139942d6 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_focused_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png new file mode 100644 index 000000000..065ff62ce Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_section_divider_holo_custom.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png new file mode 100644 index 000000000..013d5e711 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-mdpi/list_title_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png new file mode 100644 index 000000000..947f03cec Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-hdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png new file mode 100644 index 000000000..6d09d7278 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-mdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png new file mode 100644 index 000000000..63c7456f0 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-sw600dp-xhdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png new file mode 100644 index 000000000..4139942d6 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_focused_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png new file mode 100644 index 000000000..af5855420 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_section_divider_holo_custom.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png new file mode 100644 index 000000000..cb801ac1b Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-ldrtl-xhdpi/list_title_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png new file mode 100644 index 000000000..3bf8e0362 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-mdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png new file mode 100644 index 000000000..86578be45 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-mdpi/list_focused_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png new file mode 100644 index 000000000..3226ab760 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-mdpi/list_longpressed_holo_light.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png new file mode 100644 index 000000000..061904c42 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-mdpi/list_pressed_holo_light.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png new file mode 100644 index 000000000..1d9371de0 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-mdpi/list_section_divider_holo_custom.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png new file mode 100644 index 000000000..046b24a96 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-sw600dp-hdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png new file mode 100644 index 000000000..1ff337370 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-sw600dp-mdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png new file mode 100644 index 000000000..2eb7c7ebc Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-sw600dp-xhdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png new file mode 100644 index 000000000..eda10e612 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xhdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png new file mode 100644 index 000000000..86578be45 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xhdpi/list_focused_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png new file mode 100644 index 000000000..5532e88c2 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xhdpi/list_longpressed_holo_light.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png new file mode 100644 index 000000000..f4af92657 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xhdpi/list_pressed_holo_light.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png b/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png new file mode 100644 index 000000000..8fb0636cf Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xhdpi/list_section_divider_holo_custom.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png new file mode 100644 index 000000000..52c00ddcd Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xxhdpi/list_activated_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png new file mode 100644 index 000000000..3e4ca684e Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xxhdpi/list_focused_holo.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png new file mode 100644 index 000000000..230d649bf Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xxhdpi/list_longpressed_holo_light.9.png differ diff --git a/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png b/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png new file mode 100644 index 000000000..1352a1702 Binary files /dev/null and b/java/com/android/contacts/common/res/drawable-xxhdpi/list_pressed_holo_light.9.png differ diff --git a/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml b/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml new file mode 100644 index 000000000..ecf704e8e --- /dev/null +++ b/java/com/android/contacts/common/res/drawable/ic_back_arrow.xml @@ -0,0 +1,20 @@ + + + \ 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/contacts/common/res/drawable/ic_call_and_share.xml new file mode 100644 index 000000000..be0cdd358 --- /dev/null +++ b/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml b/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml new file mode 100644 index 000000000..c2538cfd1 --- /dev/null +++ b/java/com/android/contacts/common/res/drawable/ic_person_add_tinted_24dp.xml @@ -0,0 +1,20 @@ + + + diff --git a/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml b/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml new file mode 100644 index 000000000..476212d24 --- /dev/null +++ b/java/com/android/contacts/common/res/drawable/ic_search_add_contact.xml @@ -0,0 +1,20 @@ + + + + diff --git a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml new file mode 100644 index 000000000..0fe0367e1 --- /dev/null +++ b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml @@ -0,0 +1,22 @@ + + + + diff --git a/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml b/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml new file mode 100644 index 000000000..35fff99c2 --- /dev/null +++ b/java/com/android/contacts/common/res/drawable/list_selector_background_transition_holo_light.xml @@ -0,0 +1,20 @@ + + + + + + + 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 df8e8d299..a33b2ac85 100644 --- a/java/com/android/contacts/common/res/layout/dialog_call_subject.xml +++ b/java/com/android/contacts/common/res/layout/dialog_call_subject.xml @@ -129,7 +129,7 @@ android:layout_height="25dp" android:layout_alignParentStart="true" android:layout_centerVertical="true" - android:src="@drawable/quantum_ic_history_vd_theme_24" + android:src="@drawable/quantum_ic_history_white_24" android:tint="@color/call_subject_history_icon"/> 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 48e4158f0..52e612da9 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 @@ "Tik \'n nota om saam met oproep te stuur …" "STUUR EN BEL" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s-oortjie" %1$s-oortjie %2$d ongelese items. 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 4121474f0..0283fbb0a 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 @@ "ከጥሪ ጋር ለመላክ የማስታወሻ ጽሑፍ ይተይቡ ..." "ላክ እና ደውል" "%1$s / %2$s" - "%1$s%2$s" + "%1$s%2$s" "የ%1$s ትር።" %1$s ትር። %2$d ያልተነበቡ ንጥሎች። 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 98fb057d4..a3862fe09 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 @@ "اكتب ملاحظة لإرسالها مع المكالمة ..." "إرسال واتصال" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "علامة تبويب %1$s." %1$s علامة تبويب. %2$d عناصر غير مقروءة. 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 813ada7f7..943377127 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 @@ "Zəng ilə göndərmək üçün qeyd yazın..." "GÖNDƏRİN VƏ ZƏNG EDİN" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s tabel." %1$s tabel. %2$d oxunmamış element. 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 3eccfc654..fc99567f1 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 @@ "Unesite belešku koju ćete poslati uz poziv..." "POŠALJI I POZOVI" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Kartica %1$s." Kartica %1$s. %2$d nepročitana stavka. 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 99922a874..a9652a1c1 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 @@ "Увесці нататку для адпраўкі з выклікам…" "АДПРАВІЦЬ І ВЫКЛІКАЦЬ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Укладка %1$s." Укладка %1$s. %2$d непрачытаны элемент. 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 c2ebd2736..0b57eb6a5 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 @@ "Напишете придружаваща бележка, която ще се изпрати при извършване на обаждането..." "ИЗПРАЩАНЕ И ОБАЖДАНЕ" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Раздел „%1$s“." Раздел „%1$s“. %2$d непрочетени елемента. 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 47e9b020e..8e783d129 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 @@ "কলের সাথে পাঠানোর জন্য একটি নোট লিখুন ..." "পাঠান এবং কল করুন" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ট্যাব৷" %1$s ট্যাব৷ %2$dটি অপঠিত আইটেম৷ 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 305a7468a..278f6a8d0 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 @@ "Upišite bilješku koja će se poslati uz poziv ..." "POŠALJI I POZOVI" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Kartica %1$s." Kartica %1$s. %2$d nepročitana stavka. 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 8e8068695..ad31a01b6 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 @@ "Escriu una nota per enviar-la juntament amb la trucada..." "ENVIA I TRUCA" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Pestanya %1$s" Pestanya %1$s: %2$d elements no llegits 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 7aea200b1..ab54be93a 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 @@ "Zadejte poznámku, která se odešle pomocí volání…" "ODESLAT A ZAVOLAT" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Karta %1$s." Karta %1$s. %2$d nepřečtené položky. 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 430895a71..965d04a73 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 @@ "Indtast en note, som skal sendes ved opkald..." "SEND OG RING" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Fanen %1$s." Fanen %1$s. %2$d ulæst element. 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 a46f278c1..60c5e6806 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 @@ "Notiz eingeben, die beim Anrufen gesendet wird..." "SENDEN UND ANRUFEN" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Tab \"%1$s\"." Tab \"%1$s\". %2$d ungelesene Elemente. 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 567b8fb52..9af3bc55a 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 @@ "Πληκτρολογήστε μια σημείωση για αποστολή με την κλήση…" "ΑΠΟΣΤΟΛΗ ΚΑΙ ΚΛΗΣΗ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Καρτέλα %1$s." Καρτέλα %1$s. %2$d μη αναγνωσμένα στοιχεία. 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 660993d2e..996c6ee18 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 @@ "Type a note to send with call ..." "SEND & CALL" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s tab." %1$s tab. %2$d unread items. 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 660993d2e..996c6ee18 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 @@ "Type a note to send with call ..." "SEND & CALL" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s tab." %1$s tab. %2$d unread items. 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 660993d2e..996c6ee18 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 @@ "Type a note to send with call ..." "SEND & CALL" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s tab." %1$s tab. %2$d unread items. 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 1c0339a6a..acb563cab 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 @@ "Escribe una nota para enviar con la llamada…" "ENVIAR Y LLAMAR" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Pestaña %1$s." Pestaña %1$s. %2$d elementos no leídos. 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 b0956ec6a..def7a447c 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 @@ "Escribe una nota para enviarla con la llamada..." "ENVIAR Y LLAMAR" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Pestaña %1$s." Pestaña %1$s. %2$d elementos no leídos. 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 e152f595a..c80d54214 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 @@ "Sisestage märkus, mis koos kõnega saata ..." "SAADA JA HELISTA" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Vahekaart %1$s." Vahekaart %1$s. %2$d lugemata üksust. 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 967b63540..868d668b5 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 @@ "Idatzi deiarekin batera bidali beharreko oharra…" "BIDALI ETA DEITU" "%1$s/%2$s" - "%1$s: %2$s" + "%1$s%2$s" "%1$s fitxa." %1$s fitxa. Irakurri gabeko %2$d elementu. 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 3650e4671..dda10647c 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 @@ "یادداشتی بنویسید که همراه تماس ارسال شود…" "ارسال و تماس" "%1$s / ‏%2$s" - "%1$s %2$s" + "%1$s%2$s" "برگه «%1$s»." برگه «%1$s». %2$d مورد خوانده‌نشده. 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 b7739dee8..b8065b2bf 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 @@ "Kirjoita muistiinpano lähetettäväksi puhelun kanssa…" "LÄHETÄ JA SOITA" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s-välilehti." %1$s-välilehti. %2$d lukematonta kohdetta. 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 c20b8827e..82f549292 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 @@ "Tapez une note à envoyer avec l\'appel..." "ENVOYER ET APPELER" "%1$s/%2$s" - "%1$s : %2$s" + "%1$s%2$s" "Onglet %1$s." Onglet %1$s. %2$d élément non lu. 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 93b52dcf9..474d721dc 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 @@ "Saisissez une note pour accompagner l\'appel..." "ENVOYER ET APPELER" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Onglet %1$s." Onglet %1$s. %2$d élément non lu. 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 4aa1fc1f7..4a3262a2b 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 @@ "Escribe unha nota para enviala coa chamada…" "ENVIAR E CHAMAR" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Pestana %1$s." Pestana %1$s. %2$d elementos non lidos. 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 8bbfb3a2b..536aceb9c 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 @@ "કૉલ સાથે મોકલવા માટે એક નોંધ લખો ..." "મોકલો અને કૉલ કરો" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ટૅબ." %1$s ટૅબ. %2$d વાંચ્યા વગરની આઇટમ. 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 c1af9b7ff..c61e195cb 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 @@ "कॉल के साथ भेजने के लिए नोट लिखें ..." "भेजें और कॉल करें" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s टैब." %1$s टैब. %2$d नहीं पढ़े गए आइटम. 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 a60c884c1..66986dd38 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 @@ "Napišite bilješku koju ćete poslati uz poziv..." "POŠALJI I NAZOVI" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Kartica %1$s." Kartica %1$s. %2$d nepročitana stavka. 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 19fbbe844..22bf5094c 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 @@ "Írjon üzenetet, amelyet elküldhetünk a hívással együtt…" "KÜLDÉS ÉS HÍVÁS" "%2$s/%1$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s lap." %1$s lap. %2$d olvasatlan elem. 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 b3ed5e531..85c902347 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 @@ "Մուտքագրեք նշում՝ զանգի հետ ուղարկելու համար ..." "ՈՒՂԱՐԿԵԼ ԵՎ ԶԱՆԳԵԼ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ներդիր:" %1$s tab. %2$d unread items. 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 13252a5b0..d7ee8bfb9 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 @@ "Ketik catatan untuk dikirim dengan panggilan telepon ..." "KIRIM & TELEPON" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Tab %1$s." Tab %1$s. %2$d item belum dibaca. 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 569c10f3e..26c1aefd1 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 @@ "Sláðu inn texta til að senda með símtalinu..." "SENDA OG HRINGJA" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Flipinn %1$s." Flipinn %1$s. %2$d ólesið atriði. 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 342cd61df..8ea564854 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 @@ "Digita una nota da inviare con la chiamata..." "INVIA E CHIAMA" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Scheda %1$s." Scheda %1$s. %2$d elementi da leggere. 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 e0d8e5dfb..2a6b2c189 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 @@ "הקלד הערה לשליחה עם השיחה..." "שלח והתקשר" "%1$s / %2$s" - "‎%1$s %2$s‎" + "%1$s%2$s" "הכרטיסייה %1$s." הכרטיסייה %1$s. %2$d פריטים שלא נקראו. 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 e224a38a2..3271b46bb 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 @@ "発信時に送信するメモを入力..." "送信 / 通話" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s タブ。" %1$s タブ。%2$d 件の未読項目。 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 86273b32e..ebbee6e33 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 @@ "აკრიფეთ შენიშვნა ზართან ერთად გასაგზავნად ..." "გაგზავნა და დარეკვა" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ცხრ." %1$s ცხრ. %2$d წაუკითხავი ერთეული. 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 45df334f9..327532abc 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 @@ "Қоңыраумен жіберу үшін ескертпе теріңіз ..." "ЖІБЕРУ ЖӘНЕ ҚОҢЫРАУ ШАЛУ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s қойындысы." %1$s қойындысы. %2$d оқылмаған элемент. 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 8d4ba2aff..503016792 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 @@ "វាយបញ្ចូលចំណាំដែលត្រូវផ្ញើជាមួយការហៅទូរស័ព្ទ ..." "ផ្ញើ & ហៅ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "ផ្ទាំង %1$s។" ផ្ទាំង %1$s។ ធាតុមិនទាន់​អាន %2$d 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 0dfdaa609..446e078a6 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 @@ "ಕರೆ ಕಳುಹಿಸಲು ಟಿಪ್ಪಣಿಯನ್ನು ಟೈಪ್ ಮಾಡಿ ..." "ಕಳುಹಿಸು ಮತ್ತು ಕರೆಮಾಡು" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ಟ್ಯಾಬ್." %1$s ಟ್ಯಾಬ್. %2$d ಓದದಿರುವ ಐಟಂಗಳು. 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 13edcc11e..4c2bd4f62 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 @@ "통화에 함께 전송할 메모를 입력하세요..." "보내기 및 전화 걸기" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s 탭" %1$s 탭. 읽지 않은 항목 %2$d 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 43e12e77e..e5bab4550 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 @@ "Чалуу менен жөнөтүлө турган кыска жазууну териңиз …" "ЖӨНӨТҮҮ ЖАНА ЧАЛУУ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "\"%1$s\" өтмөгү." \"%1$s\" өтмөгү. %2$d нерсе окула элек. 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 d98ec8b90..c649539d4 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 @@ "ພິມ​ບັນ​ທຶກ ເພື່ອ​ສົ່ງ​ກັບ​ການ​ໂທ ..." "ສົ່ງ ແລະ ໂທ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "ແຖບ %1$s." ແຖບ %1$s. %2$d ລາຍການບໍ່ທັນໄດ້ອ່ານ. 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 53773b25a..b74bd99ee 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 @@ "Įveskite užrašą, kurį galima išsiųsti skambinant..." "SIŲSTI IR SKAMBINTI" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Skirtukas „%1$s“." Skirtukas „%1$s“. %2$d neskaitytas elementas. 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 cc5690176..c09a27f5d 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 @@ "Ierakstiet piezīmi, ko nosūtīt ar zvanu..." "SŪTĪT UN ZVANĪT" "%1$s no %2$s" - "%1$s: %2$s" + "%1$s • %2$s" "Cilne “%1$s”" Cilne “%1$s”. %2$d nelasīti vienumi. 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 f6a4af8b1..da1530f2a 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 @@ "Напишете белешка да се испрати со повикот..." "ИСПРАТИ И ПОВИКАЈ" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Картичка %1$s." Картичка %1$s. %2$d непрочитана ставка. 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 dfc21ffb9..7e927499a 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 @@ "കോളിനൊപ്പം അയയ്ക്കുന്നതിന് ഒരു കുറിപ്പ് ടൈപ്പുചെയ്യുക ..." "അയയ്‌ക്കുകയും വിളിക്കുകയും ചെയ്യുക" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ടാബ്." %1$s ടാബ്. %2$d വായിക്കാത്ത ഇനങ്ങൾ. 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 a5c2afd2c..f0a8c9245 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 @@ "Дуудлаганд илгээх тэмдэглэл бичнэ үү..." "ИЛГЭЭХ, ДУУДЛАГА" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s таб." %1$s таб. %2$d уншаагүй зүйл. 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 d632bb1be..96504c7bc 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 @@ "कॉलसह पाठविण्‍यासाठी एक टीप टाइप करा..." "पाठवा आणि कॉल करा" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s टॅब." %1$s टॅब. %2$d न वाचलेला आयटम. 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 24ff73767..60d2b7acc 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 @@ "Taip nota untuk dihantar dengan panggilan…" "HANTAR & PANGGIL" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Tab %1$s." Tab %1$s. %2$d item belum dibaca. 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 c0cb020f8..d81e8950d 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 @@ "ခေါ်ဆိုမှုဖြင့် ပေးပို့ရန် မှတ်စုတစ်ခု ရိုက်ပါ ..." "ပေးပို့ပြီး ခေါ်ပါ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s တဘ်။" %1$s တဘ်။ မဖတ်ရသေးသည့် အရာ %2$d ခု။ 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 80507fce1..7085cb381 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 @@ "Skriv et notat du vil sende med anropet …" "SEND OG RING" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s-fanen." %1$s-fanen. %2$d uleste elementer. 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 2459c8aba..1f54232af 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 @@ "यस कलसँग पठाउन एक टिप्पणी टाइप गर्नुहोस्" "पठाउनुहोस् र कल गर्नुहोस्" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ट्याब।" %1$s ट्याब। %2$d नपढिएका वस्तुहरू। 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 c92249b61..9d41899f1 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 @@ "Typ een notitie om te verzenden met de oproep..." "VERZENDEN EN BELLEN" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Tabblad %1$s." Tabblad %1$s. %2$d ongelezen items. 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 80507fce1..7085cb381 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 @@ "Skriv et notat du vil sende med anropet …" "SEND OG RING" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s-fanen." %1$s-fanen. %2$d uleste elementer. 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 6401993c2..c96510cc7 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 @@ "ਕਾਲ ਦੇ ਨਾਲ ਭੇਜਣ ਲਈ ਕੋਈ ਨੋਟ ਟਾਈਪ ਕਰੋ ..." "ਭੇਜੋ ਅਤੇ ਕਾਲ ਕਰੋ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ਟੈਬ।" %1$s ਟੈਬ। %2$d ਅਣ-ਪੜ੍ਹੀਆਂ ਆਈਟਮਾਂ। 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 c10bb1fd9..c4e65f556 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 @@ "Wpisz notatkę, którą chcesz wysłać razem z połączeniem..." "WYŚLIJ I ZADZWOŃ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Karta %1$s." Karta %1$s. %2$d nieprzeczytane elementy. 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 95bbb0b5d..ee2b87c68 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 @@ "Escreva uma nota para enviar com a chamada..." "ENVIAR E LIGAR" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Guia \"%1$s\"." Guia \"%1$s\". %2$d item não lido. 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 c3b50e0bb..44bba149d 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 @@ "Escrever uma nota para enviar com a chamada..." "ENVIAR E LIGAR" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Separador %1$s." %1$s tab. %2$d unread items. 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 95bbb0b5d..ee2b87c68 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 @@ "Escreva uma nota para enviar com a chamada..." "ENVIAR E LIGAR" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Guia \"%1$s\"." Guia \"%1$s\". %2$d item não lido. 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 da0d5da95..358e7af93 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 @@ "Introduceți o notă ca să o trimiteți împreună cu apelul..." "TRIMITEȚI ȘI APELAȚI" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Fila %1$s" Fila %1$s. %2$d elemente necitite. 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 f4e1d847b..3442f2c60 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 @@ "Введите текст…" "ОТПРАВИТЬ И ПОЗВОНИТЬ" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Вкладка \"%1$s\"." Вкладка %1$s. %2$d непрочитанный элемент. 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 fc121f6af..72ca32d9c 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 @@ "ඇමතුම සමග යැවීමට සටහනක් ටයිප් කරන්න ..." "යවන්න සහ අමතන්න" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ටැබය." %1$s ටැබය. නොකියවූ අයිතම %2$d. 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 90a4752fd..b85f63f1b 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 @@ "Napíšte poznámku, ktorá sa odošle s hovorom..." "ODOSLAŤ A VOLAŤ" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Karta %1$s." Karta %1$s. %2$d neprečítané položky. 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 ef2e1a3f0..f4c39dea9 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 @@ "Vnesite zapisek, ki ga želite poslati s klicem ..." "POŠLJI IN KLIČI" "%1$s/%2$s" - "%1$s: %2$s" + "%1$s%2$s" "Zavihek »%1$s«." Zavihek »%1$s«. %2$d neprebran element. 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 301149201..553c46df5 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 @@ "Shkruaj një shënim për të dërguar një telefonatë..." "DËRGO DHE TELEFONO" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Skeda %1$s." Skeda %1$s. %2$d artikuj të palexuar. 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 25adf7bc5..99997e656 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 @@ "Унесите белешку коју ћете послати уз позив..." "ПОШАЉИ И ПОЗОВИ" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Картица %1$s." Картица %1$s. %2$d непрочитана ставка. 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 ee748a42c..79e56e504 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 @@ "Gör en anteckning som skickas när du ringer …" "SKICKA OCH RING" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "Fliken %1$s." Fliken %1$s. %2$d olästa poster. 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 7bd08353f..4d30271f3 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 @@ "Andika dokezo litakaloambatana na simu utakayopiga ..." "TUMA na UPIGE SIMU" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Kichupo cha %1$s." Kichupo cha %1$s. Vipengee %2$d havijasomwa. 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 d5b3f9305..e041a999d 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 @@ "அழைப்புடன் சேர்த்து அனுப்ப, குறிப்பை உள்ளிடவும்..." "அனுப்பி அழை" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s தாவல்." %1$s தாவல். படிக்காதவை (%2$d). 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 4126ddc0f..6dd0e2143 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 @@ "కాల్‌తో పాటు పంపడానికి గమనికను టైప్ చేయండి ..." "పంపు & కాల్ చేయి" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ట్యాబ్." %1$s ట్యాబ్. %2$d చదవని అంశాలు. 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 2d52f34fb..b979e7424 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 @@ "พิมพ์โน้ตเพื่อส่งพร้อมการโทร ..." "ส่งและโทร" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "แท็บ %1$s" แท็บ %1$s ยังไม่อ่าน %2$d รายการ 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 30978db4e..62caef820 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 @@ "Mag-type ng isang tala na ipadadala kasama ng tawag ..." "IPADALA AT TAWAGAN" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Tab ng %1$s." Tab ng %1$s. %2$d hindi pa nababasang 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 c18097aac..ce3c109d2 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 @@ "Çağrıyla göndermek için bir not yazın..." "GÖNDER VE ARA" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s sekmesi." %1$s sekmesi. %2$d okunmamış öğe. 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 94d09db12..f6d1e4731 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 @@ "Введіть нотатку, яку хочете надіслати під час дзвінка…" "ЗАТЕЛЕФОНУВАТИ Й НАДІСЛАТИ" "%1$s з %2$s" - "%1$s %2$s" + "%1$s%2$s" "Вкладка \"%1$s\"." Вкладка \"%1$s\". %2$d непрочитаний елемент. 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 75c761f2d..b34c78d95 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 @@ "کال کے ساتھ بھیجنے کیلئے ایک نوٹ ٹائپ کریں…" "بھیجیں اور کال کریں" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ٹیب۔" %1$s ٹیب۔ %2$d بغیر پڑھی ہوئی آئٹمز۔ 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 69b07d135..44bfd9999 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 @@ "Qo‘ng‘iroqqa qo‘shib yuborish uchun izoh yozing ..." "YUBORISH va QO‘NG‘IROQ QILISH" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ichki oynasi." %1$s ichki oynasi. %2$d ta o‘qilmagan narsa. 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 c1675738a..dadb78a7d 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 @@ "Nhập ghi chú để gửi kèm cuộc gọi..." "GỬI và GỌI" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "Tab %1$s." Tab %1$s. %2$d mục chưa đọc. 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 367b78f1c..161638e66 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 @@ "输入要在拨打电话时发送的备注…" "发送并拨打电话" "%1$s / %2$s" - "%1$s%2$s" + "%1$s%2$s" "%1$s标签。" %1$s标签。%2$d 项未读内容。 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 733d9809c..9952ab626 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 @@ "撥號時可以書寫和傳送筆記…" "傳送和撥號" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "「%1$s」標籤。" %1$s」標籤 (%2$d 個未讀取項目)。 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 af7843ffd..e5ad61fac 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 @@ "輸入可在撥號時傳送的備註..." "傳送並撥打" "%1$s/%2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s分頁。" %1$s分頁。%2$d 個未讀項目。 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 5906ee175..adca1399c 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 @@ "Thayipha inothi ukuthumela nekholi ..." "THUMELA FUTHI YENZA IKHOLI" "%1$s / %2$s" - "%1$s %2$s" + "%1$s%2$s" "%1$s ithebhu." %1$s ithebhu. %2$d izinto ezingafundiwe. diff --git a/java/com/android/contacts/common/res/values/ids.xml b/java/com/android/contacts/common/res/values/ids.xml index 65969c43f..871f5a636 100644 --- a/java/com/android/contacts/common/res/values/ids.xml +++ b/java/com/android/contacts/common/res/values/ids.xml @@ -27,5 +27,4 @@ - diff --git a/java/com/android/contacts/common/res/values/strings.xml b/java/com/android/contacts/common/res/values/strings.xml index 371d5b424..9ac9fef28 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 --> %1$s / %2$s - - %1$s %2$s + + %1$s%2$s %1$s tab. diff --git a/java/com/android/contacts/common/res/values/styles.xml b/java/com/android/contacts/common/res/values/styles.xml index bb19afe82..07d4a0225 100644 --- a/java/com/android/contacts/common/res/values/styles.xml +++ b/java/com/android/contacts/common/res/values/styles.xml @@ -43,6 +43,7 @@ background and text color. See also android:style/Widget.Holo.TextView.ListSepar wrap_content @dimen/list_section_divider_min_height + @drawable/list_section_divider_holo_custom @style/DirectoryHeaderStyle center_vertical 8dip diff --git a/java/com/android/contacts/common/util/AccountFilterUtil.java b/java/com/android/contacts/common/util/AccountFilterUtil.java index 25f937c5e..18743c65e 100644 --- a/java/com/android/contacts/common/util/AccountFilterUtil.java +++ b/java/com/android/contacts/common/util/AccountFilterUtil.java @@ -16,15 +16,35 @@ package com.android.contacts.common.util; +import android.app.Activity; import android.content.Context; +import android.content.Intent; +import android.util.Log; import android.view.View; import android.widget.TextView; import com.android.contacts.common.R; import com.android.contacts.common.list.ContactListFilter; +import com.android.contacts.common.list.ContactListFilterController; /** Utility class for account filter manipulation. */ public class AccountFilterUtil { + public static final String EXTRA_CONTACT_LIST_FILTER = "contactListFilter"; + private static final String TAG = AccountFilterUtil.class.getSimpleName(); + + /** + * Find TextView with the id "account_filter_header" and set correct text for the account filter + * header. + * + * @param filterContainer View containing TextView with id "account_filter_header" + * @return true when header text is set in the call. You may use this for conditionally showing or + * hiding this entire view. + */ + public static boolean updateAccountFilterTitleForPeople( + View filterContainer, ContactListFilter filter, boolean showTitleForAllAccounts) { + return updateAccountFilterTitle(filterContainer, filter, showTitleForAllAccounts, false); + } + /** * Similar to {@link #updateAccountFilterTitleForPeople(View, ContactListFilter, boolean, * boolean)}, but for Phone UI. @@ -58,6 +78,8 @@ 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) { @@ -75,9 +97,29 @@ 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 51f65f280..20f916a3f 100644 --- a/java/com/android/contacts/common/util/BitmapUtil.java +++ b/java/com/android/contacts/common/util/BitmapUtil.java @@ -24,6 +24,8 @@ import android.graphics.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 { @@ -88,6 +90,30 @@ public class BitmapUtil { return BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options); } + /** + * 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. * diff --git a/java/com/android/contacts/common/util/ContactDisplayUtils.java b/java/com/android/contacts/common/util/ContactDisplayUtils.java index ff22f2880..1586784db 100644 --- a/java/com/android/contacts/common/util/ContactDisplayUtils.java +++ b/java/com/android/contacts/common/util/ContactDisplayUtils.java @@ -16,20 +16,21 @@ package com.android.contacts.common.util; +import static android.provider.ContactsContract.CommonDataKinds.Phone; + import android.content.Context; import android.content.res.Resources; -import android.provider.ContactsContract.CommonDataKinds.Phone; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.Spannable; import android.text.SpannableString; import android.text.TextUtils; import android.text.style.TtsSpan; +import android.util.Log; import android.util.Patterns; import com.android.contacts.common.R; import com.android.contacts.common.compat.PhoneNumberUtilsCompat; import com.android.contacts.common.preference.ContactsPreferences; -import com.android.dialer.common.LogUtil; import java.util.Objects; /** Methods for handling various contact data labels. */ @@ -37,6 +38,7 @@ public 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. @@ -72,9 +74,9 @@ public class ContactDisplayUtils { } else { resId = getPhoneLabelResourceId(type); if (interactionType != INTERACTION_CALL) { - LogUtil.e( - "ContactDisplayUtils.getLabelForCallOrSms", - "un-recognized interaction type: " + Log.e( + TAG, + "Un-recognized interaction type: " + interactionType + ". Defaulting to ContactDisplayUtils.INTERACTION_CALL."); } diff --git a/java/com/android/contacts/common/util/DateUtils.java b/java/com/android/contacts/common/util/DateUtils.java index 09d52bce8..1935d727a 100644 --- a/java/com/android/contacts/common/util/DateUtils.java +++ b/java/com/android/contacts/common/util/DateUtils.java @@ -16,11 +16,252 @@ package com.android.contacts.common.util; +import android.content.Context; +import android.text.format.DateFormat; import android.text.format.Time; +import java.text.ParsePosition; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.Locale; +import java.util.TimeZone; /** Utility methods for processing dates. */ public class DateUtils { + public static final TimeZone UTC_TIMEZONE = TimeZone.getTimeZone("UTC"); + + /** + * When parsing a date without a year, the system assumes 1970, which wasn't a leap-year. Let's + * add a one-off hack for that day of the year + */ + public static final String NO_YEAR_DATE_FEB29TH = "--02-29"; + + // Variations of ISO 8601 date format. Do not change the order - it does affect the + // result in ambiguous cases. + private static final SimpleDateFormat[] DATE_FORMATS = { + CommonDateUtils.FULL_DATE_FORMAT, + CommonDateUtils.DATE_AND_TIME_FORMAT, + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'", Locale.US), + new SimpleDateFormat("yyyyMMdd", Locale.US), + new SimpleDateFormat("yyyyMMdd'T'HHmmssSSS'Z'", Locale.US), + new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'", Locale.US), + new SimpleDateFormat("yyyyMMdd'T'HHmm'Z'", Locale.US), + }; + + static { + for (SimpleDateFormat format : DATE_FORMATS) { + format.setLenient(true); + format.setTimeZone(UTC_TIMEZONE); + } + CommonDateUtils.NO_YEAR_DATE_FORMAT.setTimeZone(UTC_TIMEZONE); + } + + /** + * Parses the supplied string to see if it looks like a date. + * + * @param string The string representation of the provided date + * @param mustContainYear If true, the string is parsed as a date containing a year. If false, the + * string is parsed into a valid date even if the year field is missing. + * @return A Calendar object corresponding to the date if the string is successfully parsed. If + * not, null is returned. + */ + public static Calendar parseDate(String string, boolean mustContainYear) { + ParsePosition parsePosition = new ParsePosition(0); + Date date; + if (!mustContainYear) { + final boolean noYearParsed; + // Unfortunately, we can't parse Feb 29th correctly, so let's handle this day seperately + if (NO_YEAR_DATE_FEB29TH.equals(string)) { + return getUtcDate(0, Calendar.FEBRUARY, 29); + } else { + synchronized (CommonDateUtils.NO_YEAR_DATE_FORMAT) { + date = CommonDateUtils.NO_YEAR_DATE_FORMAT.parse(string, parsePosition); + } + noYearParsed = parsePosition.getIndex() == string.length(); + } + + if (noYearParsed) { + return getUtcDate(date, true); + } + } + for (int i = 0; i < DATE_FORMATS.length; i++) { + SimpleDateFormat f = DATE_FORMATS[i]; + synchronized (f) { + parsePosition.setIndex(0); + date = f.parse(string, parsePosition); + if (parsePosition.getIndex() == string.length()) { + return getUtcDate(date, false); + } + } + } + return null; + } + + private static final Calendar getUtcDate(Date date, boolean noYear) { + final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US); + calendar.setTime(date); + if (noYear) { + calendar.set(Calendar.YEAR, 0); + } + return calendar; + } + + private static final Calendar getUtcDate(int year, int month, int dayOfMonth) { + final Calendar calendar = Calendar.getInstance(UTC_TIMEZONE, Locale.US); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + calendar.set(Calendar.MONTH, month); + calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); + return calendar; + } + + public static boolean isYearSet(Calendar cal) { + // use the Calendar.YEAR field to track whether or not the year is set instead of + // Calendar.isSet() because doing Calendar.get() causes Calendar.isSet() to become + // true irregardless of what the previous value was + return cal.get(Calendar.YEAR) > 1; + } + + /** + * Same as {@link #formatDate(Context context, String string, boolean longForm)}, with longForm + * set to {@code true} by default. + * + * @param context Valid context + * @param string String representation of a date to parse + * @return Returns the same date in a cleaned up format. If the supplied string does not look like + * a date, return it unchanged. + */ + public static String formatDate(Context context, String string) { + return formatDate(context, string, true); + } + + /** + * Parses the supplied string to see if it looks like a date. + * + * @param context Valid context + * @param string String representation of a date to parse + * @param longForm If true, return the date formatted into its long string representation. If + * false, return the date formatted using its short form representation (i.e. 12/11/2012) + * @return Returns the same date in a cleaned up format. If the supplied string does not look like + * a date, return it unchanged. + */ + public static String formatDate(Context context, String string, boolean longForm) { + if (string == null) { + return null; + } + + string = string.trim(); + if (string.length() == 0) { + return string; + } + final Calendar cal = parseDate(string, false); + + // we weren't able to parse the string successfully so just return it unchanged + if (cal == null) { + return string; + } + + final boolean isYearSet = isYearSet(cal); + final java.text.DateFormat outFormat; + if (!isYearSet) { + outFormat = getLocalizedDateFormatWithoutYear(context); + } else { + outFormat = + longForm ? DateFormat.getLongDateFormat(context) : DateFormat.getDateFormat(context); + } + synchronized (outFormat) { + outFormat.setTimeZone(UTC_TIMEZONE); + return outFormat.format(cal.getTime()); + } + } + + public static boolean isMonthBeforeDay(Context context) { + char[] dateFormatOrder = DateFormat.getDateFormatOrder(context); + for (int i = 0; i < dateFormatOrder.length; i++) { + if (dateFormatOrder[i] == 'd') { + return false; + } + if (dateFormatOrder[i] == 'M') { + return true; + } + } + return false; + } + + /** + * Returns a SimpleDateFormat object without the year fields by using a regular expression to + * eliminate the year in the string pattern. In the rare occurence that the resulting pattern + * cannot be reconverted into a SimpleDateFormat, it uses the provided context to determine + * whether the month field should be displayed before the day field, and returns either "MMMM dd" + * or "dd MMMM" converted into a SimpleDateFormat. + */ + public static java.text.DateFormat getLocalizedDateFormatWithoutYear(Context context) { + final String pattern = + ((SimpleDateFormat) SimpleDateFormat.getDateInstance(java.text.DateFormat.LONG)) + .toPattern(); + // Determine the correct regex pattern for year. + // Special case handling for Spanish locale by checking for "de" + final String yearPattern = + pattern.contains("de") ? "[^Mm]*[Yy]+[^Mm]*" : "[^DdMm]*[Yy]+[^DdMm]*"; + try { + // Eliminate the substring in pattern that matches the format for that of year + return new SimpleDateFormat(pattern.replaceAll(yearPattern, "")); + } catch (IllegalArgumentException e) { + return new SimpleDateFormat(DateUtils.isMonthBeforeDay(context) ? "MMMM dd" : "dd MMMM"); + } + } + + /** + * Given a calendar (possibly containing only a day of the year), returns the earliest possible + * anniversary of the date that is equal to or after the current point in time if the date does + * not contain a year, or the date converted to the local time zone (if the date contains a year. + * + * @param target The date we wish to convert(in the UTC time zone). + * @return If date does not contain a year (year < 1900), returns the next earliest anniversary + * that is after the current point in time (in the local time zone). Otherwise, returns the + * adjusted Date in the local time zone. + */ + public static Date getNextAnnualDate(Calendar target) { + final Calendar today = Calendar.getInstance(); + today.setTime(new Date()); + + // Round the current time to the exact start of today so that when we compare + // today against the target date, both dates are set to exactly 0000H. + today.set(Calendar.HOUR_OF_DAY, 0); + today.set(Calendar.MINUTE, 0); + today.set(Calendar.SECOND, 0); + today.set(Calendar.MILLISECOND, 0); + + final boolean isYearSet = isYearSet(target); + final int targetYear = target.get(Calendar.YEAR); + final int targetMonth = target.get(Calendar.MONTH); + final int targetDay = target.get(Calendar.DAY_OF_MONTH); + final boolean isFeb29 = (targetMonth == Calendar.FEBRUARY && targetDay == 29); + final GregorianCalendar anniversary = new GregorianCalendar(); + // Convert from the UTC date to the local date. Set the year to today's year if the + // there is no provided year (targetYear < 1900) + anniversary.set(!isYearSet ? today.get(Calendar.YEAR) : targetYear, targetMonth, targetDay); + // If the anniversary's date is before the start of today and there is no year set, + // increment the year by 1 so that the returned date is always equal to or greater than + // today. If the day is a leap year, keep going until we get the next leap year anniversary + // Otherwise if there is already a year set, simply return the exact date. + if (!isYearSet) { + int anniversaryYear = today.get(Calendar.YEAR); + if (anniversary.before(today) || (isFeb29 && !anniversary.isLeapYear(anniversaryYear))) { + // If the target date is not Feb 29, then set the anniversary to the next year. + // Otherwise, keep going until we find the next leap year (this is not guaranteed + // to be in 4 years time). + do { + anniversaryYear += 1; + } while (isFeb29 && !anniversary.isLeapYear(anniversaryYear)); + anniversary.set(anniversaryYear, targetMonth, targetDay); + } + } + return anniversary.getTime(); + } + /** * Determine the difference, in days between two dates. Uses similar logic as the {@link * android.text.format.DateUtils.getRelativeTimeSpanString} method. diff --git a/java/com/android/contacts/common/util/MaterialColorMapUtils.java b/java/com/android/contacts/common/util/MaterialColorMapUtils.java index bd32faa51..a2d9847ec 100644 --- a/java/com/android/contacts/common/util/MaterialColorMapUtils.java +++ b/java/com/android/contacts/common/util/MaterialColorMapUtils.java @@ -21,6 +21,7 @@ import android.content.res.TypedArray; import android.os.Parcel; import android.os.Parcelable; import android.os.Trace; +import com.android.contacts.common.R; public class MaterialColorMapUtils { @@ -34,6 +35,13 @@ 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 new file mode 100644 index 000000000..ae3275d14 --- /dev/null +++ b/java/com/android/contacts/common/util/NameConverter.java @@ -0,0 +1,242 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.contacts.common.util; + +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.net.Uri; +import android.net.Uri.Builder; +import android.provider.ContactsContract; +import android.provider.ContactsContract.CommonDataKinds.StructuredName; +import android.text.TextUtils; +import com.android.contacts.common.model.dataitem.StructuredNameDataItem; +import java.util.Map; +import java.util.TreeMap; + +/** + * Utility class for converting between a display name and structured name (and vice-versa), via + * calls to the contact provider. + */ +public class NameConverter { + + /** The array of fields that comprise a structured name. */ + public static final String[] STRUCTURED_NAME_FIELDS = + new String[] { + StructuredName.PREFIX, + StructuredName.GIVEN_NAME, + StructuredName.MIDDLE_NAME, + StructuredName.FAMILY_NAME, + StructuredName.SUFFIX + }; + + /** + * Converts the given structured name (provided as a map from {@link StructuredName} fields to + * corresponding values) into a display name string. + * + *

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 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). + * + *

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 displayNameToStructuredName( + Context context, String displayName) { + Map structuredName = new TreeMap(); + 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). + * + *

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 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 7986d1081..b944b9867 100644 --- a/java/com/android/contacts/common/util/StopWatch.java +++ b/java/com/android/contacts/common/util/StopWatch.java @@ -16,7 +16,7 @@ package com.android.contacts.common.util; -import com.android.dialer.common.LogUtil; +import android.util.Log; import java.util.ArrayList; /** A {@link StopWatch} records start, laps and stop, and print them to logcat. */ @@ -37,6 +37,11 @@ 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()); @@ -71,6 +76,25 @@ public class StopWatch { sb.append(" "); last = current; } - LogUtil.v(TAG, sb.toString()); + Log.v(TAG, sb.toString()); + } + + private static class NullStopWatch extends StopWatch { + + public static final NullStopWatch INSTANCE = new NullStopWatch(); + + public NullStopWatch() { + super(null); + } + + @Override + public void lap(String lapLabel) { + // noop + } + + @Override + public void stopAndLog(String TAG, int timeThresholdToLog) { + // noop + } } } diff --git a/java/com/android/contacts/common/util/TelephonyManagerUtils.java b/java/com/android/contacts/common/util/TelephonyManagerUtils.java index e4c2c6373..b664268ca 100644 --- a/java/com/android/contacts/common/util/TelephonyManagerUtils.java +++ b/java/com/android/contacts/common/util/TelephonyManagerUtils.java @@ -33,4 +33,13 @@ 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/contacts/common/util/TrafficStatsTags.java b/java/com/android/contacts/common/util/TrafficStatsTags.java new file mode 100644 index 000000000..b0e7fb583 --- /dev/null +++ b/java/com/android/contacts/common/util/TrafficStatsTags.java @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.contacts.common.util; + +public class TrafficStatsTags { + + public static final int CONTACT_PHOTO_DOWNLOAD_TAG = 0x0001; + public static final int TAG_MAX = 0x9999; +} diff --git a/java/com/android/dialer/about/AndroidManifest.xml b/java/com/android/dialer/about/AndroidManifest.xml index 85c750826..e9489ce1e 100644 --- a/java/com/android/dialer/about/AndroidManifest.xml +++ b/java/com/android/dialer/about/AndroidManifest.xml @@ -1,6 +1,6 @@ - + + diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml index 4200082a6..de4b48c51 100644 --- a/java/com/android/dialer/app/AndroidManifest.xml +++ b/java/com/android/dialer/app/AndroidManifest.xml @@ -39,7 +39,6 @@ - diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java index b5e615075..6e2c6be7d 100644 --- a/java/com/android/dialer/app/DialtactsActivity.java +++ b/java/com/android/dialer/app/DialtactsActivity.java @@ -91,7 +91,6 @@ import com.android.dialer.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; @@ -107,7 +106,6 @@ 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; @@ -156,7 +154,6 @@ 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"; @@ -165,7 +162,6 @@ 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; @@ -184,9 +180,6 @@ 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; @@ -269,7 +262,6 @@ 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 @@ -285,8 +277,6 @@ public class DialtactsActivity extends TransactionSafeActivity mSmartDialSearchFragment.setQueryString(mSearchQuery); } else if (mRegularSearchFragment != null && mRegularSearchFragment.isVisible()) { mRegularSearchFragment.setQueryString(mSearchQuery); - } else if (mNewSearchFragment != null) { - mNewSearchFragment.setQuery(mSearchQuery); } } @@ -640,8 +630,6 @@ 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; @@ -797,7 +785,6 @@ public class DialtactsActivity extends TransactionSafeActivity if (animate) { mFloatingActionButtonController.scaleOut(); - maybeEnterSearchUi(); } else { mFloatingActionButtonController.setVisible(false); maybeEnterSearchUi(); @@ -1070,11 +1057,7 @@ public class DialtactsActivity extends TransactionSafeActivity } final String tag; - boolean useNewSearch = - ConfigProviderBindings.get(this).getBoolean("enable_new_search_fragment", false); - if (useNewSearch) { - tag = TAG_NEW_SEARCH_FRAGMENT; - } else if (smartDialSearch) { + if (smartDialSearch) { tag = TAG_SMARTDIAL_SEARCH_FRAGMENT; } else { tag = TAG_REGULAR_SEARCH_FRAGMENT; @@ -1084,52 +1067,40 @@ 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 (useNewSearch) { - fragment = new NewSearchFragment(); - } else if (smartDialSearch) { + if (smartDialSearch) { fragment = new SmartDialSearchFragment(); } else { fragment = Bindings.getLegacy(this).newRegularSearchFragment(); - ((SearchFragment) fragment) - .setOnTouchListener( - (v, event) -> { - // Show the FAB when the user touches the lists fragment and the soft - // keyboard is hidden. - hideDialpadFragment(true, false); - v.performClick(); - return false; - }); + fragment.setOnTouchListener( + new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + // Show the FAB when the user touches the lists fragment and the soft + // keyboard is hidden. + hideDialpadFragment(true, false); + showFabInSearchUi(); + v.performClick(); + return false; + } + }); } transaction.add(R.id.dialtacts_frame, fragment, tag); } else { - // TODO: if this is a transition from dialpad to searchbar, animate fragment - // down, and vice versa. Perhaps just add a coordinator behavior with the search bar. transaction.show(fragment); } - // DialtactsActivity will provide the options menu fragment.setHasOptionsMenu(false); - // Will show empty list if P13nRanker is not enabled. Else, re-ranked list by the ranker. - if (!useNewSearch) { - ((SearchFragment) fragment) - .setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery()); - } else { - // TODO: add p13n ranker to new search. - } - - if (!smartDialSearch && !useNewSearch) { - ((SearchFragment) fragment).setQueryString(query); - } else if (useNewSearch) { - ((NewSearchFragment) fragment).setQuery(query); + fragment.setShowEmptyListForNullQuery(mP13nRanker.shouldShowEmptyListForNullQuery()); + if (!smartDialSearch) { + fragment.setQueryString(query); } transaction.commit(); @@ -1175,9 +1146,6 @@ 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(); @@ -1509,7 +1477,6 @@ 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 20222d68c..85c2ea650 100644 --- a/java/com/android/dialer/app/SpecialCharSequenceMgr.java +++ b/java/com/android/dialer/app/SpecialCharSequenceMgr.java @@ -47,6 +47,7 @@ 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; @@ -298,7 +299,9 @@ public class SpecialCharSequenceMgr { : R.string.meid; List deviceIds = new ArrayList(); - if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1) { + if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1 + && CompatUtils.isMethodAvailable( + TelephonyManagerCompat.TELEPHONY_MANAGER_CLASS, "getDeviceId", Integer.TYPE)) { for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) { String deviceId = telephonyManager.getDeviceId(slot); if (!TextUtils.isEmpty(deviceId)) { diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java index 3357ee2f1..2f8a58c8a 100644 --- a/java/com/android/dialer/app/calllog/CallLogAdapter.java +++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java @@ -86,7 +86,6 @@ import com.android.dialer.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; @@ -106,12 +105,11 @@ 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 = true; + public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false; protected final Activity mActivity; protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter; @@ -119,7 +117,6 @@ 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; @@ -139,8 +136,6 @@ public class CallLogAdapter extends GroupingListAdapter private final CallLogAlertManager mCallLogAlertManager; public ActionMode mActionMode = null; - public boolean selectAllMode = false; - public boolean deselectAllMode = false; private final SparseArray selectedItems = new SparseArray<>(); private final ActionMode.Callback mActionModeCallback = @@ -149,16 +144,10 @@ 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; } @@ -176,6 +165,7 @@ public class CallLogAdapter extends GroupingListAdapter if (selectedItems.size() > 0) { showDeleteSelectedItemsDialog(); } + mode.finish(); return true; } else { return false; @@ -185,16 +175,8 @@ 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(); } }; @@ -220,7 +202,6 @@ public class CallLogAdapter extends GroupingListAdapter @Override public void onClick(DialogInterface dialog, int id) { deleteSelectedItems(voicemailsToDeleteOnConfirmation); - mActionMode.finish(); dialog.cancel(); } }); @@ -277,15 +258,22 @@ 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) { - uncheckMarkCallLogEntry(viewHolder, id); + selectedItems.delete(id); + viewHolder.checkBoxView.setVisibility(View.GONE); + viewHolder.quickContactView.setVisibility(View.VISIBLE); } else { - checkMarkCallLogEntry(viewHolder); + viewHolder.quickContactView.setVisibility(View.GONE); + viewHolder.checkBoxView.setVisibility(View.VISIBLE); + selectedItems.put(getVoicemailId(viewHolder.voicemailUri), viewHolder.voicemailUri); + } + + if (selectedItems.size() == 0) { + mActionMode.finish(); + return; } + mActionMode.setTitle(Integer.toString(selectedItems.size())); return; } @@ -324,48 +312,6 @@ 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); @@ -412,7 +358,6 @@ public class CallLogAdapter extends GroupingListAdapter Activity activity, ViewGroup alertContainer, CallFetcher callFetcher, - MultiSelectRemoveView multiSelectRemoveView, CallLogCache callLogCache, ContactInfoCache contactInfoCache, VoicemailPlaybackPresenter voicemailPlaybackPresenter, @@ -422,7 +367,6 @@ public class CallLogAdapter extends GroupingListAdapter mActivity = activity; mCallFetcher = callFetcher; - mMultiSelectRemoveView = multiSelectRemoveView; mVoicemailPlaybackPresenter = voicemailPlaybackPresenter; if (mVoicemailPlaybackPresenter != null) { mVoicemailPlaybackPresenter.setOnVoicemailDeletedListener(this); @@ -482,14 +426,6 @@ public class CallLogAdapter extends GroupingListAdapter public void onSaveInstanceState(Bundle outState) { outState.putInt(KEY_EXPANDED_POSITION, mCurrentlyExpandedPosition); outState.putLong(KEY_EXPANDED_ROW_ID, mCurrentlyExpandedRowId); - - ArrayList listOfSelectedItems = new ArrayList<>(); - if (selectedItems.size() > 0) { - for (int i = 0; i < selectedItems.size(); i++) { - listOfSelectedItems.add(Integer.toString(selectedItems.keyAt(i))); - } - } - outState.putStringArrayList(KEY_ACTION_MODE, listOfSelectedItems); } public void onRestoreInstanceState(Bundle savedInstanceState) { @@ -498,18 +434,6 @@ 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 listOfSelectedItems = - savedInstanceState.getStringArrayList(KEY_ACTION_MODE); - if (!listOfSelectedItems.isEmpty()) { - for (int i = 0; i < listOfSelectedItems.size(); i++) { - String voicemailId = listOfSelectedItems.get(i); - int id = Integer.parseInt(voicemailId); - selectedItems.put(id, voicemailId); - } - updateActionBar(); - } } } @@ -635,8 +559,6 @@ public 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); } @@ -669,8 +591,6 @@ public class CallLogAdapter extends GroupingListAdapter return; } CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder; - updateCheckMarkedStatusOfEntry(views); - views.isLoaded = false; int groupSize = getGroupSize(position); CallDetailsEntries callDetailsEntries = createCallDetailsEntries(c, groupSize); @@ -689,17 +609,6 @@ 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, @@ -1008,12 +917,6 @@ 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); @@ -1022,6 +925,7 @@ 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 @@ -1288,41 +1192,9 @@ 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 1571c1aef..6e4b23fc1 100644 --- a/java/com/android/dialer/app/calllog/CallLogFragment.java +++ b/java/com/android/dialer/app/calllog/CallLogFragment.java @@ -49,16 +49,15 @@ import com.android.dialer.app.contactinfo.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 @@ -67,7 +66,6 @@ import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClicked public class CallLogFragment extends Fragment implements CallLogQueryHandler.Listener, CallLogAdapter.CallFetcher, - CallLogAdapter.MultiSelectRemoveView, OnEmptyViewActionButtonClickedListener, FragmentCompat.OnRequestPermissionsResultCallback, CallLogModalAlertManager.Listener { @@ -319,7 +317,6 @@ public class CallLogFragment extends Fragment getActivity(), mRecyclerView, this, - this, CallLogCache.getCallLogCache(getActivity()), mContactInfoCache, getVoicemailPlaybackPresenter(), @@ -382,16 +379,6 @@ public class CallLogFragment extends Fragment super.onPause(); } - @Override - public void onStart() { - super.onStart(); - CequintCallerIdManager cequintCallerIdManager = null; - if (CequintCallerIdManager.isCequintCallerIdEnabled(getContext())) { - cequintCallerIdManager = CequintCallerIdManager.createInstanceForCallLog(); - } - mContactInfoCache.setCequintCallerIdManager(cequintCallerIdManager); - } - @Override public void onStop() { updateOnTransition(); @@ -464,8 +451,6 @@ 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); } } @@ -604,16 +589,6 @@ 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 a9a4d1d42..1daccd1a4 100644 --- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java +++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java @@ -17,7 +17,6 @@ package com.android.dialer.app.calllog; import android.app.Activity; -import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.res.Resources; @@ -32,6 +31,7 @@ import android.support.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,13 +44,10 @@ 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; @@ -61,16 +58,15 @@ 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; @@ -255,20 +251,6 @@ 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); @@ -485,7 +467,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_vd_theme_24); + primaryActionButtonView.setImageResource(R.drawable.quantum_ic_call_white_24); primaryActionButtonView.setVisibility(View.VISIBLE); } else { primaryActionButtonView.setTag(null); @@ -735,14 +717,19 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder getContactType()); } - private @ContactType int getContactType() { - return LetterTileDrawable.getContactTypeFromPrimitives( - mCallLogCache.isVoicemailNumber(accountHandle, number), - isSpam, - mCachedNumberLookupService != null - && mCachedNumberLookupService.isBusiness(info.sourceType), - numberPresentation, - false); + private int getContactType() { + int contactType = ContactPhotoManager.TYPE_DEFAULT; + if (mCallLogCache.isVoicemailNumber(accountHandle, number)) { + contactType = ContactPhotoManager.TYPE_VOICEMAIL; + } else if (isSpam) { + contactType = ContactPhotoManager.TYPE_SPAM; + } else if (mCachedNumberLookupService != null + && mCachedNumberLookupService.isBusiness(info.sourceType)) { + contactType = ContactPhotoManager.TYPE_BUSINESS; + } else if (numberPresentation == TelecomManager.PRESENTATION_RESTRICTED) { + contactType = ContactPhotoManager.TYPE_GENERIC_AVATAR; + } + return contactType; } @Override @@ -808,40 +795,19 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder mVoicemailPlaybackPresenter.shareVoicemail(); } else { logCallLogAction(view.getId()); - final IntentProvider intentProvider = (IntentProvider) view.getTag(); - if (intentProvider == null) { - return; - } - - final Intent intent = intentProvider.getIntent(mContext); - // See IntentProvider.getCallDetailIntentProvider() for why this may be null. - if (intent == null) { - return; - } - - // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer - // intents need to be started using startActivityForResult instead of the usual startActivity - String packageName = intent.getPackage(); - if (packageName != null && packageName.equals(getLightbringer().getPackageName(mContext))) { - startLightbringerActivity(intent); - } else { - DialerUtils.startActivityWithErrorToast(mContext, intent); + if (intentProvider != null) { + final Intent intent = intentProvider.getIntent(mContext); + // See IntentProvider.getCallDetailIntentProvider() for why this may be null. + if (intent != null) { + DialerUtils.startActivityWithErrorToast(mContext, intent); + } } } } - private void startLightbringerActivity(Intent intent) { - try { - Activity activity = (Activity) mContext; - activity.startActivityForResult(intent, DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER); - } catch (ActivityNotFoundException e) { - Toast.makeText(mContext, R.string.activity_not_available, Toast.LENGTH_SHORT).show(); - } - } - - private DialerContact buildContact() { - DialerContact.Builder contact = DialerContact.newBuilder(); + private CallComposerContact buildContact() { + CallComposerContact.Builder contact = CallComposerContact.newBuilder(); contact.setPhotoId(info.photoId); if (info.photoUri != null) { contact.setPhotoUri(info.photoUri.toString()); diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java index 1f45f7086..58fe6fa2c 100644 --- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java +++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java @@ -225,18 +225,14 @@ public class DefaultVoicemailNotifier implements Worker { int count, String voicemailNumber, PendingIntent callVoicemailIntent, - PendingIntent voicemailSettingIntent, - boolean isRefresh) { + PendingIntent voicemailSettingIntent) { Assert.isNotNull(phoneAccountHandle); Assert.checkArgument(BuildCompat.isAtLeastO()); TelephonyManager telephonyManager = context .getSystemService(TelephonyManager.class) .createForPhoneAccountHandle(phoneAccountHandle); - if (telephonyManager == null) { - LogUtil.e(TAG, "invalid PhoneAccountHandle, ignoring"); - return; - } + Assert.isNotNull(telephonyManager); LogUtil.i(TAG, "Creating legacy voicemail notification"); PersistableBundle carrierConfig = telephonyManager.getCarrierConfig(); @@ -279,8 +275,7 @@ public class DefaultVoicemailNotifier implements Worker { .setSound(telephonyManager.getVoicemailRingtoneUri(phoneAccountHandle)) .setOngoing( carrierConfig.getBoolean( - CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL)) - .setOnlyAlertOnce(isRefresh); + CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL)); if (telephonyManager.isVoicemailVibrationEnabled(phoneAccountHandle)) { builder.setDefaults(Notification.DEFAULT_VIBRATE); diff --git a/java/com/android/dialer/app/calllog/IntentProvider.java b/java/com/android/dialer/app/calllog/IntentProvider.java index 9c3c18b60..a94c6781e 100644 --- a/java/com/android/dialer/app/calllog/IntentProvider.java +++ b/java/com/android/dialer/app/calllog/IntentProvider.java @@ -24,14 +24,12 @@ import android.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; @@ -70,7 +68,6 @@ 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) @@ -83,8 +80,6 @@ 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); } }; @@ -117,7 +112,7 @@ public abstract class IntentProvider { * @return The call details intent provider. */ public static IntentProvider getCallDetailIntentProvider( - CallDetailsEntries callDetailsEntries, DialerContact contact) { + CallDetailsEntries callDetailsEntries, CallComposerContact contact) { return new IntentProvider() { @Override public Intent getIntent(Context context) { diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java index 6728dfb38..7645a333e 100644 --- a/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java +++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCache.java @@ -19,6 +19,7 @@ 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; /** @@ -45,7 +46,10 @@ public abstract class CallLogCache { /** Return the most compatible version of the TelecomCallLogCache. */ public static CallLogCache getCallLogCache(Context context) { - return new CallLogCacheLollipopMr1(context); + if (CompatUtils.isClassAvailable("android.telecom.PhoneAccountHandle")) { + return new CallLogCacheLollipopMr1(context); + } + return new CallLogCacheLollipop(context); } public void reset() { diff --git a/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java b/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java new file mode 100644 index 000000000..78aaa4193 --- /dev/null +++ b/java/com/android/dialer/app/calllog/calllogcache/CallLogCacheLollipop.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.dialer.app.calllog.calllogcache; + +import android.content.Context; +import android.telecom.PhoneAccount; +import android.telecom.PhoneAccountHandle; +import android.telephony.PhoneNumberUtils; +import android.text.TextUtils; + +/** + * This is a compatibility class for the CallLogCache for versions of dialer before Lollipop Mr1 + * (the introduction of phone accounts). + * + *

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 32bbf06b5..e561b5607 100644 --- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java +++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java @@ -24,7 +24,6 @@ import android.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; @@ -56,7 +55,6 @@ public class ContactInfoCache { private final OnContactInfoChangedListener mOnContactInfoChangedListener; private final BlockingQueue mUpdateRequests; private final Handler mHandler; - private CequintCallerIdManager mCequintCallerIdManager; private QueryThread mContactInfoQueryThread; private volatile boolean mRequestProcessingDisabled = false; @@ -97,10 +95,6 @@ public class ContactInfoCache { mHandler = new InnerHandler(new WeakReference<>(this)); } - public void setCequintCallerIdManager(CequintCallerIdManager cequintCallerIdManager) { - mCequintCallerIdManager = cequintCallerIdManager; - } - public ContactInfo getValue( String number, String countryIso, @@ -166,7 +160,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(mCequintCallerIdManager, info, request.number); + mContactInfoHelper.updateFromCequintCallerId(info, request.number); long time = SystemClock.elapsedRealtime() - start; LogUtil.d( "ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time); diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java index c0b26c91a..e9d57b399 100644 --- a/java/com/android/dialer/app/dialpad/DialpadFragment.java +++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java @@ -29,7 +29,6 @@ import android.content.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; @@ -85,7 +84,6 @@ 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; @@ -628,14 +626,6 @@ 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 d98395ec7..f71517a44 100644 --- a/java/com/android/dialer/app/filterednumber/NumbersAdapter.java +++ b/java/com/android/dialer/app/filterednumber/NumbersAdapter.java @@ -28,7 +28,6 @@ import android.widget.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; @@ -99,8 +98,8 @@ public class NumbersAdapter extends SimpleCursorAdapter { info.lookupUri == null ? null : UriUtils.getLookupKeyFromUri(info.lookupUri); final int contactType = mContactInfoHelper.isBusiness(info.sourceType) - ? LetterTileDrawable.TYPE_BUSINESS - : LetterTileDrawable.TYPE_DEFAULT; + ? ContactPhotoManager.TYPE_BUSINESS + : ContactPhotoManager.TYPE_DEFAULT; final DefaultImageRequest request = new DefaultImageRequest(displayName, lookupKey, contactType, true /* isCircular */); badge.assignContactUri(info.lookupUri); diff --git a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java index c208fd57d..1cdeb2175 100644 --- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java +++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindings.java @@ -40,7 +40,6 @@ 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 19fa1a70c..6e32843ba 100644 --- a/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java +++ b/java/com/android/dialer/app/legacybindings/DialerLegacyBindingsStub.java @@ -34,7 +34,6 @@ public class DialerLegacyBindingsStub implements DialerLegacyBindings { Activity activity, ViewGroup alertContainer, CallLogAdapter.CallFetcher callFetcher, - CallLogAdapter.MultiSelectRemoveView multiSelectRemoveView, CallLogCache callLogCache, ContactInfoCache contactInfoCache, VoicemailPlaybackPresenter voicemailPlaybackPresenter, @@ -44,7 +43,6 @@ 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 f5fdb9e2d..04609970a 100644 --- a/java/com/android/dialer/app/list/AllContactsFragment.java +++ b/java/com/android/dialer/app/list/AllContactsFragment.java @@ -38,14 +38,12 @@ import com.android.contacts.common.list.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 @@ -151,8 +149,6 @@ public class AllContactsFragment extends ContactEntryListFragment 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 04927cf7a..537f488d5 100644 --- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java +++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java @@ -19,7 +19,6 @@ 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; @@ -30,6 +29,7 @@ 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,6 +50,7 @@ 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; @@ -58,6 +59,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { super(context); mCountryIso = GeoUtil.getCurrentCountryIso(context); + mVideoCallingEnabled = CallUtil.isVideoEnabled(context); } @Override @@ -108,7 +110,8 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { return convertView; } else { final ContactListItemView v = - new ContactListItemView(getContext(), null, mIsImsVideoEnabled); + new ContactListItemView( + getContext(), null, mVideoCallingEnabled, isCallAndShareEnabled()); assignShortcutToView(v, shortcutType); return v; } @@ -122,7 +125,8 @@ 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(mIsImsVideoEnabled); + view.setSupportVideoCallIcon(mVideoCallingEnabled); + view.setSupportCallAndShareIcon(isCallAndShareEnabled()); return view; } @@ -167,7 +171,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { private void assignShortcutToView(ContactListItemView v, int shortcutType) { final CharSequence text; - final Drawable drawable; + final int drawableId; final Resources resources = getContext().getResources(); final String number = getFormattedQueryString(); switch (shortcutType) { @@ -177,39 +181,34 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { resources, R.string.search_shortcut_call_number, mBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR)); - drawable = getContext().getResources().getDrawable(R.drawable.quantum_ic_call_vd_theme_24); + drawableId = R.drawable.ic_search_phone; break; case SHORTCUT_CREATE_NEW_CONTACT: text = resources.getString(R.string.search_shortcut_create_new_contact); - drawable = - getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24); - drawable.setAutoMirrored(true); + drawableId = R.drawable.ic_search_add_contact; break; case SHORTCUT_ADD_TO_EXISTING_CONTACT: text = resources.getString(R.string.search_shortcut_add_to_contact); - drawable = - getContext().getResources().getDrawable(R.drawable.quantum_ic_person_add_vd_theme_24); + drawableId = R.drawable.quantum_ic_person_white_24; break; case SHORTCUT_SEND_SMS_MESSAGE: text = resources.getString(R.string.search_shortcut_send_sms_message); - drawable = - getContext().getResources().getDrawable(R.drawable.quantum_ic_message_vd_theme_24); + drawableId = R.drawable.quantum_ic_message_white_24; break; case SHORTCUT_MAKE_VIDEO_CALL: text = resources.getString(R.string.search_shortcut_make_video_call); - drawable = - getContext().getResources().getDrawable(R.drawable.quantum_ic_videocam_vd_theme_24); + drawableId = R.drawable.quantum_ic_videocam_white_24; break; case SHORTCUT_BLOCK_NUMBER: text = resources.getString(R.string.search_shortcut_block_number); - drawable = - getContext().getResources().getDrawable(R.drawable.ic_not_interested_googblue_24dp); + drawableId = R.drawable.ic_not_interested_googblue_24dp; break; default: throw new IllegalArgumentException("Invalid shortcut type"); } - v.setDrawable(drawable); + v.setDrawableResource(drawableId); v.setDisplayName(text); + v.setPhotoPosition(super.getPhotoPosition()); v.setAdjustSelectionBoundsEnabled(false); } diff --git a/java/com/android/dialer/app/list/DialerViewPager.java b/java/com/android/dialer/app/list/DialerViewPager.java deleted file mode 100644 index ae99f0521..000000000 --- a/java/com/android/dialer/app/list/DialerViewPager.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.dialer.app.list; - -import android.content.Context; -import android.support.v4.view.ViewPager; -import android.util.AttributeSet; -import android.view.MotionEvent; - -/** Class that handles enabling/disabling swiping between @{ViewPagerTabs}. */ -public class DialerViewPager extends ViewPager { - - private boolean enableSwipingPages; - - public DialerViewPager(Context context, AttributeSet attributeSet) { - super(context, attributeSet); - enableSwipingPages = true; - } - - @Override - public boolean onInterceptTouchEvent(MotionEvent event) { - if (enableSwipingPages) { - return super.onInterceptTouchEvent(event); - } - - return false; - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - if (enableSwipingPages) { - return super.onTouchEvent(event); - } - - return false; - } - - public void setEnableSwipingPages(boolean enabled) { - enableSwipingPages = enabled; - } -} diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java index 32501d556..8dd52a9d4 100644 --- a/java/com/android/dialer/app/list/ListsFragment.java +++ b/java/com/android/dialer/app/list/ListsFragment.java @@ -31,23 +31,19 @@ import android.os.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; @@ -65,28 +61,24 @@ 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 OnPageChangeListener, Listener, OnClickListener { + implements ViewPager.OnPageChangeListener, CallLogQueryHandler.Listener { private static final String TAG = "ListsFragment"; - private DialerViewPager mViewPager; + private ViewPager mViewPager; private ViewPagerTabs mViewPagerTabs; private DialtactsPagerAdapter mAdapter; private RemoveView mRemoveView; private View mRemoveViewContent; - private View mMultiSelectSelectAllViewContent; - private TextView mSelectUnselectAllViewText; - private ImageView mSelectUnselectAllIcon; private Fragment mCurrentPage; private SharedPreferences mPrefs; private boolean mHasFetchedVoicemailStatus; - private boolean selectAllMode; private boolean mShowVoicemailTabAfterVoicemailStatusIsFetched; private VoicemailStatusHelper mVoicemailStatusHelper; private final ArrayList mOnPageChangeListeners = new ArrayList<>(); /** The position of the currently selected tab. */ private int mTabIndex = TAB_INDEX_SPEED_DIAL; - private boolean mPaused; + private CallLogQueryHandler mCallLogQueryHandler; private final ContentObserver mVoicemailStatusObserver = @@ -171,7 +163,7 @@ 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 = (DialerViewPager) parentView.findViewById(R.id.lists_pager); + mViewPager = (ViewPager) parentView.findViewById(R.id.lists_pager); mAdapter = new DialtactsPagerAdapter( getContext(), @@ -188,15 +180,9 @@ 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())) { @@ -205,7 +191,7 @@ public class ListsFragment extends Fragment .registerContentObserver( VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver); } else { - LogUtil.w("ListsFragment.onCreateView", "no voicemail read permissions"); + LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions"); } Trace.endSection(); @@ -399,13 +385,6 @@ 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 @@ -445,28 +424,4 @@ 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 1ddc0f4e1..40fe74565 100644 --- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java +++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java @@ -50,11 +50,12 @@ import com.android.contacts.common.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. */ @@ -429,7 +430,7 @@ public class OldSpeedDialFragment extends Fragment void showAllContactsTab(); } - class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks { + private class ContactTileLoaderListener implements LoaderManager.LoaderCallbacks { @Override public CursorLoader onCreateLoader(int id, Bundle args) { @@ -459,17 +460,24 @@ public class OldSpeedDialFragment extends Fragment private class ContactTileAdapterListener implements ContactTileView.Listener { @Override - public void onContactSelected( - Uri contactUri, Rect targetRect, CallSpecificAppData callSpecificAppData) { + public void onContactSelected(Uri contactUri, Rect targetRect) { if (mPhoneNumberPickerActionListener != null) { + CallSpecificAppData callSpecificAppData = + CallSpecificAppData.newBuilder() + .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL) + .build(); mPhoneNumberPickerActionListener.onPickDataUri( contactUri, false /* isVideoCall */, callSpecificAppData); } } @Override - public void onCallNumberDirectly(String phoneNumber, CallSpecificAppData callSpecificAppData) { + public void onCallNumberDirectly(String phoneNumber) { if (mPhoneNumberPickerActionListener != null) { + CallSpecificAppData callSpecificAppData = + CallSpecificAppData.newBuilder() + .setCallInitiationType(CallInitiationType.Type.SPEED_DIAL) + .build(); mPhoneNumberPickerActionListener.onPickPhoneNumber( phoneNumber, false /* isVideoCall */, callSpecificAppData); } diff --git a/java/com/android/dialer/app/list/PhoneFavoriteListView.java b/java/com/android/dialer/app/list/PhoneFavoriteListView.java index f4f395ff0..9516f0611 100644 --- a/java/com/android/dialer/app/list/PhoneFavoriteListView.java +++ b/java/com/android/dialer/app/list/PhoneFavoriteListView.java @@ -1,5 +1,6 @@ /* - * Copyright (C) 2017 The Android Open Source Project + * Copyright (C) 2012 Google Inc. + * Licensed to The Android Open Source Project. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,6 +24,7 @@ import android.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; @@ -31,7 +33,6 @@ 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 @@ -39,14 +40,14 @@ public class PhoneFavoriteListView extends GridView public static final String LOG_TAG = PhoneFavoriteListView.class.getSimpleName(); final int[] mLocationOnScreen = new int[2]; - private static final long SCROLL_HANDLER_DELAY_MILLIS = 5; - private static final int DRAG_SCROLL_PX_UNIT = 25; - private static final float DRAG_SHADOW_ALPHA = 0.7f; + private final long SCROLL_HANDLER_DELAY_MILLIS = 5; + private final int DRAG_SCROLL_PX_UNIT = 25; + private final float DRAG_SHADOW_ALPHA = 0.7f; /** * {@link #mTopScrollBound} and {@link mBottomScrollBound} will be offseted to the top / bottom by * {@link #getHeight} * {@link #BOUND_GAP_RATIO} pixels. */ - private static final float BOUND_GAP_RATIO = 0.2f; + private final float BOUND_GAP_RATIO = 0.2f; private float mTouchSlop; private int mTopScrollBound; @@ -66,6 +67,7 @@ public class PhoneFavoriteListView extends GridView } }; private boolean mIsDragScrollerRunning = false; + private int mTouchDownForDragStartX; private int mTouchDownForDragStartY; private Bitmap mDragShadowBitmap; private ImageView mDragShadowOverlay; @@ -96,7 +98,7 @@ public class PhoneFavoriteListView extends GridView } public PhoneFavoriteListView(Context context, AttributeSet attrs) { - this(context, attrs, 0); + this(context, attrs, -1); } public PhoneFavoriteListView(Context context, AttributeSet attrs, int defStyle) { @@ -119,6 +121,7 @@ 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(); } @@ -284,7 +287,7 @@ public class PhoneFavoriteListView extends GridView try { bitmap = cache.copy(Bitmap.Config.ARGB_8888, false); } catch (final OutOfMemoryError e) { - LogUtil.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e); + Log.w(LOG_TAG, "Failed to copy bitmap from Drawing cache", e); bitmap = null; } } diff --git a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java index 40f23ea6f..5a18d039b 100644 --- a/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java +++ b/java/com/android/dialer/app/list/PhoneFavoriteSquareTileView.java @@ -26,8 +26,6 @@ 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 { @@ -89,8 +87,6 @@ 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 835b448bd..db89cf3dc 100644 --- a/java/com/android/dialer/app/list/PhoneFavoriteTileView.java +++ b/java/com/android/dialer/app/list/PhoneFavoriteTileView.java @@ -18,22 +18,16 @@ 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 @@ -48,6 +42,7 @@ 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. @@ -60,8 +55,6 @@ 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); @@ -90,8 +83,6 @@ 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; @@ -122,35 +113,16 @@ 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), - callSpecificAppData.build()); + getLookupUri(), MoreContactUtils.getTargetRectFromView(PhoneFavoriteTileView.this)); } else { // When you tap a frequently-called contact, you want to // call them at the number that you usually talk to them // at (i.e. the one displayed in the UI), regardless of // whether that's their default number. - mListener.onCallNumberDirectly(mPhoneNumberString, callSpecificAppData.build()); + mListener.onCallNumberDirectly(mPhoneNumberString); } } }; @@ -161,7 +133,7 @@ public abstract class PhoneFavoriteTileView extends ContactTileView { return new DefaultImageRequest( displayName, lookupKey, - LetterTileDrawable.TYPE_DEFAULT, + ContactPhotoManager.TYPE_DEFAULT, DEFAULT_IMAGE_LETTER_SCALE, DEFAULT_IMAGE_LETTER_OFFSET, false); diff --git a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java index ce8598261..c692ecac7 100644 --- a/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java +++ b/java/com/android/dialer/app/list/PhoneFavoritesTileAdapter.java @@ -30,6 +30,7 @@ import android.provider.ContactsContract.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; @@ -40,11 +41,6 @@ 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; @@ -194,14 +190,6 @@ 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); @@ -274,22 +262,6 @@ 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++; @@ -302,47 +274,6 @@ 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 */ @@ -416,7 +347,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop @Override public void notifyDataSetChanged() { if (DEBUG) { - LogUtil.v(TAG, "notifyDataSetChanged"); + Log.v(TAG, "notifyDataSetChanged"); } super.notifyDataSetChanged(); } @@ -424,7 +355,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements OnDragDrop @Override public View getView(int position, View convertView, ViewGroup parent) { if (DEBUG) { - LogUtil.v(TAG, "get view for " + position); + Log.v(TAG, "get view for " + String.valueOf(position)); } PhoneFavoriteTileView tileView = null; @@ -524,9 +455,8 @@ 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) { - LogUtil.e(TAG, "Exception thrown when pinning contacts", e); + Log.e(TAG, "Exception thrown when pinning contacts", e); } } } @@ -679,7 +609,6 @@ 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 4f032032f..02896793b 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 1d566c5a0..3b917db43 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, 0); + this(context, attrs, -1); } public RemoveView(Context context, AttributeSet attrs, int defStyle) { diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java index 7f2d17650..fcf8236e3 100644 --- a/java/com/android/dialer/app/list/SearchFragment.java +++ b/java/com/android/dialer/app/list/SearchFragment.java @@ -34,18 +34,19 @@ import android.widget.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 { @@ -79,6 +80,7 @@ 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 fc21c8bc3..eb1508c72 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 7c6df9448..ca93da0de 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 @@ - + + + + diff --git a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml b/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml deleted file mode 100644 index 968713376..000000000 --- a/java/com/android/dialer/app/res/drawable/ic_wifi_calling.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - \ 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 59d13636a..5f8068067 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"/> - - - - - 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 422c52991..17a45208d 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"/> - - + android:src="@drawable/quantum_ic_check_circle_googblue_24" /> 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 504638348..d3a553130 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 @@ + android:text="@string/description_call_log_call_action"/> + android:src="@drawable/ic_call_and_share"/> + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + android:id="@+id/spacer" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" + android:background="#00000000"/> + android:layout_width="match_parent" + android:layout_height="@dimen/shadow_length" + android:background="@drawable/shadow_fade_up"/> + 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/dialpad_floating_action_button_margin_bottom" + android:layout_width="match_parent" + android:layout_height="@dimen/floating_action_button_margin_bottom" + android:layout_alignParentBottom="true"/> + app:elevation="@dimen/floating_action_button_translation_z" + app:backgroundTint="@color/dialpad_fab_green"/> diff --git a/java/com/android/dialer/app/res/layout/empty_content_view.xml b/java/com/android/dialer/app/res/layout/empty_content_view.xml new file mode 100644 index 000000000..96a6a0262 --- /dev/null +++ b/java/com/android/dialer/app/res/layout/empty_content_view.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + 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 1d2047982..e245aaca0 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 @@ + 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"> + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + 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: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"/> + + @@ -58,80 +58,41 @@ This is required since drag and drop event is only sent to views are visible when drag starts. --> + 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_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_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_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"/> - - - - - - - - - - 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 bb6a5f7de..c02512d80 100644 --- a/java/com/android/dialer/app/res/layout/search_edittext.xml +++ b/java/com/android/dialer/app/res/layout/search_edittext.xml @@ -29,7 +29,7 @@ android:padding="@dimen/search_box_search_icon_padding" android:importantForAccessibility="no" android:scaleType="center" - android:src="@drawable/quantum_ic_search_vd_theme_24" + android:src="@drawable/quantum_ic_search_white_24" android:tint="@color/searchbox_icon_tint"/> - "Keer terug na oproep wat besig is" "Voeg oproep by" "Inkomende oproepe" - "Gaan tans grootmaathandelingmodus in" - "Het grootmaathandelingmodus verlaat" - "Het %1$s gekies" - "Het %1$s ontkies" "Speel stemboodskap" "Bekyk kontak %1$s" "Bel %1$s" @@ -103,13 +99,11 @@ "Stemboodskap" "%s sek." "%s min. %s sek." - "Kanselleer grootmaathandelingmodus" "stemboodskap" "stemboodskappe" "Ja" "Nee" "Vee geselekteerde %1$s uit?" - "%1$s gekies" @string/call_log_header_today "%1$s om %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Laai tans van SIM-kaart af…" "SIM-kaartkontakte" + "Geen kontakte-program beskikbaar nie" "Stemsoektog is nie beskikbaar nie" "Kan nie \'n foonoproep maak nie want die Foon-program is gedeaktiveer." "Deursoek kontakte" @@ -150,9 +145,10 @@ "%s nuwe gemiste oproepe" "Daar is nog niemand op jou spoedbel nie" "Voeg \'n gunsteling by" + "Jy het nog nie enige kontakte nie" + "Voeg \'n kontak by" "Raak aan prent om al die nommers te sien of raak en hou om te herorganiseer" "Verwyder" - "Kies alles" "Video-oproep" "Stuur \'n boodskap" "Oproepbesonderhede" @@ -217,9 +213,11 @@ "Geblokkeerde nommers" "%1$s is reeds geblokkeer." "Oproeprekeninge" + "Skakel aan" "Stel toestemmings" "Skakel die kontaktetoestemming aan om spoedbel te aktiveer." "Skakel die foontoestemming aan om jou oproeprekord te sien." + "Skakel die kontaktetoestemming aan om jou kontakte te sien." "Skakel die foontoestemming aan om na jou stemboodskapdiens te gaan." "Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek." "Skakel die foontoestemming aan om \'n oproep te maak." 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 7f4a622d7..82303019c 100644 --- a/java/com/android/dialer/app/res/values-am/strings.xml +++ b/java/com/android/dialer/app/res/values-am/strings.xml @@ -85,10 +85,6 @@ "በመካሄድ ላይ ወዳለው ጥሪ ተመለስ" "ጥሪ ያክሉ" "ገቢ ጥሪዎች" - "ወደ የጅምላ እርምጃ ሁነታ በመግባት ላይ" - "ከጅምላ እርምጃ ሁነታ ለቀው ወጥተዋል" - "%1$s ተመርጧል" - "%1$s አልተመረጠም" "የድምፅ መልዕክት አጫውት" "ዕውቂያ %1$s ዕይ" "ጥሪ %1$s" @@ -103,13 +99,11 @@ "የድምፅ መልዕክት" "%s ሰከንድ" "%s ደቂቃ %s ሴከ" - "የጅምላ እርምጃ ሁነታ ይቅር" "የድምፅ መልዕክት" "የድምፅ መልዕክቶች" "አዎ" "አይ" "የተመረጠው %1$s ይሰረዝ?" - "%1$s ተመርጠዋል" @string/call_log_header_today "%1$s %2$s ላይ" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "ከSIM ካርድ ላይ በመጫን ላይ..." "የSIM ካርድ ዕውቂያዎች" + "ምንም የእውቂያዎች መተግበሪያ አይገኝም" "የድምጽ ፍለጋ አይገኝም" "የስልክ መተግበሪያው ስለተሰናከለ የስልክ ጥሪ ማድረግ አይቻልም።" "ዕውቅያዎችን ፈልግ" @@ -150,9 +145,10 @@ "%s አዲስ ያልተመለሱ ጥሪዎች" "በፈጥኖ መደወያ ላይ ገና ማንም የለዎትም" "ተወዳጅ አክል" + "ገና ምንም እውቂያዎች የሉዎትም" + "ዕውቂያ አክል" "ሁሉንም ቁጥሮች ለማየት ምስል ይንኩ ወይም ዳግም ለመደርደር ነክተው ይያዙት" "አስወግድ" - "ሁሉንም ምረጥ" "የቪዲዮ ጥሪ" "መልእክት ላክ" "የጥሪ ዝርዝሮች" @@ -217,9 +213,11 @@ "የታገዱ ቁጥሮች" "%1$s ቀድሞውኑ ታግዷል።" "የመደወያ መለያዎች" + "አብራ" "ፍቃዶችን አዋቅር" "ፈጥኖ መደወያን ለማንቃት የእውቂያዎች ፍቃዱን ያብሩ።" "የጥሪ ምዝግብ ማስታወአሽዎን ለማየት የስልክ ፍቃዱን ያብሩ።" + "የእርስዎን እውቂያዎች ለማየት የእውቂያዎች ፍቃዱን ያብሩ።" "የድምፅ መልዕክትዎን ለመድረስ የስልክ ፍቃዱን ያብሩ።" "የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።" "ስልክ ለመደወል የስልክ ፍቃዱን ያብሩ።" 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 3687d0bcb..e4dfb4d9e 100644 --- a/java/com/android/dialer/app/res/values-ar/strings.xml +++ b/java/com/android/dialer/app/res/values-ar/strings.xml @@ -89,10 +89,6 @@ "عودة إلى المكالمة الجارية" "إضافة مكالمة" "المكالمات الواردة" - "يتم الدخول إلى وضع الإجراء المجمَّع" - "تمت مغادرة وضع الإجراء المجمَّع" - "تم تحديد %1$s" - "تم إلغاء تحديد %1$s" "تشغيل البريد الصوتي" "عرض جهة الاتصال %1$s" "الاتصال بـ %1$s" @@ -107,13 +103,11 @@ "البريد الصوتي" "%s ثانية" "%s دقيقة %s ثانية" - "إلغاء وضع الإجراءات المجمَّع" "البريد الصوتي" "رسائل البريد الصوتي" "نعم" "لا" "حذف رسائل %1$s المحددة؟" - "تم تحديد %1$s" @string/call_log_header_today "%1$s في %2$s" "%1$02d:%2$02d" @@ -126,6 +120,7 @@ "MEID" "‏جارٍ التحميل من شريحة SIM…" "‏شريحة SIM وجهات الاتصال" + "لا يتوفر تطبيق لجهات الاتصال" "البحث الصوتي غير متاح" "يتعذر إجراء مكالمة هاتفية نظرًا لأنه تم تعطيل تطبيق الهاتف." "البحث في جهات الاتصال" @@ -154,9 +149,10 @@ "%s من المكالمات الجديدة الفائتة" "لم تتم إضافة أية جهة اتصال إلى قائمة الاتصال السريع حتى الآن" "إضافة مفضلة" + "ليست لديك أية جهات اتصال حتى الآن" + "إضافة جهة اتصال" "المس الصورة للاطلاع على جميع الأرقام أو المس مع الاستمرار لإعادة الترتيب" "إزالة" - "تحديد الكل" "مكالمة فيديو" "إرسال رسالة" "تفاصيل المكالمة" @@ -225,9 +221,11 @@ "الأرقام المحظورة" "تم حظر %1$s." "حسابات الاتصال" + "تشغيل" "تعيين الأذونات" "لتمكين الاتصال السريع، شغِّل إذن جهات الاتصال." "للاطلاع على سجل المكالمات، شغِّل إذن الهاتف." + "للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال." "للوصول إلى البريد الصوتي، شغِّل إذن الهاتف." "للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال." "لإجراء مكالمة، شغِّل إذن الهاتف." 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 b6681c9e2..62bc117ba 100644 --- a/java/com/android/dialer/app/res/values-az/strings.xml +++ b/java/com/android/dialer/app/res/values-az/strings.xml @@ -85,10 +85,6 @@ "Davam edən zəngə qayıdın" "Zəng əlavə edin" "Gələn zənglər" - "Toplu əməliyyat rejiminə daxil olunur" - "Toplu əməliyyat rejimi tərk edilir" - "%1$s seçildi" - "%1$s seçilmədi" "Səsli məktubu oxudun" "%1$s adlı kontakta baxın" "Zəng %1$s" @@ -103,13 +99,11 @@ "Səsli poçt" "%s san" "%s dəq %s san" - "Qrup əməliyyatları rejimini ləğv edin" "səsli e-məktub" "səsli e-məktublar" "Bəli" "Xeyr" "Seçilmiş %1$s silinsin?" - "%1$s seçilib" @string/call_log_header_today "%1$s tarixində %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM kartdan yüklənir..." "SIM kart kontaktları" + "Əlaqələr proqramı mövcud deyil" "Səsli axtarış mövcud deyil" "Telefon tətbiqi deaktiv edildiyinə görə telefon zəngi etmək mümkün deyil." "Kontakt axtarın" @@ -150,9 +145,10 @@ "%s yeni buraxılmış zəng" "Hələ sürətli zəng siyahınızda hec kim yoxdur" "Sevimlilərə əlavə edin" + "Hələ heç bir kontaktınız yoxdur" + "Kontakt əlavə edin" "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" "Yığışdır" - "Hamısını seçin" "Video zəng" "Mesaj göndərin" "Zəng detalları" @@ -217,9 +213,11 @@ "Bloklanmış nömrələr" "%1$s artıq bloklanıb." "Hesabların çağrılması" + "Aktiv edin" "İcazələri quraşdırın" "Sürətli yığımı aktivləşdirmək üçün, Kontakt icazələrini aktivləşdirin." "Çağrı jurnalınızı görmək üçün Telefon icazəsini aktivləşdirin." + "Kontaktlarınızı görmək üçün Kontakt icazəsini aktivləşdirin." "Səsli poçta daxil olmaq üçün, Telefon icazəsini aktivləşdirin." "Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin." "Zəng etmək üçün, Telefon icazəsini aktivləşdirin." 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 40c0886c8..9df729108 100644 --- a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml @@ -86,10 +86,6 @@ "Vrati se na poziv koji je u toku" "Dodaj poziv" "Dolazni pozivi" - "Ulazite u režim grupnih radnji" - "Izašli ste iz režima grupnih radnji" - "Izabrano je %1$s" - "Opozvan je izbor %1$s" "Puštanje govorne pošte" "Prikaži kontakt %1$s" "Pozovi %1$s" @@ -104,13 +100,11 @@ "Govorna pošta" "%s sek" "%s min %s sek" - "Otkažite režim grupnih radnji" "govornu poruku" "govorne poruke" "Da" "Ne" "Želite li da izbrišete izabranu(e) %1$s?" - "Izabranih: %1$s" @string/call_log_header_today "%1$s u %2$s" "%1$02d:%2$02d" @@ -123,6 +117,7 @@ "MEID" "Učitava se sa SIM kartice…" "Kontakti na SIM kartici" + "Nema dostupne aplikacije za kontakte" "Glasovna pretraga nije dostupna" "Nije moguće uputiti telefonski poziv jer je aplikacija Telefon onemogućena." "Pretraži kontakte" @@ -151,9 +146,10 @@ "Novih propuštenih poziva: %s" "Nemate nijedan kontakt na brzom biranju" "Dodaj omiljen kontakt" + "Još uvek nemate nijedan kontakt" + "Dodaj kontakt" "Dodirnite sliku da biste videli sve brojeve ili dodirnite i zadržite da biste im promenili raspored" "Ukloni" - "Izaberi sve" "Video poziv" "Pošalji poruku" "Detalji poziva" @@ -219,9 +215,11 @@ "Blokirani brojevi" "%1$s je već blokiran." "Nalozi za pozivanje" + "Uključi" "Podesi dozvole" "Da biste omogućili brzo biranje, uključite dozvolu za Kontakte." "Da biste videli evidenciju poziva, uključite dozvolu za Telefon." + "Da biste videli kontakte, uključite dozvolu za Kontakte." "Da biste pristupili govornoj pošti, uključite dozvolu za Telefon." "Da biste pretražili kontakte, uključite dozvole za Kontakte." "Da biste uputili poziv, uključite dozvolu za Telefon." 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 f2ad3342b..aac3df2bd 100644 --- a/java/com/android/dialer/app/res/values-be/strings.xml +++ b/java/com/android/dialer/app/res/values-be/strings.xml @@ -87,10 +87,6 @@ "Звярнуцца да бягучага выкліку" "Дадаць выклік" "Уваходныя выклікі" - "Уваход у рэжым групавога дзеяння" - "Выхад з рэжыму групавога дзеяння" - "Выбрана: %1$s" - "Выбар скасаваны: %1$s" "Прайграць паведамленне галасавой пошты" "Прагледзець кантакт %1$s" "Выклікаць карыстальнiка %1$s" @@ -105,13 +101,11 @@ "Галасавая пошта" "%s с" "%s хв %s с" - "Скасаваць рэжым пакетных дзеянняў" "галасавая пошта" "галасавая пошта" "Так" "Не" "Выдаліць вылучанае: %1$s?" - "Выбрана: %1$s" @string/call_log_header_today "%1$s у %2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "MEID" "Загрузка з SIM-карты..." "Кантакты SIM-карты" + "Праграмы для аперацый з кантактамі няма" "Галасавы пошук недаступны" "Немагчыма зрабіць выклік па тэлефоне, таму што праграма Тэлефон была адключана." "Пошук кантактаў" @@ -152,9 +147,10 @@ "Новых прапушчаных выклікаў: %s" "У вас пакуль нікога няма на хуткім наборы" "Дадаць улюбёны" + "У вас пакуль няма ніякіх кантактаў" + "Дадаць кантакт" "Дакраніцеся да відарыса, каб прагледзець усе нумары, або дакраніцеся і ўтрымлівайце, каб змяніць парадак" "Выдаліць" - "Выбраць усё" "Відэавыклік" "Адправiць паведамленне" "Падрабязнасці выкліку" @@ -221,9 +217,11 @@ "Заблакіраваныя нумары" "%1$s ужо заблакіраваны." "Уліковыя запісы для выклікаў" + "Уключыць" "Задаць дазволы" "Каб уключыць хуткі набор, уключыце дазвол для Кантактаў." "Каб прагледзець свой журнал выклікаў, уключыце дазволы Тэлефона." + "Каб бачыць свае кантакты, уключыце дазвол для Кантактаў." "Каб атрымаць доступ да галасавой пошты, уключыце дазвол для Тэлефона." "Каб шукаць свае кантакты, уключыце дазвол для Кантактаў." "Каб зрабіць выклік, уключыце дазвол для Тэлефона." 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 8083f4828..7bab71f3b 100644 --- a/java/com/android/dialer/app/res/values-bg/strings.xml +++ b/java/com/android/dialer/app/res/values-bg/strings.xml @@ -85,10 +85,6 @@ "Назад към текущото обаждане" "Добавяне на обаждане" "Вх. обаждания" - "Влизате в режима на групови действия" - "Излязохте от режима на групови действия" - "Избрахте %1$s" - "Премахнахте избора от %1$s" "Пускане на гласовата поща" "Преглед на контактa %1$s" "Обаждане на %1$s" @@ -103,13 +99,11 @@ "Гласова поща" "%s сек" "%s мин %s сек" - "Анулиране на режима на групови действия" "гласово съобщение" "гласови съобщения" "Да" "Не" "Избрахте %1$s – да се изтрие ли избраното?" - "Избрахте %1$s" @string/call_log_header_today "%1$s в %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Зарежда се от SIM карта..." "Контакти от SIM карта" + "Няма налично приложение за контакти" "Гласовото търсене не е налице" "Не може да се осъществи телефонно обаждане, защото приложението Телефон е деактивирано." "Търсене в контактите" @@ -150,9 +145,10 @@ "%s нови пропуснати обаждания" "Още нямате контакти за бързо набиране" "Добавяне на любим контакт" + "Още нямате контакти" + "Добавяне на контакт" "Докоснете изображението, за да видите всички номера, или го натиснете и задръжте за пренареждане" "Премахване" - "Избиране на всички" "Видеообаждане" "Изпращане на съобщение" "Подробности за обаждането" @@ -217,9 +213,11 @@ "Блокирани номера" "Номер %1$s вече е блокиран." "Профили за обаждане" + "Включване" "Задаване на разрешенията" "За да активирате бързото набиране, включете разрешението за Контакти." "За да видите списъка с обажданията си, включете разрешението за Телефон." + "За да видите контактите си, включете разрешението за Контакти." "За да осъществите достъп до гласовата си поща, включете разрешението за Телефон." "За да търсите в контактите си, включете разрешенията за тях." "За да извършите обаждане, включете разрешението за Телефон." 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 4d2d7cc1e..271247be3 100644 --- a/java/com/android/dialer/app/res/values-bn/strings.xml +++ b/java/com/android/dialer/app/res/values-bn/strings.xml @@ -85,10 +85,6 @@ "প্রগতিতে থাকা কলে প্রত্যাবর্তন" "কল যোগ করুন" "ইনকামিং কলগুলি" - "বাল্ক অ্যাকশন মোডে প্রবেশ করা হচ্ছে" - "বাল্ক অ্যাকশন মোড ত্যাগ করুন" - "%1$s নির্বাচন করা হয়েছে" - "%1$s অনির্বাচন করা হয়েছে" "ভয়েসমেল প্লে করুন" "%1$s পরিচিতি দেখুন" "%1$s কে কল করুন" @@ -103,13 +99,11 @@ "ভয়েসমেল" "%s সেকেন্ড" "%s মিনিট %s সেকেন্ড" - "ব্যাচ অ্যাকশন মোড বাতিল করুন" "ভয়েসমেল" "ভয়েসমেলগুলি" "হ্যাঁ" "না" "নির্বাচিত %1$s মুছে ফেলতে চান?" - "%1$sটি নির্বাচিত" @string/call_log_header_today "%1$s তারিখে %2$s\'টায়" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "সিম কার্ড থেকে লোড করা হচ্ছে…" "সিম কার্ডের পরিচিতিগুলি" + "কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়" "ভয়েস অনুসন্ধান অনুপলব্ধ" "কোনো ফোন কল করা যাবে না কারণ ফোন অ্যাপ্লিকেশানটি অক্ষম করা হয়েছে৷" "পরিচিতিগুলি খুঁজুন" @@ -150,9 +145,10 @@ "%sটি নতুন মিসড কল" "আপনার স্পীড ডায়ালে এখনও পর্যন্ত কেউ নেই" "একটি পছন্দসই যোগ করুন" + "আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই" + "একটি পরিচিতি যোগ করুন" "সমস্ত নম্বর দেখতে ছবিতে স্পর্শ করুন বা রেকর্ড করতে স্পর্শ করে ধরে রাখুন" "সরান" - "সবগুলি নির্বাচন করুন" "ভিডিও কল" "একটি বার্তা পাঠান" "কলের বিশদ বিবরণ" @@ -217,9 +213,11 @@ "ব্লক করা নাম্বারগুলি" "%1$s ইতিমধ্যেই অববোধ করা রয়েছে৷" "কলিং অ্যাকাউন্টগুলি" + "চালু করুন" "অনুমতিগুলি সেট করুন" "স্পীড ডায়াল সক্ষম করতে, পরিচিতিগুলির অনুমতি চালু করুন।" "আপনার কল লগ দেখতে, ফোনের অনুমতি চালু করুন।" + "আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।" "আপনার ভয়েসমেল অ্যাক্সেস করতে, ফোনের অনুমতি চালু করুন।" "আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।" "একটি কল করতে, ফোনের অনুমতি চালু করুন।" 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 d8347723d..92c9c14e0 100644 --- a/java/com/android/dialer/app/res/values-bs/strings.xml +++ b/java/com/android/dialer/app/res/values-bs/strings.xml @@ -86,10 +86,6 @@ "Povratak na poziv u toku" "Dodaj poziv" "Dolazni pozivi" - "Ulazak u način rada za skupnu radnju" - "Napuštanje načina rada za skupnu radnju" - "Odabrano %1$s" - "Poništen odabir %1$s" "Pokretanje govorne pošte" "Prikaži kontakt %1$s" "Pozovi kontakt %1$s" @@ -104,13 +100,11 @@ "Govorna pošta" "%s sek." "%s min. %s sek." - "Otkaži način rada za grupnu radnju" "poruka govorne pošte" "poruke govorne pošte" "Da" "Ne" "Izbrisati izabranu/e %1$s?" - "Odabrano %1$s" @string/call_log_header_today "%1$s u %2$s" "%1$02d:%2$02d" @@ -123,6 +117,7 @@ "MEID" "Učitavanje sa SIM kartice…" "Kontakti sa SIM kartice" + "Nije dostupna nijedna aplikacija za kontakte" "Glasovna pretraga nije dostupna" "Nije moguće uputiti poziv jer je aplikacija Telefon onemogućena." "Traži kontakte" @@ -151,9 +146,10 @@ "Broj novih propuštenih poziva: %s" "Nemate nikog na brzom biranju" "Dodaj u favorite" + "Još nemate nijedan kontakt" + "Dodaj kontakt" "Dodirnite sliku da vidite sve brojeve ili dodirnite i držite da promijenite raspored." "Ukloni" - "Izaberi sve" "Videopoziv" "Pošalji poruku" "Detalji o pozivu" @@ -219,9 +215,11 @@ "Blokirani brojevi" "%1$s je već blokiran." "Računi za pozivanje" + "Uključi" "Postavi dozvole" "Da omogućite brzo biranje, uključite dozvolu za Kontakte." "Da vidite popis poziva, uključite dozvolu za Telefon." + "Da vidite kontakte, uključite dozvolu za Kontakte." "Da pristupite govornoj pošti,uključite dozvolu za telefon." "Da pretražujete kontakte, uključite dozvole za Kontakte." "Da uputite poziv, uključite dozvolu za Telefon." 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 7b12e0dbd..fa04dd980 100644 --- a/java/com/android/dialer/app/res/values-ca/strings.xml +++ b/java/com/android/dialer/app/res/values-ca/strings.xml @@ -85,10 +85,6 @@ "Torna a la trucada en curs" "Afegeix una trucada" "Trucades entrants" - "S\'està accedint al mode d\'acció massiva" - "S\'ha sortit del mode d\'acció massiva" - "S\'ha seleccionat %1$s" - "S\'ha desseleccionat %1$s" "Reprodueix el missatge de veu" "Visualitza el contacte %1$s" "Truca a %1$s" @@ -103,13 +99,11 @@ "Bústia de veu" "%s s" "%s min %s s" - "Cancel·la el mode d\'accions en lot" "missatge de veu" "missatges de veu" "Sí" "No" "Vols suprimir l\'element o elements seleccionats (%1$s)?" - "%1$s seleccionades" @string/call_log_header_today "%1$s a les %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "S\'està carregant des de la targeta SIM..." "Contactes de la targeta SIM" + "No hi ha cap contacte disponible." "La cerca per veu no està disponible." "No es pot fer una trucada telefònica perquè s\'ha desactivat l\'aplicació de telèfon." "Cerca als contactes" @@ -150,9 +145,10 @@ "%s trucades perdudes noves" "Encara no tens cap contacte al marcatge ràpid" "Afegeix un preferit" + "Encara no tens cap contacte" + "Afegeix un contacte" "Toca la imatge per veure\'n tots els números o bé mantén-la premuda per canviar-ne l\'ordre" "Suprimeix" - "Selecciona-ho tot" "Videotrucada" "Envia un missatge" "Detalls de la trucada" @@ -217,9 +213,11 @@ "Números bloquejats" "%1$s ja està bloquejat." "Comptes de trucades" + "Activa" "Defineix els permisos" "Activa el permís Contactes per activar el marcatge ràpid." "Activa el permís Telèfon per veure el teu registre de trucades." + "Activa el permís Contactes per veure els teus contactes." "Activa el permís Telèfon per accedir a la bústia de veu." "Per cercar els teus contactes, activa els permisos de Contactes." "Activa el permís Telèfon per fer una trucada." 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 bbcb35847..5a3e42913 100644 --- a/java/com/android/dialer/app/res/values-cs/strings.xml +++ b/java/com/android/dialer/app/res/values-cs/strings.xml @@ -87,10 +87,6 @@ "Návrat k probíhajícímu hovoru" "Přidat hovor" "Příchozí volání" - "Vstupování do režimu hromadných akcí" - "Opustili jste režim hromadných akcí" - "Položka %1$s je vybrána" - "Položka %1$s není vybrána" "Přehrát hlasovou schránku" "Zobrazit kontakt %1$s" "Volat kontakt %1$s" @@ -105,13 +101,11 @@ "Hlasová schránka" "%s s" "%s min %s s" - "Zrušit režim hromadných akcí" "vybranou hlasovou zprávu" "vybrané hlasové zprávy" "Ano" "Ne" "Smazat %1$s?" - "Vybráno: %1$s" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "MEID" "Načítání ze SIM karty..." "Kontakty na SIM kartě" + "Není k dispozici žádná aplikace pro práci s kontakty." "Hlasové vyhledávání není k dispozici." "Telefonický hovor nelze uskutečnit, protože aplikace Telefon byla zakázána." "Vyhledat kontakty" @@ -152,9 +147,10 @@ "Nové zmeškané hovory: %s" "V rychlém vytáčení zatím nemáte žádný kontakt." "Přidat oblíbený kontakt" + "Zatím nemáte žádné kontakty" + "Přidat kontakt" "Klepnutím na obrázek zobrazíte všechna čísla. Podržením můžete změnit pořadí." "Odstranit" - "Vybrat všechny" "Videohovor" "Odeslat zprávu" "Podrobnosti hovoru" @@ -221,9 +217,11 @@ "Blokovaná čísla" "Číslo %1$s je již blokováno." "Účty pro volání" + "Zapnout" "Nastavit oprávnění" "Chcete-li povolit rychlé vytáčení, aktivujte oprávnění Kontakty." "Chcete-li zobrazit seznam hovorů, aktivujte oprávnění Telefon." + "Chcete-li zobrazit kontakty, aktivujte oprávnění Kontakty." "Chcete-li přejít do hlasové schránky, aktivujte oprávnění Telefon." "Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty." "Chcete-li uskutečnit hovor, aktivujte oprávnění Telefon." 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 31cf8e33d..42aa66378 100644 --- a/java/com/android/dialer/app/res/values-da/strings.xml +++ b/java/com/android/dialer/app/res/values-da/strings.xml @@ -85,10 +85,6 @@ "Vend tilbage til igangværende opkald" "Tilføj opkald" "Indgående opkald" - "Massehandlingstilstanden startes" - "Massehandlingstilstanden blev afsluttet" - "Vælg %1$s" - "Fravælg %1$s" "Afspil telefonsvarerbesked" "Vis kontaktpersonen %1$s" "Ring til %1$s" @@ -103,13 +99,11 @@ "Telefonsvarer" "%s sek." "%s min. %s sek." - "Annuller massehandlingstilstand" "talebesked" "talebeskeder" "Ja" "Nej" "Vil du slette de valgte %1$s?" - "%1$s er valgt" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Indlæser fra SIM-kort ..." "Kontakter på SIM-kort" + "Der er ingen app til kontaktpersoner" "Talesøgning er ikke tilgængelig" "Det er ikke muligt at foretage et telefonopkald, fordi applikationen Telefon er deaktiveret." "Søg i kontakter" @@ -150,9 +145,10 @@ "%s nye ubesvarede opkald" "Der er endnu ingen kontaktpersoner i Hurtigopkald" "Angiv en kontaktperson som foretrukken" + "Du har endnu ikke nogen kontaktpersoner" + "Tilføj en kontaktperson" "Tryk på billedet for at se alle numre, eller tryk og hold nede på billedet for at omarrangere" "Fjern" - "Vælg alt" "Videoopkald" "Send en sms-besked" "Opkaldsinfo" @@ -217,9 +213,11 @@ "Blokerede telefonnumre" "%1$s er allerede blokeret." "Opkaldskonti" + "Aktivér" "Angiv tilladelser" "Slå tilladelsen Kontaktpersoner til for at aktivere hurtigopkald." "Slå tilladelsen Telefon til for at se din opkaldsliste." + "Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner." "Slå tilladelsen Telefon til for at få adgang til din telefonsvarer," "Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til." "Slå tilladelsen Telefon til for at foretage et opkald." 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 c1f644119..5653e0f12 100644 --- a/java/com/android/dialer/app/res/values-de/strings.xml +++ b/java/com/android/dialer/app/res/values-de/strings.xml @@ -85,10 +85,6 @@ "Zurück zum aktuellen Anruf" "Anruf hinzufügen" "Eingehende Anrufe" - "Es wird in den Modus für Bulk-Aktionen gewechselt" - "Der Modus für Bulk-Aktionen wurde verlassen" - "%1$s ausgewählt" - "Auswahl für %1$s aufgehoben" "Mailbox abhören" "Kontakt %1$s anzeigen" "%1$s anrufen" @@ -103,13 +99,11 @@ "Mailbox" "%s s" "%s min %s s" - "Modus für Batch-Aktionen abbrechen" "Mailboxnachricht" "Mailboxnachrichten" "Ja" "Nein" "Ausgewählte %1$s löschen?" - "%1$s ausgewählt" @string/call_log_header_today "%1$s um %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Ladevorgang von SIM-Karte läuft..." "Kontakte auf SIM-Karte" + "Keine Kontakte-App verfügbar" "Sprachsuche nicht verfügbar" "Es kann kein Anruf getätigt werden, da die App \"Telefon\" deaktiviert wurde." "In Kontakten suchen" @@ -150,9 +145,10 @@ "%s neue entgangene Anrufe" "Du hast für noch niemanden eine Kurzwahl festgelegt" "Favoriten hinzufügen" + "Du hast noch keine Kontakte." + "Kontakt hinzufügen" "Tippe auf das Bild, um alle Nummern zu sehen, oder halte das Bild länger gedrückt, um sie neu anzuordnen" "Entfernen" - "Alle auswählen" "Videoanruf" "SMS senden" "Anrufdetails" @@ -217,9 +213,11 @@ "Blockierte Nummern" "%1$s ist bereits blockiert." "Anrufkonten" + "Aktivieren" "Berechtigungen festlegen" "Aktiviere die Berechtigung \"Kontakte\", um die Kurzwahlfunktion zu verwenden." "Aktiviere die Berechtigung \"Telefon\", um dein Anrufprotokoll abzurufen." + "Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen." "Aktiviere die Berechtigung \"Telefon\", um auf deine Mailbox zuzugreifen." "Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen." "Aktiviere die Berechtigung \"Telefon\", um einen Anruf zu tätigen." 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 c4ba02d0f..847f60a26 100644 --- a/java/com/android/dialer/app/res/values-el/strings.xml +++ b/java/com/android/dialer/app/res/values-el/strings.xml @@ -85,10 +85,6 @@ "Επιστροφή στην κλήση που βρίσκεται σε εξέλιξη" "Προσθήκη κλήσης" "Εισερχόμενες κλήσεις" - "Εισαγωγή στη λειτουργία μαζικών ενεργειών" - "Αποχώρηση από τη λειτουργία μαζικών ενεργειών" - "Έγινε επιλογή %1$s" - "Καταργήθηκε η επιλογή %1$s" "Αναπαραγωγή μηνύματος αυτόματου τηλεφωνητή" "Προβολή επαφής %1$s" "Κλήση %1$s" @@ -103,13 +99,11 @@ "Αυτόματος τηλεφωνητής" "%s δευτερόλεπτα" "%s λεπτά %s δευτερόλεπτα" - "Ακύρωση λειτουργίας μαζικών ενεργειών" "φωνητικού μηνύματος αυτόματου τηλεφωνητή" "φωνητικών μηνυμάτων αυτόματου τηλεφωνητή" "Ναι" "Όχι" "Διαγραφή επιλεγμ. %1$s;" - "Έχουν επιλεγεί %1$s" @string/call_log_header_today "%1$s στις %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Φόρτωση από κάρτα SIM…" "Επαφές στην κάρτα SIM" + "Δεν υπάρχουν διαθέσιμες εφαρμογές επαφών" "Η φωνητική αναζήτηση δεν είναι διαθέσιμη" "Δεν είναι δυνατή η πραγματοποίηση τηλεφωνικής κλήσης επειδή η εφαρμογή \"Τηλέφωνο\" έχει απενεργοποιηθεί." "Αναζήτηση επαφών" @@ -150,9 +145,10 @@ "%s νέες αναπάντητες κλήσεις" "Δεν έχετε ορίσει ακόμη κάποια επαφή στις ταχείες κλήσεις" "Προσθέστε ένα αγαπημένο" + "Δεν έχετε επαφές ακόμη" + "Προσθήκη επαφής" "Αγγίξτε την εικόνα για να δείτε όλους τους αριθμούς ή αγγίξτε παρατεταμένα για αναδιάταξη" "Κατάργηση" - "Επιλογή όλων" "Βιντεοκλήση" "Αποστολή μηνύματος" "Λεπτομέρειες κλήσης" @@ -217,9 +213,11 @@ "Αποκλεισμένοι αριθμοί" "Ο αριθμός %1$s αποκλείστηκε ήδη." "Λογαριασμοί κλήσης" + "Ενεργοποίηση" "Ορισμός αδειών" "Για να ενεργοποιήσετε την ταχεία κλήση, ενεργοποιήστε την άδεια επαφών." "Για να δείτε το αρχείο καταγραφής κλήσεών σας, ενεργοποιήστε την άδεια τηλεφώνου." + "Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια επαφών." "Για να αποκτήσετε πρόσβαση στον τηλεφωνητή σας, ενεργοποιήστε την άδεια τηλεφώνου." "Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"." "Για να πραγματοποιήσετε μια κλήση, ενεργοποιήστε την άδεια τηλεφώνου." 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 cb7e912c7..28eea8b4d 100644 --- a/java/com/android/dialer/app/res/values-en-rAU/strings.xml +++ b/java/com/android/dialer/app/res/values-en-rAU/strings.xml @@ -85,10 +85,6 @@ "Return to call in progress" "Add call" "Incoming calls" - "Entering bulk action mode" - "Left bulk action mode" - "Selected %1$s" - "Unselected %1$s" "Play voicemail" "View contact %1$s" "Call %1$s" @@ -103,13 +99,11 @@ "Voicemail" "%s sec" "%s min %s sec" - "Cancel batch actions mode" "voicemail" "voicemails" "Yes" "No" "Delete selected %1$s?" - "%1$s selected" @string/call_log_header_today "%1$s at %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Loading from SIM card…" "SIM card contacts" + "No contacts app available" "Voice search not available" "Cannot make a phone call because the Phone application has been disabled." "Search contacts" @@ -150,9 +145,10 @@ "%s new missed calls" "No one is on your speed dial yet" "Add a favourite" + "You don\'t have any contacts yet" + "Add a contact" "Touch image to see all numbers, or touch & hold to re-arrange" "Remove" - "Select all" "Video call" "Send a message" "Call details" @@ -217,9 +213,11 @@ "Blocked numbers" "%1$s is already blocked." "Calling accounts" + "Turn on" "Set permissions" "To enable speed dial, turn on the Contacts permission." "To see your call log, turn on the Phone permission." + "To see your contacts, turn on the Contacts permission." "To access your voicemail, turn on the Phone permission." "To search your contacts, turn on the Contacts permissions." "To place a call, turn on the Phone permission." 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 cb7e912c7..28eea8b4d 100644 --- a/java/com/android/dialer/app/res/values-en-rGB/strings.xml +++ b/java/com/android/dialer/app/res/values-en-rGB/strings.xml @@ -85,10 +85,6 @@ "Return to call in progress" "Add call" "Incoming calls" - "Entering bulk action mode" - "Left bulk action mode" - "Selected %1$s" - "Unselected %1$s" "Play voicemail" "View contact %1$s" "Call %1$s" @@ -103,13 +99,11 @@ "Voicemail" "%s sec" "%s min %s sec" - "Cancel batch actions mode" "voicemail" "voicemails" "Yes" "No" "Delete selected %1$s?" - "%1$s selected" @string/call_log_header_today "%1$s at %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Loading from SIM card…" "SIM card contacts" + "No contacts app available" "Voice search not available" "Cannot make a phone call because the Phone application has been disabled." "Search contacts" @@ -150,9 +145,10 @@ "%s new missed calls" "No one is on your speed dial yet" "Add a favourite" + "You don\'t have any contacts yet" + "Add a contact" "Touch image to see all numbers, or touch & hold to re-arrange" "Remove" - "Select all" "Video call" "Send a message" "Call details" @@ -217,9 +213,11 @@ "Blocked numbers" "%1$s is already blocked." "Calling accounts" + "Turn on" "Set permissions" "To enable speed dial, turn on the Contacts permission." "To see your call log, turn on the Phone permission." + "To see your contacts, turn on the Contacts permission." "To access your voicemail, turn on the Phone permission." "To search your contacts, turn on the Contacts permissions." "To place a call, turn on the Phone permission." 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 cb7e912c7..28eea8b4d 100644 --- a/java/com/android/dialer/app/res/values-en-rIN/strings.xml +++ b/java/com/android/dialer/app/res/values-en-rIN/strings.xml @@ -85,10 +85,6 @@ "Return to call in progress" "Add call" "Incoming calls" - "Entering bulk action mode" - "Left bulk action mode" - "Selected %1$s" - "Unselected %1$s" "Play voicemail" "View contact %1$s" "Call %1$s" @@ -103,13 +99,11 @@ "Voicemail" "%s sec" "%s min %s sec" - "Cancel batch actions mode" "voicemail" "voicemails" "Yes" "No" "Delete selected %1$s?" - "%1$s selected" @string/call_log_header_today "%1$s at %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Loading from SIM card…" "SIM card contacts" + "No contacts app available" "Voice search not available" "Cannot make a phone call because the Phone application has been disabled." "Search contacts" @@ -150,9 +145,10 @@ "%s new missed calls" "No one is on your speed dial yet" "Add a favourite" + "You don\'t have any contacts yet" + "Add a contact" "Touch image to see all numbers, or touch & hold to re-arrange" "Remove" - "Select all" "Video call" "Send a message" "Call details" @@ -217,9 +213,11 @@ "Blocked numbers" "%1$s is already blocked." "Calling accounts" + "Turn on" "Set permissions" "To enable speed dial, turn on the Contacts permission." "To see your call log, turn on the Phone permission." + "To see your contacts, turn on the Contacts permission." "To access your voicemail, turn on the Phone permission." "To search your contacts, turn on the Contacts permissions." "To place a call, turn on the Phone permission." 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 79d607fc7..9d80bc9e2 100644 --- a/java/com/android/dialer/app/res/values-es-rUS/strings.xml +++ b/java/com/android/dialer/app/res/values-es-rUS/strings.xml @@ -85,10 +85,6 @@ "Regresar a la llamada en curso" "Agregar llamada" "Llamadas entrantes" - "Entrando al modo de acción masiva" - "Saliendo del modo de acción masiva" - "Se seleccionó %1$s" - "Se anuló la selección de %1$s" "Reproducir mensaje de voz" "Ver contacto %1$s" "Llamar a %1$s" @@ -103,13 +99,11 @@ "Correo de voz" "%s s" "%s min %s s" - "Cancelar el modo de acción masiva" "el mensaje de voz" "los mensajes de voz" "Sí" "No" "¿Deseas borrar %1$s que seleccionaste?" - "%1$s seleccionada(s)" @string/call_log_header_today "El %1$s a la hora %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Cargando desde tarjeta SIM..." "Contactos de tarjeta SIM" + "No hay aplicaciones de contactos disponibles." "Búsqueda por voz no disponible" "No se pueden realizar llamadas porque se inhabilitó la aplicación Teléfono." "Buscar contactos" @@ -150,9 +145,10 @@ "%s llamadas perdidas nuevas" "Aún no tienes contactos en la opción de marcado rápido" "Agregar un favorito" + "Aún no tienes contactos" + "Agregar un contacto" "Toca la imagen para ver todos los números o mantenla presionada para reorganizar" "Eliminar" - "Seleccionar todo" "Videollamada" "Enviar un mensaje" "Detalles de la llamada" @@ -217,9 +213,11 @@ "Números bloqueados" "%1$s ya está bloqueado." "Cuentas telefónicas" + "Activar" "Configurar permisos" "Para habilitar el marcado rápido, activa el permiso Contactos." "Para ver el registro de llamadas, activa el permiso Teléfono." + "Para ver los contactos, activa el permiso Contactos." "Para acceder al buzón de voz, activa el permiso Teléfono." "Para buscar contactos, activa el permiso Contactos." "Para realizar una llamada, activa el permiso Teléfono." 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 170edc8ca..b7383d970 100644 --- a/java/com/android/dialer/app/res/values-es/strings.xml +++ b/java/com/android/dialer/app/res/values-es/strings.xml @@ -85,10 +85,6 @@ "Volver a la llamada" "Añadir llamada" "Llamadas entrantes" - "Entrando en el modo de acción en bloque" - "Se ha salido del modo de acción en bloque" - "%1$s seleccionado" - "Selección de %1$s anulada" "Reproducir mensaje de voz" "Ver contacto %1$s" "Llamar a %1$s" @@ -103,13 +99,11 @@ "Buzón de voz" "%s s" "%s min y %s s" - "Cancelar el modo de acciones en lote" "mensaje de voz" "mensajes de voz" "Sí" "No" "¿Eliminar la selección de %1$s?" - "Se han seleccionado %1$s" @string/call_log_header_today "%1$s a las %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Cargando desde tarjeta SIM…" "Contactos de tarjeta SIM" + "No hay aplicaciones de contactos disponibles" "La búsqueda por voz no está disponible" "No se puede hacer llamadas porque se ha inhabilitado la aplicación Teléfono." "Buscar contactos" @@ -150,9 +145,10 @@ "%s llamadas perdidas nuevas" "Aún no tienes contactos en la función de marcación rápida" "Añadir un favorito" + "Aún no tienes contactos" + "Añadir un contacto" "Tocar la imagen para ver todos los números o mantenerla pulsada para cambiar el orden" "Eliminar" - "Seleccionar todo" "Videollamada" "Enviar un mensaje" "Detalles de la llamada" @@ -217,9 +213,11 @@ "Números bloqueados" "%1$s ya está bloqueado." "Cuentas de llamadas" + "Activar" "Establecer permisos" "Para habilitar la marcación rápida, activa el permiso la aplicación Contactos." "Para ver el registro de llamadas, activa el permiso de la aplicación Teléfono." + "Para ver tus contactos, activa el permiso de la aplicación Contactos." "Para acceder al buzón de voz, activa el permiso de la aplicación Teléfono." "Para poder buscar tus contactos, activa los permisos de contactos." "Para hacer una llamada, activa el permiso de la aplicación Teléfono." 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 e32b10403..d4e4faa59 100644 --- a/java/com/android/dialer/app/res/values-et/strings.xml +++ b/java/com/android/dialer/app/res/values-et/strings.xml @@ -85,10 +85,6 @@ "Tagasi käimasolevale kõnele" "Lisa kõne" "Sissetulevad kõned" - "Sisenemine hulgitoimingute režiimi" - "Lahkumine hulgitoimingute režiimist" - "%1$s on valitud" - "%1$s on valimata" "Esita kõnepostisõnum" "Kuva kontakt %1$s" "Helista kasutajale %1$s" @@ -103,13 +99,11 @@ "Kõnepost" "%s s" "%s min %s s" - "Mitme toimigu režiimi tühistamine" "kõnepostisõnum" "kõnepostisõnumid" "Jah" "Ei" "Kas kustutada valitud kõnepostisõnumid %1$s?" - "%1$s on valitud" @string/call_log_header_today "%1$s kell %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Laadimine SIM-kaardilt ..." "SIM-kaardi kontaktid" + "Kontaktide rakendus pole saadaval" "Häälotsing ei ole saadaval" "Helistada ei saa, sest telefonirakendus on keelatud." "Otsige kontakte" @@ -150,9 +145,10 @@ "%s uus/uut vastamata kõne(t)" "Te pole veel kedagi kiirvalimisse lisanud" "Lisa lemmik" + "Teil pole veel kontakte" + "Lisa kontakt" "Puudutage kujutist kõigi numbrite nägemiseks või puudutage pikalt järjestuse muutmiseks" "Eemalda" - "Vali kõik" "Videokõne" "Saada sõnum" "Kõne üksikasjad" @@ -217,9 +213,11 @@ "Blokeeritud numbrid" "%1$s on juba blokeeritud." "Helistamiskontod" + "Lülita sisse" "Määra load" "Kiirvalimise lubamiseks lülitage sisse kontaktiluba." "Kõnelogi vaatamiseks lülitage sisse telefoniluba." + "Kontaktide vaatamiseks lülitage sisse kontaktiluba." "Kõnepostile juurdepääsemiseks lülitage sisse telefoniluba." "Kontaktide otsimiseks lülitage sisse kontaktiload." "Helistamiseks lülitage sisse telefoniluba." 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 57ef67d88..95f4621a4 100644 --- a/java/com/android/dialer/app/res/values-eu/strings.xml +++ b/java/com/android/dialer/app/res/values-eu/strings.xml @@ -85,10 +85,6 @@ "Itzuli abian den deira" "Gehitu deia" "Sarrerako deiak" - "Ekintzak multzoka gauzatzeko modua aktibatzen" - "Ekintzak multzoka gauzatzeko modua desaktibatu da" - "%1$s hautatu da" - "%1$s desautatu da" "Erreproduzitu erantzungailuko ahots-mezuak" "Ikusi %1$s kontaktua" "Deitu %1$s erabiltzaileari" @@ -103,13 +99,11 @@ "Erantzungailua" "%s s" "%s min %s s" - "Utzi bertan behera ekintzak multzoka gauzatzeko modua" "ahots-mezua" "ahots-mezuak" "Bai" "Ez" "Hautatutako %1$s ezabatu?" - "%1$s hautatu dira" @string/call_log_header_today "%1$s (%2$s)" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM txarteletik kargatzen…" "SIM txarteleko kontaktuak" + "Ez dago kontaktuen aplikaziorik erabilgarri" "Ahozko bilaketa ez dago erabilgarri" "Ezin da telefono-deirik egin Telefonoa aplikazioa desgaitu egin delako." "Bilatu kontaktuetan" @@ -150,9 +145,10 @@ "%s dei galdu berri" "Ez duzu inor markatze bizkorrean oraindik" "Gehitu gogokoak" + "Ez duzu kontakturik oraindik" + "Gehitu kontaktua" "Ukitu irudia zenbaki guztiak ikusteko, edo eduki ezazu sakatuta berrantolatzeko" "Kendu" - "Hautatu guztiak" "Bideo-deia" "Bidali mezua" "Deiaren xehetasunak" @@ -217,9 +213,11 @@ "Blokeatutako zenbakiak" "%1$s blokeatuta dago dagoeneko." "Deiak egiteko kontuak" + "Aktibatu" "Ezarri baimenak" "Markatze bizkorra gaitzeko, aktibatu Kontaktuak erabiltzeko baimena." "Deien erregistroa ikusteko, aktibatu Telefonoa erabiltzeko baimena." + "Kontaktuak ikusteko, aktibatu Kontaktuak erabiltzeko baimena." "Erantzungailuan sartzeko, aktibatu Telefonoa erabiltzeko baimena." "Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak." "Deiak egiteko, aktibatu Telefonoa erabiltzeko baimena." 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 eadb0dcb7..9c8c01b64 100644 --- a/java/com/android/dialer/app/res/values-fa/strings.xml +++ b/java/com/android/dialer/app/res/values-fa/strings.xml @@ -85,10 +85,6 @@ "برگشت به تماس درحال انجام" "افزودن تماس" "تماس‌های ورودی" - "درحال ورود به حالت اقدام انبوه" - "خروج از حالت اقدام انبوه" - "%1$s انتخاب شد" - "%1$s از حالت انتخاب خارج شد" "پخش پست صوتی" "مشاهده مخاطب %1$s" "تماس با %1$s" @@ -103,13 +99,11 @@ "پست صوتی" "%s ثانیه" "%s دقیقه %s ثانیه" - "لغو حالت اقدام‌ دسته‌ای" "پست صوتی" "پست‌های صوتی" "بله" "نه" "%1$s انتخاب‌شده حذف شود؟" - "%1$s مورد انتخاب شد" @string/call_log_header_today "%1$s ساعت %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "در حال بارگیری سیم کارت..." "مخاطبین سیم کارت" + "هیچ برنامه مخاطبی در دسترس نیست" "جستجوی گفتاری در دسترس نیست" "برقراری تماس تلفنی ممکن نیست، زیرا برنامه تلفن غیرفعال شده است." "جستجوی مخاطبین" @@ -150,9 +145,10 @@ "%s تماس‌ بی‌پاسخ جدید" "هنوز کسی در فهرست شماره‌گیری سریع شما نیست" "افزودن مورد دلخواه" + "هنوز هیچ مخاطبی ندارید" + "افزودن مخاطب" "برای مشاهده همه شماره‌ها، تصویر را لمس کنید، یا برای ترتیب مجدد، لمس کنید و نگه‌دارید" "حذف" - "انتخاب همه" "تماس ویدئویی" "ارسال پیام" "جزئیات تماس" @@ -217,9 +213,11 @@ "شماره‌های مسدود‌شده" "%1$s درحال‌حاضر مسدود شده است." "حساب‌های تماس" + "روشن کردن" "تنظیم مجوزها" "برای فعال کردن شماره‌گیری سریع، مجوز «مخاطبین» را روشن کنید." "برای دیدن گزارش تماستان، مجوز «تلفن» را روشن کنید." + "برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید." "برای دسترسی به پست صوتی‌تان، مجوز «تلفن» را روشن کنید." "برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید." "برای برقراری تماس، مجوز «تلفن» را روشن کنید." 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 951095908..c5a103d48 100644 --- a/java/com/android/dialer/app/res/values-fi/strings.xml +++ b/java/com/android/dialer/app/res/values-fi/strings.xml @@ -85,10 +85,6 @@ "Palaa käynnissä olevaan puheluun" "Lisää puhelu" "Saapuvat puhelut" - "Siirrytään joukkotoimintotilaan." - "Poistuttiin joukkotoimintotilasta." - "%1$s valittiin." - "%1$s ei ole enää valittuna." "Toista vastaajaviesti" "Näytä yhteystieto %1$s" "Soita: %1$s" @@ -103,13 +99,11 @@ "Vastaaja" "%s s" "%s min %s s" - "Peruuta joukkotoimintotila." "vastaajaviesti" "vastaajaviestit" "Kyllä" "Ei" "Poistetaanko %1$s?" - "%1$s valittu" @string/call_log_header_today "%1$s klo %2$s" "%1$02d.%2$02d" @@ -122,6 +116,7 @@ "MEID" "Ladataan SIM-kortilta…" "SIM-kortin yhteystiedot" + "Ei käytettävissä olevaa yhteystietosovellusta" "Puhehaku ei ole käytettävissä" "Puhelua ei voi soittaa, koska Puhelin-sovellus on poistettu käytöstä." "Hae yhteystiedoista" @@ -150,9 +145,10 @@ "%s uutta vastaamatonta puhelua" "Pikavalinnassa ei ole vielä yhtään yhteystietoa." "Lisää suosikki" + "Sinulla ei ole yhteystietoja." + "Lisää yhteystieto" "Katso kaikki numerot koskettamalla kuvaa tai järjestele tietoja koskettamalla kuvaa pitkään." "Poista" - "Valitse kaikki" "Videopuhelu" "Lähetä viesti" "Puhelun tiedot" @@ -217,9 +213,11 @@ "Estetyt numerot" "%1$s on jo estetty." "Puhelutilit" + "Ota käyttöön" "Määritä käyttöoikeudet" "Jos haluat käyttää pikavalintaa, ota Yhteystiedot-käyttöoikeus käyttöön." "Jos haluat katsella puhelulokiasi, ota Puhelin-käyttöoikeus käyttöön." + "Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön." "Jos haluat käyttää puhelinvastaajaa, ota Puhelin-käyttöoikeus käyttöön." "Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet." "Jos haluat soittaa puheluja, ota Puhelin-käyttöoikeus käyttöön." 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 6aa285c50..d557d7442 100644 --- a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml +++ b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml @@ -85,10 +85,6 @@ "Reprendre l\'appel en cours" "Autre appel" "Appels entrants" - "Entrée du mode d\'action groupée en cours…" - "Mode d\'action groupée quitté" - "Sélection : %1$s" - "Désélection : %1$s" "Écouter le message vocal" "Afficher le contact %1$s" "Appeler %1$s" @@ -103,13 +99,11 @@ "Messagerie vocale" "%s s" "%s min et %s sec" - "Annuler le mode d\'action par lots" "message vocal" "messages vocaux" "Oui" "Non" "Supprimer la sélection (%1$s)?" - "%1$s sélection(s)" @string/call_log_header_today "%1$s à %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Chargement depuis la carte SIM..." "Contacts de carte SIM" + "Aucune application de gestion des contacts n\'est disponible" "Recherche vocale non disponible" "Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée." "Rechercher des contacts" @@ -150,9 +145,10 @@ "%s nouveaux appels manqués" "Aucun contact ne figure dans vos numéros de composition abrégée" "Ajouter un favori" + "Vous n\'avez pas encore de contacts" + "Ajouter un contact" "Touchez l\'image pour afficher tous les numéros, ou maintenez le doigt dessus pour les réorganiser" "Supprimer" - "Tout sélectionner" "Appel vidéo" "Envoyer un message" "Détails de l\'appel" @@ -217,9 +213,11 @@ "Numéros bloqués" "Le numéro %1$s est déjà bloqué." "Comptes d\'appel" + "Activer" "Définir les autorisations" "Pour activer la composition abrégée, activez l\'autorisation Contacts." "Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone." + "Pour consulter vos contacts, activez l\'autorisation Contacts." "Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone." "Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts." "Pour faire un appel, activez l\'autorisation Téléphone." 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 f539d2e55..d8a59395b 100644 --- a/java/com/android/dialer/app/res/values-fr/strings.xml +++ b/java/com/android/dialer/app/res/values-fr/strings.xml @@ -85,10 +85,6 @@ "Reprendre l\'appel en cours" "Autre appel" "Appels entrants" - "Activation du mode d\'action groupée" - "Désactivation du mode d\'action groupée" - "%1$s sélectionné" - "%1$s désélectionné" "Écouter le message vocal" "Afficher le contact %1$s" "Appeler %1$s" @@ -103,13 +99,11 @@ "Messagerie vocale" "%s secondes" "%s min et %s s" - "Annuler le mode d\'actions groupées" "message vocal" "messages vocaux" "Oui" "Non" "Supprimer les messages vocaux sélectionnés (%1$s) ?" - "%1$s sélectionnés" @string/call_log_header_today "%1$s à %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Chargement depuis la carte SIM..." "Contacts de carte SIM" + "Aucune application de gestion des contacts n\'est disponible." "Recherche vocale non disponible" "Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée." "Rech. des contacts" @@ -150,9 +145,10 @@ "Nouveaux appels manqués : %s" "Aucun contact pour la numérotation abrégée" "Ajouter un favori" + "Vous n\'avez pas encore de contacts." + "Ajouter un contact" "Appuyer sur l\'image pour afficher tous les numéros, ou appuyer dessus de manière prolongée pour réorganiser ces derniers" "Supprimer" - "Tout sélectionner" "Appel vidéo" "Envoyer un message" "Informations sur l\'appel" @@ -217,9 +213,11 @@ "Numéros bloqués" "Le numéro \"%1$s\" est déjà bloqué." "Comptes téléphoniques" + "Activer" "Définir les autorisations" "Pour activer la numérotation abrégée, activez l\'autorisation Contacts." "Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone." + "Pour consulter vos contacts, activez l\'autorisation Contacts." "Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone." "Pour rechercher vos contacts, activez l\'autorisation Contacts." "Pour passer un appel, activez l\'autorisation Téléphone." 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 ca31c5e47..33b55a740 100644 --- a/java/com/android/dialer/app/res/values-gl/strings.xml +++ b/java/com/android/dialer/app/res/values-gl/strings.xml @@ -85,10 +85,6 @@ "Volver á chamada en curso" "Engadir chamada" "Chamadas entrantes" - "Entrando no modo de acción masiva" - "Saíu do modo de acción masiva" - "Seleccionouse: %1$s" - "Anulouse a selección de: %1$s" "Reproducir correo de voz" "Ver contacto %1$s" "Chamar a %1$s" @@ -103,13 +99,11 @@ "Correo de voz" "%s s" "%s min %s s" - "Cancela o modo de accións en lote" "correo de voz" "correos de voz" "Si" "Non" "Queres eliminar a selección (%1$s)?" - "Cantidade seleccionada: %1$s" @string/call_log_header_today "%1$s ás %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Cargando da tarxeta SIM..." "Contactos da tarxeta SIM" + "Non hai aplicacións de contactos dispoñibles" "Busca por voz non dispoñible" "Non se pode facer unha chamada telefónica porque se desactivou a aplicación de teléfono." "Buscar contactos" @@ -150,9 +145,10 @@ "%s chamadas perdidas novas" "Aínda non tes ningún contacto na marcación directa" "Engade un favorito para a marcación directa" + "Aínda non tes contactos" + "Engade un contacto" "Toca a imaxe para ver todos os números ou mantena premida para reordenalos" "Eliminar" - "Seleccionar todos" "Videochamada" "Enviar unha mensaxe" "Detalles da chamada" @@ -217,9 +213,11 @@ "Números bloqueados" "O %1$s xa está bloqueado." "Contas de chamadas" + "Activar" "Establecer permisos" "Para activar a marcación rápida, activa o permiso de Contactos." "Para ver o teu rexistro de chamadas, activa o permiso de Teléfono." + "Para ver os teus contactos, activa o permiso de Contactos." "Para acceder ao correo de voz, activa o permiso de Teléfono." "Para buscar os teus contactos, activa os permisos de Contactos." "Para facer unha chamada, activa o permiso de Teléfono." 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 fbe4d0aaa..1df18269e 100644 --- a/java/com/android/dialer/app/res/values-gu/strings.xml +++ b/java/com/android/dialer/app/res/values-gu/strings.xml @@ -85,10 +85,6 @@ "કૉલ પર પાછા આવવું પ્રગતિ પર છે" "કૉલ ઉમેરો" "ઇનકમિંગ કૉલ્સ" - "બલ્ક ક્રિયા મોડમાં દાખલ થઈ રહ્યાં છે" - "બલ્ક ક્રિયા મોડ છોડી દીધો" - "%1$s પસંદ કર્યો" - "%1$s પસંદગીમાંથી દૂર કર્યો" "વૉઇસમેઇલ ચલાવો" "%1$s સંપર્ક જુઓ" "%1$s ને કૉલ કરો" @@ -103,13 +99,11 @@ "વૉઇસમેઇલ" "%s સેકંડ" "%s મિ %s સે" - "બૅચ ક્રિયા મોડ રદ કરો" "વૉઇસમેઇલ" "વૉઇસમેઇલ" "હા" "નહીં" "પસંદ કરેલ %1$sને કાઢી નાખીએ?" - "%1$s પસંદ કરી" @string/call_log_header_today "%1$s નાં રોજ %2$s વાગ્યે" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM કાર્ડમાંથી લોડ કરી રહ્યું છે…" "SIM કાર્ડ સંપર્કો" + "કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી" "વૉઇસ શોધ ઉપલબ્ધ નથી" "ફોન કૉલ કરી શકાતો નથી કારણ કે ફોન ઍપ્લિકેશન અક્ષમ કરવામાં આવી છે." "સંપર્કો શોધો" @@ -150,9 +145,10 @@ "%s નવા છૂટેલા કૉલ્સ" "તમારા ઝડપી ડાયલ પર હજી સુધી કોઇ નથી" "એક મનપસંદ ઉમેરો" + "તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી" + "સંપર્ક ઉમેરો" "બધા નંબર્સ જોવા માટે છબી ટચ કરો અથવા પુનઃક્રમાંકિત કરવા માટે ટચ કરો અને પકડી રાખો" "દૂર કરો" - "તમામ પસંદ કરો" "વિડિઓ કૉલ" "એક સંદેશ મોકલો" "કૉલની વિગતો" @@ -217,9 +213,11 @@ "અવરોધિત નંબરો" "%1$s ને પહેલેથી અવરોધિત કરવામાં આવ્યો છે." "કૉલિંગ એકાઉન્ટ્સ" + "ચાલુ કરો" "પરવાનગીઓ સેટ કરો" "ઝડપી ડાયલ સક્ષમ કરવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો." "તમારો કૉલ લૉગ જોવા માટે, ફોન પરવાનગી ચાલુ કરો." + "તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો." "તમારી વૉઇસમેઇલને ઍક્સેસ કરવા માટે, ફોન પરવાનગી ચાલુ કરો." "તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો." "કૉલ કરવા માટે, ફોન પરવાનગી ચાલુ કરો." 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 c998e4402..84d2d974a 100644 --- a/java/com/android/dialer/app/res/values-hi/strings.xml +++ b/java/com/android/dialer/app/res/values-hi/strings.xml @@ -85,10 +85,6 @@ "कॉल पर लौटना प्रगति पर है" "कॉल जोड़ें" "इनकमिंग कॉल" - "बल्क कार्रवाई मोड में प्रवेश कर रहे हैं" - "बल्क कार्रवाई मोड छोड़ा" - "%1$s को चुना गया" - "%1$s को नहीं चुना गया" "ध्‍वनिमेल चलाएं" "%1$s संपर्क देखें" "%1$s को कॉल करें" @@ -103,13 +99,11 @@ "वॉयस मेल" "%s सेकंड" "%s मि. %s से." - "बैच कार्रवाई मोड रद्द करें" "वॉयसमेल" "वॉयसमेल" "हां" "नहीं" "क्या चुने गए %1$s हटाना चाहते हैं?" - "%1$s चयनित" @string/call_log_header_today "%1$s को %2$s बजे" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "सिम कार्ड से लोड हो रहा है…" "सिम कार्ड के संपर्क" + "कोई भी संपर्क ऐप उपलब्‍ध नहीं है" "बोलकर खोजना उपलब्‍ध नहीं है" "फ़ोन कॉल नहीं किया जा सकता क्योंकि फ़ोन ऐप्लिकेशन अक्षम कर दिया गया है." "संपर्क खोजें" @@ -150,9 +145,10 @@ "%s छूटे हुए नए कॉल" "आपके स्‍पीड डायल पर अभी तक कोई भी नहीं है" "कोई पसंदीदा जोड़ें" + "आपके पास अभी कोई भी संपर्क नहीं है" + "कोई संपर्क जोड़ें" "सभी नंबर देखने के लिए चित्र को स्‍पर्श करें या पुन: क्रमित करने के लिए स्‍पर्श करके रखें" "निकालें" - "सभी चुनें" "वीडियो कॉल" "संदेश भेजें" "कॉल विवरण" @@ -217,9 +213,11 @@ "अवरोधित नंबर" "%1$s पहले से अवरोधित है." "कॉलिंग खाते" + "चालू करें" "अनुमतियां सेट करें" "स्पीड डायल सक्षम करने के लिए, संपर्क अनुमति चालू करें." "अपना कॉल लॉग देखने के लिए, फ़ोन अनुमति चालू करें." + "अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें." "अपना वॉइसमेल ऐक्सेस करने के लिए, फ़ोन अनुमति चालू करें." "अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें." "कॉल करने के लिए, फ़ोन अनुमति चालू करें." 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 5261cfb0d..cd3535372 100644 --- a/java/com/android/dialer/app/res/values-hr/strings.xml +++ b/java/com/android/dialer/app/res/values-hr/strings.xml @@ -86,10 +86,6 @@ "Natrag na poziv u tijeku" "Dodaj poziv" "Dolazni pozivi" - "Ulazak u način skupne radnje" - "Napuštanje načina skupne radnje" - "Odabrano: %1$s" - "Poništen odabir: %1$s" "Reprodukcija govorne pošte" "Prikaz kontakta %1$s" "Nazovi %1$s" @@ -104,13 +100,11 @@ "Govorna pošta" "%s s" "%s min %s s" - "Otkaži način skupnih radnji" "poruka govorne pošte" "poruke govorne pošte" "Da" "Ne" "Želite li izbrisati odabranu poruku/e govorne pošte %1$s?" - "Odabrano: %1$s" @string/call_log_header_today "%1$s u %2$s" "%1$02d.%2$02d" @@ -123,6 +117,7 @@ "MEID" "Učitavanje sa SIM kartice..." "Kontakti SIM kartice" + "Nije dostupna nijedna aplikacija za kontakte" "Glasovno pretraživanje nije dostupno" "Telefoniranje nije moguće jer je aplikacija Telefon onemogućena." "Pretraži kontakte" @@ -151,9 +146,10 @@ "Broj novih propuštenih poziva: %s" "Još nemate nikog na brzom biranju" "Dodaj omiljeni kontakt" + "Još nemate nijedan kontakt" + "Dodajte kontakt" "Dodirnite sliku da biste vidjeli sve brojeve ili dodirnite i zadržite da biste promijenili redoslijed" "Ukloni" - "Odaberi sve" "Videopoziv" "Pošalji poruku" "Pojedinosti poziva" @@ -219,9 +215,11 @@ "Blokirani brojevi" "Broj %1$s već je blokiran." "Pozivanje računa" + "Uključi" "Postavi dopuštenja" "Da biste omogućili brzo biranje, uključite dopuštenje za kontakte." "Da biste vidjeli zapisnik poziva, uključite dopuštenje za telefon." + "Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte." "Da biste pristupili govornoj pošti, uključite dopuštenje za telefon." "Da biste pretraživali kontakte, uključite dopuštenja za kontakte." "Da biste nazvali nekog, uključite dopuštenje za telefon." 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 452f0da47..2e64d745d 100644 --- a/java/com/android/dialer/app/res/values-hu/strings.xml +++ b/java/com/android/dialer/app/res/values-hu/strings.xml @@ -85,10 +85,6 @@ "Vissza a folyamatban lévő híváshoz" "Hívás hozzáadása" "Bejövő hívások" - "Belépés tömeges műveleti módba" - "Kilépett a tömeges műveleti módból" - "Kijelölés: %1$s" - "Kijelölés megszüntetve: %1$s" "Hangposta lejátszása" "%1$s névjegyének megtekintése" "%1$s hívása" @@ -103,13 +99,11 @@ "Hangposta" "%s másodperc" "%s perc %s másodperc" - "Köteges művelet mód leállítva" "hangpostaüzenetet" "hangpostaüzeneteket" "Igen" "Nem" "Törli a kiválasztott %1$s?" - "%1$s kiválasztva" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Betöltés a SIM kártyáról..." "Névjegyek a SIM kártyán" + "Nincs elérhető névjegyek alkalmazás" "A hangalapú keresés nem érhető el" "Nem lehet telefonhívást kezdeményezni, mert a Telefon alkalmazást letiltották." "Keresés a névjegyek között" @@ -150,9 +145,10 @@ "%s új nem fogadott hívás" "Még semelyik telefonszám sincs gyorshívón" "Kedvenc hozzáadása" + "Még nem rendelkezik egyetlen névjeggyel sem" + "Névjegy hozzáadása" "Koppintson a képre az összes szám megjelenítéséhez, vagy tartsa nyomva az átrendezéshez" "Eltávolítás" - "Az összes kijelölése" "Videohívás" "Üzenet küldése" "Hívás adatai" @@ -217,9 +213,11 @@ "Letiltott számok" "A következő szám már le van tiltva: %1$s." "Telefonos fiókok" + "Engedélyezés" "Engedélyek beállítása" "Gyorshívás engedélyezéséhez kapcsolja be a Névjegyek engedélyt." "A hívásnapló megtekintéséhez kapcsolja be a Telefon engedélyt." + "A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt." "A hangposta eléréséhez kapcsolja be a Telefon engedélyt." "A névjegyek kereséséhez adja meg a Névjegyek engedélyeket." "Hívásindításhoz kapcsolja be a Telefon engedélyt." 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 97a84f2fe..6f3931c9f 100644 --- a/java/com/android/dialer/app/res/values-hy/strings.xml +++ b/java/com/android/dialer/app/res/values-hy/strings.xml @@ -85,10 +85,6 @@ "Վերադառնալ ընթացիկ զանգին" "Ավելացնել զանգ" "Մուտքային զանգեր" - "Մուտք զանգվածային գործողությունների ռեժին" - "Դուք դուրս եկաք զանգվածային գործողությունների ռեժիմից" - "Ընտրվեց՝ %1$s" - "Ապընտրվեց՝ %1$s" "Նվագարկել ձայնային փոստը" "Դիտել %1$s կոնտակտը" "Զանգել %1$s-ին" @@ -103,13 +99,11 @@ "Ձայնային փոստ" "%s վրկ" "%s րոպե %s վայրկյան" - "Չեղարկել փաթեթային գործողությունների ռեժիմը" "ձայնային հաղորդագրություն" "ձայնային հաղորդագրություններ" "Այո" "Ոչ" "Ջնջե՞լ նշված %1$sը" - "Ընտրվել է՝ %1$s" @string/call_log_header_today "%1$s-ին, ժամը %2$s-ին" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM քարտը բեռնվում է..." "SIM քարտի կոնտակտները" + "Կոնտակտների հավելված չկա" "Ձայնային որոնումը հասանելի չէ" "Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:" "Կոնտակտների որոնում" @@ -150,9 +145,10 @@ "%s նոր բաց թողնված զանգ" "Արագ համարահավաքման ցանկը դատարկ է" "Ավելացնել կոնտակտ" + "Դեռ կոնտակտներ չունեք" + "Ավելացնել կոնտակտ" "Բոլոր համարները տեսնելու համար հպեք պատկերին: Վերադասավորելու համար հպեք և պահեք:" "Հեռացնել" - "Ընտրել բոլորը" "Տեսազանգ" "Ուղարկել հաղորդագրություն" "Զանգի մանրամասները" @@ -217,9 +213,11 @@ "Արգելափակված համարներ" "%1$s համարն արդեն արգելափակված է:" "Հաշիվներ զանգերի համար" + "Միացնել" "Թույլտվությունների սահմանում" "Արագ համարահավաքը թույլատրելու համար միացրեք Կոնտակտների թույլտվությունը:" "Ձեր զանգերի մատյանը տեսնելու համար միացրեք Հեռախոսի թույլտվությունը:" + "Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:" "Ձայնային փոստն օգտագործելու համար միացրեք Հեռախոսի թույլտվությունը:" "Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:" "Զանգ կատարելու համար միացրեք Հեռախոսի թույլտվությունը:" 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 f309f927b..c0de9b3b4 100644 --- a/java/com/android/dialer/app/res/values-in/strings.xml +++ b/java/com/android/dialer/app/res/values-in/strings.xml @@ -85,10 +85,6 @@ "Kembali ke panggilan sedang berlangsung" "Tambahkan panggilan" "Panggilan masuk" - "Masuk ke mode tindakan massal" - "Keluar dari mode tindakan massal" - "%1$s dipilih" - "%1$s tidak dipilih" "Putar pesan suara" "Lihat kontak %1$s" "Telepon %1$s" @@ -103,13 +99,11 @@ "Kotak Pesan" "%s dtk" "%s mnt %s dtk" - "Membatalkan mode tindakan kelompok" "pesan suara" "pesan suara" "Ya" "Tidak" "Hapus %1$s yang dipilih?" - "%1$s dipilih" @string/call_log_header_today "%1$s pukul %2$s" "%1$02d.%2$02d" @@ -122,6 +116,7 @@ "MEID" "Memuat dari kartu SIM..." "Kontak pada kartu SIM" + "Aplikasi kontak tidak tersedia" "Penelusuran suara tidak tersedia" "Tidak dapat melakukan panggilan telepon karena aplikasi Telepon telah dinonaktifkan." "Telusuri kontak" @@ -150,9 +145,10 @@ "%s panggilan tidak terjawab baru" "Daftar panggilan cepat masih kosong" "Tambahkan favorit" + "Anda belum memiliki kontak" + "Tambahkan kontak" "Sentuh foto untuk melihat semua nomor atau sentuh & tahan untuk menyusun ulang" "Hapus" - "Pilih semua" "Panggilan video" "Kirim pesan" "Detail panggilan" @@ -217,9 +213,11 @@ "Nomor yang diblokir" "%1$s sudah diblokir." "Akun panggilan" + "Aktifkan" "Setel izin" "Untuk mengaktifkan panggilan cepat, aktifkan izin Kontak." "Untuk melihat log panggilan, aktifkan izin Telepon." + "Untuk melihat kontak, aktifkan izin Kontak." "Untuk mengakses pesan suara, aktifkan izin Telepon." "Untuk menelusuri kontak, aktifkan izin Kontak." "Untuk melakukan panggilan, aktifkan izin Telepon." 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 b291eae84..fdd635668 100644 --- a/java/com/android/dialer/app/res/values-is/strings.xml +++ b/java/com/android/dialer/app/res/values-is/strings.xml @@ -85,10 +85,6 @@ "Fara aftur í símtal í gangi" "Bæta við símtali" "Móttekin símtöl" - "Opnar fjöldaaðgerðastillingu" - "Fjöldaaðgerðastillingu lokað" - "Valdi %1$s" - "Fjarlægði val á %1$s" "Spila talhólfsskilaboð" "Skoða tengiliðinn %1$s" "Hringja í %1$s" @@ -103,13 +99,11 @@ "Talhólf" "%s sek." "%s mín. og %s sek." - "Hætta við runuaðgerðastillingu" "talhólfsskilaboð" "talhólfsskilaboð" "Já" "Nei" "Eyða völdum %1$s?" - "%1$s valin" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Hleður af SIM-kortinu…" "Tengiliðir á SIM-korti" + "Ekkert tengiliðaforrit í boði" "Raddleit er ekki í boði" "Ekki er hægt að hringja vegna þess að forritið Sími hefur verið gert óvirkt." "Leita í tengiliðum" @@ -150,9 +145,10 @@ "%s ný ósvöruð símtöl" "Þú ert ekki með neinn í hraðvali enn sem komið er" "Bæta uppáhaldi við" + "Þú ert ekki með neina tengiliði enn sem komið er" + "Bæta tengilið við" "Snertu myndina til að sjá öll númer eða haltu henni inni til að endurraða" "Fjarlægja" - "Velja allt" "Myndsímtal" "Senda skilaboð" "Símtalsupplýsingar" @@ -217,9 +213,11 @@ "Númer á bannlista" "%1$s er nú þegar á bannlista." "Símtalareikningar" + "Kveikja" "Stilla heimildir" "Kveiktu á tengiliðaheimildinni til að gera hraðval virkt." "Kveiktu á heimild símaforritsins til að sjá símtalaskrána þína." + "Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína." "Kveiktu á heimild símaforritsins til að fá aðgang að talhólfinu þínu." "Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum." "Kveiktu á heimild símaforritsins til að hringja símtal." 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 711ab26ee..9bd8cd359 100644 --- a/java/com/android/dialer/app/res/values-it/strings.xml +++ b/java/com/android/dialer/app/res/values-it/strings.xml @@ -85,10 +85,6 @@ "Torna alla chiamata in corso" "Aggiungi chiamata" "Chiamate in arrivo" - "Attivazione della modalità di azione collettiva" - "Disttivazione della modalità di azione collettiva" - "%1$s selezionato" - "%1$s deselezionato" "Riproduci messaggio vocale" "Visualizza %1$s contatto" "Chiama %1$s" @@ -103,13 +99,11 @@ "Segreteria" "%s secondi" "%s min %s s" - "Annulla modalità di azione collettiva" "messaggio vocale" "messaggi vocali" "Sì" "No" "Eliminare i %1$s selezionati?" - "%1$s selezionate" @string/call_log_header_today "%1$s alle ore %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Caricamento da SIM..." "Contatti SIM" + "Nessuna app di contatti disponibile" "Ricerca vocale non disponibile" "Impossibile effettuare una telefonata perché l\'applicazione Telefono è stata disattivata." "Cerca contatti" @@ -150,9 +145,10 @@ "%s nuove chiamate perse" "Nessun preferito disponibile nella Composizione rapida" "Aggiungi un preferito" + "Nessun contatto disponibile" + "Aggiungi un contatto" "Tocca l\'immagine per visualizzare tutti i numeri oppure tieni premuto per cambiare l\'ordine" "Rimuovi" - "Seleziona tutto" "Videochiamata" "Invia un messaggio" "Dettagli chiamata" @@ -217,9 +213,11 @@ "Numeri bloccati" "%1$s è già bloccato." "Account di chiamata" + "Attiva" "Imposta autorizzazioni" "Per attivare la composizione rapida, attiva l\'autorizzazione Contatti." "Per accedere al registro chiamate, attiva l\'autorizzazione sul telefono." + "Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti." "Per accedere alla segreteria, attiva l\'autorizzazione sul telefono." "Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti." "Per fare una chiamata, attiva l\'autorizzazione sul telefono." 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 bd2a05aec..bb115e2f8 100644 --- a/java/com/android/dialer/app/res/values-iw/strings.xml +++ b/java/com/android/dialer/app/res/values-iw/strings.xml @@ -87,10 +87,6 @@ "חזור לשיחה פעילה" "הוסף שיחה" "שיחות נכנסות" - "עברת למצב של ביצוע פעולות בכמות גדולה" - "עזבת את המצב של ביצוע פעולות בכמות גדולה" - "בחרת את %1$s" - "ביטלת את הבחירה של %1$s" "הפעל דואר קולי" "הצג את איש הקשר %1$s" "התקשר אל %1$s" @@ -105,13 +101,11 @@ "דואר קולי" "%s שניות" "%s דק\' %s שנ\'" - "ביטול המצב של ביצוע פעולות בכמות גדולה" "ההודעה הקולית" "ההודעות הקוליות" "כן" "לא" "האם למחוק את %1$s שבחרת?" - "%1$s נבחרו" @string/call_log_header_today "%1$s ב-%2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "MEID" "‏טוען מכרטיס SIM…" "‏אנשי קשר בכרטיס SIM" + "אין אפליקציה זמינה עבור אנשי קשר" "חיפוש קולי אינו זמין" "לא ניתן לבצע שיחת טלפון מפני שאפליקציית הטלפון הושבתה." "חפש אנשי קשר" @@ -152,9 +147,10 @@ "%s שיחות חדשות שלא נענו" "עדיין לא הוגדר חיוג מהיר לאף איש קשר" "הוסף פריט מועדף" + "עדיין אין לך אנשי קשר" + "הוסף איש קשר" "גע בתמונה כדי להציג את כל המספרים או גע והחזק כדי לשנות את הסדר" "הסר" - "בחירת הכל" "שיחת וידאו" "שלח הודעה" "פרטי שיחה" @@ -221,9 +217,11 @@ "מספרים חסומים" "%1$s כבר חסום." "חשבונות לביצוע שיחות" + "הפעל" "הגדר הרשאות" "כדי להפעיל חיוג מהיר, הפעל את ההרשאה \'אנשי קשר\'." "כדי לראות את יומן השיחות, הפעל את ההרשאה \'טלפון\'." + "כדי להציג את אנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'." "כדי לגשת לדואר הקולי, הפעל את ההרשאה \'טלפון\'." "כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'." "כדי להתקשר, הפעל את ההרשאה \'טלפון\'." 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 9ba40fb8f..63b15cbed 100644 --- a/java/com/android/dialer/app/res/values-ja/strings.xml +++ b/java/com/android/dialer/app/res/values-ja/strings.xml @@ -85,10 +85,6 @@ "通話に戻る" "別の通話を追加" "着信" - "一括操作モードを開始します" - "一括操作モードを終了しました" - "%1$s を選択しました" - "%1$s を選択解除しました" "ボイスメールを再生" "%1$sの連絡先を表示" "%1$sに発信" @@ -103,13 +99,11 @@ "ボイスメール" "%s秒" "%s%s秒" - "一括操作モードをキャンセルします" "ボイスメール" "ボイスメール" "はい" "いいえ" "選択した%1$sを削除しますか?" - "%1$s 件選択済み" @string/call_log_header_today "%1$s%2$s" "%1$02d%2$02d 秒" @@ -122,6 +116,7 @@ "MEID" "SIMカードから読み取り中..." "SIMカードの連絡先" + "連絡先アプリがありません" "音声検索を利用できません" "電話アプリが無効になっているため発信できません。" "連絡先を検索" @@ -150,9 +145,10 @@ "%s件の不在着信" "クイックアクセスに登録済みの連絡先はまだありません" "お気に入りを追加" + "連絡先はまだありません" + "連絡先を追加" "画像をタップするとすべての番号が表示され、押し続けると番号を並べ替えることができます" "削除" - "すべて選択" "ビデオハングアウト" "メッセージを送信" "通話の詳細" @@ -217,9 +213,11 @@ "ブロックした番号" "%1$sは既にブロックしています。" "通話アカウント" + "ONにする" "権限を設定" "クイックアクセスを有効にするには、連絡先権限をONにしてください。" "通話履歴を表示するには、電話権限をONにしてください。" + "連絡先を表示するには、連絡先権限をONにしてください。" "ボイスメールにアクセスするには、電話権限をONにしてください。" "連絡先を検索するには、連絡先権限をONにしてください。" "電話をかけるには、電話権限をONにしてください。" 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 dbb48f4f5..ae89505b5 100644 --- a/java/com/android/dialer/app/res/values-ka/strings.xml +++ b/java/com/android/dialer/app/res/values-ka/strings.xml @@ -85,10 +85,6 @@ "მიმდინარე ზარზე დაბრუნება" "ზარის დამატება" "შემომავალი ზარები" - "მიმდინარეობს ერთიანი ქმედების რეჟიმში შესვლა" - "ერთიანი ქმედების რეჟიმიდან გამოხვედით" - "არჩეულია %1$s" - "%1$s-ის არჩევა გაუქმდა" "ხმოვანი ფოსტის ჩართვა" "კონტაქტის %1$s ნახვა" "%1$s-თან დარეკვა" @@ -103,13 +99,11 @@ "ხმოვანი ფოსტა" "%s წმ" "%s მინ %s წამ" - "ერთიანი ქმედების რეჟიმის გაუქმება" "ხმოვანი ფოსტა" "ხმოვანი ფოსტა" "დიახ" "არა" "გსურთ, წაშალოთ არჩეული %1$s?" - "არჩეულია %1$s" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "იტვირთება SIM ბარათიდან…" "SIM ბარათის კონტაქტები" + "კონტაქტების აპლიკაცია არ არის ხელმისაწვდომი" "ხმოვანი ძიება არ არის ხელმისაწვდომი" "სატელეფონო ზარის განხორციელება ვერ ხერხდება, ვინაიდან ტელეფონის აპლიკაცია გაუქმებულია." "კონტაქტებში ძიება" @@ -150,9 +145,10 @@ "%s ახალი გაცდენილი ზარი" "სწრაფი აკრეფისთვის რჩეულები ჯერ არ გყავთ" "რჩეული კონტაქტის დამატება" + "კონტაქტები ჯერ არ გაქვთ" + "კონტაქტის დამატება" "ყველა ნომრის სანახავად შეეხეთ სურათს ან შეეხეთ და დააყოვნეთ მიმდევრობის შესაცვლელად" "ამოშლა" - "ყველას არჩევა" "ვიდეო ზარი" "შეტყობინების გაგზავნა" "ზარის მონაცემები" @@ -217,9 +213,11 @@ "დაბლოკილი ნომრები" "%1$s უკვე დაბლოკილია." "ანგარიშების გამოძახება" + "ჩართვა" "ნებართვების დაყენება" "სწრაფი აკრეფის გასააქტიურებლად, ჩართეთ კონტაქტების ნებართვა." "ზარების ჟურნალის სანახავად, ჩართეთ ტელეფონის ნებართვა." + "კონტაქტების სანახავად, ჩართეთ კონტაქტების ნებართვა." "ხმოვან ფოსტაზე წვდომისთვის, ჩართეთ ტელეფონის ნებართვა." "თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები." "ზარის განსახორციელებლად, ჩართეთ ტელეფონის ნებართვა." 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 8dfe531a1..ba4238692 100644 --- a/java/com/android/dialer/app/res/values-kk/strings.xml +++ b/java/com/android/dialer/app/res/values-kk/strings.xml @@ -85,10 +85,6 @@ "Қосылып тұрған қоңырауға оралу" "Қоңырау қосу" "Келген қоңыраулар" - "Жаппай әрекет режиміне өту" - "Жаппай әрекет режиімінен шығу" - "%1$s таңдалды" - "%1$s таңдауы алынды" "Дауыс-хабарды ойнату" "%1$s контактісін көру" "%1$s нөміріне қоңырау шалу" @@ -103,13 +99,11 @@ "Дауыстық пошта" "%s сек." "%s мин %s сек" - "Топтама әрекеттер режимін жабу" "дауыстық хабар" "дауыстық хабарлар" "Иә" "Жоқ" "Таңдалған %1$s хабарларын жою қажет пе?" - "%1$s таңдалды" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID (ұялы жабдық анықтағыш)" "SIM картасынан жүктеу…" "SIM картасының контактілері" + "Контактілер қолданбасы қол жетімді емес" "Дауыс арқылы іздеу қол жетімді емес" "Телефон қоңырауын шалу мүмкін емес, өйткені «Телефон» қолданбасы өшірілген." "Контактілерді іздеу" @@ -150,9 +145,10 @@ "%s жаңа қабылданбаған қоңыраулар" "Жылдам теруде әлі ешкім жоқ" "Таңдаулыны қосу" + "Әлі ешқандай контактілер жоқ" + "Контакт қосу" "Барлық нөмірлерді көру үшін кескінді түртіңіз, ал ретін өзгерту үшін түртіп, ұстап тұрыңыз" "Алып тастау" - "Барлығын таңдау" "Бейне қоңырау" "Хабар жіберу" "Қоңырау мәліметтері" @@ -217,9 +213,11 @@ "Бөгелген нөмірлер" "%1$s бөгеліп қойылған." "Қоңырау шалу есептік жазбалары" + "Қосу" "Рұқсаттар орнату" "Жылдам теруді қосу үшін \"Контактілер\" рұқсатын қосыңыз." "Қоңыраулар журналы көру үшін \"Телефон\" рұқсатын қосыңыз." + "Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз." "Дауыс поштасына қатынасу үшін \"Телефон\" рұқсатын қосыңыз." "Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз." "Қоңырауды шалу үшін \"Телефон\" рұқсатын қосыңыз." 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 ed0db05e2..bdc91cf0b 100644 --- a/java/com/android/dialer/app/res/values-km/strings.xml +++ b/java/com/android/dialer/app/res/values-km/strings.xml @@ -85,10 +85,6 @@ "កំពុង​ត្រឡប់​ទៅកាន់​ការ​ហៅ" "បន្ថែម​ការ​ហៅ" "ការ​ហៅ​ចូល" - "ចូល​មុខងារ​សកម្មភាព​ច្រើន" - "បាន​ចាកចេញ​ពី​មុខងារ​សកម្មភាព​ច្រើន" - "បាន​ជ្រើសរើស %1$s" - "បាន​ដក​ការជ្រើសរើស %1$s" "ចាក់​សារ​ជា​សំឡេង" "មើល​ទំ​នាក់ទំនង %1$s" "ហៅ %1$s" @@ -103,13 +99,11 @@ "សារ​ជា​សំឡេង" "%s វិនាទី" "%s នាទី %s វិនាទី" - "បោះបង់​មុខងារ​សកម្មភាព​ជា​ក្រុម" "សារ​ជា​សំឡេង" "សារ​ជា​សំឡេង" "បាទ/ចាស" "ទេ" "លុប %1$s ដែល​បាន​ជ្រើសរើស?" - "បាន​ជ្រើសរើស %1$s" @string/call_log_header_today "%1$s នៅម៉ោង %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "កំពុង​ផ្ទុក​ពី​ស៊ីម​កាត..." "ទំនាក់ទំនង​នៅ​ក្នុង​ស៊ីម​កាត" + "មិនមានកម្មវិធីទំនាក់ទំនងទេ" "ការស្វែងរកជាសម្លេងមិនមានទេ" "មិន​អាច​ហៅ​បាន​ទេ​ ព្រោះ​កម្មវិធី​ទូរស័ព្ទ​ត្រូវ​បាន​បិទ។" "រក​ទំនាក់ទំនង" @@ -150,9 +145,10 @@ "ខកខាន​ទទួល​ថ្មី %s" "គ្មាននរណាម្នាក់នៅក្នុងការហៅរហ័សរបស់អ្នកនៅឡើយទេ" "បញ្ចូលសំណព្វ" + "អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ" + "បន្ថែមទំនាក់ទំនង" "ប៉ះរូបភាពដើម្បីមើលលេខទាំងអស់ ឬប៉ះ & សង្កត់ឲ្យជាប់ដើម្បីតម្រៀបឡើងវិញ" "លុបចេញ" - "ជ្រើសរើស​​ទាំងអស់" "ហៅជាវីដេអូ" "ផ្ញើសារ" "ព័ត៌មានលម្អិតអំពីការហៅ" @@ -217,9 +213,11 @@ "លេខបានរារាំង" "%1$s ត្រូវបានទប់ស្កាត់រួចហើយ" "គណនីហៅទូរសព្ទ" + "បើក" "កំណត់សិទ្ធិអនុញ្ញាត" "ដើម្បីបើកដំណើរការហៅរហ័ស សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។" "ដើម្បីមើលកំណត់ហេតុហៅទូរស័ព្ទរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។" + "ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។" "ដើម្បីចូលដំណើរការសារជាសំឡេងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។" "ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។" "ដើម្បីធ្វើការហៅទូរស័ព្ទ សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។" 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 932bc4035..dae544d3f 100644 --- a/java/com/android/dialer/app/res/values-kn/strings.xml +++ b/java/com/android/dialer/app/res/values-kn/strings.xml @@ -85,10 +85,6 @@ "ಪ್ರತ್ಯತ್ತರ ಕರೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ" "ಕರೆಯನ್ನು ಸೇರಿಸಿ" "ಒಳಬರುವ ಕರೆಗಳು" - "ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್‌ಗೆ ಪ್ರವೇಶಿಸಲಾಗುತ್ತಿದೆ" - "ದೊಡ್ಡ ಪ್ರಮಾಣದ ಕ್ರಿಯೆಯ ಮೋಡ್ ತೊರೆಯಲಾಗಿದೆ" - "%1$s ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ" - "%1$s ಆಯ್ಕೆಯನ್ನು ರದ್ದುಮಾಡಲಾಗಿದೆ" "ಧ್ವನಿಮೇಲ್‌ ಪ್ಲೇ ಮಾಡಿ" "%1$s ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ" "%1$s ಕರೆ ಮಾಡಿ" @@ -103,13 +99,11 @@ "ಧ್ವನಿಮೇಲ್" "%s ಸೆಕೆಂ" "%s ನಿಮಿ %s ಸೆಕೆಂ" - "ಬ್ಯಾಚ್ ಕ್ರಿಯೆಗಳ ಮೋಡ್ ಅನ್ನು ರದ್ದುಮಾಡಿ" "ಧ್ವನಿಮೇಲ್" "ಧ್ವನಿಮೇಲ್‌ಗಳು" "ಹೌದು" "ಇಲ್ಲ" "ಆಯ್ಕೆ ಮಾಡಲಾದ %1$s ಅನ್ನು ಅಳಿಸುವುದೇ?" - "%1$s ಆಯ್ಕೆಮಾಡಲಾಗಿದೆ" @string/call_log_header_today "%1$s ರಂದು %2$s ಗಂಟೆಗೆ" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "ಸಿಮ್‌ ಕಾರ್ಡ್‌ನಿಂದ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…" "ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಸಂಪರ್ಕಗಳು" + "ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ" "ಧ್ವನಿ ಹುಡುಕಾಟ ಲಭ್ಯವಿಲ್ಲ" "ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುವುದರಿಂದ ಫೋನ್ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ." "ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ" @@ -150,9 +145,10 @@ "%s ಹೊಸ ಮಿಸ್ಡ್‌ ಕರೆಗಳು" "ನಿಮ್ಮ ತ್ವರಿತ ಡಯಲ್‌ನಲ್ಲಿ ಇದುವರೆಗೆ ಯಾರೂ ಇಲ್ಲ" "ಮೆಚ್ಚಿನದನ್ನು ಸೇರಿಸಿ" + "ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿಲ್ಲ" + "ಸಂಪರ್ಕ ಸೇರಿಸಿ" "ಎಲ್ಲಾ ಸಂಖ್ಯೆಗಳನ್ನು ನೋಡಲು ಚಿತ್ರವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌‌ ಮಾಡಿ" "ತೆಗೆದುಹಾಕು" - "ಎಲ್ಲವನ್ನೂ ಆಯ್ಕೆ ಮಾಡಿ" "ವೀಡಿಯೊ ಕರೆ" "ಸಂದೇಶ ಕಳುಹಿಸಿ" "ಕರೆಯ ವಿವರಗಳು" @@ -217,9 +213,11 @@ "ನಿರ್ಬಂಧಿಸಲಾದ ಸಂಖ್ಯೆಗಳು" "%1$s ಈಗಾಗಲೇ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ." "ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು" + "ಆನ್‌ ಮಾಡಿ" "ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸು" "ವೇಗ ಡಯಲ್ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." "ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." + "ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." "ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಪ್ರವೇಶಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." "ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ." "ಕರೆ ಮಾಡಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." 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 de6b93c01..1850b6ce1 100644 --- a/java/com/android/dialer/app/res/values-ko/strings.xml +++ b/java/com/android/dialer/app/res/values-ko/strings.xml @@ -85,10 +85,6 @@ "진행 중인 통화로 돌아가기" "통화 추가" "수신전화" - "일괄 작업 모드 시작 중" - "일괄 작업 모드 종료됨" - "%1$s 선택됨" - "%1$s 선택 취소됨" "음성사서함 재생" "%1$s님의 연락처 보기" "전화걸기: %1$s" @@ -103,13 +99,11 @@ "음성사서함" "%s초" "%s%s초" - "일괄 작업 모드 취소" "음성사서함" "음성사서함" "예" "아니요" "선택한 %1$s을(를) 삭제하시겠습니까?" - "%1$s개 선택됨" @string/call_log_header_today "%1$s %2$s" "%1$02d%2$02d초" @@ -122,6 +116,7 @@ "MEID" "SIM 카드에서 로딩 중..." "SIM 카드 주소록" + "사용할 수 있는 주소록 앱이 없습니다." "음성검색이 지원되지 않습니다." "전화 애플리케이션을 사용 중지했으므로 전화를 걸 수 없습니다." "주소록 검색" @@ -150,9 +145,10 @@ "새로운 부재중 전화 %s건" "아직 단축 다이얼이 설정된 연락처가 없습니다." "단축 다이얼 추가" + "아직 연락처가 없습니다." + "연락처 추가" "이미지를 터치하여 모든 번호를 확인하거나 길게 터치하여 재정렬합니다." "삭제" - "모두 선택" "화상 통화" "메시지 보내기" "통화 세부정보" @@ -217,9 +213,11 @@ "차단된 번호" "%1$s번은 이미 차단되었습니다." "통화 계정" + "사용" "권한 설정" "단축번호를 사용하려면 주소록 권한을 사용하도록 설정하세요." "통화 기록을 보려면 전화 권한을 사용하도록 설정하세요." + "주소록을 보려면 주소록 권한을 사용하도록 설정하세요." "음성사서함에 액세스하려면 전화 권한을 사용하도록 설정하세요." "주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요." "전화를 걸려면 전화 권한을 사용하도록 설정하세요." 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 ac9a617ed..9e80e29ee 100644 --- a/java/com/android/dialer/app/res/values-ky/strings.xml +++ b/java/com/android/dialer/app/res/values-ky/strings.xml @@ -85,10 +85,6 @@ "Токтотулган чалууга кайтуу" "Чалууну кошуу" "Кирүүчү чалуулар" - "Жапырт аракет режимине кирдиңиз" - "Жапырт аракет режиминен чыктыңыз" - "%1$s объект тандалды" - "%1$s объект тандоодон чыгарылды" "Үнкатты угуу" "Байланышты кароо %1$s" "Чалуу %1$s" @@ -103,13 +99,11 @@ "Үн почтасы" "%s сек." "%s мүн. %s сек." - "Жапырт аракет режимин жокко чыгаруу" "үн почтасы" "үн почталары" "Ооба" "Жок" "Тандалган %1$s жок кылынсынбы?" - "%1$s тандалды" @string/call_log_header_today "%1$s саат %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM картадан жүктөлүүдө..." "SIM картадагы байланыштар" + "Жеткиликтүү байланыштар колдонмосу жок" "Үн менен издөө жеткиликтүү эмес" "Телефон колдонмосу өчүрүлгөндүктөн, чалуу мүмкүн болбой жатат." "Байланыштарды издөө" @@ -150,9 +145,10 @@ "%s жаңы өткөзүлгөн чалуу" "Азырынча тез териле турган номерлер жок" "Сүйүктүү номер кошуу" + "Азырынча бир дагы байланышыңыз жок" + "Байланыш кошуу" "Бардык номерлерди көрүү үчүн, сүрөткө тийип коюңуз же коё бербей басып туруп иретин өзгөртсөңүз болот." "Алып салуу" - "Баарын тандоо" "Видео чалуу" "Билдирүү жөнөтүү" "Чалуунун чоо-жайы" @@ -217,9 +213,11 @@ "Бөгөттөлгөн номерлер" "%1$s мурунтан эле бөгөттөлгөн." "Чалуу каттоо эсептери" + "Күйгүзүү" "Уруксаттарды берүү" "Тез терүүнү иштетүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз." "Чалуулар таржымалыңызды көрүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз." + "Байланыштар тизмесин көрүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз." "Үн почтаңызга кирүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз." "Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз." "Чалуу үчүн, \"Телефон\" колдонмосуна уруксат бериңиз." 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 2a829730f..8284e8de0 100644 --- a/java/com/android/dialer/app/res/values-lo/strings.xml +++ b/java/com/android/dialer/app/res/values-lo/strings.xml @@ -85,10 +85,6 @@ "ກັບໄປການໂທທີ່ກຳລັງດຳເນີນຢູ່" "ເພີ່ມການໂທ" "ສາຍໂທເຂົ້າ" - "ກຳລັງເຂົ້າໂໝດຄຳສັ່ງຈຳນວນຫຼາຍ" - "ອອກຈາກໂໝດຄຳສັ່ງຈຳນວນຫຼາຍແລ້ວ" - "ເລືອກ %1$s ແລ້ວ" - "ເຊົາເລືອກ %1$s ແລ້ວ" "ເປີດຂໍ້ຄວາມສຽງ" "ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ %1$s" "ໂທຫາ %1$s" @@ -103,13 +99,11 @@ "ຂໍ້ຄວາມສຽງ" "%s ວິນາທີ" "%s ນ​ທ %s ວິ" - "ຍົກເລີກໂໝດຄຳສັ່ງເປັນຊຸດ" "ຂໍ້ຄວາມສຽງ" "ຂໍ້ຄວາມສຽງ" "ແມ່ນແລ້ວ" "ບໍ່" "ລຶບ %1$s ທີ່ເລືອກອອກໄປບໍ?" - "ເລືອກ %1$s ລາຍການແລ້ວ" @string/call_log_header_today "%1$s ເວລາ %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "ກຳລັງໂຫລດຈາກ SIM card..." "ລາຍຊື່ຜູ່ຕິດຕໍ່ SIM card" + "ບໍ່​ມີ​ແອັບຯ​ລາຍ​ຊື່​ຕິດ​ຕໍ່​ຢູ່" "ບໍ່​ມີ​ການ​ຊອກ​ຫາ​ດ້ວຍ​ສຽງ​ຢູ່" "ບໍ່​ສາ​ມາດ​ໂທ​ໄດ​້​ເນື່ອງ​ຈາກ​ແອັບ​ພ​ລິ​ເຄ​ຊັນ​ໂທ​ລະ​ສັບ​ຖືກ​ປິດ​ການ​ນຳ​ໃຊ້​ໄວ້." "ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່" @@ -150,9 +145,10 @@ "%s ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່" "ບໍ່​ມີ​ຜູ້​ໃດ​ຢູ່​ໃນ​ການ​ໂທ​ດ່ວນ​ຂອງ​ທ່ານ​ເທື່ອ" "ເພີ່ມ​ລາຍ​ການ​ທີ່​ມັກ" + "ທ່ານ​ບໍ່​ມີ​ລາຍ​ຊື່​ໃດ​ເທື່ອ" + "ເພີ່ມ​ລາຍ​ຊື່" "ແຕະຮູບເພື່ອເບິ່ງເບີໂທທັງໝົດ ຫຼື ແຕະຄ້າງໄວ້ເພື່ອຈັດລຳດັບໃໝ່" "​ລຶບ​ອອກ" - "ເລືອກທັງໝົດ" "​ໂທ​ດ້ວຍ​ວິ​ດີ​ໂອ" "ສົ່ງຂໍ້ຄວາມ" "ລາຍລະອຽດ​ການໂທ" @@ -217,9 +213,11 @@ "ເບີໂທລະສັບທີ່ບລັອກໄວ້" "%1$s ຖືກ​ບ​ລັອກ​ແລ້ວ." "ບັນ​ຊີ​ໂທ" + "ເປີດ​" "ຕັ້ງ​ການ​ອະ​ນຸ​ຍາດ" "ເພື່ອ​ເປີດ​ໃຊ້​ງານ​ການໂທດ່ວນ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່." "ເພື່ອ​ເບິ່ງ​ບັນ​ທຶກ​ການ​ໂທ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ." + "ເພື່ອ​ເບິ່ງ​ລາຍ​ຊື່​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່" "ເພື່ອ​ເຂົ້າ​ຫາ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ." "ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່." "ເພື່ອ​ເຮັດການໂທ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ." 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 367c928f4..a346d5d0a 100644 --- a/java/com/android/dialer/app/res/values-lt/strings.xml +++ b/java/com/android/dialer/app/res/values-lt/strings.xml @@ -87,10 +87,6 @@ "Grįžti prie vykdomo skambučio" "Pridėti skambutį" "Gaunami skambučiai" - "Įjungiamas masinių veiksmų režimas" - "Masinių veiksmų režimas išjungtas" - "Pasirinkta: %1$s" - "Pasirinkimas atšauktas: %1$s" "Paleisti balso pašto pranešimus" "Žiūrėti kontaktą %1$s" "Skambinti %1$s" @@ -105,13 +101,11 @@ "Balso paštas" "%s sek." "%s min. %s sek." - "Atšaukti masinių veiksmų režimą" "balso pašto praneš." "balso pašto praneš." "Taip" "Ne" "Ištrinti pasir. %1$s?" - "Pasirinkta: %1$s" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "MEID" "Įkeliama iš SIM kortelės..." "SIM kortelės adresatai" + "Nepasiekiama jokia kontaktų programa" "Paieška balsu nepasiekiama" "Negalima skambinti telefonu, nes Telefono programa išjungta." "Ieškoti adresatų" @@ -152,9 +147,10 @@ "Naujų praleistų skambučių: %s" "Dar nieko neįtraukėte į sparčiojo rinkimo sąrašą" "Pridėti mėgstamiausią" + "Dar neturite kontaktų" + "Pridėti kontaktą" "Palieskite vaizdą, kad peržiūrėtumėte visus numerius, arba palieskite ir palaikykite, kad pertvarkytumėte" "Pašalinti" - "Pasirinkti viską" "Vaizdo skambutis" "Siųsti pranešimą" "Išsami skambučio informacija" @@ -221,9 +217,11 @@ "Užblokuoti numeriai" "%1$s jau užblokuotas." "Skambinimo paskyros" + "Įjungti" "Nustatyti leidimus" "Jei norite įgalinti spartųjį rinkimą, įjunkite Kontaktų programos leidimą." "Jei norite peržiūrėti skambučių žurnalą, įjunkite Telefono programos leidimą." + "Jei norite peržiūrėti kontaktus, įjunkite Kontaktų programos leidimą." "Jei norite pasiekti balso paštą, įjunkite Telefono programos leidimą." "Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus." "Jei norite paskambinti, įjunkite Telefono programos leidimą." 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 2713b91b6..808d7bfb7 100644 --- a/java/com/android/dialer/app/res/values-lv/strings.xml +++ b/java/com/android/dialer/app/res/values-lv/strings.xml @@ -86,10 +86,6 @@ "Atgriezties pie pašreizējā zvana" "Pievienot zvanu" "Ienākošie zvani" - "Tiek atvērts lielapjoma darbību režīms" - "Tika aizvērts lielapjoma darbību režīms" - "Atlasīt: %1$s" - "Noņemt atlasi: %1$s" "Atskaņot balss pasta ziņojumu" "Skatīt kontaktpersonu %1$s" "Zvanīt: %1$s" @@ -104,13 +100,11 @@ "Balss pasts" "%s s" "%s min %s s" - "Iziet no grupas darbību režīma" "balss pasta ziņojums" "balss pasta ziņojumi" "Jā" "Nē" "Vai dzēst atlasi: %1$s?" - "Atlasīti: %1$s" @string/call_log_header_today "%1$s plkst. %2$s" "%1$02d:%2$02d" @@ -123,6 +117,7 @@ "MEID" "Notiek ielāde no SIM kartes..." "Kontaktpersonas SIM kartē" + "Nav pieejama neviena kontaktpersonu lietotne." "Meklēšana ar balsi nav pieejama." "Nevar veikt tālruņa zvanu, jo lietojumprogramma Tālrunis tika atspējota." "Meklēt kontaktpersonas" @@ -151,9 +146,10 @@ "Jauni neatbildēti zvani: %s" "Ātro zvanu sarakstā vēl nav nevienas kontaktpersonas." "Pievienot izlasei" + "Jums vēl nav nevienas kontaktpersonas." + "Pievienot kontaktpersonu" "Pieskarieties attēlam, lai skatītu visus numurus, vai pieskarieties attēlam un turiet to, lai veiktu pārkārtošanu." "Noņemt" - "Atlasīt visu" "Videozvans" "Sūtīt ziņojumu" "Informācija par zvanu" @@ -219,9 +215,11 @@ "Bloķētie numuri" "%1$s jau ir bloķēts." "Zvanu konti" + "Ieslēgt" "Iestatīt atļaujas" "Lai iespējotu ātros zvanus, ieslēdziet atļauju Kontaktpersonas." "Lai skatītu zvanu žurnālu, ieslēdziet atļauju Tālrunis." + "Lai skatītu kontaktpersonas, ieslēdziet atļauju Kontaktpersonas." "Lai piekļūtu balss pastam, ieslēdziet atļauju Tālrunis." "Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas." "Lai veiktu zvanu, ieslēdziet atļauju Tālrunis." 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 09725a642..6d2e533a5 100644 --- a/java/com/android/dialer/app/res/values-mk/strings.xml +++ b/java/com/android/dialer/app/res/values-mk/strings.xml @@ -85,10 +85,6 @@ "Врати се на повик во тек" "Додај повик" "Дојдовни повици" - "Влегувате во режим на групно дејство" - "Излеговте од режим на групно дејство" - "Избрано е %1$s" - "Поништен е изборот на %1$s" "Преслушај говорна пошта" "Прикажи контакт %1$s" "Повикај %1$s" @@ -103,13 +99,11 @@ "Говорна пошта" "%s сек." "%s мин. %s сек." - "Откажи го режимот на групни дејства" "говорна пошта" "говорни пораки" "Да" "Не" "Да се избришат избраните %1$s?" - "Избрани се %1$s" @string/call_log_header_today "%1$s во %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Вчитување од SIM картичка..." "Контакти од SIM картичка" + "Не е достапна апликација за контакти" "Гласовното пребарување не е достапно" "Не може да се воспостави телефонски повик, бидејќи апликацијата Телефон е оневозможена." "Пребарај контакти" @@ -150,9 +145,10 @@ "%s нови пропуштени повици" "Сè уште немате никого на брзо бирање" "Додај омилено" + "Сè уште немате контакти" + "Додај контакт" "Допрете ја сликата за да ги видите сите броеви или допрете и држете за промена на редоследот" "Отстрани" - "Изберете ги сите" "Видеоповик" "Испрати порака" "Детали на повик" @@ -217,9 +213,11 @@ "Блокирани броеви" "%1$s веќе е блокиран." "Сметки за повикување" + "Вклучи" "Постави дозволи" "За да овозможите брзо бирање, вклучете ја дозволата за контакти." "За да ја видите евиденцијата на повици, вклучете ја дозволата за телефон." + "За да ги видите контактите, вклучете ја дозволата за контакти." "За да пристапите кон говорната пошта, вклучете ја дозволата за телефон." "За да ги пребарувате контактите, вклучете ги дозволите за контакти." "За да воспоставите повик, вклучете ја дозволата за телефон." 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 7655dbe23..91accf442 100644 --- a/java/com/android/dialer/app/res/values-ml/strings.xml +++ b/java/com/android/dialer/app/res/values-ml/strings.xml @@ -85,10 +85,6 @@ "വിളിച്ചുകൊണ്ടിരിക്കുന്ന കോളിലേക്ക് മടങ്ങുക" "കോൾ ചേർക്കുക" "ഇൻകമിംഗ് കോളുകൾ" - "ബൾക്ക് പ്രവർത്തന മോഡിലേക്ക് പ്രവേശിക്കുന്നു" - "ബൾക്ക് പ്രവർത്തന മോഡ് വിട്ടു" - "%1$s തിരഞ്ഞെടുത്തു" - "%1$s തിരഞ്ഞെടുത്തത് മാറ്റി" "വോയ്‌സ്‌മെയിൽ പ്ലേ ചെയ്യുക" "%1$s എന്ന കോൺടാക്റ്റ് കാണുക" "വിളിക്കുക %1$s" @@ -103,13 +99,11 @@ "വോയ്‌സ്‌മെയിൽ" "%s സെക്കൻഡ്" "%s മി. %s സെ." - "\'ബാച്ച് പ്രവർത്തനങ്ങൾ\' മോഡ് റദ്ദാക്കുക" "വോയ്‌സ്‌മെയിൽ" "വോയ്‌സ്മെയിലുകൾ" "അതെ" "ഇല്ല" "തിരഞ്ഞെടുത്ത %1$s ഇല്ലാതാക്കണോ?" - "%1$s എണ്ണം തിരഞ്ഞെടുത്തു" @string/call_log_header_today "%1$s, %2$s-ന്" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "സിം കാർഡിൽ നിന്നും ലോഡുചെയ്യുന്നു…" "സിം കാർഡ് കോൺടാക്റ്റുകൾ" + "കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല" "വോയ്‌സ് തിരയൽ ലഭ്യമല്ല" "ഫോൺ അപ്ലിക്കേഷൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നതിനാൽ ഫോൺ കോൾ ചെയ്യാനാകില്ല." "കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക" @@ -150,9 +145,10 @@ "%s പുതിയ മിസ്‌ഡ് കോളുകൾ" "ഇതുവരെ ആരും നിങ്ങളുടെ സ്പീഡ് ഡയലിൽ ഇല്ല" "പ്രിയപ്പെട്ടത് ചേർക്കുക" + "നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല." + "ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക" "എല്ലാ നമ്പറുകളും കാണാൻ ചിത്രം സ്‌പർശിക്കുക അല്ലെങ്കിൽ വീണ്ടും ക്രമീകരിക്കാൻ സ്‌പർശിച്ച് പിടിക്കുക" "നീക്കംചെയ്യുക" - "എല്ലാം തിരഞ്ഞെടുക്കുക" "വീഡിയോ കോള്‍" "ഒരു സന്ദേശം അയയ്‌ക്കുക" "കോൾ വിശദാംശങ്ങൾ" @@ -217,9 +213,11 @@ "ബ്ലോക്കുചെയ്ത നമ്പറുകൾ" "ഇതിനകം തന്നെ %1$s ബ്ലോക്കുചെയ്തിരിക്കുന്നു" "കോളിംഗ് അക്കൗണ്ട്" + "ഓണാക്കുക" "അനുമതികൾ സജ്ജമാക്കുക" "സ്പീഡ് ഡയൽ പ്രവർത്തനക്ഷമാക്കുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക." "നിങ്ങളുടെ കോൾ ലോഗ് കാണുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക." + "നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക." "നിങ്ങളുടെ വോയ്‌സ്‌മെയിൽ ആക്സസ് ചെയ്യുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക." "നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക." "കോൾ വിളിക്കുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക." 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 29bd8af42..a07a826d5 100644 --- a/java/com/android/dialer/app/res/values-mn/strings.xml +++ b/java/com/android/dialer/app/res/values-mn/strings.xml @@ -85,10 +85,6 @@ "Үргэлжилж буй дуудлага руу буцах" "Дуудлага нэмэх" "Ирж буй дуудлага" - "Багц үйлдлийн горимд орж байна" - "Багц үйлдлийн горимоос гарсан" - "%1$s сонгосон" - "%1$s сонголтыг болиулсан" "Дуут шууданг тоглуулах" "%1$s харилцагчийг харах" "%1$s руу залгах" @@ -103,13 +99,11 @@ "Дуут шуудан" "%s сек" "%s минут %s секунд" - "Багц үйлдлийн горимыг цуцлах" "дуут шуудан" "дуут шуудан" "Тийм" "Үгүй" "Сонгосон %1$s-г устгах уу?" - "%1$s сонгосон" @string/call_log_header_today "%1$s %2$s-д" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM картаас уншиж байна…" "SIM картны харилцагчид" + "Ямар ч харилцагчдын апликейшн байхгүй байна." "Дуут хайлт хийх боломжгүй байна" "Утас аппликешныг идэвхгүйжүүлсэн тул утасны дуудлага хийх боломжгүй." "Харилцагчдаас хайх" @@ -150,9 +145,10 @@ "%s шинэ аваагүй дуудлага" "Таны яаралтай залгах тохиргоон дээр одоогоор харилцагч байхгүй байна" "Таалагдсан хэсэгт нэмэх" + "Танд одоогоор харилцагч байхгүй байна" + "Харилцагч нэмэх" "Бүх дугаарыг харахын тулд зурганд хүрнэ үү эсвэл жагсаалтыг өөрчлөхийн тулд удаан дарна уу." "Хасах" - "Бүгдийг сонгох" "Видео дуудлага" "Зурвас илгээх" "Дуудлагын мэдээлэл" @@ -217,9 +213,11 @@ "Блоклосон дугаар" "%1$s-г аль хэдийн блоклосон байна." "Дуудах бүртгэл" + "Идэвхжүүлэх" "Зөвшөөрөл тохируулах" "Яаралтай дуудлагыг идэвхжүүлэхийн тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү." "Дуудлагын жагсаалтыг харахын тулд утасны зөвшөөрлийг идэвхжүүлнэ үү." + "Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү." "Дуут шууданд хандахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү." "Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү." "Залгахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү." 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 ee21291e8..5aca7a5e2 100644 --- a/java/com/android/dialer/app/res/values-mr/strings.xml +++ b/java/com/android/dialer/app/res/values-mr/strings.xml @@ -85,10 +85,6 @@ "चालू असलेल्या कॉलवर परत जा" "कॉल जोडा" "येणारे कॉल" - "मोठ्या प्रमाणात क्रिया मोडमध्ये प्रवेश करीत आहे" - "मोठ्या प्रमाणात क्रिया मोड सोडत आहे" - "%1$s निवडले" - "%1$s ची निवड रद्द केली" "व्हॉइसमेल प्ले करा" "%1$s संपर्क पहा" "%1$s ला कॉल करा" @@ -103,13 +99,11 @@ "व्हॉइसमेल" "%s सेकंद" "%s मिनिट %s सेकंद" - "बॅच क्रिया मोड रद्द करा" "व्हॉइसमेल" "व्हॉइसमेल" "होय" "नाही" "निवडलेले %1$s हटवायचेे?" - "%1$s निवडले" @string/call_log_header_today "%1$s रोजी %2$s वाजता" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "सिम कार्ड मधून लोड करीत आहे..." "सिम कार्ड संपर्क" + "कोणताही संपर्क अॅप उपलब्ध नाही" "व्हॉइस शोध उपलब्ध नाही" "फोन अनुप्रयोग अक्षम केला गेला असल्याने फोन कॉल करणे शक्य नाही." "संपर्क शोधा" @@ -150,9 +145,10 @@ "%s नवीन सुटलेले कॉल" "अद्याप आपल्‍या स्पीड डायलवर कोणीही नाही" "एक आवडते जोडा" + "आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत" + "एक संपर्क जोडा" "सर्व नंबर पाहण्यासाठी प्रतिमेस स्पर्श करा किंवा पुन्हा क्रम लावण्यासाठी स्पर्श करा आणि धरून ठेवा" "काढा" - "सर्व निवडा" "व्हिडिओ कॉल" "एक संदेश पाठवा" "कॉल तपशील" @@ -217,9 +213,11 @@ "अवरोधित केलेले नंबर" "%1$s आधीच अवरोधित केलेला आहे." "कॉल करण्याची खाती" + "चालू करा" "परवानग्या सेट करा" "स्पीड डायल सक्षम करण्‍यासाठी, संपर्क परवानगी चालू करा." "आपला कॉल लॉग पाहण्‍यासाठी, फोन परवानगी चालू करा." + "आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा." "आपल्‍या व्हॉइसमेलमध्‍ये प्रवेश करण्‍यासाठी, फोन परवानगी चालू करा." "आपले संपर्क शोधण्‍यासाठी, संपर्क परवानग्या चालू करा." "कॉल करण्यासाठी, फोन परवानगी चालू करा." 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 dbb021359..9dbe541d9 100644 --- a/java/com/android/dialer/app/res/values-ms/strings.xml +++ b/java/com/android/dialer/app/res/values-ms/strings.xml @@ -85,10 +85,6 @@ "Kembali ke panggilan yang sedang berlangsung" "Tambah panggilan" "Panggilan masuk" - "Memasuki mod tindakan pukal" - "Meninggalkan mod tindakan pukal" - "%1$s dipilih" - "%1$s dinyahpilih" "Mainkan mel suara" "Lihat kenalan %1$s" "Panggil %1$s" @@ -103,13 +99,11 @@ "Mel suara" "%s saat" "%s min %s saat" - "Batalkan mod tindakan kelompok" "mel suara" "mel suara" "Ya" "Tidak" "Padam %1$s yang dipilih?" - "%1$s dipilih" @string/call_log_header_today "%1$s pada %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Memuatkan dari kad SIM..." "Kenalan kad SIM" + "Tiada apl kenalan tersedia" "Carian suara tidak tersedia" "Tidak boleh membuat panggilan telefon kerana aplikasi Telefon telah dilumpuhkan." "Cari dalam kenalan" @@ -150,9 +145,10 @@ "%s panggilan terlepas baharu" "Belum ada sesiapa pada dail pantas anda" "Tambahkan kegemaran" + "Anda belum mempunyai sebarang kenalan" + "Tambahkan kenalan" "Sentuh imej untuk melihat semua nombor atau sentuh & tahan untuk menyusun semula" "Alih keluar" - "Pilih semua" "Panggilan video" "Hantar mesej" "Butiran panggilan" @@ -217,9 +213,11 @@ "Nombor yang disekat" "%1$s sudah disekat." "Akaun panggilan" + "Hidupkan" "Tetapkan kebenaran" "Untuk mendayakan dail laju, hidupkan kebenaran Kenalan." "Untuk melihat log panggilan anda, hidupkan kebenaran Telefon." + "Untuk melihat kenalan anda, hidupkan kebenaran Kenalan." "Untuk mengakses mel suara anda, hidupkan kebenaran Telefon." "Untuk mencari kenalan anda, hidupkan kebenaran Kenalan." "Untuk membuat panggilan, hidupkan kebenaran Telefon." 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 eecfeb234..2b51b2054 100644 --- a/java/com/android/dialer/app/res/values-my/strings.xml +++ b/java/com/android/dialer/app/res/values-my/strings.xml @@ -85,10 +85,6 @@ "ဖုန်းပြန်ခေါ်မှု ပြုလုပ်နေစဉ်" "ဖုန်းခေါ်မှု ထပ်ထည့်ပါ" "အဝင်ခေါ်ဆိုမှုများ" - "တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်ကို ထည့်သွင်းခြင်း" - "တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်မုဒ်မှ ထွက်လိုက်သည်" - "ရွေးချယ်ထားသော %1$s" - "မရွေးချယ်ထားသော %1$s" "အသံပို့စာ နားထောင်ရန်" "%1$s လိပ်စာကြည့်ရန်" "%1$s ကိုခေါ်ပါ" @@ -103,13 +99,11 @@ "အသံစာပို့စနစ်" "%s စက္ကန့်" "%s မိနစ် %s စက္ကန့်" - "တပြိုင်နက်တည်း စုပြုံလုပ်ဆောင်ချက်များမုဒ်ကိ ပယ်ဖျက်ရန်" "အသံမေးလ်" "အသံမေးလ်များ" "Yes" "No" "ရွေးထားသော %1$s ကို ဖျက်လိုပါသလား။" - "%1$s ကို ရွေးချယ်ထားသည်" @string/call_log_header_today "%1$s %2$s ၌" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEIDနံပါတ်" "ဆင်းမ်ကဒ်မှ ဖွင့်နေပါသည်..." "ဆင်းမ်ကဒ်မှ အဆက်အသွယ်များ" + "အဆက်အသွယ်များ app မရှိ" "အသံဖြင့် ရှာဖွေမှု မရှိ" "ဖုန်း အပလီကေးရှင်းကို ပိတ်ထား၍ ဖုန်း ခေါ်ဆိုမှု မပြုလုပ်နိုင်ခဲ့ပါ။" "အဆက်အသွယ်များရှာပါ" @@ -150,9 +145,10 @@ "လွတ်သွားသောဖုန်း %s ခါ" "သင်၏အမြန်ခေါ်စာရင်းတွင် မည်သူမျှ မရှိသေးပါ" "အနှစ်သက်ဆုံးတစ်ခု ထည့်ရန်" + "သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ" + "အဆက်အသွယ်တစ်ယောက် ထည့်မည်" "နံပါတ်အားလုံးကိုကြည့်ရန် ပုံကိုထိပါ (သို့) ပြန်စီရန် ထိပြီးဖိထားပါ" "ဖယ်ရှာခြင်း" - "အားလုံးကို ရွေးချယ်ပါ" "ဗီဒီယို ခေါ်ဆိုမှု" "စာ တစ်စောင် ပို့ပါ" "ဖုန်းခေါ်မှု အသေးစိတ်အချက်အလက်" @@ -217,9 +213,11 @@ "ပိတ်ထားသည့် နံပါတ်များ" "%1$s အားပိတ်ဆို့ထားပြီးပါပြီ။" "ခေါ်ဆိုသော အကောင့်များ" + "ဖွင့်ထားရန်" "ခွင့်ပြုချက်များ သတ်မှတ်မည်" "မြန်နှုန်းမြင့်ဖုန်းခေါ်ဆိုမှုကို ဖွင့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။" "ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ရန်၊ ဖုန်းခွင့်ပြုချက်ကို ဖွင့်ပါ။" + "အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။" "အသံမေးလ်ကိုအသုံးပြုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။" "သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။" "ဖုန်းခေါ်ဆိုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။" 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 bda4915b5..d92edc649 100644 --- a/java/com/android/dialer/app/res/values-nb/strings.xml +++ b/java/com/android/dialer/app/res/values-nb/strings.xml @@ -85,10 +85,6 @@ "Gå tilbake til aktiv samtale" "Legg til en samtale" "Innkommende samtaler" - "Starter massehandlingsmodus" - "Massehandlingsmodus er avsluttet" - "Du har valgt %1$s" - "Du har valgt bort %1$s" "Spill av talemelding" "Se kontakten %1$s" "Ring %1$s" @@ -103,13 +99,11 @@ "Telefonsvarer" "%s sek" "%s min %s sek" - "Avbryt massehandlinsmodus" "talepost" "talepost" "Ja" "Nei" "Slett markert %1$s?" - "%1$s er valgt" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Henter fra SIM-kort…" "Kontakter på SIM-kort" + "Ingen kontaktapper er tilgjengelige" "Talesøk er ikke tilgjengelig" "Kan ikke ringe fordi Telefon-appen er deaktivert." "Søk i kontakter" @@ -150,9 +145,10 @@ "%s nye tapte anrop" "Du har ingen på hurtigoppringning ennå" "Legg til en favoritt" + "Du har ingen kontakter ennå" + "Legg til en kontakt" "Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere" "Fjern" - "Velg alle" "Videoanrop" "Send en melding" "Samtaleinformasjon" @@ -217,9 +213,11 @@ "Blokkerte numre" "%1$s er allerede blokkert." "Ringekontoer" + "Slå på" "Angi tillatelser" "For å slå på hurtigoppringning, slå på Kontakter-tillatelsen." "For å se samtaleloggen din, slå på Telefon-tillatelsen." + "For å se kontaktene dine, slå på Kontakter-tillatelsen." "For å få tilgang til talepostkassen, slå på Telefon-tillatelsen." "For å søke i kontaktene dine, slå på tillatelser for Kontakter." "For å ringe, slå på Telefon-tillatelsen." 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 8262a316c..90a3016e2 100644 --- a/java/com/android/dialer/app/res/values-ne/strings.xml +++ b/java/com/android/dialer/app/res/values-ne/strings.xml @@ -85,10 +85,6 @@ "हुदै गरेको कलमा फर्कनुहोस्" "कल थप्नुहोस्" "आगमन कलहरू" - "बल्क कारबाही सम्बन्धी मोडमा प्रवेश गर्दै" - "बल्क कारबाही सम्बन्धी मोड छोडियो" - "%1$s चयन गरियो" - "%1$s चयन हटाइयो" "भ्वाइसमेल बजाउनुहोस्" "%1$s सम्पर्क हेर्नुहोस्" "कल %1$s" @@ -103,13 +99,11 @@ "भ्वाइसमेल" "%s सेकेन्ड" "%s मिनेट %s सकेन्ड" - "ब्याच सम्बन्धी कारबाहीको मोडलाई रद्द गर्नुहोस्" "भ्वाइस मेल" "भ्वाइस मेलहरू" "हो" "होइन" "चयन गरिएका %1$s लाई मेटाउने हो?" - "%1$s चयन गरियो" @string/call_log_header_today "%1$s मा %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM कार्डबाट लोड हुँदै" "SIM कार्ड सम्पर्कहरू" + "कुनै पनि सम्पर्क अनुप्रयोग उपलब्ध छैन" "आवाज खोजी उपलब्ध छैन" "फोन अनुप्रयोग असक्षम गरिएकोले फोन गर्न सकिँदैन।" "सम्पर्कहरू खोज्नुहोस्" @@ -150,9 +145,10 @@ "%s नयाँ छुटेका कलहरु" "तपाईँको स्पिड डायलमा अझसम्म कोही छैन" "एक मनपर्ने थप्नुहोस्" + "तपाईँसँग अझसम्म कुनै सम्पर्कहरू छैनन्" + "एउटा सम्पर्क थप्नुहोस्" "सबै नम्बरहरू हेर्न छविलाई छुनुहोस् वा पुन:क्रमबद्ध गर्न छोइराख्नुहोस्" "हटाउँनुहोस्" - "सबैलाई चयन गर्नुहोस्" "भिडियो कल" "सन्देश पठाउनुहोस्" "कल विवरणहरु" @@ -217,9 +213,11 @@ "रोकिएका नम्बरहरू" "%1$s पहिले नै रोकिएको छ।" "खाता कलिङ" + "सक्रिय पार्नुहोस्" "अनुमतिहरू सेट गर्नुहोस्" "तीव्र डायल सक्षम गर्न, सम्पर्क अनुमति सक्षम गर्नुहोस्।" "आफ्नो कल लग हेर्न, फोन अनुमति सक्रिय गर्नुहोस्।" + "आफ्नो सम्पर्क हेर्न सम्पर्क अनुमति सक्रिय गर्नुहोस्।" "आफ्नो भ्वाइस मेल पहुँच गर्न, फोन अनुमति सक्रिय गर्नुहोस्" "तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।" "कल गर्न फोन अनुमति सक्रिय गर्नुहोस्।" 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 eed412d69..5f41b8063 100644 --- a/java/com/android/dialer/app/res/values-nl/strings.xml +++ b/java/com/android/dialer/app/res/values-nl/strings.xml @@ -85,10 +85,6 @@ "Terug naar actief gesprek" "Oproep toevoegen" "Inkomende oproepen" - "Modus voor bulkacties openen" - "Modus voor bulkacties verlaten" - "%1$s geselecteerd" - "Selectie van %1$s opgeheven" "Voicemail afspelen" "Contact %1$s bekijken" "%1$s bellen" @@ -103,13 +99,11 @@ "Voicemail" "%s sec." "%s min. %s sec." - "Modus voor batchacties annuleren" "voicemail" "voicemails" "Ja" "Nee" "Geselecteerde %1$s verwijderen?" - "%1$s geselecteerd" @string/call_log_header_today "%1$s om %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Laden vanaf SIM-kaart..." "Contacten op SIM-kaart" + "Geen app voor contacten beschikbaar" "Gesproken zoekopdracht niet beschikbaar" "Kan niet bellen omdat de Telefoon-app is uitgeschakeld." "Contacten zoeken" @@ -150,9 +145,10 @@ "%s nieuwe gemiste oproepen" "Er staat nog niemand in je snelkeuzelijst" "Een favoriet toevoegen" + "Je hebt nog geen contacten" + "Contact toevoegen" "Tik op de afbeelding om alle nummers te bekijken of tik op de afbeelding en houd vast om opnieuw te rangschikken" "Verwijderen" - "Alles selecteren" "Videogesprek" "Een bericht verzenden" "Oproepdetails" @@ -217,9 +213,11 @@ "Geblokkeerde nummers" "%1$s is al geblokkeerd." "Oproepaccounts" + "Inschakelen" "Toestemmingen instellen" "Als je de snelkeuzefunctie wilt inschakelen, schakel je de machtiging voor Contacten in." "Als je je gesprekkenlijst wilt bekijken, schakel je de machtiging voor Telefoon in." + "Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in." "Als je je voicemail wilt beluisteren, schakel je de machtiging voor Telefoon in." "Als je naar contacten wilt zoeken, schakel je de contacttoestemming in." "Als je iemand wilt bellen, schakel je de machtiging voor Telefoon in." 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 bda4915b5..d92edc649 100644 --- a/java/com/android/dialer/app/res/values-no/strings.xml +++ b/java/com/android/dialer/app/res/values-no/strings.xml @@ -85,10 +85,6 @@ "Gå tilbake til aktiv samtale" "Legg til en samtale" "Innkommende samtaler" - "Starter massehandlingsmodus" - "Massehandlingsmodus er avsluttet" - "Du har valgt %1$s" - "Du har valgt bort %1$s" "Spill av talemelding" "Se kontakten %1$s" "Ring %1$s" @@ -103,13 +99,11 @@ "Telefonsvarer" "%s sek" "%s min %s sek" - "Avbryt massehandlinsmodus" "talepost" "talepost" "Ja" "Nei" "Slett markert %1$s?" - "%1$s er valgt" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Henter fra SIM-kort…" "Kontakter på SIM-kort" + "Ingen kontaktapper er tilgjengelige" "Talesøk er ikke tilgjengelig" "Kan ikke ringe fordi Telefon-appen er deaktivert." "Søk i kontakter" @@ -150,9 +145,10 @@ "%s nye tapte anrop" "Du har ingen på hurtigoppringning ennå" "Legg til en favoritt" + "Du har ingen kontakter ennå" + "Legg til en kontakt" "Trykk på bildet for å se alle numrene, eller trykk og hold for å omorganisere" "Fjern" - "Velg alle" "Videoanrop" "Send en melding" "Samtaleinformasjon" @@ -217,9 +213,11 @@ "Blokkerte numre" "%1$s er allerede blokkert." "Ringekontoer" + "Slå på" "Angi tillatelser" "For å slå på hurtigoppringning, slå på Kontakter-tillatelsen." "For å se samtaleloggen din, slå på Telefon-tillatelsen." + "For å se kontaktene dine, slå på Kontakter-tillatelsen." "For å få tilgang til talepostkassen, slå på Telefon-tillatelsen." "For å søke i kontaktene dine, slå på tillatelser for Kontakter." "For å ringe, slå på Telefon-tillatelsen." 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 8e6540727..76d4b9b70 100644 --- a/java/com/android/dialer/app/res/values-pa/strings.xml +++ b/java/com/android/dialer/app/res/values-pa/strings.xml @@ -85,10 +85,6 @@ "ਪ੍ਰਗਤੀ ਵਿੱਚ ਕਾਲ ਤੇ ਵਾਪਸ ਜਾਓ" "ਕਾਲ ਜੋੜੋ" "ਇਨਕਮਿੰਗ ਕਾਲਾਂ" - "ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਵਿੱਚ ਦਾਖਲ ਹੋਇਆ ਜਾ ਰਿਹਾ ਹੈ" - "ਬਲਕ ਕਾਰਵਾਈ ਮੋਡ ਨੂੰ ਛੱਡਿਆ" - "%1$s ਨੂੰ ਚੁਣਿਆ ਗਿਆ" - "%1$s ਨੂੰ ਅਣ-ਚੁਣਿਆ ਕੀਤਾ ਗਿਆ" "ਵੌਇਸਮੇਲ ਪਲੇ ਕਰੋ" "ਸੰਪਰਕ %1$s ਦੇਖੋ" "%1$s ਨੂੰ ਕਾਲ ਕਰੋ" @@ -103,13 +99,11 @@ "ਵੌਇਸਮੇਲ" "%s ਸਕਿੰਟ" "%s ਮਿੰਟ %s ਸਕਿੰਟ" - "ਬੈਚ ਕਾਰਵਾਈਆਂ ਮੋਡ ਨੂੰ ਰੱਦ ਕਰੋ" "ਵੌਇਸਮੇਲ" "ਵੌਇਸਮੇਲਾਂ" "ਹਾਂ" "ਨਹੀਂ" "ਕੀ ਚੁਣੀ(ਆਂ) ਹੋਈ(ਆਂ) %1$s ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?" - "%1$s ਨੂੰ ਚੁਣਿਆ ਗਿਆ" @string/call_log_header_today "%1$s ਨੂੰ %2$s ਵਜੇ" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM ਕਾਰਡ ਵਿੱਚੋਂ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…" "SIM ਕਾਰਡ ਸੰਪਰਕ" + "ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ" "ਵੌਇਸ ਖੋਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ" "ਇੱਕ ਫੋਨ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿਉਂਕਿ ਫੋਨ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ।" "ਸੰਪਰਕ ਖੋਜੋ" @@ -150,9 +145,10 @@ "%s ਨਵੀਆਂ ਮਿਸਡ ਕਾਲਾਂ" "ਅਜੇ ਤੁਹਾਡੇ ਸਪੀਡ ਡਾਇਲ \'ਤੇ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਨਹੀਂ ਹੈ" "ਕੋਈ ਮਨਪਸੰਦ ਸ਼ਾਮਲ ਕਰੋ" + "ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।" + "ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ" "ਸਾਰੇ ਨੰਬਰਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਚਿਤਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ ਜਾਂ ਦੁਬਾਰਾ ਕ੍ਰਮਬੱਧ ਕਰਨ ਲਈ ਸਪਰਸ਼ ਕਰੋ ਅਤੇ ਦਬਾਈ ਰੱਖੋ" "ਹਟਾਓ" - "ਸਭ ਚੁਣੋ" "ਵੀਡੀਓ ਕਾਲ" "ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ" "ਕਾਲ ਵੇਰਵੇ" @@ -217,9 +213,11 @@ "ਬਲੌਕ ਕੀਤੇ ਗਏ ਨੰਬਰ" "%1$s ਪਹਿਲਾਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।" "ਕਾਲਿੰਗ ਖਾਤੇ" + "ਚਾਲੂ ਕਰੋ" "ਅਨੁਮਤੀਆਂ ਸੈੱਟ ਕਰੋ" "ਸਪੀਡ ਡਾਇਲ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" "ਆਪਣਾ ਕਾਲ ਲੌਗ ਵੇਖਣ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" + "ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" "ਆਪਣੀ ਵੌਇਸਮੇਲ ਐਕਸੈਸ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" "ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।" "ਕਾਲ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।" 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 8f57a82b4..76adfe579 100644 --- a/java/com/android/dialer/app/res/values-pl/strings.xml +++ b/java/com/android/dialer/app/res/values-pl/strings.xml @@ -87,10 +87,6 @@ "Wróć do aktywnego połączenia" "Dodaj połączenie" "Połączenia przychodzące" - "Włączono tryb działań zbiorczych" - "Wyłączono tryb działań zbiorczych" - "Wybrano: %1$s" - "Anulowano wybór: %1$s" "Odtwórz pocztę głosową" "Wyświetl kontakt %1$s" "Zadzwoń do: %1$s" @@ -105,13 +101,11 @@ "Poczta głosowa" "%s s" "%s min %s s" - "Anuluj tryb działań zbiorczych" "wiadomości głosowe" "wiadomości głosowe" "Tak" "Nie" "Usunąć wybrane %1$s?" - "Wybrane: %1$s" @string/call_log_header_today "%1$s o %2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "Numer MEID" "Wczytuję z karty SIM…" "Kontakty z karty SIM" + "Nie jest dostępna aplikacja do obsługi kontaktów" "Wyszukiwanie głosowe jest niedostępne" "Nie można zadzwonić, ponieważ aplikacja Telefon została wyłączona." "Przeszukuj kontakty" @@ -152,9 +147,10 @@ "Nowe nieodebrane połączenia: %s" "Lista szybkiego wybierania jest pusta" "Dodaj do ulubionych" + "Nie masz jeszcze żadnych kontaktów" + "Dodaj kontakt" "Kliknij obraz, by zobaczyć wszystkie numery, lub kliknij go i przytrzymaj, by zmienić kolejność" "Usuń" - "Zaznacz wszystkie" "Rozmowa wideo" "Wyślij wiadomość" "Szczegóły połączenia" @@ -221,9 +217,11 @@ "Zablokowane numery" "Numer %1$s jest już zablokowany." "Konta telefoniczne" + "Włącz" "Ustaw uprawnienia" "Aby włączyć szybkie wybieranie, włącz uprawnienie Kontakty." "Aby zobaczyć swój rejestr połączeń, włącz uprawnienie Telefon." + "Aby zobaczyć swoje kontakty, włącz uprawnienie Kontakty." "Aby uzyskać dostęp do poczty głosowej, włącz uprawnienie Telefon." "Aby wyszukać kontakty, włącz uprawnienia Kontakty." "Aby nawiązać połączenie, włącz uprawnienie Telefon." 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 eb61923e9..780ca07db 100644 --- a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml +++ b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml @@ -85,10 +85,6 @@ "Retornar para a chamada em espera" "Ad. cham." "Chamadas recebidas" - "Entrando no modo de ação em massa" - "Saindo do modo de ação em massa" - "%1$s selecionado" - "%1$s não selecionado" "Reproduzir mensagem de voz" "Visualizar contato %1$s" "Ligar para %1$s" @@ -103,13 +99,11 @@ "Correio de voz" "%s seg" "%s m %s s" - "Cancelar modo de ações em lote" "correio de voz" "correios de voz" "Sim" "Não" "Excluir a seleção de %1$s?" - "Itens selecionados: %1$s" @string/call_log_header_today "%1$s às %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Carregando do cartão SIM..." "Contatos do cartão SIM" + "Nenhum app de contatos disponível" "A pesquisa por voz não está disponível" "Não é possível fazer uma chamada porque o app Telefone foi desativado." "Pesquisar contatos" @@ -150,9 +145,10 @@ "%s novas chamadas perdidas" "Ainda não há ninguém na sua discagem rápida" "Adicionar favorito" + "Você ainda não tem contatos" + "Adicionar um contato" "Toque na imagem para ver todos os números ou toque e segure para reordenar" "Remover" - "Selecionar tudo" "Videochamada" "Enviar uma mensagem" "Detalhes da chamada" @@ -217,9 +213,11 @@ "Números bloqueados" "O número %1$s já está bloqueado." "Contas de chamadas" + "Ativar" "Definir permissões" "Para ativar a discagem rápida, ative a permissão para o app Contatos." "Para ver seu registro de chamadas, ative a permissão para o app Telefone." + "Para ver seus contatos, ative a permissão para o app Contatos." "Para acessar seu correio de voz, ative a permissão para o app Telefone." "Para pesquisar seus contatos, ative as permissões para \"Contatos\"." "Para fazer uma chamada, ative a permissão para o app Telefone." 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 493f846c4..95fa75c7e 100644 --- a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml +++ b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml @@ -85,10 +85,6 @@ "Voltar à chamada em curso" "Adicionar chamada" "Chamadas recebidas" - "A entrar no modo de ação em massa…" - "Saiu do modo de ação em massa" - "%1$s selecionado" - "%1$s não selecionado" "Reproduzir mensagem de correio de voz" "Ver o contacto %1$s" "Ligar a %1$s" @@ -103,13 +99,11 @@ "Correio de voz" "%s seg" "%s min. %s seg." - "Cancelar modo de ações em lote" "mensagem de correio de voz" "mensagens de correio de voz" "Sim" "Não" "Pretende eliminar a(s) %1$s selecionada(s)?" - "%1$s selecionada(s)" @string/call_log_header_today "%1$s às %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "A carregar a partir do cartão SIM..." "Contactos no cartão SIM" + "Não existe nenhuma aplicação de contactos disponível" "Pesquisa por voz não disponível" "Não é possível efetuar uma chamada porque a aplicação Telefone foi desativada." "Pesquisar contactos" @@ -150,9 +145,10 @@ "%s chamadas não atendidas novas" "Ainda não tem ninguém na marcação rápida" "Adicionar um favorito" + "Ainda não tem nenhum contacto" + "Adicionar um contacto" "Toque na imagem para ver todos os números ou toque sem soltar para reordenar" "Remover" - "Selecionar tudo" "Videochamada" "Enviar uma mensagem" "Detalhes da chamada" @@ -217,9 +213,11 @@ "Números bloqueados" "%1$s já está bloqueado." "Contas de chamadas" + "Ativar" "Definir autorizações" "Para ativar a marcação rápida, ative a autorização Contactos." "Para ver o registo de chamadas, ative a autorização Telemóvel." + "Para ver os seus contactos, ative a autorização Contactos." "Para aceder ao correio de voz, ative a autorização Telemóvel." "Para pesquisar os seus contactos, ative as autorizações Contactos." "Para efetuar uma chamada, ative a autorização Telemóvel." 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 eb61923e9..780ca07db 100644 --- a/java/com/android/dialer/app/res/values-pt/strings.xml +++ b/java/com/android/dialer/app/res/values-pt/strings.xml @@ -85,10 +85,6 @@ "Retornar para a chamada em espera" "Ad. cham." "Chamadas recebidas" - "Entrando no modo de ação em massa" - "Saindo do modo de ação em massa" - "%1$s selecionado" - "%1$s não selecionado" "Reproduzir mensagem de voz" "Visualizar contato %1$s" "Ligar para %1$s" @@ -103,13 +99,11 @@ "Correio de voz" "%s seg" "%s m %s s" - "Cancelar modo de ações em lote" "correio de voz" "correios de voz" "Sim" "Não" "Excluir a seleção de %1$s?" - "Itens selecionados: %1$s" @string/call_log_header_today "%1$s às %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Carregando do cartão SIM..." "Contatos do cartão SIM" + "Nenhum app de contatos disponível" "A pesquisa por voz não está disponível" "Não é possível fazer uma chamada porque o app Telefone foi desativado." "Pesquisar contatos" @@ -150,9 +145,10 @@ "%s novas chamadas perdidas" "Ainda não há ninguém na sua discagem rápida" "Adicionar favorito" + "Você ainda não tem contatos" + "Adicionar um contato" "Toque na imagem para ver todos os números ou toque e segure para reordenar" "Remover" - "Selecionar tudo" "Videochamada" "Enviar uma mensagem" "Detalhes da chamada" @@ -217,9 +213,11 @@ "Números bloqueados" "O número %1$s já está bloqueado." "Contas de chamadas" + "Ativar" "Definir permissões" "Para ativar a discagem rápida, ative a permissão para o app Contatos." "Para ver seu registro de chamadas, ative a permissão para o app Telefone." + "Para ver seus contatos, ative a permissão para o app Contatos." "Para acessar seu correio de voz, ative a permissão para o app Telefone." "Para pesquisar seus contatos, ative as permissões para \"Contatos\"." "Para fazer uma chamada, ative a permissão para o app Telefone." 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 93d01888a..725ff4a3c 100644 --- a/java/com/android/dialer/app/res/values-ro/strings.xml +++ b/java/com/android/dialer/app/res/values-ro/strings.xml @@ -86,10 +86,6 @@ "Reveniți la apelul în curs" "Adăugați un apel" "Apeluri de intrare" - "Se intră în modul acțiune în bloc" - "Ați ieșit din modul acțiune în bloc" - "S-a selectat %1$s" - "S-a deselectat %1$s" "Redați mesajul vocal" "Afișați persoana din agendă %1$s" "Apelați %1$s" @@ -104,13 +100,11 @@ "Mesagerie vocală" "%s secunde" "%s min. %s sec." - "Anulați modul de acțiuni în lot" "mesagerie vocală" "mesaje vocale" "Da" "Nu" "Ștergeți cele %1$s selectate?" - "%1$s selectate" @string/call_log_header_today "%1$s la %2$s" "%1$02d:%2$02d" @@ -123,6 +117,7 @@ "MEID" "Se încarcă de pe cardul SIM..." "Persoanele din agendă de pe cardul SIM" + "Nu este disponibilă nicio aplicație pentru agendă" "Căutarea vocală nu este disponibilă" "Nu se poate efectua un apel telefonic, deoarece aplicația Telefon a fost dezactivată." "Căutați în Agendă" @@ -151,9 +146,10 @@ "%s apeluri nepreluate noi" "Nicio persoană de contact setată pentru apelarea rapidă" "Adăugați o persoană de contact preferată" + "Nu aveți încă persoane de contact" + "Adăugați o persoană de contact" "Atingeți imaginea pentru a vedea toate numerele sau atingeți lung pentru reordonare" "Eliminați" - "Selectați tot" "Apel video" "Trimiteți un mesaj" "Detaliile apelului" @@ -219,9 +215,11 @@ "Numere blocate" "%1$s este deja blocat." "Conturi pentru apelare" + "Activați" "Setați permisiunile" "Pentru a activa apelarea rapidă, activați permisiunea Agendă." "Pentru a vedea jurnalul de apeluri, activați permisiunea Telefon." + "Pentru a vedea persoanele de contact, activați permisiunea Agendă." "Pentru a accesa mesageria vocală, activați permisiunea Telefon." "Pentru a căuta în persoanele de contact, activați permisiunea Agendă." "Pentru a apela, activați permisiunea Telefon." 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 54278c40b..557832bcd 100644 --- a/java/com/android/dialer/app/res/values-ru/strings.xml +++ b/java/com/android/dialer/app/res/values-ru/strings.xml @@ -87,10 +87,6 @@ "Вернуться к текущему вызову" "Добавить вызов" "Входящие вызовы" - "Вы вошли в режим массового действия" - "Вы вышли из режима массового действия" - "Выбран объект %1$s" - "Выбор объекта %1$s отменен" "Прослушать голосовую почту" "Просмотреть данные: %1$s" "Вызов: %1$s" @@ -105,13 +101,11 @@ "Голосовая почта" "%s сек." "%s мин. %s сек." - "Отмена режима массового действия" "голосовое сообщение" "голосовые сообщения" "Да" "Нет" "Удалить %1$s?" - "Выбрано: %1$s" @string/call_log_header_today "%1$s в %2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "MEID" "Загрузка с SIM-карты…" "Контакты на SIM-карте" + "Нет приложения для работы с контактами" "Голосовой поиск недоступен" "Нельзя совершать телефонные звонки, поскольку приложение \"Телефон\" отключено." "Поиск в контактах" @@ -152,9 +147,10 @@ "Пропущенных вызовов: %s" "Нет номеров для быстрого набора" "Настроить быстрый набор" + "Нет контактов" + "Добавить контакт" "Коснитесь изображения, чтобы увидеть все номера, или нажмите и удерживайте, чтобы изменить порядок" "Удалить" - "Выбрать все" "Видеовстреча" "Отправить сообщение" "Сведения о вызове" @@ -221,9 +217,11 @@ "Заблокированные номера" "%1$s уже заблокирован." "Аккаунты для звонков" + "Включить" "Задать разрешения" "Чтобы настроить быстрый набор, предоставьте приложению разрешение \"Контакты\"." "Чтобы открыть список вызовов, предоставьте приложению разрешение \"Телефон\"." + "Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"." "Чтобы получить доступ к голосовой почте, предоставьте приложению разрешение \"Телефон\"." "Для поиска контактов включите разрешение \"Контакты\"." "Чтобы позвонить, предоставьте приложению разрешение \"Телефон\"." 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 63634577f..329d89e8d 100644 --- a/java/com/android/dialer/app/res/values-si/strings.xml +++ b/java/com/android/dialer/app/res/values-si/strings.xml @@ -85,10 +85,6 @@ "පවතින ඇමතුමට නැවත යන්න" "ඇමතුමක් එක් කරන්න" "එන ඇමතුම්" - "තොග ක්‍රියා ප්‍රකාරය ඇතුළු කරමින්" - "තොග ක්‍රියා ප්‍රකාරය හැර යන ලදී" - "%1$s තෝරා ගන්නා ලදී" - "%1$s තෝරා ගැනීම ඉවත් කරන ලදී" "හඬ තැපෑල ධාවනය කිරීම" "%1$s සම්බන්ධතාවය බලන්න" "%1$s අමතන්න" @@ -103,13 +99,11 @@ "හඬ තැපෑල" "තත් %s" "මිනි %s තත් %s" - "කාණ්ඩ ක්‍රියා ප්‍රකාරය අවලංගු කරන්න" "හඬ තැපෑල" "හඬ තැපැල්" "ඔව්" "නැත" "තෝරා ගත් %1$s මකන්නද?" - "%1$s තෝරා ගන්නා ලදි" @string/call_log_header_today "%1$s දින %2$sට" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM පතෙන් පූරණය කරමින්…" "SIM පත් සම්බන්ධතා" + "සබඳතා යෙදුමක් ලබාගත නොහැකිය" "හඬ සෙවුම ලබාගත නොහැකිය" "දුරකථන යෙදුම අබල කර ඇති නිසා දුරකථන ඇමතුම ලබාගැනීම කළ නොහැක." "සම්බන්ධතා සෙවීම" @@ -150,9 +145,10 @@ "නව මඟ හැරුණු ඇමතුම් %s" "ඔබගේ වේග ඩයල් එකේ තවමත් කවුරුවත් නැහැ" "ප්‍රියතම ලෙස එක් කරන්න" + "ඔබ තවමත් සම්බන්ධතා නැහැ" + "සම්බන්ධතාවයක් එක් කරන්න" "සියලු අංක බැලීමට රූපය ස්පර්ශ කරන්න නැතහොත් නැවත අනුපිළිවෙළට සැකසීමට ස්පර්ශ කර අල්ලාගෙන සිටින්න" "ඉවත් කරන්න" - "සියල්ල තෝරන්න" "වීඩියෝ ඇමතුම" "පණිවිඩයක් යවන්න" "ඇමතුම් විස්තර" @@ -217,9 +213,11 @@ "අවහිර කළ අංක" "%1$s දැනටමත් අවහිර කර ඇත." "ගිණුම් ඇමතීම" + "ක්‍රියාත්මක කරන්න" "අවසර සකසන්න" "වේග ඩයල් කිරීම සබල කිරීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න." "ඔබේ ඇමතුම් ලොගය බැලීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න." + "ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න." "ඔබේ හඬ තැපෑල වෙත ප්‍රවේශ වීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න." "ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්‍රියාත්මක කරන්න." "ඇමතුමක් ලබා ගැනීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න." 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 f7bf4237c..60b63d520 100644 --- a/java/com/android/dialer/app/res/values-sk/strings.xml +++ b/java/com/android/dialer/app/res/values-sk/strings.xml @@ -87,10 +87,6 @@ "Návrat k prebiehajúcemu hovoru" "Pridať hovor" "Prichádzajúce hovory" - "Vstupuje sa do režimu hromadných akcií" - "Odišli ste z režimu hromadných akcií" - "Položka %1$s bola vybraná" - "Výber položky %1$s bol zrušený" "Prehrať hlasovú správu" "Zobraziť kontakt %1$s" "Zavolať kontakt %1$s" @@ -105,13 +101,11 @@ "Hlasová schránka" "%s s" "%s min. %s s" - "Zrušiť režim hromadných akcií" "hlasová správa" "hlasové správy" "Áno" "Nie" "Chcete odstrániť vybraté položky (%1$s)?" - "Vybraté: %1$s" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "MEID" "Prebieha načítavanie z SIM karty..." "Kontakty na SIM karte" + "Nie je k dispozícii žiadna aplikácia na kontakty" "Hlasové vyhľadávanie nie je k dispozícii" "Nie je možné volať, pretože aplikácia Telefón bola deaktivovaná." "Hľadať v kontaktoch" @@ -152,9 +147,10 @@ "Nové zmeškané hovory: %s" "V rýchlej voľbe zatiaľ nemáte žiadny kontakt" "Pridať obľúbený kontakt" + "Zatiaľ nemáte žiadne kontakty" + "Pridať kontakt" "Klepnutím na obrázok môžete zobraziť všetky čísla. Pridržaním obrázka môžete zmeniť poradie." "Odstrániť" - "Vybrať všetko" "Videohovor" "Odoslať správu" "Podrobnosti hovoru" @@ -221,9 +217,11 @@ "Blokované čísla" "Číslo %1$s je už blokované." "Telefónne účty" + "Zapnúť" "Nastaviť povolenia" "Ak chcete aktivovať rýchlu voľbu, zapnite povolenie Kontakty." "Ak si chcete zobraziť denník hovorov, zapnite povolenie Telefón." + "Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty." "Ak chcete používať hlasovú schránku, zapnite povolenie Telefón." "Ak chcete hľadať kontakty, zapnite povolenie Kontakty." "Ak chcete volať, zapnite povolenie Telefón." 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 d3c57dd92..b46b99ab5 100644 --- a/java/com/android/dialer/app/res/values-sl/strings.xml +++ b/java/com/android/dialer/app/res/values-sl/strings.xml @@ -87,10 +87,6 @@ "Nazaj na klic, ki poteka" "Dodaj klic" "Dohodni klici" - "Prehod v način množičnega dejanja" - "Prehod iz načina množičnega dejanja" - "Izbrano: %1$s" - "Preklican izbor: %1$s" "Predvajanje sporočil glasovne pošte" "Ogled stika %1$s" "Pokliči %1$s" @@ -105,13 +101,11 @@ "Glasovna pošta" "%s s" "%s min %s s" - "Prekliči način množičnega dejanja" "sporočilo v odzivniku" "sporočila v odzivniku" "Da" "Ne" "Želite izbrisati %1$s?" - "Št. izbranih: %1$s" @string/call_log_header_today "%1$s ob %2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "MEID" "Nalaganje s kartice SIM ..." "Stiki na kartici SIM" + "Ni aplikacije za stike" "Glasovno iskanje ni na voljo" "Ni mogoče opraviti telefonskega klica, ker je aplikacija Telefon onemogočena." "Iskanje stikov" @@ -152,9 +147,10 @@ "Št. novih zgrešenih klicev: %s" "Na seznamu za hitro klicanje nimate še nikogar" "Dodajte priljubljenega" + "Nimate še stikov" + "Dodajte stik" "Dotaknite se slike, da prikažete vse številke, ali pa se je dotaknite in pridržite, da spremenite vrstni red." "Odstrani" - "Izberi vse" "Videoklic" "Pošljite sporočilo" "Podrobnosti klica" @@ -221,9 +217,11 @@ "Blokirane številke" "Telefonska številka %1$s je že blokirana." "Računi za klicanje" + "Vklop" "Nastavi dovoljenja" "Če želite omogočiti hitro klicanje, vklopite dovoljenje za stike." "Če si želite ogledati dnevnik klicev, vklopite dovoljenje za telefon." + "Če si želite ogledati stike, vklopite dovoljenje za stike." "Če želite dostopati do sporočil v odzivniku, vklopite dovoljenje za telefon." "Če želite iskati po stikih, vklopite dovoljenje za stike." "Če želite klicati, vklopite dovoljenje za telefon." 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 84704459c..6a274fcd2 100644 --- a/java/com/android/dialer/app/res/values-sq/strings.xml +++ b/java/com/android/dialer/app/res/values-sq/strings.xml @@ -85,10 +85,6 @@ "Kthehu te telefonata" "Shto një telefonatë" "Telefonatat hyrëse" - "Po hyn në modalitetin e veprimit në masë" - "U largove nga modaliteti i veprimit në masë" - "U zgjodh %1$s" - "Zgjedhja e %1$s u anulua" "Luaj postën zanore" "Shiko kontaktin %1$s" "Telefono %1$s" @@ -103,13 +99,11 @@ "Posta zanore" "%s sekonda" "%s min. e %s sek." - "Anulo modalitetin e veprimeve në grup" "posta zanore" "postat zanore" "Po" "Jo" "Të fshihen %1$s të zgjedhura?" - "%1$s të zgjedhura" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Po ngarkon nga karta SIM…" "Kontaktet e kartës SIM" + "Nuk mund të përdoret asnjë aplikacion për kontaktet" "Kërkimi me zë nuk mundësohet" "Telefonata nuk mund të bëhet sepse aplikacioni \"Telefoni\" është i çaktivizuar." "Kërko për kontakte" @@ -150,9 +145,10 @@ "%s telefonata të reja të humbura" "Askush nuk është ende në thirrjen tënde të shpejtuar" "Shto një të preferuar" + "Nuk ke ende kontakte" + "Shto një kontakt" "Prek imazhin për të parë të gjithë numrat ose mbaje të shtypur për ta pozicionuar përsëri" "Hiq" - "Zgjidh të gjitha" "Telefonatë me video" "Dërgo një mesazh" "Detajet e telefonatës" @@ -217,9 +213,11 @@ "Numrat e bllokuar" "%1$s është i bllokuar tashmë." "Llogaritë e telefonatave" + "Aktivizo" "Cakto lejet" "Për të aktivizuar thirrjen e shpejtuar, aktivizo lejen e Kontakteve." "Për të parë evidencën e telefonatave, aktivizo lejen e Telefonit." + "Për të parë kontaktet, aktivizo lejen e Kontakteve." "Për të pasur qasje në postën zanore, aktivizo lejen e Telefonit." "Për të kërkuar kontaktet, aktivizo lejet e Kontakteve" "Për të kryer një telefonatë, aktivizo lejen e Telefonit." 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 6cf7a7c85..0def958d4 100644 --- a/java/com/android/dialer/app/res/values-sr/strings.xml +++ b/java/com/android/dialer/app/res/values-sr/strings.xml @@ -86,10 +86,6 @@ "Врати се на позив који је у току" "Додај позив" "Долазни позиви" - "Улазите у режим групних радњи" - "Изашли сте из режима групних радњи" - "Изабрано је %1$s" - "Опозван је избор %1$s" "Пуштање говорне поште" "Прикажи контакт %1$s" "Позови %1$s" @@ -104,13 +100,11 @@ "Говорна пошта" "%s сек" "%s мин %s сек" - "Откажите режим групних радњи" "говорну поруку" "говорне поруке" "Да" "Не" "Желите ли да избришете изабрану(е) %1$s?" - "Изабраних: %1$s" @string/call_log_header_today "%1$s у %2$s" "%1$02d:%2$02d" @@ -123,6 +117,7 @@ "MEID" "Учитава се са SIM картице…" "Контакти на SIM картици" + "Нема доступне апликације за контакте" "Гласовна претрага није доступна" "Није могуће упутити телефонски позив јер је апликација Телефон онемогућена." "Претражи контакте" @@ -151,9 +146,10 @@ "Нових пропуштених позива: %s" "Немате ниједан контакт на брзом бирању" "Додај омиљен контакт" + "Још увек немате ниједан контакт" + "Додај контакт" "Додирните слику да бисте видели све бројеве или додирните и задржите да бисте им променили распоред" "Уклони" - "Изабери све" "Видео позив" "Пошаљи поруку" "Детаљи позива" @@ -219,9 +215,11 @@ "Блокирани бројеви" "%1$s је већ блокиран." "Налози за позивање" + "Укључи" "Подеси дозволе" "Да бисте омогућили брзо бирање, укључите дозволу за Контакте." "Да бисте видели евиденцију позива, укључите дозволу за Телефон." + "Да бисте видели контакте, укључите дозволу за Контакте." "Да бисте приступили говорној пошти, укључите дозволу за Телефон." "Да бисте претражили контакте, укључите дозволе за Контакте." "Да бисте упутили позив, укључите дозволу за Телефон." 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 71ef3e55b..75aa731f9 100644 --- a/java/com/android/dialer/app/res/values-sv/strings.xml +++ b/java/com/android/dialer/app/res/values-sv/strings.xml @@ -85,10 +85,6 @@ "Återvänd till pågående samtal" "Lägg t. samt." "Inkommande samtal" - "Öppnar läget för massåtgärd" - "Stängde läget för massåtgärd" - "Markerade %1$s" - "Avmarkerade %1$s" "Spela upp röstmeddelande" "Visa kontakten %1$s" "Ring %1$s" @@ -103,13 +99,11 @@ "Röstbrevlåda" "%s sekund" "%s min %s sek" - "Avbryt läget för massåtgärd" "röstbrevlåda" "röstmeddelanden" "Ja" "Nej" "Vill du radera markerade %1$s?" - "%1$s har markerats" @string/call_log_header_today "%1$s kl. %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Läser in från SIM-kort…" "Kontakter från SIM-kort" + "Det finns inga appar för kontakter" "Röstsökning är inte tillgänglig" "Det går inte att ringa eftersom appen Telefon har inaktiverats." "Sök efter kontakter" @@ -150,9 +145,10 @@ "%s nya missade samtal" "Du har ingen kontakt som snabbval ännu" "Lägg till en favorit" + "Du har inga kontakter ännu" + "Lägg till en kontakt" "Tryck på bilden för att visa alla nummer eller tryck länge för att ändra ordningen" "Ta bort" - "Markera alla" "Videosamtal" "Skicka ett meddelande" "Samtalsinfo" @@ -217,9 +213,11 @@ "Blockerade nummer" "%1$s är redan blockerat." "Konton för samtal" + "Aktivera" "Ange behörigheter" "Du måste aktivera behörigheten Kontakter för att kunna använda snabbuppringning." "Du måste aktivera behörigheten Telefon för att kunna visa samtalsloggen." + "Du måste aktivera behörigheten Kontakter för att kunna visa kontakterna." "Du måste aktivera behörigheten Telefon för att kunna komma åt röstmeddelanden." "Aktivera behörigheter för Kontakter om du vill söka bland kontakterna." "Du måste aktivera behörigheten Telefon för att kunna ringa." 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 9cbdd3e8e..d3b8392d4 100644 --- a/java/com/android/dialer/app/res/values-sw/strings.xml +++ b/java/com/android/dialer/app/res/values-sw/strings.xml @@ -85,10 +85,6 @@ "Rudi kwa simu inayoendelea" "Ongeza simu" "Simu zinazoingia" - "Unaingia katika hali ya kutekeleza vitendo vingi" - "Umeondoka katika hali ya kutekeleza vitendo vingi" - "Umeteua %1$s" - "Umebatilisha uteuzi wa %1$s" "Sikiliza ujumbe wa sauti" "Angalia anwani %1$s" "Pigia %1$s" @@ -103,13 +99,11 @@ "Ujumbe wa sauti" "Sekunde %s" "Dak %s sek %s" - "Ghairi hali ya kutekeleza vitendo vingi" "ujumbe wa sauti" "ujumbe wa sauti" "Ndiyo" "Hapana" "Je, ungependa kufuta %1$s uliochagua?" - "%1$s zimechaguliwa" @string/call_log_header_today "%1$s saa %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Inapakia kutoka SIM kadi..." "Anwani za SIM kadi" + "Hakuna programu za mawasiliano zinazopatikana" "Kutafuta kwa kutamka hakupatikani" "Haiwezi kupiga simu kwa sababu programu ya Simu imezimwa." "Tafuta anwani" @@ -150,9 +145,10 @@ "Simu %s za karibuni ambazo hazikujibiwa" "Hakuna mtu aliye katika orodha yako ya watu unaowasiliana nao zaidi" "Ongeza anwani unazopenda zaidi" + "Bado huna anwani zozote" + "Ongeza anwani" "Gusa picha ili uone nambari zote ama uguse na kushikilia ili upange upya" "Ondoa" - "Chagua zote" "Hangout ya Video" "Tuma SMS" "Maelezo ya simu" @@ -217,9 +213,11 @@ "Nambari zilizozuiwa" "%1$s tayari imezuiwa." "Akaunti za simu" + "Washa" "Weka ruhusa" "Ili kuwasha kipengele cha unaowasiliana nao zaidi, washa ruhusa ya Anwani." "Ili uone rekodi yako ya nambari za simu, washa ruhusa ya Simu." + "Ili uone anwani zako, washa ruhusa ya Anwani." "Ili ufikie ujumbe wako wa sauti, washa ruhusa ya Simu." "Ili utafute anwani zako, washa ruhusa za Anwani." "Ili upige simu, washa ruhusa ya Simu." 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 a91088c4f..afb852b6d 100644 --- a/java/com/android/dialer/app/res/values-ta/strings.xml +++ b/java/com/android/dialer/app/res/values-ta/strings.xml @@ -85,10 +85,6 @@ "செயலிலுள்ள அழைப்பிற்குத் திரும்பு" "அழைப்பைச் சேர்" "உள்வரும் அழைப்புகள்" - "மொத்தச் செயல் பயன்முறையில் நுழைகிறீர்கள்" - "மொத்தச் செயல் பயன்முறையிலிருந்து வெளியேறிவிட்டீர்கள்" - "தேர்ந்தெடுத்த %1$s" - "தேர்வுநீக்கிய %1$s" "குரலஞ்சலை இயக்கு" "%1$s தொடர்பைக் காட்டு" "%1$s ஐ அழை" @@ -103,13 +99,11 @@ "குரலஞ்சல்" "%s வி" "%s நிமிடம் %s வினாடி" - "தொகுப்புச் செயல்கள் பயன்முறையை ரத்துசெய்யும்" "குரலஞ்சல்" "குரலஞ்சல்கள்" "ஆம்" "வேண்டாம்" "தேர்ந்தெடுத்த %1$sஐ நீக்கவா?" - "%1$s தேர்ந்தெடுக்கப்பட்டன" @string/call_log_header_today "%1$s அன்று %2$s மணிக்கு" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "சிம் கார்டிலிருந்து ஏற்றுகிறது…" "சிம் கார்டின் தொடர்புகள்" + "தொடர்புகள் பயன்பாடு எதுவுமில்லை" "குரல் தேடல் இல்லை" "Phone பயன்பாடு முடக்கப்பட்டுள்ளதால், ஃபோன் அழைப்பைச் செய்ய முடியாது." "தொடர்புகளைத் தேடு" @@ -150,9 +145,10 @@ "%s புதிய தவறிய அழைப்புகள்" "இன்னும் விரைவு டயலில் யாரையும் சேர்க்கவில்லை" "முக்கியமானவர்களைச் சேர்" + "இதுவரை எந்தத் தொடர்புகளும் இல்லை" + "ஒரு தொடர்பைச் சேர்க்கவும்" "எல்லா எண்களையும் பார்க்க, படத்தைத் தொடவும் அல்லது மறுவரிசைப்படுத்த, தொட்டுப் பிடித்திருக்கவும்" "அகற்று" - "அனைத்தையும் தேர்ந்தெடு" "வீடியோ அழைப்பு" "செய்தி அனுப்பவும்" "அழைப்பு விவரங்கள்" @@ -217,9 +213,11 @@ "தடுக்கப்பட்ட எண்கள்" "%1$s ஏற்கனவே தடுக்கப்பட்டுள்ளது." "அழைப்பு கணக்குகள்" + "இயக்கு" "அனுமதிகளை அமை" "விரைவு டயலை இயக்க, தொடர்புகள் அனுமதியை இயக்கவும்." "அழைப்புப் பதிவைப் பார்க்க, ஃபோன் அனுமதியை இயக்கவும்." + "தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்." "குரலஞ்சலை அணுக, ஃபோன் அனுமதியை இயக்கவும்." "தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்." "அழைக்க, ஃபோன் அனுமதியை இயக்கவும்." 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 aecc1c4b9..ffc046f69 100644 --- a/java/com/android/dialer/app/res/values-te/strings.xml +++ b/java/com/android/dialer/app/res/values-te/strings.xml @@ -85,10 +85,6 @@ "ప్రోగ్రెస్‌లో ఉన్న కాల్‌కు వెళ్లు" "కాల్‌ను జోడించు" "ఇన్‌కమింగ్ కాల్‌లు" - "బల్క్ చర్య మోడ్‌లోకి ప్రవేశిస్తున్నారు" - "బల్క్ చర్య మోడ్ నుండి నిష్క్రమించారు" - "%1$s ఎంచుకోబడింది" - "%1$s ఎంపిక తీసివేయబడింది" "వాయిస్ మెయిల్ ప్లే చేయండి" "%1$s పరిచయాన్ని వీక్షించండి" "%1$sకు కాల్ చేయి" @@ -103,13 +99,11 @@ "వాయిస్ మెయిల్" "%s సెక" "%s నిమి %s సెక" - "సమూహ చర్యల మోడ్‌ను రద్దు చేస్తుంది" "వాయిస్ మెయిల్" "వాయిస్ మెయిల్‌లు" "అవును" "వద్దు" "ఎంచుకున్న %1$sను తొలగించాలా?" - "%1$s ఎంచుకోబడ్డాయి" @string/call_log_header_today "%1$s %2$sకి" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "సిమ్ కార్డు నుండి లోడ్ చేస్తోంది…" "సిమ్ కార్డు పరిచయాలు" + "పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు" "వాయిస్ శోధన అందుబాటులో లేదు" "ఫోన్ అనువర్తనం నిలిపివేయబడినందున ఫోన్ కాల్ చేయలేరు." "పరిచయాలను శోధించు" @@ -150,9 +145,10 @@ "%s కొత్త సమాధానం ఇవ్వని కాల్‌లు" "మీ స్పీడ్ డయల్‌లో ఇంకా ఎవరూ లేరు" "ఇష్టమైన వారిని జోడించండి" + "మీకు ఇప్పటికీ పరిచయాలేవీ లేవు" + "పరిచయాన్ని జోడించండి" "అన్ని నంబర్‌లను చూడటానికి చిత్రాన్ని తాకండి లేదా క్రమం మార్చడానికి తాకి, కాసేపు అలాగే ఉంచండి" "తీసివేయి" - "అన్నీ ఎంచుకోండి" "వీడియో కాల్" "సందేశాన్ని పంపు" "కాల్ వివరాలు" @@ -217,9 +213,11 @@ "బ్లాక్ చేయబడిన నంబర్‌లు" "%1$s ఇప్పటికే బ్లాక్ చేయబడింది." "కాల్ చేసే ఖాతాలు" + "ఆన్ చేయి" "అనుమతులను సెట్ చేయి" "స్పీడ్ డయల్‌ను ప్రారంభించడానికి, పరిచయాల అనుమతిని ఆన్ చేయండి." "మీ కాల్ లాగ్‌ను చూడటానికి, ఫోన్ అనుమతిని ఆన్ చేయండి." + "మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి." "మీ వాయిస్ మెయిల్‌ను ప్రాప్యత చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి." "మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి." "కాల్ చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి." 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 58507b49e..13916a51d 100644 --- a/java/com/android/dialer/app/res/values-th/strings.xml +++ b/java/com/android/dialer/app/res/values-th/strings.xml @@ -85,10 +85,6 @@ "กลับไปคุยสายต่อ" "เพิ่มการโทร" "สายโทรเข้า" - "กำลังเข้าสู่โหมดการดำเนินการแบบกลุ่ม" - "ออกจากโหมดการทำงานแบบกลุ่มแล้ว" - "เลือก %1$s แล้ว" - "ยกเลิกการเลือก %1$s แล้ว" "เล่นข้อความเสียง" "ดูรายชื่อติดต่อ %1$s" "โทรหา %1$s" @@ -103,13 +99,11 @@ "ข้อความเสียง" "%s วินาที" "%s นาที %s วินาที" - "ยกเลิกโหมดการทำงานแบบกลุ่ม" "ข้อความเสียง" "ข้อความเสียง" "ใช่" "ไม่" "ลบ%1$sที่เลือกหรือไม่" - "เลือกไว้ %1$s รายการ" @string/call_log_header_today "วันที่ %1$s เวลา %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "กำลังโหลดจากซิมการ์ด…" "รายชื่อบนซิมการ์ด" + "ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน" "การค้นหาด้วยเสียงไม่พร้อมใช้งาน" "ไม่สามารถโทรศัพท์ได้เนื่องจากแอปพลิเคชันโทรศัพท์ถูกปิดใช้งาน" "ค้นหารายชื่อติดต่อ" @@ -150,9 +145,10 @@ "สายที่ไม่ได้รับใหม่ %s สาย" "ยังไม่ได้กำหนดผู้ใดในการโทรด่วน" "เพิ่มรายการโปรด" + "คุณยังไม่มีรายชื่อติดต่อ" + "เพิ่มรายชื่อติดต่อ" "แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือแตะค้างไว้เพื่อจัดเรียงใหม่" "ลบ" - "เลือกทั้งหมด" "แฮงเอาท์วิดีโอ" "ส่งข้อความ" "รายละเอียดการโทร" @@ -205,7 +201,7 @@ "ข้อความเสียง" "เลือกซิมสำหรับการตั้งค่าข้อความเสียง" "การบล็อกสายเรียกเข้าปิดชั่วคราว" - "ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้ฟีเจอร์นี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง" + "ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง" "นำเข้าหมายเลข" "ก่อนหน้านี้คุณได้ทำเครื่องหมายว่าให้ส่งผู้โทรบางคนไปยังข้อความเสียงโดยอัตโนมัติผ่านแอปอื่นๆ" "ดูหมายเลข" @@ -217,9 +213,11 @@ "หมายเลขที่ถูกบล็อก" "%1$s ถูกบล็อกอยู่แล้ว" "บัญชีการโทร" + "เปิด" "ตั้งค่าสิทธิ์" "หากต้องการเปิดใช้การโทรด่วน ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ" "หากต้องการดูประวัติการโทร ให้เปิดสิทธิ์เข้าถึงโทรศัพท์" + "หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ" "หากต้องการเข้าถึงข้อความเสียง ให้เปิดสิทธิ์เข้าถึงโทรศัพท์" "หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ" "หากต้องการโทรออก ให้เปิดสิทธิ์เข้าถึงโทรศัพท์" 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 9a8157fea..cc44cb5f2 100644 --- a/java/com/android/dialer/app/res/values-tl/strings.xml +++ b/java/com/android/dialer/app/res/values-tl/strings.xml @@ -85,10 +85,6 @@ "Bumalik sa kasalukuyang tawag" "Mag-add: tawag" "Mga paparating na tawag" - "Pumapasok sa bulk action mode" - "Umalis sa bulk action mode" - "Napili %1$s" - "Inalis sa pagkakapili %1$s" "I-play ang voicemail" "Tingnan ang contact na si %1$s" "Tawagan si %1$s" @@ -103,13 +99,11 @@ "Voicemail" "%s sec" "%s min %s sec" - "Kanselahin ang batch actions mode" "voicemail" "mga voicemail" "Oo" "Hindi" "I-delete ang napiling %1$s?" - "%1$s ang napili" @string/call_log_header_today "%1$s ng %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Naglo-load mula sa SIM card…" "Mga contact sa SIM card" + "Walang available na app ng mga contact" "Hindi available ang paghahanap gamit ang boses" "Hindi makagawa ng tawag sa telepono dahil naka-disable ang application na Telepono." "Maghanap ng mga contact" @@ -150,9 +145,10 @@ "%s (na) bagong hindi nasagot na tawag" "Wala pang tao sa iyong speed dial" "Magdagdag ng paborito" + "Wala ka pang sinumang mga contact" + "Magdagdag ng contact" "Pindutin ang larawan upang makita ang lahat ng numero o pindutin nang matagal upang ayusing muli" "Alisin" - "Piliin lahat" "Mag-video call" "Magpadala ng mensahe" "Mga detalye ng tawag" @@ -217,9 +213,11 @@ "Mga naka-block na numero" "Naka-block na ang %1$s" "Account sa pagtawag" + "I-on" "Magtakda ng mga pahintulot" "Upang i-enable ang speed dial, i-on ang pahintulot ng Mga Contact." "Upang makita ang iyong log ng tawag, i-on ang pahintulot ng Telepono." + "Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact." "Upang ma-access ang iyong voicemail, i-on ang pahintulot ng Telepono." "Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact." "Upang tumawag, i-on ang pahintulot ng Telepono." 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 17bd6645c..2f6f704f8 100644 --- a/java/com/android/dialer/app/res/values-tr/strings.xml +++ b/java/com/android/dialer/app/res/values-tr/strings.xml @@ -85,10 +85,6 @@ "Çağrıya dön" "Çağrı ekle" "Gelen çağrılar" - "Toplu işlem moduna giriliyor" - "Toplu işlem modundan çıkıldı" - "Seçildi: %1$s" - "Seçimi kaldırıldı: %1$s" "Sesli mesajı oynat" "Kişiyi görüntüle: %1$s" "Ara: %1$s" @@ -103,13 +99,11 @@ "Sesli Mesaj" "%s sn." "%s dk. %s sn." - "Toplu işlemler modu iptal edilir" "sesli mesaj" "sesli mesajlar" "Evet" "Hayır" "Seçili %1$s silinsin mi?" - "%1$s öğe seçildi" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM karttan yükleniyor..." "SIM kart kişileri" + "Kullanılabilir rehber uygulaması yok" "Sesli arama kullanılamaz" "Telefon uygulaması devre dışı bırakıldığından telefon edilemiyor." "Kişilerde ara" @@ -150,9 +145,10 @@ "%s yeni cevapsız çağrı" "Hızlı arama listenizde henüz kimse yok" "Favori ekle" + "Henüz kayıtlı kişi yok" + "Kişi ekle" "Tüm numaraları görmek için resme dokunun veya yeniden sıralamak için dokunup basılı tutun" "Kaldır" - "Tümünü seç" "Video görüşmesi" "İleti gönder" "Çağrı ayrıntıları" @@ -217,9 +213,11 @@ "Engellenen numaralar" "%1$s numaralı telefon zaten engellendi." "Çağrı hesapları" + "Aç" "İzinleri ayarla" "Hızlı aramayı etkinleştirmek için Kişiler iznini açın." "Çağrı günlüğünüzü görmek için Telefon iznini açın." + "Kişilerinizi görmek için Kişiler iznini açın." "Sesli mesajınıza erişmek için Telefon iznini açın." "Kişilerinizde arama yapmak için Kişiler izinlerini açın." "Telefon etmek için Telefon iznini açın." 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 a020a1f1b..9a790125b 100644 --- a/java/com/android/dialer/app/res/values-uk/strings.xml +++ b/java/com/android/dialer/app/res/values-uk/strings.xml @@ -87,10 +87,6 @@ "Повернутися до поточного виклику" "Додати виклик" "Вхідні виклики" - "Перехід у режим масових дій" - "Ви вийшли з режиму масових дій" - "Вибрано користувача %1$s" - "Скасовано вибір користувача %1$s" "Відтворити голосову пошту" "Переглянути контакт %1$s" "Набрати %1$s" @@ -105,13 +101,11 @@ "Голосова пошта" "%s с" "%s хв %s с" - "Скасувати режим масових дій" "голосова пошта" "голосова пошта" "Так" "Ні" "Видалити вибране (%1$s)?" - "Вибрано %1$s" @string/call_log_header_today "%1$s о %2$s" "%1$02d:%2$02d" @@ -124,6 +118,7 @@ "MEID" "Завантаж. із SIM-карти…" "Контакти SIM-карти" + "Немає додатка з контактами" "Голосовий пошук недоступний" "Не вдається здійснити дзвінок, оскільки додаток Телефон вимкнено." "Пошук контактів" @@ -152,9 +147,10 @@ "Нових пропущених дзвінків: %s" "Немає номерів для швидкого набору" "Додати номер" + "Ще немає контактів" + "Додати контакт" "Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок." "Видалити" - "Вибрати все" "Відеодзвінок" "Надіслати повідомлення" "Деталі виклику" @@ -221,9 +217,11 @@ "Заблоковані номери" "Номер %1$s уже заблоковано." "Обл. записи для дзвінків" + "Увімкнути" "Налаштувати дозволи" "Щоб активувати швидкий набір, увімкніть дозвіл \"Контакти\"." "Щоб переглянути журнал викликів, увімкніть дозвіл \"Телефон\"." + "Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"." "Щоб користуватися голосовою поштою, увімкніть дозвіл \"Телефон\"." "Щоб шукати контакти, увімкніть дозвіл \"Контакти\"." "Щоб зателефонувати, увімкніть дозвіл \"Телефон\"." 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 d696bd54c..25198711b 100644 --- a/java/com/android/dialer/app/res/values-ur/strings.xml +++ b/java/com/android/dialer/app/res/values-ur/strings.xml @@ -85,10 +85,6 @@ "جاری کال پر واپس لوٹیں" "کال شامل کریں" "آنے والی کالیں" - "بلک کاروائی موڈ میں داخل ہو رہا ہے" - "بلک کاروائی موڈ چھوڑ دیا" - "منتخب کردہ %1$s" - "غیر منتخب کردہ %1$s" "صوتی میل چلائیں" "رابطہ %1$s دیکھیں" "%1$s کو کال کریں" @@ -103,13 +99,11 @@ "صوتی میل" "%s سیکنڈ" "%s منٹ %s سیکنڈ" - "بیچ کاروائی موڈ منسوخ کریں" "صوتی میل" "صوتی میلز" "ہاں" "نہیں" "منتخب کردہ %1$s حذف کریں؟" - "%1$s منتخب کردہ" @string/call_log_header_today "%1$s بوقت %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "‏SIM کارڈ سے لوڈ ہو رہا ہے…" "‏SIM کارڈ کے رابطے" + "رابطوں کی کوئی ایپ دستیاب نہیں ہے" "صوتی تلاش دستیاب نہیں ہے" "فون کال نہیں کی جا سکتی ہے کیونکہ فون ایپلیکیشن کو غیر فعال کر دیا گیا ہے۔" "رابطے تلاش کریں" @@ -150,9 +145,10 @@ "%s نئی چھوٹی ہوئی کالیں" "آپ کے اسپیڈ ڈائل پر ابھی تک کوئی نہیں ہے" "ایک پسندیدہ شامل کریں" + "آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں" + "ایک رابطہ شامل کریں" "سبھی نمبرز دیکھنے کیلئے تصویر ٹچ کریں یا دوبارہ ترتیب دینے کیلئے ٹچ کریں اور پکڑے رہیں" "ہٹائیں" - "سبھی کو منتخب کریں" "ویڈیو کال" "پیغام بھیجیں" "کال کی تفصیلات" @@ -217,9 +213,11 @@ "مسدود کردہ نمبرز" "%1$s پہلے ہی مسدود ہے۔" "کالنگ اکاؤنٹس" + "آن کریں" "اجازتیں طے کریں" "اسپیڈ ڈائل کو فعال کرنے کیلئے رابطوں کی اجازت آن کریں۔" "اپنا کال لاگ دیکھنے کیلئے فون کی اجازت آن کریں۔" + "اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔" "اپنی صوتی میل تک رسائی کیلئے فون کی اجازت آن کریں۔" "اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔" "کال کرنے کیلئے فون کی اجازت آن کریں۔" 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 aa645bf88..705cae765 100644 --- a/java/com/android/dialer/app/res/values-uz/strings.xml +++ b/java/com/android/dialer/app/res/values-uz/strings.xml @@ -85,10 +85,6 @@ "Amaldagi chaqiruvga qaytish" "Chaqiruv qo‘shish" "Kiruvchi qo‘ng‘iroqlar" - "Yoppasiga bajariladigan amallar rejimiga o‘tilmoqda" - "Yoppasiga bajariladigan amallar rejimidan chiqib ketildi" - "%1$s tanlandi" - "%1$s tanlovi bekor qilindi" "Ovozli xabarni eshitish" "%1$s kontaktini ko‘rish" "Qo‘ng‘iroq: %1$s" @@ -103,13 +99,11 @@ "Ovozli pochta" "%s soniya" "%s daq %s son" - "Yoppasiga bajariladigan amallar rejimini bekor qilish" "ovozli xabar" "ovozli xabarlar" "Ha" "Yo‘q" "Tanlangan %1$s o‘chirib tashlansinmi?" - "Tanlandi: %1$s" @string/call_log_header_today "%1$s, %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "SIM kartadan yuklanmoqda…" "SIM karta kontaktlari" + "Hech qanday kontakt ilovasi yo‘q" "Ovozli qidiruv mavjud emas" "Telefon ilovasi o‘chirib qo‘yilgani sababli telefon qo‘ng‘iroqlarini amalga oshirib bo‘lmaydi." "Kontaktlar ichidan qidirish" @@ -150,9 +145,10 @@ "%s ta javobsiz chaqiruv" "Tezkor terish uchun hech kim yo‘q" "Tezkor raqam terishni sozlang" + "Sizda hali hech qanday kontakt yo‘q" + "Yangi kontakt qo‘shing" "Barcha raqamlarni ko‘rish uchun rasm ustiga bosing yoki joyini o‘zgartirish uchun rasmni bosib turing." "O‘chirish" - "Hammasini tanlash" "Video qo‘ng‘iroq" "Xabar yuborish" "Chaqiruv tafsilotlari" @@ -217,9 +213,11 @@ "Bloklangan raqamlar" "%1$s raqami allaqachon bloklangan." "Chaqiruv uchun hisoblar" + "Yoqish" "Ruxsatnomalarni sozlash" "Tezkor raqam terish uchun “Kontaktlar” ruxsatnomasini yoqing." "Qo‘ng‘iroqlaringiz ro‘yxatini ko‘rish uchun “Telefon” ruxsatnomasini yoqing." + "Kontaktlaringizni ko‘rish uchun “Kontaktlar” ruxsatnomasini yoqing." "Ovozli pochtaga kirish uchun “Telefon” ruxsatnomasini yoqing." "Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing." "Qo‘ng‘iroq qilish uchun “Telefon” ruxsatnomasini yoqing." 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 dda7c1523..5a60e0ac3 100644 --- a/java/com/android/dialer/app/res/values-vi/strings.xml +++ b/java/com/android/dialer/app/res/values-vi/strings.xml @@ -85,10 +85,6 @@ "Quay lại cuộc gọi đang thực hiện" "Thêm cuộc gọi" "Cuộc gọi đến" - "Truy cập chế độ tác vụ hàng loạt" - "Đã rời khỏi chế độ tác vụ hàng loạt" - "Đã chọn %1$s" - "Đã bỏ chọn %1$s" "Phát thư thoại" "Xem thông tin liên hệ của %1$s" "Gọi %1$s" @@ -103,13 +99,11 @@ "Thư thoại" "%s giây" "%s phút %s giây" - "Hủy chế độ tác vụ hàng loạt" "thư thoại" "thư thoại" "Có" "Không" "Xóa %1$s đã chọn?" - "Đã chọn %1$s" @string/call_log_header_today "%1$s lúc %2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "Đang tải từ thẻ SIM…" "Danh bạ trên thẻ SIM" + "Không có ứng dụng danh bạ" "Không có tính năng tìm kiếm bằng giọng nói" "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." "Tìm kiếm trong danh bạ" @@ -150,9 +145,10 @@ "%s cuộc gọi nhỡ mới" "Chưa có ai trong danh bạ quay số nhanh của bạn" "Thêm liên hệ quay số nhanh yêu thích" + "Bạn chưa có bất kỳ liên hệ nào" + "Thêm liên hệ" "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" "Xóa" - "Chọn tất cả" "Cuộc gọi điện video" "Gửi tin nhắn" "Chi tiết cuộc gọi" @@ -217,9 +213,11 @@ "Số bị chặn" "%1$s đã bị chặn." "Tài khoản gọi" + "Bật" "Đặt quyền" "Để bật quay số nhanh, bật quyền đối với Danh bạ." "Để xem nhật ký cuộc gọi của bạn, bật quyền đối với Điện thoại." + "Để xem danh bạ của bạn, bật quyền đối với Danh bạ." "Để truy cập thư thoại của bạn, bật quyền đối với Điện thoại." "Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ." "Để thực hiện cuộc gọi, bật quyền đối với Điện thoại." 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 672614e48..98abc396a 100644 --- a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml +++ b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml @@ -85,10 +85,6 @@ "返回正在进行的通话" "添加通话" "来电" - "正在进入批量操作模式" - "已退出批量操作模式" - "已选择 %1$s" - "已取消选择 %1$s" "播放语音邮件" "查看联系人%1$s" "呼叫%1$s" @@ -103,13 +99,11 @@ "语音信箱" "%s 秒" "%s 分钟 %s 秒" - "取消批量操作模式" "语音邮件" "语音邮件" "是" "否" "要删除所选的%1$s吗?" - "已选择 %1$s 封" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "正从 SIM 卡中加载..." "SIM卡联系人" + "没有可用的通讯录应用" "无法使用语音搜索" "“电话”应用已被停用,因此无法拨打电话。" "搜索联系人" @@ -150,9 +145,10 @@ "%s个新的未接电话" "尚未给任何联系人设定快速拨号" "添加常用联系人" + "您还没有任何联系人" + "添加联系人" "触摸图片可查看所有号码,触摸并按住可重新排序" "移除" - "全选" "视频通话" "发送短信" "通话详情" @@ -217,9 +213,11 @@ "已屏蔽的号码" "%1$s 已被屏蔽。" "通话帐号" + "开启" "设置权限" "要启用快速拨号功能,请开启“通讯录”权限。" "要查看您的通话记录,请开启“电话”权限。" + "要查看您的联系人,请开启“通讯录”权限。" "要使用您的语音信箱,请开启“电话”权限。" "要搜索您的联系人,请开启“通讯录”权限。" "要拨打电话,请开启“电话”权限。" 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 f3dc44baf..2a96ce045 100644 --- a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml +++ b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml @@ -85,10 +85,6 @@ "返回進行中的通話" "新增通話" "來電" - "正在進入大量操作模式" - "已離開大量操作模式" - "已選取%1$s" - "已取消選取%1$s" "播放語音留言" "查看聯絡人%1$s" "打電話給%1$s" @@ -103,13 +99,11 @@ "留言" "%s 秒" "%s%s 秒" - "取消批量操作模式" "留言" "留言" "是" "否" "要刪除所選的%1$s嗎?" - "已選取 %1$s 個" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "正在從 SIM 卡載入..." "SIM 卡聯絡人" + "沒有可用的聯絡人應用程式" "無法使用語音搜尋" "由於「電話」應用程式已停用,因此無法打電話。" "搜尋聯絡人" @@ -150,9 +145,10 @@ "%s 個新的未接來電" "快速撥號名單中沒有聯絡人" "新增常用聯絡人" + "暫時沒有聯絡人" + "新增聯絡人" "輕觸圖片以查看所有電話號碼,或輕觸並按住圖片以重新排序" "移除" - "全選" "視像通話" "傳送訊息" "通話詳情" @@ -217,9 +213,11 @@ "已封鎖的號碼" "已封鎖 %1$s。" "通話帳戶" + "開放權限" "設定權限" "如要啟用快速撥號功能,請開放「通訊錄」權限。" "如要查看通話記錄,請開放「手機」權限。" + "如要查看聯絡人,請開放「通訊錄」權限。" "如要存取留言信箱,請開放「手機」權限。" "如要搜尋聯絡人,請開啟「通訊錄」權限。" "如要撥打電話,請開放「手機」權限。" 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 473955c5d..917452133 100644 --- a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml +++ b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml @@ -85,10 +85,6 @@ "返回進行中的通話" "新增通話" "來電" - "已進入大量操作模式" - "已離開大量操作模式" - "已選取:%1$s" - "已取消選取:%1$s" "播放語音留言" "查看聯絡人%1$s" "撥電話給%1$s" @@ -103,13 +99,11 @@ "語音留言" "%s 秒" "%s%s 秒" - "取消批次操作模式" "語音留言" "語音留言" "是" "否" "要刪除選取的%1$s嗎?" - "已選取 %1$s 個" @string/call_log_header_today "%1$s%2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "MEID" "從 SIM 卡讀取中…" "SIM 卡聯絡人" + "沒有可用的聯絡人應用程式" "無法使用語音搜尋" "「電話」應用程式已遭停用,因此無法撥打電話。" "搜尋聯絡人" @@ -150,9 +145,10 @@ "%s 通新的未接來電" "您的快速撥號功能尚未設定任何聯絡人" "新增常用聯絡人" + "您尚未加入任何聯絡人" + "新增聯絡人" "輕觸圖片即可查看所有號碼,按住則可重新排序" "移除" - "全選" "視訊通話" "傳送簡訊" "通話詳細資料" @@ -217,9 +213,11 @@ "已封鎖的號碼" "%1$s 已在封鎖清單中。" "通話帳戶" + "開啟" "設定權限" "如要啟用快速撥號,請開啟「聯絡人」存取權限。" "如要查看您的通話紀錄,請開啟「電話」存取權限。" + "如要查看您的聯絡人,請開啟「聯絡人」存取權限。" "如要存取您的語音信箱,請開啟「電話」存取權限。" "如要搜尋您的聯絡人,請開啟「聯絡人」存取權限。" "如要撥打電話,請開啟「電話」存取權限。" 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 93843aa2c..9c8a6b8e1 100644 --- a/java/com/android/dialer/app/res/values-zu/strings.xml +++ b/java/com/android/dialer/app/res/values-zu/strings.xml @@ -85,10 +85,6 @@ "Buyela kukholi eqhubekayo" "Yengeza ikholi" "Amakholi angenayo" - "Kungenwa kumodi yesenzo senqwaba" - "Ishiye imodi yesenzo senqwaba" - "Kukhethwe i-%1$s" - "Akukhethiwe i-%1$s" "Dlala i-imeyli yezwi" "Bheka oxhumana naye %1$s" "Shayela %1$s" @@ -103,13 +99,11 @@ "Ivoyisimeyili" "%s isekhondi" "%s amaminithi %s amasekhondi" - "Khansela imodi lezenzo zeqoqo" "ivoyisimeyili" "ama-meyli ezwi" "Yebo" "Cha" "Susa okukhethiwe %1$s?" - "Engu-%1$s ekhethiwe" @string/call_log_header_today "%1$s ngo-%2$s" "%1$02d:%2$02d" @@ -122,6 +116,7 @@ "I-MEID" "Ilayisha kusuka ekhadini le-SIM..." "Othintana nabo bekhadi le-SIM" + "Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo" "Usesho lwezwi alutholakali" "Ayikwazi ukwenza ikholi yefoni ngoba uhlelo lokusebenza lwefoni likhutshaziwe." "Sesha othintana nabo" @@ -150,9 +145,10 @@ "%s amakholi amasha owaphuthelwe" "Akekho umuntu osekudayeleni kwakho okusheshayo okwamanje" "Engeza intandokazi" + "Awunabo oxhumana nabo okwamanje" + "Engeza oxhumana naye" "Thinta isithombe ukuze ubone zonke izinombolo noma thinta bese ubambe ukuze uhlele kabusha" "Susa" - "Khetha konke" "Ikholi yevidiyo" "Thumela umlayezo" "Imininingwane yekholi" @@ -217,9 +213,11 @@ "Izinombolo ezivinjiwe" "%1$s isivinjiwe kakade." "Ama-akhawunti wokushaya" + "Vula" "Setha izimvume" "Nika amandla ukudayela okusheshayo, vula imvume yoxhumana nabo." "Ukuze ubone irekhodi lakho lamakholi, vuma imvume yefoni." + "Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo." "Ukuze ufinyelele ivoyisimeyili, vula imvume yefoni." "Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo." "Ukuze ubeke ikholi, vula imvume yefoni." diff --git a/java/com/android/dialer/app/res/values/colors.xml b/java/com/android/dialer/app/res/values/colors.xml index 2f6d87b49..cf6b926be 100644 --- a/java/com/android/dialer/app/res/values/colors.xml +++ b/java/com/android/dialer/app/res/values/colors.xml @@ -52,6 +52,8 @@ @color/dialer_theme_color + + #fafafa #f9f9f9 @color/background_dialer_light @@ -67,6 +69,8 @@ #4d4d4d + #b2b2b2 + #ffffff diff --git a/java/com/android/dialer/app/res/values/dimens.xml b/java/com/android/dialer/app/res/values/dimens.xml index 57c43ebbd..7da29c7a3 100644 --- a/java/com/android/dialer/app/res/values/dimens.xml +++ b/java/com/android/dialer/app/res/values/dimens.xml @@ -105,6 +105,9 @@ 10dp + 20dp + 16sp + 16dp 16dp diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml index 6110601d8..9e1fdeb5a 100644 --- a/java/com/android/dialer/app/res/values/strings.xml +++ b/java/com/android/dialer/app/res/values/strings.xml @@ -279,34 +279,6 @@ Incoming calls - - Entering bulk action mode - - - Left bulk action mode - - - Selected %1$s - - - Unselected %1$s - %s min %s sec - - Cancel batch actions mode - voicemail voicemails Yes No Delete selected %1$s? - %1$s selected - @@ -446,6 +411,9 @@ SIM card contacts + + No contacts app available + Voice search not available @@ -546,6 +514,12 @@ Add a favorite + + You don\'t have any contacts yet + + + Add a contact + Remove - - Select all - @@ -583,7 +554,7 @@ Call ^1 - Missed call from ^1, ^2, ^3, ^4. @@ -870,6 +841,9 @@ button_dtmf_settings + + Turn on + Set permissions @@ -879,6 +853,9 @@ To see your call log, turn on the Phone permission. + + To see your contacts, turn on the Contacts permission. + To access your voicemail, turn on the Phone permission. diff --git a/java/com/android/dialer/app/res/values/styles.xml b/java/com/android/dialer/app/res/values/styles.xml index 592f06d29..7adf7ca2c 100644 --- a/java/com/android/dialer/app/res/values/styles.xml +++ b/java/com/android/dialer/app/res/values/styles.xml @@ -25,15 +25,13 @@ true @style/DialtactsActionBarStyle @style/DialtactsActionBarStyle - @style/ActionModeStyle - @style/ActionModeStyle - @null true - @drawable/quantum_ic_arrow_back_vd_theme_24 + @drawable/ic_back_arrow @style/ListViewStyle + @drawable/list_title_holo 32dip 7dp 24dp @@ -68,7 +66,7 @@ @style/DialerButtonTextStyle - 48dip + 32dip 8dip @style/Dialpad.Light @@ -131,12 +129,6 @@ @dimen/actionbar_contentInsetStart - - + + + + + - - - - - - - diff --git a/java/com/android/dialer/util/CallUtil.java b/java/com/android/dialer/util/CallUtil.java index b6ab3b30e..81a4bb21e 100644 --- a/java/com/android/dialer/util/CallUtil.java +++ b/java/com/android/dialer/util/CallUtil.java @@ -21,7 +21,6 @@ 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; @@ -41,9 +40,6 @@ 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)) { @@ -106,23 +102,7 @@ public class CallUtil { * false} otherwise. */ public static boolean isVideoEnabled(Context context) { - boolean isVideoEnabled = (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0; - - // Log everytime the video enabled state changes. - if (!hasInitializedIsVideoEnabledState) { - LogUtil.i("CallUtil.isVideoEnabled", "isVideoEnabled: " + isVideoEnabled); - hasInitializedIsVideoEnabledState = true; - cachedIsVideoEnabledState = isVideoEnabled; - } else if (cachedIsVideoEnabledState != isVideoEnabled) { - LogUtil.i( - "CallUtil.isVideoEnabled", - "isVideoEnabled changed from %b to %b", - cachedIsVideoEnabledState, - isVideoEnabled); - cachedIsVideoEnabledState = isVideoEnabled; - } - - return true; + return (getVideoCallingAvailability(context) & VIDEO_CALLING_ENABLED) != 0; } /** diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java index 72a59eaef..466e86204 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 fe0e86110..9e1058383 100644 --- a/java/com/android/dialer/widget/DialerToolbar.java +++ b/java/com/android/dialer/widget/DialerToolbar.java @@ -41,11 +41,6 @@ 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/widget/EmptyContentView.java b/java/com/android/dialer/widget/EmptyContentView.java deleted file mode 100644 index a76ab98d6..000000000 --- a/java/com/android/dialer/widget/EmptyContentView.java +++ /dev/null @@ -1,127 +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.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; - -public class EmptyContentView extends LinearLayout implements View.OnClickListener { - - /** Listener to call when action button is clicked. */ - public interface OnEmptyViewActionButtonClickedListener { - void onEmptyViewActionButtonClicked(); - } - - public static final int NO_LABEL = 0; - public static final int NO_IMAGE = 0; - - private ImageView mImageView; - private TextView mDescriptionView; - private TextView mActionView; - private OnEmptyViewActionButtonClickedListener mOnActionButtonClickedListener; - - private @StringRes int actionLabel; - - public EmptyContentView(Context context) { - this(context, null); - } - - public EmptyContentView(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public EmptyContentView(Context context, AttributeSet attrs, int defStyleAttr) { - this(context, attrs, defStyleAttr, 0); - } - - public EmptyContentView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - inflateLayout(); - - // Don't let touches fall through the empty view. - setClickable(true); - mImageView = (ImageView) findViewById(R.id.empty_list_view_image); - mDescriptionView = (TextView) findViewById(R.id.empty_list_view_message); - mActionView = (TextView) findViewById(R.id.empty_list_view_action); - mActionView.setOnClickListener(this); - } - - public void setDescription(int resourceId) { - if (resourceId == NO_LABEL) { - mDescriptionView.setText(null); - mDescriptionView.setVisibility(View.GONE); - } else { - mDescriptionView.setText(resourceId); - mDescriptionView.setVisibility(View.VISIBLE); - } - } - - public void setImage(int resourceId) { - if (resourceId == NO_LABEL) { - mImageView.setImageDrawable(null); - mImageView.setVisibility(View.GONE); - } else { - mImageView.setImageResource(resourceId); - mImageView.setVisibility(View.VISIBLE); - } - } - - public void setActionLabel(@StringRes int resourceId) { - actionLabel = resourceId; - if (resourceId == NO_LABEL) { - mActionView.setText(null); - mActionView.setVisibility(View.GONE); - } else { - mActionView.setText(resourceId); - mActionView.setVisibility(View.VISIBLE); - } - } - - public @StringRes int getActionLabel() { - return actionLabel; - } - - public boolean isShowingContent() { - return mImageView.getVisibility() == View.VISIBLE - || mDescriptionView.getVisibility() == View.VISIBLE - || mActionView.getVisibility() == View.VISIBLE; - } - - public void setActionClickedListener(OnEmptyViewActionButtonClickedListener listener) { - mOnActionButtonClickedListener = listener; - } - - @Override - public void onClick(View v) { - if (mOnActionButtonClickedListener != null) { - mOnActionButtonClickedListener.onEmptyViewActionButtonClicked(); - } - } - - protected void inflateLayout() { - setOrientation(LinearLayout.VERTICAL); - final LayoutInflater inflater = - (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 615ad3b77..b136f47eb 100644 --- a/java/com/android/dialer/widget/MessageFragment.java +++ b/java/com/android/dialer/widget/MessageFragment.java @@ -23,7 +23,6 @@ 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; @@ -32,13 +31,11 @@ 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, OnEditorActionListener { +public class MessageFragment extends Fragment implements OnClickListener, TextWatcher { private static final String CHAR_LIMIT_KEY = "char_limit"; private static final String SHOW_SEND_ICON_KEY = "show_send_icon"; private static final String MESSAGE_LIST_KEY = "message_list"; @@ -72,7 +69,7 @@ public class MessageFragment extends Fragment LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_message, container, false); - sendMessage = view.findViewById(R.id.send_message); + sendMessage = (ImageView) view.findViewById(R.id.send_message); sendMessageContainer = view.findViewById(R.id.count_and_send_container); if (getArguments().getBoolean(SHOW_SEND_ICON_KEY, false)) { sendMessage.setVisibility(View.VISIBLE); @@ -80,19 +77,18 @@ public class MessageFragment extends Fragment sendMessageContainer.setOnClickListener(this); } - customMessage = view.findViewById(R.id.custom_message); + customMessage = (EditText) view.findViewById(R.id.custom_message); customMessage.addTextChangedListener(this); - customMessage.setOnEditorActionListener(this); charLimit = getArguments().getInt(CHAR_LIMIT_KEY, NO_CHAR_LIMIT); if (charLimit != NO_CHAR_LIMIT) { - remainingChar = view.findViewById(R.id.remaining_characters); + remainingChar = (TextView) view.findViewById(R.id.remaining_characters); remainingChar.setVisibility(View.VISIBLE); - remainingChar = view.findViewById(R.id.remaining_characters); - remainingChar.setText(Integer.toString(charLimit)); + remainingChar = (TextView) view.findViewById(R.id.remaining_characters); + remainingChar.setText("" + charLimit); customMessage.setFilters(new InputFilter[] {new InputFilter.LengthFilter(charLimit)}); } - LinearLayout messageContainer = view.findViewById(R.id.message_container); + LinearLayout messageContainer = (LinearLayout) view.findViewById(R.id.message_container); for (String message : getArguments().getStringArray(MESSAGE_LIST_KEY)) { TextView textView = (TextView) inflater.inflate(R.layout.selectable_text_view, null); textView.setOnClickListener(this); @@ -127,20 +123,11 @@ public class MessageFragment extends Fragment @Override public void afterTextChanged(Editable s) { if (charLimit != NO_CHAR_LIMIT) { - remainingChar.setText(Integer.toString(charLimit - s.length())); + remainingChar.setText("" + (charLimit - s.length())); } getListener().onMessageFragmentAfterTextChange(s.toString()); } - @Override - public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if (getMessage() == null) { - return false; - } - getListener().onMessageFragmentSendMessage(getMessage()); - return true; - } - private Listener getListener() { return FragmentUtils.getParentUnsafe(this, Listener.class); } diff --git a/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png deleted file mode 100644 index d3c0378f5..000000000 Binary files a/java/com/android/dialer/widget/res/drawable-hdpi/empty_contacts.png and /dev/null differ diff --git a/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png deleted file mode 100644 index 2ce7eae37..000000000 Binary files a/java/com/android/dialer/widget/res/drawable-mdpi/empty_contacts.png and /dev/null differ diff --git a/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png deleted file mode 100644 index 65b1de333..000000000 Binary files a/java/com/android/dialer/widget/res/drawable-xhdpi/empty_contacts.png and /dev/null differ diff --git a/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png deleted file mode 100644 index 407d78c9c..000000000 Binary files a/java/com/android/dialer/widget/res/drawable-xxhdpi/empty_contacts.png and /dev/null differ diff --git a/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png b/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png deleted file mode 100644 index 5893965e9..000000000 Binary files a/java/com/android/dialer/widget/res/drawable-xxxhdpi/empty_contacts.png and /dev/null 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 023b0ffe2..c4aac65fb 100644 --- a/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml +++ b/java/com/android/dialer/widget/res/layout/dialer_toolbar.xml @@ -29,9 +29,7 @@ android:gravity="top" android:textSize="@dimen/toolbar_title_text_size" android:textColor="@color/background_dialer_white" - android:fontFamily="sans-serif-medium" - android:maxLines="1" - android:ellipsize="end"/> + android:fontFamily="sans-serif-medium"/> + android:visibility="gone"/> \ No newline at end of file diff --git a/java/com/android/dialer/widget/res/layout/empty_content_view.xml b/java/com/android/dialer/widget/res/layout/empty_content_view.xml deleted file mode 100644 index 177744385..000000000 --- a/java/com/android/dialer/widget/res/layout/empty_content_view.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - 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 5b0bab536..e39e03aee 100644 --- a/java/com/android/dialer/widget/res/layout/fragment_message.xml +++ b/java/com/android/dialer/widget/res/layout/fragment_message.xml @@ -48,9 +48,7 @@ android:textColorHint="@color/dialer_edit_text_hint_color" android:background="@color/background_dialer_white" android:textCursorDrawable="@drawable/searchedittext_custom_cursor" - android:layout_toStartOf="@+id/count_and_send_container" - android:inputType="textShortMessage|textCapSentences" - android:imeOptions="actionSend"/> + android:layout_toStartOf="@+id/count_and_send_container"/> "Skryf \'n gepasmaakte boodskap" "Maak toe" - "Jy het nog nie enige kontakte nie" - "Voeg \'n kontak by" - "Skakel aan" - "Skakel die kontaktetoestemming aan om jou kontakte te sien." - "Geen kontakte-program beskikbaar nie" 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 8a5353e18..f11b46835 100644 --- a/java/com/android/dialer/widget/res/values-am/strings.xml +++ b/java/com/android/dialer/widget/res/values-am/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ብጁ መልዕክት ይጻፉ" "ዝጋ" - "ገና ምንም እውቂያዎች የሉዎትም" - "እውቂያ ያክሉ" - "አብራ" - "የእርስዎን እውቂያዎች ለማየት፣ የእውቂያዎች ፍቃዱን ያብሩ።" - "ምንም የእውቂያዎች መተግበሪያ አይገኝም" 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 7947903ce..cb2e73378 100644 --- a/java/com/android/dialer/widget/res/values-ar/strings.xml +++ b/java/com/android/dialer/widget/res/values-ar/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "كتابة رسالة مخصصة" "إغلاق" - "ليست لديك أية جهات اتصال حتى الآن" - "إضافة جهة اتصال" - "تشغيل" - "للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال." - "لا يتوفر تطبيق لجهات الاتصال" 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 7a1389a1a..3860a5846 100644 --- a/java/com/android/dialer/widget/res/values-az/strings.xml +++ b/java/com/android/dialer/widget/res/values-az/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Fərdi mesaj yazın" "Bağlayın" - "Hələ heç bir kontakt yoxdur" - "Kontakt əlavə edin" - "Aktiv edin" - "Kontaktları görmək üçün Kontakt icazəsini aktiv edin." - "Kontakt tətbiqi əlçatan deyil" 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 46b29d27c..daefd9020 100644 --- a/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/dialer/widget/res/values-b+sr+Latn/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napišite prilagođenu poruku" "Zatvorite" - "Još uvek nemate nijedan kontakt" - "Dodaj kontakt" - "Uključi" - "Da biste videli kontakte, uključite dozvolu za Kontakte." - "Nema dostupne aplikacije za kontakte" 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 38c8a80ca..87861321f 100644 --- a/java/com/android/dialer/widget/res/values-be/strings.xml +++ b/java/com/android/dialer/widget/res/values-be/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Напісаць карыстальніцкае паведамленне" "Закрыць" - "У вас пакуль няма ніякіх кантактаў" - "Дадаць кантакт" - "Уключыць" - "Каб бачыць свае кантакты, уключыце дазвол для Кантактаў." - "Праграмы для аперацый з кантактамі няма" 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 00ce56454..35e980c5f 100644 --- a/java/com/android/dialer/widget/res/values-bg/strings.xml +++ b/java/com/android/dialer/widget/res/values-bg/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Напишете свое съобщение" "Затваряне" - "Още нямате контакти" - "Добавяне на контакт" - "Включване" - "За да видите контактите си, включете разрешението за Контакти." - "Няма налично приложение за контакти" 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 96b75db59..9e1707114 100644 --- a/java/com/android/dialer/widget/res/values-bn/strings.xml +++ b/java/com/android/dialer/widget/res/values-bn/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "একটি কাস্টম বার্তা লিখুন" "বন্ধ করুন" - "আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই" - "একটি পরিচিতি যোগ করুন" - "চালু করুন" - "আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।" - "কোনো পরিচিতি অ্যাপ্লিকেশান উপলব্ধ নয়" 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 df24ee16b..0bc1a9c15 100644 --- a/java/com/android/dialer/widget/res/values-bs/strings.xml +++ b/java/com/android/dialer/widget/res/values-bs/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napišite prilagođenu poruku" "Zatvori" - "Još nemate nijedan kontakt" - "Dodajte kontakt" - "Uključi" - "Da vidite kontakte, uključite dozvolu za Kontakte." - "Nije dostupna nijedna aplikacija za kontakte" 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 f7bbaa746..863930039 100644 --- a/java/com/android/dialer/widget/res/values-ca/strings.xml +++ b/java/com/android/dialer/widget/res/values-ca/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escriu un miss. personalitzat" "Tanca" - "Encara no tens cap contacte" - "Afegeix un contacte" - "Activa" - "Activa el permís Contactes per veure els teus contactes." - "No hi ha cap contacte disponible" 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 19e5d17da..829aab8dd 100644 --- a/java/com/android/dialer/widget/res/values-cs/strings.xml +++ b/java/com/android/dialer/widget/res/values-cs/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napište vlastní zprávu" "Zavřít" - "Zatím nemáte žádné kontakty" - "Přidat kontakt" - "Povolit" - "Pokud chcete zobrazit kontakty, povolte aplikaci přístup ke Kontaktům." - "Není k dispozici žádná aplikace pro práci s kontakty" 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 67fb244c4..9381f36f5 100644 --- a/java/com/android/dialer/widget/res/values-da/strings.xml +++ b/java/com/android/dialer/widget/res/values-da/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skriv en tilpasset besked" "Luk" - "Du har endnu ikke nogen kontaktpersoner" - "Tilføj en kontaktperson" - "Slå til" - "Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner." - "Der er ingen tilgængelig app til kontaktpersoner" 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 14146d65f..949fe9e49 100644 --- a/java/com/android/dialer/widget/res/values-de/strings.xml +++ b/java/com/android/dialer/widget/res/values-de/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Eigene Nachricht schreiben" "Schließen" - "Du hast noch keine Kontakte" - "Kontakt hinzufügen" - "Aktivieren" - "Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen." - "Keine Kontakte-App verfügbar" 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 0db6b2694..21e049bf7 100644 --- a/java/com/android/dialer/widget/res/values-el/strings.xml +++ b/java/com/android/dialer/widget/res/values-el/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Γράψτε ένα προσαρμ. μήνυμα" "Κλείσιμο" - "Δεν έχετε επαφές ακόμη" - "Προσθήκη επαφής" - "Ενεργοποίηση" - "Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια πρόσβασης στις Επαφές." - "Δεν υπάρχει διαθέσιμη εφαρμογή επαφών" 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 a87cd28ff..7f22b46da 100644 --- a/java/com/android/dialer/widget/res/values-en-rAU/strings.xml +++ b/java/com/android/dialer/widget/res/values-en-rAU/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Write a custom message" "Close" - "You don\'t have any contacts yet" - "Add a contact" - "Turn on" - "To see your contacts, turn on the Contacts permission." - "No contacts app available" 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 a87cd28ff..7f22b46da 100644 --- a/java/com/android/dialer/widget/res/values-en-rGB/strings.xml +++ b/java/com/android/dialer/widget/res/values-en-rGB/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Write a custom message" "Close" - "You don\'t have any contacts yet" - "Add a contact" - "Turn on" - "To see your contacts, turn on the Contacts permission." - "No contacts app available" 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 a87cd28ff..7f22b46da 100644 --- a/java/com/android/dialer/widget/res/values-en-rIN/strings.xml +++ b/java/com/android/dialer/widget/res/values-en-rIN/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Write a custom message" "Close" - "You don\'t have any contacts yet" - "Add a contact" - "Turn on" - "To see your contacts, turn on the Contacts permission." - "No contacts app available" 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 5ecc22b3d..c7fbdaa58 100644 --- a/java/com/android/dialer/widget/res/values-es-rUS/strings.xml +++ b/java/com/android/dialer/widget/res/values-es-rUS/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escribe tu propio mensaje" "Cerrar" - "Aún no tienes contactos" - "Agregar un contacto" - "Activar" - "Para ver los contactos, activa el permiso Contactos." - "No hay ninguna app de contactos disponible" 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 e561d06f7..507e8af0d 100644 --- a/java/com/android/dialer/widget/res/values-es/strings.xml +++ b/java/com/android/dialer/widget/res/values-es/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Mensaje personalizado" "Cerrar" - "Aún no tienes contactos" - "Añadir un contacto" - "Activar" - "Para ver tus contactos, activa el permiso de Contactos." - "No hay aplicaciones de contactos disponibles" 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 054b42281..71dab4276 100644 --- a/java/com/android/dialer/widget/res/values-et/strings.xml +++ b/java/com/android/dialer/widget/res/values-et/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Kirjutage kohandatud sõnum" "Sule" - "Teil pole veel kontakte" - "Kontakti lisamine" - "Lülita sisse" - "Kontaktide vaatamiseks lülitage sisse kontaktide luba." - "Kontaktide rakendus pole saadaval" 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 7d191925e..b8e4085a0 100644 --- a/java/com/android/dialer/widget/res/values-eu/strings.xml +++ b/java/com/android/dialer/widget/res/values-eu/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Idatzi mezu bat" "Itxi" - "Oraindik ez duzu kontakturik" - "Gehitu kontaktu bat" - "Aktibatu" - "Kontaktuak ikusteko, aktibatu Kontaktuak atzitzeko baimena." - "Ez dago kontaktu-aplikaziorik erabilgarri" 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 5ed23131a..0c3b1d4f5 100644 --- a/java/com/android/dialer/widget/res/values-fa/strings.xml +++ b/java/com/android/dialer/widget/res/values-fa/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "پیام سفارشی بنویسید" "بستن" - "هنوز هیچ مخاطبی ندارید" - "افزودن مخاطب" - "فعال‌سازی" - "برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید." - "هیچ برنامه مخاطبی در دسترس نیست" 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 1a153072c..e0e971cd8 100644 --- a/java/com/android/dialer/widget/res/values-fi/strings.xml +++ b/java/com/android/dialer/widget/res/values-fi/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Kirjoita oma viesti" "Sulje" - "Sinulla ei ole vielä yhteystietoja." - "Lisää yhteystieto." - "Ota käyttöön" - "Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön." - "Yhteystietosovellusta ei ole käytettävissä." 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 62e1f37fb..9776385b4 100644 --- a/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml +++ b/java/com/android/dialer/widget/res/values-fr-rCA/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Rédiger message personnalisé" "Fermer" - "Vous n\'avez pas encore de contacts" - "Ajouter un contact" - "Activer" - "Pour consulter vos contacts, activez l\'autorisation Contacts." - "Aucune application Contacts n\'est disponible" 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 85a32b875..fececd84a 100644 --- a/java/com/android/dialer/widget/res/values-fr/strings.xml +++ b/java/com/android/dialer/widget/res/values-fr/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Écrire mon propre message" "Fermer" - "Vous n\'avez pas encore de contacts." - "Ajouter un contact" - "Activer" - "Pour consulter vos contacts, activez l\'autorisation Contacts." - "Aucune application de gestion des contacts n\'est disponible" 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 8a9089fdb..6a756810b 100644 --- a/java/com/android/dialer/widget/res/values-gl/strings.xml +++ b/java/com/android/dialer/widget/res/values-gl/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escribe unha mensaxe personalizada" "Pechar" - "Aínda non tes ningún contacto" - "Engadir un contacto" - "Activar" - "Para ver os teus contactos, activa o permiso de Contactos." - "Non hai ningunha aplicación de contactos dispoñible" 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 794245d3d..c2f8cf0e1 100644 --- a/java/com/android/dialer/widget/res/values-gu/strings.xml +++ b/java/com/android/dialer/widget/res/values-gu/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "એક કસ્ટમ સંદેશ લખો" "બંધ કરો" - "તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી" - "સંપર્ક ઉમેરો" - "ચાલુ કરો" - "તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો." - "કોઈ સંપર્કો ઍપ્લિકેશન ઉપલબ્ધ નથી" 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 5cdb8bbfc..63c94e7f6 100644 --- a/java/com/android/dialer/widget/res/values-hi/strings.xml +++ b/java/com/android/dialer/widget/res/values-hi/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "कोई कस्टम संदेश लिखें" "बंद करें" - "आपके पास अभी कोई भी संपर्क नहीं है" - "कोई संपर्क जोड़ें" - "चालू करें" - "अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें." - "कोई भी संपर्क ऐप उपलब्‍ध नहीं है" 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 9ded4d4a7..28a58d453 100644 --- a/java/com/android/dialer/widget/res/values-hr/strings.xml +++ b/java/com/android/dialer/widget/res/values-hr/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napišite prilagođenu poruku" "Zatvaranje" - "Još nemate nijedan kontakt" - "Dodavanje kontakta" - "Uključi" - "Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte." - "Nije dostupna nijedna aplikacija za kontakte" 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 92ae71de8..dcd2b36ea 100644 --- a/java/com/android/dialer/widget/res/values-hu/strings.xml +++ b/java/com/android/dialer/widget/res/values-hu/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Egyéni üzenet írása" "Bezárás" - "Még nem rendelkezik egyetlen névjeggyel sem" - "Névjegy hozzáadása" - "Bekapcsolás" - "A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt." - "Nincs elérhető névjegykezelő alkalmazás" 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 ffa7132c5..7b78bb23e 100644 --- a/java/com/android/dialer/widget/res/values-hy/strings.xml +++ b/java/com/android/dialer/widget/res/values-hy/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Գրել տեքստն ինքնուրույն" "Փակել" - "Դեռ կոնտակտներ չունեք" - "Ավելացնել կոնտակտ" - "Միացնել" - "Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:" - "Կոնտակտների հավելված չկա" 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 69849ae02..b4b65504b 100644 --- a/java/com/android/dialer/widget/res/values-in/strings.xml +++ b/java/com/android/dialer/widget/res/values-in/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Tulis pesan khusus" "Tutup" - "Anda belum memiliki kontak" - "Tambahkan kontak" - "Aktifkan" - "Untuk melihat kontak, aktifkan izin Kontak." - "Aplikasi kontak tidak tersedia" 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 98a172904..fd844197e 100644 --- a/java/com/android/dialer/widget/res/values-is/strings.xml +++ b/java/com/android/dialer/widget/res/values-is/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skrifa sérsniðin skilaboð" "Loka" - "Þú ert ekki með neina tengiliði enn sem komið er" - "Bæta tengilið við" - "Kveikja" - "Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína." - "Ekkert tengiliðaforrit í boði" 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 1a6e6c135..0af3fd2eb 100644 --- a/java/com/android/dialer/widget/res/values-it/strings.xml +++ b/java/com/android/dialer/widget/res/values-it/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Scrivi un messaggio personalizzato" "Chiudi" - "Nessun contatto disponibile" - "Aggiungi un contatto" - "Attiva" - "Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti." - "Nessuna app di contatti disponibile" 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 f2a732a67..a485888ae 100644 --- a/java/com/android/dialer/widget/res/values-iw/strings.xml +++ b/java/com/android/dialer/widget/res/values-iw/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "כתוב הודעה מותאמת אישית" "סגירה" - "עדיין אין לך אנשי קשר" - "הוספה של איש קשר" - "הפעלה" - "עליך להפעיל את ההרשאה \'אנשי קשר\' כדי להציג את אנשי הקשר שלך." - "אין אף אפליקציה לניהול אנשי קשר" 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 7994c6262..9fd65a806 100644 --- a/java/com/android/dialer/widget/res/values-ja/strings.xml +++ b/java/com/android/dialer/widget/res/values-ja/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "カスタム メッセージを入力" "閉じる" - "連絡先はまだありません" - "連絡先を追加" - "ON にする" - "連絡先を表示するには、連絡先へのアクセスを許可する設定を ON にしてください。" - "利用できる連絡先アプリがありません" 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 865a66b45..6dde04430 100644 --- a/java/com/android/dialer/widget/res/values-ka/strings.xml +++ b/java/com/android/dialer/widget/res/values-ka/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "დაწერეთ მორგებ. შეტყობინება" "დახურვა" - "კონტაქტები ჯერ არ გაქვთ" - "კონტაქტის დამატება" - "ჩართვა" - "კონტაქტების სანახავად ჩართეთ კონტაქტების ნებართვა." - "კონტაქტების აპი მიუწვდომელია" 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 08856aaec..334d915e2 100644 --- a/java/com/android/dialer/widget/res/values-kk/strings.xml +++ b/java/com/android/dialer/widget/res/values-kk/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Арнаулы хабар жазу" "Жабу" - "Әлі ешқандай контактілер жоқ" - "Контакт қосу" - "Қосу" - "Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз." - "Контактілер қолданбасы қолжетімді емес" 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 c09233253..d0f5633e4 100644 --- a/java/com/android/dialer/widget/res/values-km/strings.xml +++ b/java/com/android/dialer/widget/res/values-km/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "សរសេរ​សារ​ផ្ទាល់ខ្លួន" "បិទ" - "អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ" - "បញ្ចូល​ទំនាក់ទំនង" - "បើក" - "ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកការ​អនុញ្ញាតកម្មវិធីទំនាក់ទំនង។" - "មិនមានកម្មវិធីទំនាក់ទំនងទេ" 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 a502d087e..3535bfcb7 100644 --- a/java/com/android/dialer/widget/res/values-kn/strings.xml +++ b/java/com/android/dialer/widget/res/values-kn/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ಕಸ್ಟಮ್ ಸಂದೇಶವನ್ನು ಬರೆಯಿರಿ" "ಮುಚ್ಚಿ" - "ನಿಮ್ಮ ಬಳಿ ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ" - "ಸಂಪರ್ಕ ಸೇರಿಸಿ" - "ಆನ್ ಮಾಡಿ" - "ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ." - "ಯಾವುದೇ ಸಂಪರ್ಕಗಳ ಅಪ್ಲಿಕೇಶನ್‌ ಲಭ್ಯವಿಲ್ಲ" 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 045dc54dc..8c00cea8b 100644 --- a/java/com/android/dialer/widget/res/values-ko/strings.xml +++ b/java/com/android/dialer/widget/res/values-ko/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "맞춤 메시지를 작성하세요." "닫기" - "아직 연락처가 없습니다." - "연락처 추가" - "사용" - "연락처를 보려면 연락처에 액세스할 권한을 부여하세요." - "사용할 수 있는 연락처 앱이 없습니다." 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 7ef10e707..46ea8514c 100644 --- a/java/com/android/dialer/widget/res/values-ky/strings.xml +++ b/java/com/android/dialer/widget/res/values-ky/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Башка билдирүүнү жазыңыз" "Жабуу" - "Азырынча эч байланышыңыз жок" - "Байланыш кошуу" - "Күйгүзүү" - "Байланыштарыңызды көрүү үчүн, \"Байланыштар\" уруксатын күйгүзүңүз." - "Жеткиликтүү байланыштар колдонмосу жок" 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 dc7ba44c1..0db64a78a 100644 --- a/java/com/android/dialer/widget/res/values-lo/strings.xml +++ b/java/com/android/dialer/widget/res/values-lo/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ຂຽນຂໍ້ຄວາມດ້ວຍຕົນເອງ" "ປິດ" - "ທ່ານຍັງບໍ່ມີລາຍຊື່ຜູ້ຕິດຕໍ່ເທື່ອ" - "ເພີ່ມລາຍຊື່" - "ເປີດໃຊ້" - "ເພື່ອເບິ່ງລາຍຊື່ຜູ້ຕິດຕໍ່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່ຜູ້ຕິດຕໍ່ກ່ອນ" - "ບໍ່ມີແອັບລາຍຊື່ຜູ້ຕິດຕໍ່ທີ່ສາມາດໃຊ້ໄດ້" 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 be12520f8..a10b91ef6 100644 --- a/java/com/android/dialer/widget/res/values-lt/strings.xml +++ b/java/com/android/dialer/widget/res/values-lt/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Parašykite tinkintą praneš." "Uždaryti" - "Dar neturite jokių kontaktų" - "Pridėkite kontaktą" - "Įjungti" - "Jei norite peržiūrėti kontaktus, įjunkite Kontaktų leidimą." - "Nepasiekiama jokia kontaktų programa" 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 acefbaea4..8ff079390 100644 --- a/java/com/android/dialer/widget/res/values-lv/strings.xml +++ b/java/com/android/dialer/widget/res/values-lv/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Rakstīt pielāgotu ziņojumu" "Aizvērt" - "Jums vēl nav nevienas kontaktpersonas." - "Pievienot kontaktpersonu" - "Ieslēgt" - "Lai skatītu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas." - "Nav pieejama neviena kontaktpersonu lietotne." 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 20b18e8d9..aa9be3055 100644 --- a/java/com/android/dialer/widget/res/values-mk/strings.xml +++ b/java/com/android/dialer/widget/res/values-mk/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Напиши приспособена порака" "Затвори" - "Сè уште немате контакти" - "Додајте контакт" - "Вклучи" - "За да ги видите контактите, вклучете ја дозволата за контакти." - "Нема достапна апликација за контакти" 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 a97a7d862..b52ee401c 100644 --- a/java/com/android/dialer/widget/res/values-ml/strings.xml +++ b/java/com/android/dialer/widget/res/values-ml/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ഒരു ഇ‌ഷ്‌ടാനുസൃത സന്ദേശം രചിക്കൂ" "അടയ്‌ക്കുക" - "നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല." - "ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക" - "ഓൺ ചെയ്യുക" - "നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക." - "കോൺടാക്റ്റ് അപ്ലിക്കേഷനൊന്നും ലഭ്യമല്ല" 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 bbcfc7cf6..6bdad8983 100644 --- a/java/com/android/dialer/widget/res/values-mn/strings.xml +++ b/java/com/android/dialer/widget/res/values-mn/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Тусгай зурвас бичих" "Хаах" - "Танд одоогоор харилцагч байхгүй байна" - "Харилцагч нэмэх" - "Асаах" - "Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү." - "Ямар ч харилцагчдын апликейшн байхгүй байна" 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 38d913a85..5661fa8b9 100644 --- a/java/com/android/dialer/widget/res/values-mr/strings.xml +++ b/java/com/android/dialer/widget/res/values-mr/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "एक सानुकूल संदेश लिहा" "बंद करा" - "आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत" - "एक संपर्क जोडा" - "चालू करा" - "आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा." - "कोणताही संपर्क अॅप उपलब्ध नाही" 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 bc67c6764..8889ccc8d 100644 --- a/java/com/android/dialer/widget/res/values-ms/strings.xml +++ b/java/com/android/dialer/widget/res/values-ms/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Tulis mesej tersuai" "Tutup" - "Anda belum mempunyai sebarang kenalan" - "Tambahkan kenalan" - "Hidupkan" - "Untuk melihat kenalan anda, hidupkan kebenaran Kenalan." - "Tiada apl kenalan yang tersedia" 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 c8e783bf4..9a69f29eb 100644 --- a/java/com/android/dialer/widget/res/values-my/strings.xml +++ b/java/com/android/dialer/widget/res/values-my/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "စိတ်ကြိုက် မက်ဆေ့ဂျ်တစ်ခု ရေးပါ" "ပိတ်ရန်" - "သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ" - "အဆက်အသွယ်တစ်ယောက် ထည့်မည်" - "ဖွင့်ရန်" - "အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။" - "အဆက်အသွယ်များ app မရှိပါ" 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 822f07ed1..100156bd1 100644 --- a/java/com/android/dialer/widget/res/values-nb/strings.xml +++ b/java/com/android/dialer/widget/res/values-nb/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skriv egendefinert melding" "Lukk" - "Du har ingen kontakter ennå" - "Legg til en kontakt" - "Slå på" - "For å se kontaktene dine må du slå på Kontakter-tillatelsen." - "Ingen kontaktapper er tilgjengelige" 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 ebb31d579..abb8bb04b 100644 --- a/java/com/android/dialer/widget/res/values-ne/strings.xml +++ b/java/com/android/dialer/widget/res/values-ne/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "आफू अनुकूल सन्देश लेख्‍ने" "बन्द गर्नुहोस्" - "अहिलेसम्म तपाईंसँग कुनै सम्पर्कहरू छैनन्" - "कुनै सम्पर्क थप्नुहोस्" - "सक्रिय गर्नुहोस्" - "आफ्ना सम्पर्कहरू हेर्न सम्पर्क सम्बन्धी अनुमतिलाई सक्रिय गर्नुहोस्।" - "सम्पर्क सम्बन्धी कुनै अनुप्रयोग उपलब्ध छैन" 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 cbc286ba3..556028893 100644 --- a/java/com/android/dialer/widget/res/values-nl/strings.xml +++ b/java/com/android/dialer/widget/res/values-nl/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Schrijf zelf een bericht" "Sluiten" - "Je hebt nog geen contacten" - "Een contact toevoegen" - "Inschakelen" - "Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in." - "Geen app voor contacten beschikbaar" 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 822f07ed1..100156bd1 100644 --- a/java/com/android/dialer/widget/res/values-no/strings.xml +++ b/java/com/android/dialer/widget/res/values-no/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skriv egendefinert melding" "Lukk" - "Du har ingen kontakter ennå" - "Legg til en kontakt" - "Slå på" - "For å se kontaktene dine må du slå på Kontakter-tillatelsen." - "Ingen kontaktapper er tilgjengelige" 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 06f191e50..4c69c2c6e 100644 --- a/java/com/android/dialer/widget/res/values-pa/strings.xml +++ b/java/com/android/dialer/widget/res/values-pa/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ਵਿਸ਼ੇਸ਼-ਵਿਉਂਤਬੱਧ ਸੰਦੇਸ਼ ਲਿਖੋ" "ਬੰਦ ਕਰੋ" - "ਤੁਹਾਡੇ ਕੋਲ ਹਾਲੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ" - "ਕੋਈ ਸੰਪਰਕ ਸ਼ਾਮਲ ਕਰੋ" - "ਚਾਲੂ ਕਰੋ" - "ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਇਜਾਜ਼ਤ ਚਾਲੂ ਕਰੋ।" - "ਕੋਈ ਸੰਪਰਕ ਐਪ ਉਪਲਬਧ ਨਹੀਂ ਹੈ" 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 5d62a07f1..cec7a4045 100644 --- a/java/com/android/dialer/widget/res/values-pl/strings.xml +++ b/java/com/android/dialer/widget/res/values-pl/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Wpisz wiadomość" "Zamknij" - "Nie masz jeszcze żadnych kontaktów" - "Dodaj kontakt" - "Włącz" - "Aby zobaczyć swoje kontakty, włącz uprawnienia Kontakty." - "Nie jest dostępna żadna aplikacja do obsługi kontaktów" 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 0afc0f1d6..b15bfac8d 100644 --- a/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml +++ b/java/com/android/dialer/widget/res/values-pt-rBR/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escreva sua mensagem" "Fechar" - "Você ainda não tem contatos" - "Adicionar um contato" - "Ativar" - "Para ver seus contatos, ative a permissão para o app Contatos." - "Nenhum app de contatos disponível" 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 35f71a371..ece2ef2c3 100644 --- a/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml +++ b/java/com/android/dialer/widget/res/values-pt-rPT/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escreva uma mensagem" "Fechar" - "Ainda não tem nenhum contacto" - "Adicionar um contacto" - "Ativar" - "Para ver os seus contactos, ative a autorização Contactos." - "Não existe nenhuma aplicação de contactos disponível" 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 0afc0f1d6..b15bfac8d 100644 --- a/java/com/android/dialer/widget/res/values-pt/strings.xml +++ b/java/com/android/dialer/widget/res/values-pt/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Escreva sua mensagem" "Fechar" - "Você ainda não tem contatos" - "Adicionar um contato" - "Ativar" - "Para ver seus contatos, ative a permissão para o app Contatos." - "Nenhum app de contatos disponível" 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 6c51d23ac..753b920b4 100644 --- a/java/com/android/dialer/widget/res/values-ro/strings.xml +++ b/java/com/android/dialer/widget/res/values-ro/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Scrieți mesaj personalizat" "Închideți" - "Nu aveți încă persoane de contact." - "Adăugați o persoană de contact" - "Activați" - "Pentru a vedea persoanele de contact, activați permisiunea pentru Agendă." - "Nu este disponibilă nicio aplicație pentru agendă" 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 c36874de5..bdebd3ce4 100644 --- a/java/com/android/dialer/widget/res/values-ru/strings.xml +++ b/java/com/android/dialer/widget/res/values-ru/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Добавьте свой текст" "Закрыть" - "Контактов нет" - "Добавить контакт" - "Предоставить разрешение" - "Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"." - "Нет приложения для работы с контактами" 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 10eb7b5b5..4988259d4 100644 --- a/java/com/android/dialer/widget/res/values-si/strings.xml +++ b/java/com/android/dialer/widget/res/values-si/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "අභිරුචි පණිවිඩයක් ලියන්න" "වසන්න" - "ඔබට තවම කිසිදු සම්බන්ධතාවක් නැත" - "සම්බන්ධතාවක් එක් කරන්න" - "ක්‍රියාත්මක කරන්න" - "ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න." - "සබඳතා යෙදුම ලබා ගැනීමට නොහැකිය" 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 56f7ceb97..5dc1bd505 100644 --- a/java/com/android/dialer/widget/res/values-sk/strings.xml +++ b/java/com/android/dialer/widget/res/values-sk/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napíšte vlastnú správu" "Zavrieť" - "Zatiaľ nemáte žiadne kontakty" - "Pridať kontakt" - "Zapnúť" - "Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty." - "Nie je k dispozícii žiadna aplikácia na prácu s kontaktmi" 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 52f029377..0ba965b2e 100644 --- a/java/com/android/dialer/widget/res/values-sl/strings.xml +++ b/java/com/android/dialer/widget/res/values-sl/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Napišite sporočilo po meri" "Zapri" - "Nimate še nobenega stika" - "Dodaj stik" - "Vklopi" - "Če si želite ogledati stike, vklopite dovoljenje za stike." - "Na voljo ni nobene aplikacije za stike" 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 c7943dfd3..7f5e0f285 100644 --- a/java/com/android/dialer/widget/res/values-sq/strings.xml +++ b/java/com/android/dialer/widget/res/values-sq/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Shkruaj mesazh të person." "Mbyll" - "Nuk ke ende kontakte" - "Shto një kontakt" - "Aktivizo" - "Për të parë kontaktet, aktivizo lejen e Kontakteve." - "Nuk ka asnjë aplikacion për kontaktet" 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 00b9b4f6c..446c27363 100644 --- a/java/com/android/dialer/widget/res/values-sr/strings.xml +++ b/java/com/android/dialer/widget/res/values-sr/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Напишите прилагођену поруку" "Затворите" - "Још увек немате ниједан контакт" - "Додај контакт" - "Укључи" - "Да бисте видели контакте, укључите дозволу за Контакте." - "Нема доступне апликације за контакте" 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 359397026..7d2f44c45 100644 --- a/java/com/android/dialer/widget/res/values-sv/strings.xml +++ b/java/com/android/dialer/widget/res/values-sv/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Skriv anpassat meddelande" "Stäng" - "Du har inga kontakter ännu" - "Lägg till en kontakt" - "Aktivera" - "Du måste aktivera behörigheten Kontakter för att visa kontakterna." - "Det finns inga appar för kontakter" 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 b0892108b..d2c2a9721 100644 --- a/java/com/android/dialer/widget/res/values-sw/strings.xml +++ b/java/com/android/dialer/widget/res/values-sw/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Andika ujumbe maalum" "Funga" - "Bado huna anwani zozote" - "Ongeza anwani" - "Washa" - "Ili uone anwani zako, washa ruhusa ya Anwani." - "Hakuna programu ya anwani iliyopatikana" 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 83ca080e5..4061c169f 100644 --- a/java/com/android/dialer/widget/res/values-ta/strings.xml +++ b/java/com/android/dialer/widget/res/values-ta/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "தனிப்பயன் செய்தியை எழுதவும்" "மூடு" - "இதுவரை தொடர்புகள் எதுவுமில்லை" - "தொடர்பைச் சேர்" - "இயக்கு" - "தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்." - "தொடர்புகள் பயன்பாடு எதுவுமில்லை" 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 418cc3d0b..c2474b7ce 100644 --- a/java/com/android/dialer/widget/res/values-te/strings.xml +++ b/java/com/android/dialer/widget/res/values-te/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "అనుకూల సందేశాన్ని వ్రాయండి" "మూసివేయి" - "మీకు ఇప్పటికీ పరిచయాలేవీ లేవు" - "పరిచయాన్ని జోడించండి" - "ఆన్ చేయి" - "మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి." - "పరిచయాల అనువర్తనం ఏదీ అందుబాటులో లేదు" 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 c556d1c37..d450b4b13 100644 --- a/java/com/android/dialer/widget/res/values-th/strings.xml +++ b/java/com/android/dialer/widget/res/values-th/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "เขียนข้อความที่กำหนดเอง" "ปิด" - "คุณยังไม่มีรายชื่อติดต่อ" - "เพิ่มรายชื่อติดต่อ" - "เปิด" - "หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ" - "ไม่มีแอปรายชื่อติดต่อที่พร้อมใช้งาน" 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 be02d1989..ee7c52f7b 100644 --- a/java/com/android/dialer/widget/res/values-tl/strings.xml +++ b/java/com/android/dialer/widget/res/values-tl/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Sumulat ng custom na mensahe" "Isara" - "Wala ka pang sinumang contact" - "Magdagdag ng contact" - "I-on" - "Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact." - "Walang available na app ng mga contact" 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 90d5db649..64e2ea535 100644 --- a/java/com/android/dialer/widget/res/values-tr/strings.xml +++ b/java/com/android/dialer/widget/res/values-tr/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Özel bir mesaj yazın" "Kapat" - "Henüz hiç kişiniz yok" - "Kişi ekleyin" - "Etkinleştir" - "Kişilerinizi görmek için Kişiler iznini etkinleştirin." - "Kullanılabilir kişi uygulaması yok" 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 cf5a7d1db..f8d9bb871 100644 --- a/java/com/android/dialer/widget/res/values-uk/strings.xml +++ b/java/com/android/dialer/widget/res/values-uk/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Ваше власне повідомлення" "Закрити" - "Ще немає контактів" - "Додати контакт" - "Увімкнути" - "Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"." - "Немає додатка з контактами" 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 e5199afe4..6edeb5c95 100644 --- a/java/com/android/dialer/widget/res/values-ur/strings.xml +++ b/java/com/android/dialer/widget/res/values-ur/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "ایک حسب ضرورت پیغام لکھیں" "بند کریں" - "آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں" - "ایک رابطہ شامل کریں" - "آن کریں" - "اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔" - "رابطوں کی کوئی ایپ دستیاب نہیں ہے" 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 eb0e0adae..434464aef 100644 --- a/java/com/android/dialer/widget/res/values-uz/strings.xml +++ b/java/com/android/dialer/widget/res/values-uz/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Boshqa xabar yozing" "Yopish" - "Kontaktlar yo‘q" - "Kontakt qo‘shish" - "Ruxsat berish" - "Kontaktlar ro‘yxatini ko‘rish uchun ilovaga Kontaktlarga kirishga ruxsat bering." - "Kontaktlarni ochadigan ilova yo‘q" 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 62e94b82e..1a30f7c96 100644 --- a/java/com/android/dialer/widget/res/values-vi/strings.xml +++ b/java/com/android/dialer/widget/res/values-vi/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Viết tin nhắn tùy chỉnh" "Đóng" - "Bạn chưa có bất kỳ liên hệ nào" - "Thêm liên hệ" - "Bật" - "Để xem danh bạ của bạn, bật quyền đối với Danh bạ." - "Không có ứng dụng danh bạ" 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 063301ae0..799972393 100644 --- a/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml +++ b/java/com/android/dialer/widget/res/values-zh-rCN/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "自行撰写信息" "关闭" - "您还没有任何联系人" - "添加联系人" - "开启" - "要查看您的联系人,请开启“通讯录”权限。" - "没有可用的通讯录应用" 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 e2e69b75b..b0bfcc8d9 100644 --- a/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml +++ b/java/com/android/dialer/widget/res/values-zh-rHK/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "撰寫自訂訊息" "關閉" - "您尚無任何聯絡人" - "新增聯絡人" - "開放" - "如要查看聯絡人,請開放「通訊錄」權限。" - "沒有可用的聯絡人應用程式" 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 85768af8f..b0bfcc8d9 100644 --- a/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml +++ b/java/com/android/dialer/widget/res/values-zh-rTW/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "撰寫自訂訊息" "關閉" - "你還沒有任何聯絡人" - "新增聯絡人" - "開啟" - "如要查看你的聯絡人,請開啟「聯絡人」存取權限。" - "沒有可用的聯絡人應用程式" 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 a3ba84a9a..074aa5822 100644 --- a/java/com/android/dialer/widget/res/values-zu/strings.xml +++ b/java/com/android/dialer/widget/res/values-zu/strings.xml @@ -3,9 +3,4 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "Bhala umlayezo wangokwezifiso" "Vala" - "Awunabo oxhumana nabo okwamanje" - "Engeza oxhumana naye" - "Vula" - "Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo." - "Alukho uhlelo lokusebenza loxhumana nabo olutholakalayo" diff --git a/java/com/android/dialer/widget/res/values/colors.xml b/java/com/android/dialer/widget/res/values/colors.xml deleted file mode 100644 index c974609ef..000000000 --- a/java/com/android/dialer/widget/res/values/colors.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #b2b2b2 - \ 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 537ad7bd7..20393a842 100644 --- a/java/com/android/dialer/widget/res/values/dimens.xml +++ b/java/com/android/dialer/widget/res/values/dimens.xml @@ -26,9 +26,4 @@ 14sp 12sp 4dp - 4dp - - - 20dp - 16sp \ 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 d6ea2e7cd..a5829bb0b 100644 --- a/java/com/android/dialer/widget/res/values/strings.xml +++ b/java/com/android/dialer/widget/res/values/strings.xml @@ -5,19 +5,4 @@ Close - - - You don\'t have any contacts yet - - - Add a contact - - - Turn on - - - To see your contacts, turn on the Contacts permission. - - - No contacts app available \ No newline at end of file diff --git a/java/com/android/dialershared/bubble/AndroidManifest.xml b/java/com/android/dialershared/bubble/AndroidManifest.xml deleted file mode 100644 index 1a94aafc1..000000000 --- a/java/com/android/dialershared/bubble/AndroidManifest.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - diff --git a/java/com/android/dialershared/bubble/Bubble.java b/java/com/android/dialershared/bubble/Bubble.java deleted file mode 100644 index 3eb88aa22..000000000 --- a/java/com/android/dialershared/bubble/Bubble.java +++ /dev/null @@ -1,667 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialershared.bubble; - -import android.animation.Animator; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.animation.PropertyValuesHolder; -import android.annotation.SuppressLint; -import android.app.PendingIntent.CanceledException; -import android.content.Context; -import android.content.Intent; -import android.content.res.ColorStateList; -import android.graphics.PixelFormat; -import android.graphics.drawable.RippleDrawable; -import android.net.Uri; -import android.os.Handler; -import android.provider.Settings; -import android.support.annotation.ColorInt; -import android.support.annotation.IntDef; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.VisibleForTesting; -import android.support.v4.graphics.ColorUtils; -import android.support.v4.os.BuildCompat; -import android.support.v4.view.animation.FastOutLinearInInterpolator; -import android.support.v4.view.animation.LinearOutSlowInInterpolator; -import android.transition.TransitionManager; -import android.transition.TransitionValues; -import android.view.ContextThemeWrapper; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewPropertyAnimator; -import android.view.ViewTreeObserver.OnPreDrawListener; -import android.view.WindowManager; -import android.view.WindowManager.LayoutParams; -import android.view.animation.AnticipateInterpolator; -import android.view.animation.OvershootInterpolator; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.TextView; -import android.widget.ViewAnimator; -import com.android.dialershared.bubble.BubbleInfo.Action; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.util.List; - -/** - * Creates and manages a bubble window from information in a {@link BubbleInfo}. Before creating, be - * sure to check whether bubbles may be shown using {@link #canShowBubbles(Context)} and request - * permission if necessary ({@link #getRequestPermissionIntent(Context)} is provided for - * convenience) - */ -public class Bubble { - - // How long text should show after showText(CharSequence) is called - private static final int SHOW_TEXT_DURATION_MILLIS = 3000; - // How long the new window should show before destroying the old one during resize operations. - // This ensures the new window has had time to draw first. - private static final int WINDOW_REDRAW_DELAY_MILLIS = 50; - - private static Boolean canShowBubblesForTesting = null; - - private final Context context; - private final WindowManager windowManager; - - private LayoutParams windowParams; - - // Initialized in factory method - @SuppressWarnings("NullableProblems") - @NonNull - private BubbleInfo currentInfo; - - private boolean isShowing; - private boolean expanded; - private boolean textShowing; - private boolean hideAfterText; - - private final Handler handler = new Handler(); - - private ViewHolder viewHolder; - - @Retention(RetentionPolicy.SOURCE) - @IntDef({CollapseEnd.NOTHING, CollapseEnd.HIDE}) - private @interface CollapseEnd { - int NOTHING = 0; - int HIDE = 1; - } - - /** - * Determines whether bubbles can be shown based on permissions obtained. This should be checked - * before attempting to create a Bubble. - * - * @return true iff bubbles are able to be shown. - * @see Settings#canDrawOverlays(Context) - */ - public static boolean canShowBubbles(@NonNull Context context) { - return canShowBubblesForTesting != null - ? canShowBubblesForTesting - : Settings.canDrawOverlays(context); - } - - @VisibleForTesting(otherwise = VisibleForTesting.NONE) - public static void setCanShowBubblesForTesting(boolean canShowBubbles) { - canShowBubblesForTesting = canShowBubbles; - } - - /** Returns an Intent to request permission to show overlays */ - @NonNull - public static Intent getRequestPermissionIntent(@NonNull Context context) { - return new Intent( - Settings.ACTION_MANAGE_OVERLAY_PERMISSION, - new Uri.Builder().scheme("package").fragment(context.getPackageName()).build()); - } - - /** Creates instances of Bubble. The default implementation just calls the constructor. */ - @VisibleForTesting - public interface BubbleFactory { - Bubble createBubble(@NonNull Context context); - } - - private static BubbleFactory bubbleFactory = Bubble::new; - - public static Bubble createBubble(@NonNull Context context, @NonNull BubbleInfo info) { - Bubble bubble = bubbleFactory.createBubble(context); - bubble.setBubbleInfo(info); - return bubble; - } - - @VisibleForTesting - public static void setBubbleFactory(@NonNull BubbleFactory bubbleFactory) { - Bubble.bubbleFactory = bubbleFactory; - } - - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - Bubble(@NonNull Context context) { - context = new ContextThemeWrapper(context, R.style.Theme_AppCompat); - this.context = context; - windowManager = context.getSystemService(WindowManager.class); - - viewHolder = new ViewHolder(context); - } - - /** - * Make the bubble visible. Will show a short entrance animation as it enters. If the bubble is - * already showing this method does nothing. - */ - public void show() { - if (isShowing) { - return; - } - - hideAfterText = false; - - if (windowParams == null) { - // Apps targeting O+ must use TYPE_APPLICATION_OVERLAY, which is not available prior to O. - @SuppressWarnings("deprecation") - @SuppressLint("InlinedApi") - int type = - BuildCompat.isAtLeastO() - ? LayoutParams.TYPE_APPLICATION_OVERLAY - : LayoutParams.TYPE_PHONE; - - windowParams = - new LayoutParams( - type, - LayoutParams.FLAG_NOT_TOUCH_MODAL - | LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH - | LayoutParams.FLAG_NOT_FOCUSABLE, - PixelFormat.TRANSLUCENT); - windowParams.gravity = Gravity.TOP | Gravity.LEFT; - windowParams.x = - context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_x); - windowParams.y = - context.getResources().getDimensionPixelOffset(R.dimen.bubble_initial_offset_y); - windowParams.height = LayoutParams.WRAP_CONTENT; - windowParams.width = LayoutParams.WRAP_CONTENT; - } - - windowManager.addView(viewHolder.getRoot(), windowParams); - ObjectAnimator showAnimator = - ObjectAnimator.ofPropertyValuesHolder( - viewHolder.getPrimaryButton(), - PropertyValuesHolder.ofFloat(View.SCALE_X, 0, 1), - PropertyValuesHolder.ofFloat(View.SCALE_Y, 0, 1)); - showAnimator.setInterpolator(new OvershootInterpolator()); - showAnimator.start(); - isShowing = true; - } - - /** - * Hide the button if visible. Will run a short exit animation before hiding. If the bubble is - * currently showing text, will hide after the text is done displaying. If the bubble is not - * visible this method does nothing. - */ - public void hide() { - if (!isShowing) { - return; - } - - if (textShowing) { - hideAfterText = true; - return; - } - - if (expanded) { - startCollapse(CollapseEnd.HIDE); - return; - } - - viewHolder - .getPrimaryButton() - .animate() - .setInterpolator(new AnticipateInterpolator()) - .scaleX(0) - .scaleY(0) - .withEndAction( - () -> { - windowManager.removeView(viewHolder.getRoot()); - isShowing = false; - }) - .start(); - } - - /** Returns whether the bubble is currently visible */ - public boolean isShowing() { - return isShowing; - } - - /** - * Set the info for this Bubble to display - * - * @param bubbleInfo the BubbleInfo to display in this Bubble. - */ - public void setBubbleInfo(@NonNull BubbleInfo bubbleInfo) { - currentInfo = bubbleInfo; - update(); - } - - /** - * Update the state and behavior of actions. - * - * @param actions the new state of the bubble's actions - */ - public void updateActions(@NonNull List actions) { - currentInfo = BubbleInfo.from(currentInfo).setActions(actions).build(); - updateButtonStates(); - } - - /** Returns the currently displayed BubbleInfo */ - public BubbleInfo getBubbleInfo() { - return currentInfo; - } - - /** - * Display text in the main bubble. The bubble's drawer is not expandable while text is showing, - * and the drawer will be closed if already open. - * - * @param text the text to display to the user - */ - public void showText(@NonNull CharSequence text) { - textShowing = true; - if (expanded) { - startCollapse(CollapseEnd.NOTHING); - doShowText(text); - } else { - // Need to transition from old bounds to new bounds manually - ChangeOnScreenBounds transition = new ChangeOnScreenBounds(); - // Prepare and capture start values - TransitionValues startValues = new TransitionValues(); - startValues.view = viewHolder.getPrimaryButton(); - transition.addTarget(startValues.view); - transition.captureStartValues(startValues); - - doResize( - () -> { - doShowText(text); - // Hide the text so we can animate it in - viewHolder.getPrimaryText().setAlpha(0); - - ViewAnimator primaryButton = viewHolder.getPrimaryButton(); - // Cancel the automatic transition scheduled in doShowText - TransitionManager.endTransitions((ViewGroup) primaryButton.getParent()); - primaryButton - .getViewTreeObserver() - .addOnPreDrawListener( - new OnPreDrawListener() { - @Override - public boolean onPreDraw() { - primaryButton.getViewTreeObserver().removeOnPreDrawListener(this); - - // Prepare and capture end values - TransitionValues endValues = new TransitionValues(); - endValues.view = primaryButton; - transition.addTarget(endValues.view); - transition.captureEndValues(endValues); - - // animate the primary button bounds change - Animator bounds = - transition.createAnimator(primaryButton, startValues, endValues); - - // Animate the text in - Animator alpha = - ObjectAnimator.ofFloat(viewHolder.getPrimaryText(), View.ALPHA, 1f); - - AnimatorSet set = new AnimatorSet(); - set.play(bounds).before(alpha); - set.start(); - return false; - } - }); - }); - } - handler.removeCallbacks(null); - handler.postDelayed( - () -> { - textShowing = false; - if (hideAfterText) { - hide(); - } else { - doResize( - () -> viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_ICON)); - } - }, - SHOW_TEXT_DURATION_MILLIS); - } - - void onMoveStart() { - startCollapse(CollapseEnd.NOTHING); - viewHolder - .getPrimaryButton() - .animate() - .translationZ( - context.getResources().getDimensionPixelOffset(R.dimen.bubble_move_elevation_change)); - } - - void onMoveFinish() { - viewHolder.getPrimaryButton().animate().translationZ(0); - } - - void primaryButtonClick() { - if (expanded || textShowing || currentInfo.getActions().isEmpty()) { - try { - currentInfo.getPrimaryAction().send(); - } catch (CanceledException e) { - throw new RuntimeException(e); - } - return; - } - - boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; - doResize( - () -> { - onLeftRightSwitch(onRight); - viewHolder.getExpandedView().setVisibility(View.VISIBLE); - }); - View expandedView = viewHolder.getExpandedView(); - expandedView - .getViewTreeObserver() - .addOnPreDrawListener( - new OnPreDrawListener() { - @Override - public boolean onPreDraw() { - expandedView.getViewTreeObserver().removeOnPreDrawListener(this); - expandedView.setTranslationX( - onRight ? expandedView.getWidth() : -expandedView.getWidth()); - expandedView - .animate() - .setInterpolator(new LinearOutSlowInInterpolator()) - .translationX(0); - return false; - } - }); - setFocused(true); - expanded = true; - } - - void onLeftRightSwitch(boolean onRight) { - viewHolder - .getRoot() - .setLayoutDirection(onRight ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR); - View primaryContainer = viewHolder.getRoot().findViewById(R.id.bubble_primary_container); - ViewGroup.LayoutParams layoutParams = primaryContainer.getLayoutParams(); - ((FrameLayout.LayoutParams) layoutParams).gravity = onRight ? Gravity.RIGHT : Gravity.LEFT; - primaryContainer.setLayoutParams(layoutParams); - - viewHolder - .getExpandedView() - .setBackgroundResource( - onRight - ? R.drawable.bubble_background_pill_rtl - : R.drawable.bubble_background_pill_ltr); - } - - LayoutParams getWindowParams() { - return windowParams; - } - - View getRootView() { - return viewHolder.getRoot(); - } - - private void update() { - RippleDrawable backgroundRipple = - (RippleDrawable) - context.getResources().getDrawable(R.drawable.bubble_ripple_circle, context.getTheme()); - int primaryTint = - ColorUtils.compositeColors( - context.getColor(R.color.bubble_primary_background_darken), - currentInfo.getPrimaryColor()); - backgroundRipple.getDrawable(0).setTint(primaryTint); - viewHolder.getPrimaryButton().setBackground(backgroundRipple); - - setBackgroundDrawable(viewHolder.getFirstButton(), primaryTint); - setBackgroundDrawable(viewHolder.getSecondButton(), primaryTint); - setBackgroundDrawable(viewHolder.getThirdButton(), primaryTint); - - int numButtons = currentInfo.getActions().size(); - viewHolder.getThirdButton().setVisibility(numButtons < 3 ? View.GONE : View.VISIBLE); - viewHolder.getSecondButton().setVisibility(numButtons < 2 ? View.GONE : View.VISIBLE); - - viewHolder.getPrimaryIcon().setImageIcon(currentInfo.getPrimaryIcon()); - - viewHolder - .getExpandedView() - .setBackgroundTintList(ColorStateList.valueOf(currentInfo.getPrimaryColor())); - - updateButtonStates(); - } - - private void setBackgroundDrawable(CheckableImageButton view, @ColorInt int color) { - RippleDrawable itemRipple = - (RippleDrawable) - context - .getResources() - .getDrawable(R.drawable.bubble_ripple_checkable_circle, context.getTheme()); - itemRipple.getDrawable(0).setTint(color); - view.setBackground(itemRipple); - } - - private void updateButtonStates() { - int numButtons = currentInfo.getActions().size(); - - if (numButtons >= 1) { - configureButton(currentInfo.getActions().get(0), viewHolder.getFirstButton()); - if (numButtons >= 2) { - configureButton(currentInfo.getActions().get(1), viewHolder.getSecondButton()); - if (numButtons >= 3) { - configureButton(currentInfo.getActions().get(2), viewHolder.getThirdButton()); - } - } - } - } - - private void doShowText(@NonNull CharSequence text) { - TransitionManager.beginDelayedTransition((ViewGroup) viewHolder.getPrimaryButton().getParent()); - viewHolder.getPrimaryText().setText(text); - viewHolder.getPrimaryButton().setDisplayedChild(ViewHolder.CHILD_INDEX_TEXT); - } - - private void configureButton(Action action, CheckableImageButton button) { - action - .getIcon() - .loadDrawableAsync( - context, - d -> { - button.setImageIcon(action.getIcon()); - button.setContentDescription(action.getName()); - button.setChecked(action.isChecked()); - button.setEnabled(action.isEnabled()); - }, - handler); - button.setOnClickListener(v -> doAction(action)); - } - - private void doAction(Action action) { - try { - action.getAction().send(); - } catch (CanceledException e) { - throw new RuntimeException(e); - } - } - - private void doResize(@Nullable Runnable operation) { - // If we're resizing on the right side of the screen, there is an implicit move operation - // necessary. The WindowManager does not sync the move and resize operations, so serious jank - // would occur. To fix this, instead of resizing the window, we create a new one and destroy - // the old one. There is a short delay before destroying the old view to ensure the new one has - // had time to draw. - boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; - ViewHolder oldViewHolder = viewHolder; - if (onRight) { - viewHolder = new ViewHolder(oldViewHolder.getRoot().getContext()); - update(); - viewHolder - .getPrimaryButton() - .setDisplayedChild(oldViewHolder.getPrimaryButton().getDisplayedChild()); - viewHolder.getPrimaryText().setText(oldViewHolder.getPrimaryText().getText()); - } - - if (operation != null) { - operation.run(); - } - - if (onRight) { - swapViewHolders(oldViewHolder); - } - } - - private void swapViewHolders(ViewHolder oldViewHolder) { - ViewGroup root = viewHolder.getRoot(); - windowManager.addView(root, windowParams); - root.getViewTreeObserver() - .addOnPreDrawListener( - new OnPreDrawListener() { - @Override - public boolean onPreDraw() { - root.getViewTreeObserver().removeOnPreDrawListener(this); - // Wait a bit before removing the old view; make sure the new one has drawn over it. - handler.postDelayed( - () -> windowManager.removeView(oldViewHolder.getRoot()), - WINDOW_REDRAW_DELAY_MILLIS); - return true; - } - }); - } - - private ViewPropertyAnimator startCollapse(@CollapseEnd int collapseEndAction) { - setFocused(false); - boolean onRight = (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; - View expandedView = viewHolder.getExpandedView(); - return expandedView - .animate() - .translationX(onRight ? expandedView.getWidth() : -expandedView.getWidth()) - .setInterpolator(new FastOutLinearInInterpolator()) - .withEndAction( - () -> { - expanded = false; - if (collapseEndAction == CollapseEnd.HIDE) { - hide(); - } else if (!textShowing) { - // Don't swap the window while the user is moving it, even if we're on the right. - // The movement will help hide the jank of the resize. - boolean swapWindow = onRight && !viewHolder.isMoving(); - if (swapWindow) { - // We don't actually need to set the drawer to GONE since in the new window it - // will already be GONE. Just do the resize operation. - doResize(null); - } else { - expandedView.setVisibility(View.GONE); - } - } - }); - } - - private void setFocused(boolean focused) { - if (focused) { - windowParams.flags &= ~LayoutParams.FLAG_NOT_FOCUSABLE; - } else { - windowParams.flags |= LayoutParams.FLAG_NOT_FOCUSABLE; - } - windowManager.updateViewLayout(getRootView(), windowParams); - } - - private class ViewHolder { - - public static final int CHILD_INDEX_ICON = 0; - public static final int CHILD_INDEX_TEXT = 1; - - private final MoveHandler moveHandler; - private final WindowRoot root; - private final ViewAnimator primaryButton; - private final ImageView primaryIcon; - private final TextView primaryText; - - private final CheckableImageButton firstButton; - private final CheckableImageButton secondButton; - private final CheckableImageButton thirdButton; - private final View expandedView; - - public ViewHolder(Context context) { - // Window root is not in the layout file so that the inflater has a view to inflate into - this.root = new WindowRoot(context); - LayoutInflater inflater = LayoutInflater.from(root.getContext()); - View contentView = inflater.inflate(R.layout.bubble_base, root, true); - expandedView = contentView.findViewById(R.id.bubble_expanded_layout); - primaryButton = contentView.findViewById(R.id.bubble_button_primary); - primaryIcon = contentView.findViewById(R.id.bubble_icon_primary); - primaryText = contentView.findViewById(R.id.bubble_text); - - firstButton = contentView.findViewById(R.id.bubble_icon_first); - secondButton = contentView.findViewById(R.id.bubble_icon_second); - thirdButton = contentView.findViewById(R.id.bubble_icon_third); - - root.setOnBackPressedListener( - () -> { - if (isShowing && expanded) { - startCollapse(CollapseEnd.NOTHING); - return true; - } - return false; - }); - root.setOnTouchListener( - (v, event) -> { - if (expanded && event.getActionMasked() == MotionEvent.ACTION_OUTSIDE) { - startCollapse(CollapseEnd.NOTHING); - return true; - } - return false; - }); - moveHandler = new MoveHandler(primaryButton, Bubble.this); - } - - public ViewGroup getRoot() { - return root; - } - - public ViewAnimator getPrimaryButton() { - return primaryButton; - } - - public ImageView getPrimaryIcon() { - return primaryIcon; - } - - public TextView getPrimaryText() { - return primaryText; - } - - public CheckableImageButton getFirstButton() { - return firstButton; - } - - public CheckableImageButton getSecondButton() { - return secondButton; - } - - public CheckableImageButton getThirdButton() { - return thirdButton; - } - - public View getExpandedView() { - return expandedView; - } - - public boolean isMoving() { - return moveHandler.isMoving(); - } - } -} diff --git a/java/com/android/dialershared/bubble/BubbleInfo.java b/java/com/android/dialershared/bubble/BubbleInfo.java deleted file mode 100644 index 52417ae7b..000000000 --- a/java/com/android/dialershared/bubble/BubbleInfo.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialershared.bubble; - -import android.app.PendingIntent; -import android.graphics.drawable.Icon; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; -import com.google.auto.value.AutoValue; -import java.util.Collections; -import java.util.List; - -/** Info for displaying a {@link Bubble} */ -@AutoValue -public abstract class BubbleInfo { - @ColorInt - public abstract int getPrimaryColor(); - - @NonNull - public abstract Icon getPrimaryIcon(); - - @NonNull - public abstract PendingIntent getPrimaryAction(); - - @NonNull - public abstract List 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 actions); - - public abstract BubbleInfo build(); - } - - /** Represents actions to be shown in the bubble when expanded */ - @AutoValue - public abstract static class Action { - - @NonNull - public abstract Icon getIcon(); - - @NonNull - public abstract CharSequence getName(); - - @NonNull - public abstract PendingIntent getAction(); - - public abstract boolean isEnabled(); - - public abstract boolean isChecked(); - - public static Builder builder() { - return new AutoValue_BubbleInfo_Action.Builder().setEnabled(true).setChecked(false); - } - - public static Builder from(@NonNull Action action) { - return builder() - .setAction(action.getAction()) - .setChecked(action.isChecked()) - .setEnabled(action.isEnabled()) - .setName(action.getName()) - .setIcon(action.getIcon()); - } - - /** Builder for {@link Action} */ - @AutoValue.Builder - public abstract static class Builder { - - public abstract Builder setIcon(@NonNull Icon icon); - - public abstract Builder setName(@NonNull CharSequence name); - - public abstract Builder setAction(@NonNull PendingIntent action); - - public abstract Builder setEnabled(boolean enabled); - - public abstract Builder setChecked(boolean checked); - - public abstract Action build(); - } - } -} diff --git a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java b/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java deleted file mode 100644 index 4da6a3561..000000000 --- a/java/com/android/dialershared/bubble/ChangeOnScreenBounds.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialershared.bubble; - -import android.animation.Animator; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.graphics.Path; -import android.graphics.PointF; -import android.graphics.Rect; -import android.transition.Transition; -import android.transition.TransitionValues; -import android.util.Property; -import android.view.View; -import android.view.ViewGroup; - -/** Similar to {@link android.transition.ChangeBounds ChangeBounds} but works across windows */ -public class ChangeOnScreenBounds extends Transition { - - private static final String PROPNAME_BOUNDS = "bubble:changeScreenBounds:bounds"; - private static final String PROPNAME_SCREEN_X = "bubble:changeScreenBounds:screenX"; - private static final String PROPNAME_SCREEN_Y = "bubble:changeScreenBounds:screenY"; - - private static final Property TOP_LEFT_PROPERTY = - new Property(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 BOTTOM_RIGHT_PROPERTY = - new Property(PointF.class, "bottomRight") { - @Override - public void set(ViewBounds viewBounds, PointF bottomRight) { - viewBounds.setBottomRight(bottomRight); - } - - @Override - public PointF get(ViewBounds viewBounds) { - return null; - } - }; - private final int[] tempLocation = new int[2]; - - @Override - public void captureStartValues(TransitionValues transitionValues) { - captureValues(transitionValues); - } - - @Override - public void captureEndValues(TransitionValues transitionValues) { - captureValues(transitionValues); - } - - private void captureValues(TransitionValues values) { - View view = values.view; - - if (view.isLaidOut() || view.getWidth() != 0 || view.getHeight() != 0) { - values.values.put( - PROPNAME_BOUNDS, - new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom())); - values.view.getLocationOnScreen(tempLocation); - values.values.put(PROPNAME_SCREEN_X, tempLocation[0]); - values.values.put(PROPNAME_SCREEN_Y, tempLocation[1]); - } - } - - @Override - public Animator createAnimator( - ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues) { - Rect startBounds = (Rect) startValues.values.get(PROPNAME_BOUNDS); - - // Offset the startBounds by the difference in screen position - int startScreenX = (Integer) startValues.values.get(PROPNAME_SCREEN_X); - int startScreenY = (Integer) startValues.values.get(PROPNAME_SCREEN_Y); - int endScreenX = (Integer) endValues.values.get(PROPNAME_SCREEN_X); - int endScreenY = (Integer) endValues.values.get(PROPNAME_SCREEN_Y); - startBounds.offset(startScreenX - endScreenX, startScreenY - endScreenY); - - Rect endBounds = (Rect) endValues.values.get(PROPNAME_BOUNDS); - final int startLeft = startBounds.left; - final int endLeft = endBounds.left; - final int startTop = startBounds.top; - final int endTop = endBounds.top; - final int startRight = startBounds.right; - final int endRight = endBounds.right; - final int startBottom = startBounds.bottom; - final int endBottom = endBounds.bottom; - ViewBounds viewBounds = new ViewBounds(endValues.view); - viewBounds.setTopLeft(new PointF(startLeft, startTop)); - viewBounds.setBottomRight(new PointF(startRight, startBottom)); - - // Animate the top left and bottom right corners along a path - Path topLeftPath = getPathMotion().getPath(startLeft, startTop, endLeft, endTop); - ObjectAnimator topLeftAnimator = - ObjectAnimator.ofObject(viewBounds, TOP_LEFT_PROPERTY, null, topLeftPath); - - Path bottomRightPath = getPathMotion().getPath(startRight, startBottom, endRight, endBottom); - ObjectAnimator bottomRightAnimator = - ObjectAnimator.ofObject(viewBounds, BOTTOM_RIGHT_PROPERTY, null, bottomRightPath); - AnimatorSet set = new AnimatorSet(); - set.playTogether(topLeftAnimator, bottomRightAnimator); - return set; - } - - private static class ViewBounds { - private int left; - private int top; - private int right; - private int bottom; - private final View view; - private int topLeftCalls; - private int bottomRightCalls; - - public ViewBounds(View view) { - this.view = view; - } - - public void setTopLeft(PointF topLeft) { - left = Math.round(topLeft.x); - top = Math.round(topLeft.y); - topLeftCalls++; - if (topLeftCalls == bottomRightCalls) { - updateLeftTopRightBottom(); - } - } - - public void setBottomRight(PointF bottomRight) { - right = Math.round(bottomRight.x); - bottom = Math.round(bottomRight.y); - bottomRightCalls++; - if (topLeftCalls == bottomRightCalls) { - updateLeftTopRightBottom(); - } - } - - private void updateLeftTopRightBottom() { - view.setLeft(left); - view.setTop(top); - view.setRight(right); - view.setBottom(bottom); - topLeftCalls = 0; - bottomRightCalls = 0; - } - } -} diff --git a/java/com/android/dialershared/bubble/CheckableImageButton.java b/java/com/android/dialershared/bubble/CheckableImageButton.java deleted file mode 100644 index 7a5a432a6..000000000 --- a/java/com/android/dialershared/bubble/CheckableImageButton.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialershared.bubble; - -import android.content.Context; -import android.support.v4.view.AccessibilityDelegateCompat; -import android.support.v4.view.ViewCompat; -import android.support.v4.view.accessibility.AccessibilityEventCompat; -import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; -import android.support.v7.widget.AppCompatImageButton; -import android.util.AttributeSet; -import android.view.View; -import android.view.accessibility.AccessibilityEvent; -import android.widget.Checkable; - -/** - * An {@link android.widget.ImageButton ImageButton} that implements {@link Checkable} and - * propagates the checkable state - */ -public class CheckableImageButton extends AppCompatImageButton implements Checkable { - - // Copied without modification from AppCompat library - - private static final int[] DRAWABLE_STATE_CHECKED = new int[] {android.R.attr.state_checked}; - - private boolean mChecked; - - public CheckableImageButton(Context context) { - this(context, null); - } - - public CheckableImageButton(Context context, AttributeSet attrs) { - this(context, attrs, android.R.attr.imageButtonStyle); - } - - public CheckableImageButton(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - - ViewCompat.setAccessibilityDelegate( - this, - new AccessibilityDelegateCompat() { - @Override - public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) { - super.onInitializeAccessibilityEvent(host, event); - event.setChecked(isChecked()); - } - - @Override - public void onInitializeAccessibilityNodeInfo( - View host, AccessibilityNodeInfoCompat info) { - super.onInitializeAccessibilityNodeInfo(host, info); - info.setCheckable(true); - info.setChecked(isChecked()); - } - }); - } - - @Override - public void setChecked(boolean checked) { - if (mChecked != checked) { - mChecked = checked; - refreshDrawableState(); - sendAccessibilityEvent(AccessibilityEventCompat.TYPE_WINDOW_CONTENT_CHANGED); - } - } - - @Override - public boolean isChecked() { - return mChecked; - } - - @Override - public void toggle() { - setChecked(!mChecked); - } - - @Override - public int[] onCreateDrawableState(int extraSpace) { - if (mChecked) { - return mergeDrawableStates( - super.onCreateDrawableState(extraSpace + DRAWABLE_STATE_CHECKED.length), - DRAWABLE_STATE_CHECKED); - } else { - return super.onCreateDrawableState(extraSpace); - } - } -} diff --git a/java/com/android/dialershared/bubble/MoveHandler.java b/java/com/android/dialershared/bubble/MoveHandler.java deleted file mode 100644 index 8a21cd7e1..000000000 --- a/java/com/android/dialershared/bubble/MoveHandler.java +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialershared.bubble; - -import android.content.Context; -import android.graphics.Point; -import android.support.animation.FloatPropertyCompat; -import android.support.animation.SpringAnimation; -import android.support.animation.SpringForce; -import android.support.annotation.NonNull; -import android.support.v4.math.MathUtils; -import android.view.Gravity; -import android.view.MotionEvent; -import android.view.VelocityTracker; -import android.view.View; -import android.view.View.OnTouchListener; -import android.view.ViewConfiguration; -import android.view.WindowManager; -import android.view.WindowManager.LayoutParams; -import android.widget.Scroller; - -/** Handles touches and manages moving the bubble in response */ -class MoveHandler implements OnTouchListener { - - // Amount the ViewConfiguration's minFlingVelocity will be scaled by for our own minVelocity - private static final int MIN_FLING_VELOCITY_FACTOR = 8; - // The friction multiplier to control how slippery the bubble is when flung - private static final float SCROLL_FRICTION_MULTIPLIER = 8f; - - private final Context context; - private final WindowManager windowManager; - private final Bubble bubble; - private final int minX; - private final int minY; - private final int maxX; - private final int maxY; - private final int bubbleSize; - private final int shadowPaddingSize; - private final float touchSlopSquared; - - private boolean isMoving; - private float firstX; - private float firstY; - - private SpringAnimation moveXAnimation; - private SpringAnimation moveYAnimation; - private VelocityTracker velocityTracker; - private Scroller scroller; - - // Handles the left/right gravity conversion and centering - private final FloatPropertyCompat xProperty = - new FloatPropertyCompat("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 yProperty = - new FloatPropertyCompat("yProperty") { - @Override - public float getValue(LayoutParams object) { - return MathUtils.clamp(object.y + bubbleSize + shadowPaddingSize, minY, maxY); - } - - @Override - public void setValue(LayoutParams object, float value) { - object.y = (int) value - bubbleSize - shadowPaddingSize; - if (bubble.isShowing()) { - windowManager.updateViewLayout(bubble.getRootView(), object); - } - } - }; - - public MoveHandler(@NonNull View targetView, @NonNull Bubble bubble) { - this.bubble = bubble; - context = targetView.getContext(); - windowManager = context.getSystemService(WindowManager.class); - - bubbleSize = context.getResources().getDimensionPixelSize(R.dimen.bubble_size); - shadowPaddingSize = - context.getResources().getDimensionPixelOffset(R.dimen.bubble_shadow_padding_size); - minX = - context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_x) - + bubbleSize / 2; - minY = - context.getResources().getDimensionPixelOffset(R.dimen.bubble_safe_margin_y) - + bubbleSize / 2; - maxX = context.getResources().getDisplayMetrics().widthPixels - minX; - maxY = context.getResources().getDisplayMetrics().heightPixels - minY; - - // Squared because it will be compared against the square of the touch delta. This is more - // efficient than needing to take a square root. - touchSlopSquared = (float) Math.pow(ViewConfiguration.get(context).getScaledTouchSlop(), 2); - - targetView.setOnTouchListener(this); - } - - public boolean isMoving() { - return isMoving; - } - - @Override - public boolean onTouch(View v, MotionEvent event) { - float eventX = event.getRawX(); - float eventY = event.getRawY(); - switch (event.getActionMasked()) { - case MotionEvent.ACTION_DOWN: - firstX = eventX; - firstY = eventY; - velocityTracker = VelocityTracker.obtain(); - break; - case MotionEvent.ACTION_MOVE: - if (isMoving || hasExceededTouchSlop(event)) { - if (!isMoving) { - isMoving = true; - bubble.onMoveStart(); - } - - if (moveXAnimation == null) { - moveXAnimation = new SpringAnimation(bubble.getWindowParams(), xProperty); - moveXAnimation.setSpring(new SpringForce()); - moveXAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); - } - if (moveYAnimation == null) { - moveYAnimation = new SpringAnimation(bubble.getWindowParams(), yProperty); - moveYAnimation.setSpring(new SpringForce()); - moveYAnimation.getSpring().setDampingRatio(SpringForce.DAMPING_RATIO_NO_BOUNCY); - } - - moveXAnimation.animateToFinalPosition(MathUtils.clamp(eventX, minX, maxX)); - moveYAnimation.animateToFinalPosition(MathUtils.clamp(eventY, minY, maxY)); - } - - velocityTracker.addMovement(event); - break; - case MotionEvent.ACTION_UP: - if (isMoving) { - ViewConfiguration viewConfiguration = ViewConfiguration.get(context); - velocityTracker.computeCurrentVelocity( - 1000, viewConfiguration.getScaledMaximumFlingVelocity()); - float xVelocity = velocityTracker.getXVelocity(); - float yVelocity = velocityTracker.getYVelocity(); - boolean isFling = isFling(xVelocity, yVelocity); - - if (isFling) { - Point target = - findTarget( - xVelocity, - yVelocity, - (int) xProperty.getValue(bubble.getWindowParams()), - (int) yProperty.getValue(bubble.getWindowParams())); - - moveXAnimation.animateToFinalPosition(target.x); - moveYAnimation.animateToFinalPosition(target.y); - } else { - snapX(); - } - - bubble.onMoveFinish(); - } else { - v.performClick(); - bubble.primaryButtonClick(); - } - isMoving = false; - break; - } - return true; - } - - private Point findTarget(float xVelocity, float yVelocity, int startX, int startY) { - if (scroller == null) { - scroller = new Scroller(context); - scroller.setFriction(ViewConfiguration.getScrollFriction() * SCROLL_FRICTION_MULTIPLIER); - } - - // Find where a fling would end vertically - scroller.fling(startX, startY, (int) xVelocity, (int) yVelocity, minX, maxX, minY, maxY); - int targetY = scroller.getFinalY(); - scroller.abortAnimation(); - - // If the x component of the velocity is above the minimum fling velocity, use velocity to - // determine edge. Otherwise use its starting position - boolean pullRight = isFling(xVelocity, 0) ? xVelocity > 0 : isOnRightHalf(startX); - return new Point(pullRight ? maxX : minX, targetY); - } - - private boolean isFling(float xVelocity, float yVelocity) { - int minFlingVelocity = - ViewConfiguration.get(context).getScaledMinimumFlingVelocity() * MIN_FLING_VELOCITY_FACTOR; - return getMagnitudeSquared(xVelocity, yVelocity) > minFlingVelocity * minFlingVelocity; - } - - private boolean isOnRightHalf(float currentX) { - return currentX > (minX + maxX) / 2; - } - - private void snapX() { - // Check if x value is closer to min or max - boolean pullRight = isOnRightHalf(xProperty.getValue(bubble.getWindowParams())); - moveXAnimation.animateToFinalPosition(pullRight ? maxX : minX); - } - - private boolean relativeToRight(LayoutParams windowParams) { - return (windowParams.gravity & Gravity.RIGHT) == Gravity.RIGHT; - } - - private boolean hasExceededTouchSlop(MotionEvent event) { - return getMagnitudeSquared(event.getRawX() - firstX, event.getRawY() - firstY) - > touchSlopSquared; - } - - private float getMagnitudeSquared(float deltaX, float deltaY) { - return deltaX * deltaX + deltaY * deltaY; - } -} diff --git a/java/com/android/dialershared/bubble/WindowRoot.java b/java/com/android/dialershared/bubble/WindowRoot.java deleted file mode 100644 index 2c176662e..000000000 --- a/java/com/android/dialershared/bubble/WindowRoot.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.dialershared.bubble; - -import android.content.Context; -import android.support.annotation.NonNull; -import android.view.KeyEvent; -import android.widget.FrameLayout; - -/** - * ViewGroup that handles some overlay window concerns. Allows back button events to be listened for - * via an interface. - */ -public class WindowRoot extends FrameLayout { - - private OnBackPressedListener backPressedListener; - - /** Callback for when the back button is pressed while this window is in focus */ - public interface OnBackPressedListener { - boolean onBackPressed(); - } - - public WindowRoot(@NonNull Context context) { - super(context); - } - - public void setOnBackPressedListener(OnBackPressedListener listener) { - backPressedListener = listener; - } - - @Override - public boolean dispatchKeyEvent(KeyEvent event) { - if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && backPressedListener != null) { - if (event.getAction() == KeyEvent.ACTION_UP) { - return backPressedListener.onBackPressed(); - } - return true; - } - return super.dispatchKeyEvent(event); - } -} diff --git a/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml b/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml deleted file mode 100644 index f9416ab57..000000000 --- a/java/com/android/dialershared/bubble/res/color/bubble_checkable_mask.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml b/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml deleted file mode 100644 index 33ca1fdc5..000000000 --- a/java/com/android/dialershared/bubble/res/color/bubble_icon_tint_states.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml deleted file mode 100644 index 77c813a75..000000000 --- a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_ltr.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml deleted file mode 100644 index 9e2542154..000000000 --- a/java/com/android/dialershared/bubble/res/drawable/bubble_background_pill_rtl.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml deleted file mode 100644 index 85e0b24f3..000000000 --- a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_checkable_circle.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml b/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml deleted file mode 100644 index 8d5cf0bb5..000000000 --- a/java/com/android/dialershared/bubble/res/drawable/bubble_ripple_circle.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - diff --git a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml b/java/com/android/dialershared/bubble/res/layout/bubble_base.xml deleted file mode 100644 index 3acd2af2e..000000000 --- a/java/com/android/dialershared/bubble/res/layout/bubble_base.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/java/com/android/dialershared/bubble/res/values/colors.xml b/java/com/android/dialershared/bubble/res/values/colors.xml deleted file mode 100644 index 97545faf3..000000000 --- a/java/com/android/dialershared/bubble/res/values/colors.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - #33000000 - diff --git a/java/com/android/dialershared/bubble/res/values/values.xml b/java/com/android/dialershared/bubble/res/values/values.xml deleted file mode 100644 index 5b85e0d23..000000000 --- a/java/com/android/dialershared/bubble/res/values/values.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - 0dp - 0dp - 0dp - 120dp - 64dp - 20dp - 4dp - 16dp - diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml index 703e5b509..8539bd0cf 100644 --- a/java/com/android/incallui/AndroidManifest.xml +++ b/java/com/android/incallui/AndroidManifest.xml @@ -15,11 +15,11 @@ --> + package="com.android.incallui"> + android:minSdkVersion="23" + android:targetSdkVersion="26"/> + android:name="android.hardware.camera.any" + android:required="false"/> @@ -43,49 +43,47 @@ Set taskAffinity for application is not working because it will be merged and the result is that all activities here still have same taskAffinity as activities under dialer. --> - - + + 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: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:exported="true" + android:name="com.android.incallui.InCallServiceImpl" + android:permission="android.permission.BIND_INCALL_SERVICE"> + android:name="android.telecom.IN_CALL_SERVICE_UI" + android:value="true"/> + android:name="android.telecom.IN_CALL_SERVICE_RINGING" + android:value="false"/> + android:name="android.telecom.INCLUDE_EXTERNAL_CALLS" + android:value="true"/> @@ -99,35 +97,23 @@ excludeFromRecents="true" -> Don't show in "recent apps" screen --> + android:excludeFromRecents="true" + android:exported="false" + android:name="com.android.incallui.spam.SpamNotificationActivity" + android:noHistory="true" + android:taskAffinity="" + android:theme="@style/AfterCallNotificationTheme"> - - + android:exported="false" + android:name="com.android.incallui.spam.SpamNotificationService"/> - - + android:directBootAware="true" + android:exported="false" + android:name="com.android.incallui.NotificationBroadcastReceiver"/> diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java index ddbe6ccef..ca34aa6aa 100644 --- a/java/com/android/incallui/AnswerScreenPresenter.java +++ b/java/com/android/incallui/AnswerScreenPresenter.java @@ -124,28 +124,11 @@ 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)) { @@ -200,9 +183,6 @@ 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 d02a181c1..7bff3299a 100644 --- a/java/com/android/incallui/AnswerScreenPresenterStub.java +++ b/java/com/android/incallui/AnswerScreenPresenterStub.java @@ -42,12 +42,6 @@ public class AnswerScreenPresenterStub implements AnswerScreenDelegate { @Override public void onAnswerAndReleaseCall() {} - @Override - public void onAnswerAndReleaseButtonEnabled() {} - - @Override - public void onAnswerAndReleaseButtonDisabled() {} - @Override public void updateWindowBackgroundColor(@FloatRange(from = -1f, to = 1.0f) float progress) {} } diff --git a/java/com/android/incallui/AudioRouteSelectorActivity.java b/java/com/android/incallui/AudioRouteSelectorActivity.java deleted file mode 100644 index dfd4d1abf..000000000 --- a/java/com/android/incallui/AudioRouteSelectorActivity.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.incallui; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v4.app.FragmentActivity; -import com.android.incallui.audiomode.AudioModeProvider; -import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment; -import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter; -import com.android.incallui.call.TelecomAdapter; - -/** Simple activity that just shows the audio route selector fragment */ -public class AudioRouteSelectorActivity extends FragmentActivity - implements AudioRouteSelectorPresenter { - - @Override - protected void onCreate(@Nullable Bundle bundle) { - super.onCreate(bundle); - AudioRouteSelectorDialogFragment.newInstance(AudioModeProvider.getInstance().getAudioState()) - .show(getSupportFragmentManager(), null); - } - - @Override - public void onAudioRouteSelected(int audioRoute) { - TelecomAdapter.getInstance().setAudioRoute(audioRoute); - } - - @Override - public void onAudioRouteSelectorDismiss() { - finish(); - } -} diff --git a/java/com/android/incallui/CallButtonPresenter.java b/java/com/android/incallui/CallButtonPresenter.java index f758a9655..b0c3a99ea 100644 --- a/java/com/android/incallui/CallButtonPresenter.java +++ b/java/com/android/incallui/CallButtonPresenter.java @@ -300,7 +300,18 @@ public class CallButtonPresenter */ @Override public void switchCameraClicked(boolean useFrontFacingCamera) { - updateCamera(useFrontFacingCamera); + InCallCameraManager cameraManager = InCallPresenter.getInstance().getInCallCameraManager(); + cameraManager.setUseFrontFacingCamera(useFrontFacingCamera); + + String cameraId = cameraManager.getActiveCameraId(); + if (cameraId != null) { + final int cameraDir = + cameraManager.isUsingFrontFacingCamera() + ? CameraDirection.CAMERA_DIRECTION_FRONT_FACING + : CameraDirection.CAMERA_DIRECTION_BACK_FACING; + mCall.setCameraDir(cameraDir); + mCall.getVideoTech().setCamera(cameraId); + } } @Override @@ -334,11 +345,8 @@ public class CallButtonPresenter mCall.getTimeAddedMs()); if (pause) { - mCall.getVideoTech().setCamera(null); mCall.getVideoTech().stopTransmission(); } else { - updateCamera( - InCallPresenter.getInstance().getInCallCameraManager().isUsingFrontFacingCamera()); mCall.getVideoTech().resumeTransmission(); } @@ -346,21 +354,6 @@ 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 cd06793ce..c2b99c1d1 100644 --- a/java/com/android/incallui/CallCardPresenter.java +++ b/java/com/android/incallui/CallCardPresenter.java @@ -47,6 +47,9 @@ 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; @@ -82,7 +85,8 @@ public class CallCardPresenter InCallDetailsListener, InCallEventListener, InCallScreenDelegate, - DialerCallListener { + DialerCallListener, + EnrichedCallManager.StateChangedListener { /** * Amount of time to wait before sending an announcement via the accessibility manager. When the @@ -372,11 +376,6 @@ 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() { @@ -419,6 +418,12 @@ public class CallCardPresenter updatePrimaryCallState(); } + @Override + public void onEnrichedCallStateChanged() { + LogUtil.enterBlock("CallCardPresenter.onEnrichedCallStateChanged"); + updatePrimaryDisplayInfo(); + } + private boolean shouldRefreshPrimaryInfo(boolean primaryChanged) { if (mPrimary == null) { return false; @@ -470,8 +475,7 @@ public class CallCardPresenter mPrimary.getConnectTimeMillis(), CallerInfoUtils.isVoiceMailNumber(mContext, mPrimary), mPrimary.isRemotelyHeld(), - isBusiness, - supports2ndCallOnHold())); + isBusiness)); InCallActivity activity = (InCallActivity) (mInCallScreen.getInCallScreenFragment().getActivity()); @@ -501,15 +505,6 @@ 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); @@ -671,8 +666,26 @@ public class CallCardPresenter boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL); MultimediaData multimediaData = null; - if (mPrimary.getEnrichedCallSession() != null) { - multimediaData = mPrimary.getEnrichedCallSession().getMultimediaData(); + if (mPrimary.getNumber() != null) { + EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); + + EnrichedCallManager.Filter filter; + if (mPrimary.isIncoming()) { + filter = manager.createIncomingCallComposerFilter(); + } else { + filter = manager.createOutgoingCallComposerFilter(); + } + + Session enrichedCallSession = + manager.getSession(mPrimary.getUniqueCallId(), mPrimary.getNumber(), filter); + + mPrimary.setEnrichedCallSession(enrichedCallSession); + mPrimary.setEnrichedCallCapabilities(manager.getCapabilities(mPrimary.getNumber())); + + if (enrichedCallSession != null) { + enrichedCallSession.setUniqueDialerCallId(mPrimary.getUniqueCallId()); + multimediaData = enrichedCallSession.getMultimediaData(); + } } if (mPrimary.isConferenceCall()) { @@ -683,8 +696,7 @@ public class CallCardPresenter mInCallScreen.setPrimary( new PrimaryInfo( null /* number */, - CallerInfoUtils.getConferenceString( - mContext, mPrimary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)), + getConferenceString(mPrimary), false /* nameIsNumber */, null /* location */, null /* label */, @@ -868,8 +880,7 @@ public class CallCardPresenter mInCallScreen.setSecondary( new SecondaryInfo( true /* show */, - CallerInfoUtils.getConferenceString( - mContext, mSecondary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)), + getConferenceString(mSecondary), false /* nameIsNumber */, null /* label */, mSecondary.getCallProviderLabel(), @@ -961,7 +972,7 @@ public class CallCardPresenter } /** Gets the name to display for the call. */ - private String getNameForCall(ContactCacheEntry contactInfo) { + String getNameForCall(ContactCacheEntry contactInfo) { String preferredName = ContactDisplayUtils.getPreferredDisplayName( contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences); @@ -971,6 +982,19 @@ 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) { @@ -1011,6 +1035,15 @@ 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; @@ -1030,6 +1063,7 @@ public class CallCardPresenter @Override public void onInCallScreenResumed() { + EnrichedCallComponent.get(mContext).getEnrichedCallManager().registerStateChangedListener(this); updatePrimaryDisplayInfo(); if (shouldSendAccessibilityEvent) { @@ -1038,7 +1072,11 @@ public class CallCardPresenter } @Override - public void onInCallScreenPaused() {} + public void onInCallScreenPaused() { + EnrichedCallComponent.get(mContext) + .getEnrichedCallManager() + .unregisterStateChangedListener(this); + } static boolean sendAccessibilityEvent(Context context, InCallScreen inCallScreen) { AccessibilityManager am = diff --git a/java/com/android/incallui/CallerInfoUtils.java b/java/com/android/incallui/CallerInfoUtils.java index 8f2310760..564446647 100644 --- a/java/com/android/incallui/CallerInfoUtils.java +++ b/java/com/android/incallui/CallerInfoUtils.java @@ -282,11 +282,4 @@ 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 d7eea79bd..e45eb9746 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, false, queryToken); + callId, call.getNumberPresentation(), callerInfo, isIncoming, false, queryToken); sendInfoNotifications(callId, initialCacheEntry); } } @@ -416,6 +416,7 @@ public class ContactInfoCache implements OnImageLoadCompleteListener { String callId, int numberPresentation, CallerInfo callerInfo, + boolean isIncoming, boolean didLocalLookup, CallerInfoQueryToken queryToken) { Log.d( @@ -442,7 +443,16 @@ public class ContactInfoCache implements OnImageLoadCompleteListener { Log.d(TAG, "Existing cacheEntry in hashMap " + existingCacheEntry); if (didLocalLookup) { - if (cacheEntry.displayPhotoUri != null) { + // Before issuing a request for more data from other services, we only check that the + // contact wasn't found in the local DB. We don't check the if the cache entry already + // has a name because we allow overriding cnap data with data from other services. + if (!callerInfo.contactExists && mPhoneNumberService != null) { + Log.d(TAG, "Contact lookup. Local contacts miss, checking remote"); + final PhoneNumberServiceListener listener = + new PhoneNumberServiceListener(callId, queryToken.mQueryId); + cacheEntry.hasPendingQuery = true; + mPhoneNumberService.getPhoneNumberInfo(cacheEntry.number, listener, listener, isIncoming); + } else if (cacheEntry.displayPhotoUri != null) { // When the difference between 2 numbers is only the prefix (e.g. + or IDD), // we will still trigger force query so that the number can be updated on // the calling screen. We need not query the image again if the previous @@ -779,7 +789,7 @@ 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, true, mQueryToken); + updateCallerInfoInCacheOnAnyThread(cw.callId, cw.numberPresentation, ci, mIsIncoming, true, mQueryToken); } @Override @@ -797,16 +807,6 @@ 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,7 +870,6 @@ 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 051392e2b..0c2493c60 100644 --- a/java/com/android/incallui/ExternalCallNotifier.java +++ b/java/com/android/incallui/ExternalCallNotifier.java @@ -384,10 +384,11 @@ public class ExternalCallNotifier implements ExternalCallList.ExternalCallListen ContactInfoCache.ContactCacheEntry contactInfo, android.telecom.Call call) { - if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE)) { - return CallerInfoUtils.getConferenceString( - context, - call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)); + if (call.getDetails().hasProperty(android.telecom.Call.Details.PROPERTY_CONFERENCE) + && !call.getDetails() + .hasProperty(android.telecom.Call.Details.PROPERTY_GENERIC_CONFERENCE)) { + + return context.getResources().getString(R.string.conference_call_name); } String preferredName = diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java index bda003ccc..cc9a8e438 100644 --- a/java/com/android/incallui/InCallActivity.java +++ b/java/com/android/incallui/InCallActivity.java @@ -694,8 +694,13 @@ public class InCallActivity extends TransactionSafeFragmentActivity if (didShowInCallScreen) { return false; } - InCallScreen inCallScreen = InCallBindings.createInCallScreen(); - transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN); + InCallScreen inCallScreen = getInCallScreen(); + if (inCallScreen == null) { + inCallScreen = InCallBindings.createInCallScreen(); + transaction.add(R.id.main, inCallScreen.getInCallScreenFragment(), TAG_IN_CALL_SCREEN); + } else { + transaction.show(inCallScreen.getInCallScreenFragment()); + } Logger.get(this).logScreenView(ScreenEvent.Type.INCALL, this); didShowInCallScreen = true; return true; @@ -707,7 +712,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity } InCallScreen inCallScreen = getInCallScreen(); if (inCallScreen != null) { - transaction.remove(inCallScreen.getInCallScreenFragment()); + transaction.hide(inCallScreen.getInCallScreenFragment()); } didShowInCallScreen = false; return true; diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java index 7c3000144..2d6d83c3c 100644 --- a/java/com/android/incallui/InCallPresenter.java +++ b/java/com/android/incallui/InCallPresenter.java @@ -695,10 +695,7 @@ public class InCallPresenter implements CallList.Listener { if (newState == InCallState.INCOMING && (waitingForAccountCall = callList.getWaitingForAccountCall()) != null) { waitingForAccountCall.disconnect(); - // The InCallActivity might be destroyed or not started yet at this point. - if (isActivityStarted()) { - mInCallActivity.dismissPendingDialogs(); - } + mInCallActivity.dismissPendingDialogs(); } newState = startOrFinishUi(newState); diff --git a/java/com/android/incallui/InCallServiceImpl.java b/java/com/android/incallui/InCallServiceImpl.java index 1653334a1..4ab92a797 100644 --- a/java/com/android/incallui/InCallServiceImpl.java +++ b/java/com/android/incallui/InCallServiceImpl.java @@ -23,7 +23,6 @@ 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; @@ -37,8 +36,6 @@ import com.android.incallui.call.TelecomAdapter; */ public class InCallServiceImpl extends InCallService { - private ReturnToCallController returnToCallController; - @Override public void onCallAudioStateChanged(CallAudioState audioState) { AudioModeProvider.getInstance().onAudioStateChanged(audioState); @@ -82,9 +79,6 @@ 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); } @@ -104,9 +98,5 @@ 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 deleted file mode 100644 index b645c155c..000000000 --- a/java/com/android/incallui/ReturnToCallActionReceiver.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.incallui; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.telecom.CallAudioState; -import com.android.dialer.common.LogUtil; -import com.android.dialer.logging.DialerImpression; -import com.android.dialer.logging.Logger; -import com.android.incallui.audiomode.AudioModeProvider; -import com.android.incallui.call.CallList; -import com.android.incallui.call.DialerCall; -import com.android.incallui.call.TelecomAdapter; - -/** Handles clicks on the return-to-call bubble */ -public class ReturnToCallActionReceiver extends BroadcastReceiver { - - public static final String ACTION_TOGGLE_SPEAKER = "toggleSpeaker"; - public static final String ACTION_SHOW_AUDIO_ROUTE_SELECTOR = "showAudioRouteSelector"; - public static final String ACTION_TOGGLE_MUTE = "toggleMute"; - public static final String ACTION_END_CALL = "endCall"; - - @Override - public void onReceive(Context context, Intent intent) { - switch (intent.getAction()) { - case ACTION_TOGGLE_SPEAKER: - toggleSpeaker(context); - break; - case ACTION_SHOW_AUDIO_ROUTE_SELECTOR: - showAudioRouteSelector(context); - break; - case ACTION_TOGGLE_MUTE: - toggleMute(context); - break; - case ACTION_END_CALL: - endCall(context); - break; - } - } - - private void toggleSpeaker(Context context) { - CallAudioState audioState = AudioModeProvider.getInstance().getAudioState(); - - if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH) - == CallAudioState.ROUTE_BLUETOOTH) { - LogUtil.w( - "ReturnToCallActionReceiver.toggleSpeaker", - "toggleSpeaker() called when bluetooth available." - + " Probably should have shown audio route selector"); - } - - DialerCall call = getCall(); - - int newRoute; - if (audioState.getRoute() == CallAudioState.ROUTE_SPEAKER) { - newRoute = CallAudioState.ROUTE_WIRED_OR_EARPIECE; - Logger.get(context) - .logCallImpression( - DialerImpression.Type.BUBBLE_TURN_ON_WIRED_OR_EARPIECE, - call != null ? call.getUniqueCallId() : "", - call != null ? call.getTimeAddedMs() : 0); - } else { - newRoute = CallAudioState.ROUTE_SPEAKER; - Logger.get(context) - .logCallImpression( - DialerImpression.Type.BUBBLE_TURN_ON_SPEAKERPHONE, - call != null ? call.getUniqueCallId() : "", - call != null ? call.getTimeAddedMs() : 0); - } - TelecomAdapter.getInstance().setAudioRoute(newRoute); - } - - public void showAudioRouteSelector(Context context) { - context.startActivity(new Intent(context, AudioRouteSelectorActivity.class)); - } - - private void toggleMute(Context context) { - DialerCall call = getCall(); - boolean shouldMute = !AudioModeProvider.getInstance().getAudioState().isMuted(); - Logger.get(context) - .logCallImpression( - shouldMute - ? DialerImpression.Type.BUBBLE_MUTE_CALL - : DialerImpression.Type.BUBBLE_UNMUTE_CALL, - call != null ? call.getUniqueCallId() : "", - call != null ? call.getTimeAddedMs() : 0); - TelecomAdapter.getInstance().mute(shouldMute); - } - - private void endCall(Context context) { - DialerCall call = getCall(); - - Logger.get(context) - .logCallImpression( - DialerImpression.Type.BUBBLE_END_CALL, - call != null ? call.getUniqueCallId() : "", - call != null ? call.getTimeAddedMs() : 0); - if (call != null) { - call.disconnect(); - } - } - - private DialerCall getCall() { - CallList callList = InCallPresenter.getInstance().getCallList(); - if (callList != null) { - DialerCall call = callList.getOutgoingCall(); - if (call == null) { - call = callList.getActiveOrBackgroundCall(); - } - if (call != null) { - return call; - } - } - return null; - } -} diff --git a/java/com/android/incallui/ReturnToCallController.java b/java/com/android/incallui/ReturnToCallController.java deleted file mode 100644 index 4cb6aaf89..000000000 --- a/java/com/android/incallui/ReturnToCallController.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.incallui; - -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.graphics.drawable.Icon; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; -import android.telecom.CallAudioState; -import com.android.dialer.common.LogUtil; -import com.android.dialer.telecom.TelecomUtil; -import com.android.dialershared.bubble.Bubble; -import com.android.dialershared.bubble.BubbleInfo; -import com.android.dialershared.bubble.BubbleInfo.Action; -import com.android.incallui.InCallPresenter.InCallUiListener; -import com.android.incallui.audiomode.AudioModeProvider; -import com.android.incallui.audiomode.AudioModeProvider.AudioModeListener; -import com.android.incallui.call.CallList; -import com.android.incallui.call.CallList.Listener; -import com.android.incallui.call.DialerCall; -import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo; -import com.android.incallui.speakerbuttonlogic.SpeakerButtonInfo.IconSize; -import java.util.ArrayList; -import java.util.List; - -/** - * Listens for events relevant to the return-to-call bubble and updates the bubble's state as - * necessary - */ -public class ReturnToCallController implements InCallUiListener, Listener, AudioModeListener { - - private final Context context; - - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - Bubble bubble; - - private CallAudioState audioState; - - private final PendingIntent toggleSpeaker; - private final PendingIntent showSpeakerSelect; - private final PendingIntent toggleMute; - private final PendingIntent endCall; - - public ReturnToCallController(Context context) { - this.context = context; - - toggleSpeaker = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_SPEAKER); - showSpeakerSelect = - createActionIntent(ReturnToCallActionReceiver.ACTION_SHOW_AUDIO_ROUTE_SELECTOR); - toggleMute = createActionIntent(ReturnToCallActionReceiver.ACTION_TOGGLE_MUTE); - endCall = createActionIntent(ReturnToCallActionReceiver.ACTION_END_CALL); - - InCallPresenter.getInstance().addInCallUiListener(this); - CallList.getInstance().addListener(this); - AudioModeProvider.getInstance().addListener(this); - audioState = AudioModeProvider.getInstance().getAudioState(); - } - - public void tearDown() { - InCallPresenter.getInstance().removeInCallUiListener(this); - CallList.getInstance().removeListener(this); - AudioModeProvider.getInstance().removeListener(this); - } - - @Override - public void onUiShowing(boolean showing) { - if (showing) { - hide(); - } else { - if (TelecomUtil.isInCall(context)) { - show(); - } - } - } - - private void hide() { - if (bubble != null) { - bubble.hide(); - } else { - LogUtil.i("ReturnToCallController.hide", "hide() called without calling show()"); - } - } - - private void show() { - if (bubble == null) { - bubble = startNewBubble(); - } else { - bubble.show(); - } - } - - private Bubble startNewBubble() { - if (!Bubble.canShowBubbles(context)) { - LogUtil.i("ReturnToCallController.startNewBubble", "can't show bubble, no permission"); - return null; - } - Bubble returnToCallBubble = Bubble.createBubble(context, generateBubbleInfo()); - returnToCallBubble.show(); - return returnToCallBubble; - } - - @Override - public void onIncomingCall(DialerCall call) {} - - @Override - public void onUpgradeToVideo(DialerCall call) {} - - @Override - public void onSessionModificationStateChange(DialerCall call) {} - - @Override - public void onCallListChange(CallList callList) {} - - @Override - public void onDisconnect(DialerCall call) { - if (bubble != null && bubble.isShowing()) { - bubble.showText(context.getText(R.string.incall_call_ended)); - } - - if (!TelecomUtil.isInCall(context)) { - hide(); - } - } - - @Override - public void onWiFiToLteHandover(DialerCall call) {} - - @Override - public void onHandoverToWifiFailed(DialerCall call) {} - - @Override - public void onInternationalCallOnWifi(@NonNull DialerCall call) {} - - @Override - public void onAudioStateChanged(CallAudioState audioState) { - this.audioState = audioState; - if (bubble != null) { - bubble.updateActions(generateActions()); - } - } - - private BubbleInfo generateBubbleInfo() { - return BubbleInfo.builder() - .setPrimaryColor(context.getResources().getColor(R.color.dialer_theme_color, null)) - .setPrimaryIcon(Icon.createWithResource(context, R.drawable.quantum_ic_call_white_24)) - .setPrimaryAction( - PendingIntent.getActivity( - context, 0, InCallActivity.getIntent(context, false, false, false), 0)) - .setActions(generateActions()) - .build(); - } - - @NonNull - private List generateActions() { - List 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 229f08c8e..165b30b52 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,9 +565,8 @@ public class StatusBarNotifier @VisibleForTesting @Nullable String getContentTitle(ContactCacheEntry contactInfo, DialerCall call) { - if (call.isConferenceCall()) { - return CallerInfoUtils.getConferenceString( - mContext, call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)); + if (call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) { + return mContext.getResources().getString(R.string.conference_call_name); } String preferredName = @@ -605,16 +604,20 @@ 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); - @ContactType - int contactType = - LetterTileDrawable.getContactTypeFromPrimitives( - CallerInfoUtils.isVoiceMailNumber(context, call), - call.isSpam(), - contactInfo.isBusiness, - call.getNumberPresentation(), - call.isConferenceCall() && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)); + int contactType = LetterTileDrawable.TYPE_DEFAULT; LetterTileDrawable lettertile = new LetterTileDrawable(resources); + // TODO: Deduplicate across Dialer. b/36195917 + if (CallerInfoUtils.isVoiceMailNumber(context, call)) { + contactType = LetterTileDrawable.TYPE_VOICEMAIL; + } else if (contactInfo.isBusiness) { + contactType = LetterTileDrawable.TYPE_BUSINESS; + } else if (call.getNumberPresentation() == TelecomManager.PRESENTATION_RESTRICTED) { + contactType = LetterTileDrawable.TYPE_GENERIC_AVATAR; + } else if (call.isConferenceCall() + && !call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)) { + contactType = LetterTileDrawable.TYPE_CONFERENCE; + } lettertile.setCanonicalDialerLetterTileDetails( contactInfo.namePrimary == null ? contactInfo.number : contactInfo.namePrimary, contactInfo.lookupKey, @@ -691,10 +694,20 @@ 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 (shouldShowEnrichedCallNotification(call.getEnrichedCallSession())) { - resId = getECIncomingCallText(call.getEnrichedCallSession()); + } else if (session != null) { + resId = getECIncomingCallText(session); } else if (call.hasProperty(Details.PROPERTY_WIFI)) { resId = R.string.notification_incoming_call_wifi; } else { @@ -718,13 +731,6 @@ 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(); @@ -750,10 +756,8 @@ public class StatusBarNotifier } else { resId = R.string.important_notification_incoming_call_with_photo; } - } else if (hasSubject) { - resId = R.string.important_notification_incoming_call_with_message; } else { - resId = R.string.important_notification_incoming_call; + resId = R.string.important_notification_incoming_call_with_message; } if (mContext.getString(resId).length() > 50) { resId = R.string.important_notification_incoming_call_attachments; @@ -1001,9 +1005,6 @@ 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 6be79305d..1f0541c4b 100644 --- a/java/com/android/incallui/answer/impl/AnswerFragment.java +++ b/java/com/android/incallui/answer/impl/AnswerFragment.java @@ -427,10 +427,8 @@ public class AnswerFragment extends Fragment if (allowAnswerAndRelease()) { answerAndReleaseButton.setVisibility(View.VISIBLE); - answerScreenDelegate.onAnswerAndReleaseButtonEnabled(); } else { answerAndReleaseButton.setVisibility(View.INVISIBLE); - answerScreenDelegate.onAnswerAndReleaseButtonDisabled(); } } @@ -932,7 +930,7 @@ public class AnswerFragment extends Fragment if (hasCallOnHold()) { getAnswerMethod() .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_third)); - } else if (primaryCallState.supportsCallOnHold) { + } else { getAnswerMethod() .setHintText(getText(R.string.call_incoming_default_label_answer_and_release_second)); } diff --git a/java/com/android/incallui/answer/impl/PillDrawable.java b/java/com/android/incallui/answer/impl/PillDrawable.java new file mode 100644 index 000000000..57d84c45f --- /dev/null +++ b/java/com/android/incallui/answer/impl/PillDrawable.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.incallui.answer.impl; + +import android.graphics.Rect; +import android.graphics.drawable.GradientDrawable; + +/** Draws a pill-shaped background */ +public class PillDrawable extends GradientDrawable { + + public PillDrawable() { + super(); + setShape(RECTANGLE); + } + + @Override + protected void onBoundsChange(Rect r) { + super.onBoundsChange(r); + setCornerRadius(r.height() / 2); + } + + @Override + public void setShape(int shape) { + if (shape != GradientDrawable.RECTANGLE) { + throw new UnsupportedOperationException("PillDrawable must be a rectangle"); + } + super.setShape(shape); + } +} diff --git a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml index 600115e27..9a49075b8 100644 --- a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml +++ b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml @@ -41,7 +41,6 @@ android:layout_marginBottom="116dp" android:layout_gravity="center_horizontal" android:alpha="0" - android:gravity="center_horizontal" android:text="@string/call_incoming_will_disconnect" android:textColor="@color/blue_grey_100" android:textSize="16sp" @@ -60,7 +59,6 @@ android:layout_marginBottom="18dp" android:layout_gravity="center_horizontal" android:focusable="false" - android:gravity="center_horizontal" android:text="@string/call_incoming_swipe_to_answer" android:textAlignment="center" android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint"/> @@ -112,7 +110,6 @@ android:layout_gravity="center_horizontal" android:alpha="0" android:focusable="false" - android:gravity="center_horizontal" android:text="@string/call_incoming_swipe_to_reject" android:textAppearance="@style/Dialer.Incall.TextAppearance.Hint" tools:alpha="1"/> diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java index 9c33b5de6..77b45ec71 100644 --- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java +++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java @@ -23,6 +23,7 @@ import android.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; @@ -34,9 +35,8 @@ import com.android.incallui.util.AccessibilityUtil; */ public class AnswerHintFactory { - @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY = "answer_hint_answered_threshold"; - + private static final String CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY = + "answer_hint_answered_threshold"; @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) static final String CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY = "answer_hint_whitelisted_devices"; @@ -58,7 +58,12 @@ public class AnswerHintFactory { @NonNull public AnswerHint create(Context context, long puckUpDuration, long puckUpDelay) { - if (shouldShowAnswerHint(context, Build.PRODUCT)) { + + if (shouldShowAnswerHint( + context, + ConfigProviderBindings.get(context), + DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context), + Build.PRODUCT)) { return new DotAnswerHint(context, puckUpDuration, puckUpDelay); } @@ -79,23 +84,24 @@ public class AnswerHintFactory { } @VisibleForTesting - static boolean shouldShowAnswerHint(Context context, String device) { + static boolean shouldShowAnswerHint( + Context context, + ConfigProvider configProvider, + SharedPreferences sharedPreferences, + String device) { if (AccessibilityUtil.isTouchExplorationEnabled(context)) { return false; } // Devices that has the legacy dialer installed are whitelisted as they are likely to go through // a UX change during updates. - if (!isDeviceWhitelisted(context, device)) { + if (!isDeviceWhitelisted(device, configProvider)) { return false; } // If the user has gone through the process a few times we can assume they have learnt the // method. - int answeredCount = - DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context) - .getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0); - long threshold = - ConfigProviderBindings.get(context).getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3); + int answeredCount = sharedPreferences.getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0); + long threshold = configProvider.getLong(CONFIG_ANSWER_HINT_ANSWERED_THRESHOLD_KEY, 3); LogUtil.i( "AnswerHintFactory.shouldShowAnswerHint", "answerCount: %d, threshold: %d", @@ -109,8 +115,8 @@ public class AnswerHintFactory { * @param configProvider should provide a list of devices quoted with '/' concatenated to a * string. */ - private static boolean isDeviceWhitelisted(Context context, String device) { - return ConfigProviderBindings.get(context) + private static boolean isDeviceWhitelisted(String device, ConfigProvider configProvider) { + return configProvider .getString(CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY, DEFAULT_WHITELISTED_DEVICES_CSV) .contains("/" + device + "/"); } diff --git a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java index 05358d831..21154cade 100644 --- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java +++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java @@ -24,9 +24,7 @@ import android.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) @@ -42,25 +40,10 @@ public final class PawImageLoaderImpl implements PawImageLoader { if (!preferences.getBoolean(PawSecretCodeListener.PAW_ENABLED_WITH_SECRET_CODE_KEY, false)) { return null; } - @PawType - int pawType = - preferences.getInt(PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID); - - if (pawType == PawSecretCodeListener.PAW_TYPE_INVALID) { - LogUtil.i("PawImageLoaderImpl.loadPayload", "paw type not found, rerolling"); - PawSecretCodeListener.selectPawType(preferences); - pawType = - preferences.getInt( - PawSecretCodeListener.PAW_TYPE, PawSecretCodeListener.PAW_TYPE_INVALID); - } - - 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); + int drawableId = preferences.getInt(PawSecretCodeListener.PAW_DRAWABLE_ID_KEY, 0); + if (drawableId == 0) { + return null; } + 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 3b4512c4f..a8737c363 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.support.annotation.IntDef; +import android.preference.PreferenceManager; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import android.widget.Toast; @@ -29,7 +29,6 @@ import com.android.dialer.common.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; /** @@ -41,20 +40,7 @@ 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"; - - /** Which paw to show, must be {@link PawType} */ - public static final String PAW_TYPE = "paw_type"; - - /** Resource id is not stable across app versions. Use {@link #PAW_TYPE} instead. */ - @Deprecated public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id"; - - /** Enum for all paws. */ - @IntDef({PAW_TYPE_INVALID, PAW_TYPE_CAT, PAW_TYPE_DOG}) - @interface PawType {} - - public static final int PAW_TYPE_INVALID = 0; - public static final int PAW_TYPE_CAT = 1; - public static final int PAW_TYPE_DOG = 2; + public static final String PAW_DRAWABLE_ID_KEY = "paw_drawable_id"; @Override public void onReceive(Context context, Intent intent) { @@ -68,8 +54,7 @@ public class PawSecretCodeListener extends BroadcastReceiver { if (!TextUtils.equals(secretCode, host)) { return; } - SharedPreferences preferences = - DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context); + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); boolean wasEnabled = preferences.getBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false); if (wasEnabled) { preferences.edit().putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, false).apply(); @@ -77,24 +62,20 @@ public class PawSecretCodeListener extends BroadcastReceiver { Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_DEACTIVATED); LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint disabled"); } else { - selectPawType(preferences); + int drawableId; + if (new Random().nextBoolean()) { + drawableId = R.drawable.cat_paw; + } else { + drawableId = R.drawable.dog_paw; + } + preferences + .edit() + .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true) + .putInt(PAW_DRAWABLE_ID_KEY, drawableId) + .apply(); Toast.makeText(context, R.string.event_activated, Toast.LENGTH_SHORT).show(); Logger.get(context).logImpression(Type.EVENT_ANSWER_HINT_ACTIVATED); LogUtil.i("PawSecretCodeListener.onReceive", "PawAnswerHint enabled"); } } - - public static void selectPawType(SharedPreferences preferences) { - @PawType int pawType; - if (new Random().nextBoolean()) { - pawType = PAW_TYPE_CAT; - } else { - pawType = PAW_TYPE_DOG; - } - preferences - .edit() - .putBoolean(PAW_ENABLED_WITH_SECRET_CODE_KEY, true) - .putInt(PAW_TYPE, pawType) - .apply(); - } } diff --git a/java/com/android/incallui/answer/impl/res/values-af/strings.xml b/java/com/android/incallui/answer/impl/res/values-af/strings.xml index b155ee874..82a87963d 100644 --- a/java/com/android/incallui/answer/impl/res/values-af/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-af/strings.xml @@ -1,20 +1,4 @@ - - "Swiep vanaf ikoon om met boodskap af te wys" @@ -36,5 +20,5 @@ "Antwoord en beëindig die voortgesette oproep" "Video is af" "Swiep op met twee vingers om te antwoord. Swiep af met twee vingers om af te wys." - "Belangrik" + "Dringend" 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 c27705fd2..40869773e 100644 --- a/java/com/android/incallui/answer/impl/res/values-am/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-am/strings.xml @@ -1,20 +1,4 @@ - - "በመልዕክት ላለመቀበል ከአዶ ያንሸራቱ" @@ -36,5 +20,5 @@ "ይመልሱ እና በመካሄድ ላይ ያለ ጥሪን ይጨርሱ" "ቪዲዮ ጠፍቷል" "ለመመለስ በሁለት ጣት ወደ ላይ ያንሸራቱ። ላለመቀበል በሁለት ጣት ወደ ታች ያንሸራቱ።" - "አስፈላጊ" + "አስቸኳይ" 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 e3f84fff5..fc29c16fa 100644 --- a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml @@ -1,20 +1,4 @@ - - "تمرير سريع من الرمز للرفض مع إرسال رسالة" @@ -36,5 +20,5 @@ "الرد وإنهاء مكالمة جارية" "الفيديو قيد إيقاف التشغيل" "مرر بأصبعين لأعلى للرد. مرر بأصبعين لأسفل للرفض." - "مهم" + "عاجل" 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 5d113b48d..fff561de3 100644 --- a/java/com/android/incallui/answer/impl/res/values-az/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-az/strings.xml @@ -1,20 +1,4 @@ - - "Mesaj göndərərək imtina etmək üçün ikonadan sürüşdürün" @@ -36,5 +20,5 @@ "Cavab verin və gedən zəngi bitirin" "Videoları deaktivdir" "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." - "Önəmli" + "Vacib" 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 3acc576d9..7b29bfa66 100644 --- a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml @@ -1,20 +1,4 @@ - - "Prevucite od ikone da biste odbili porukom" @@ -36,5 +20,5 @@ "Javite se i završite poziv koji je u toku" "Kamera je isključena" "Prevucite nagore pomoću dva prsta da biste odgovorili. Prevucite nadole pomoću dva prsta da biste odbili." - "Važno" + "Hitno" 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 4f34150e6..228a80f7f 100644 --- a/java/com/android/incallui/answer/impl/res/values-be/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-be/strings.xml @@ -1,20 +1,4 @@ - - "Правядзіце ад значка, каб адхіліць, адправіўшы SMS" @@ -36,5 +20,5 @@ "Адказаць і скончыць бягучы выклік" "Відэа адключана" "Правядзіце двума пальцамі ўверх, каб адказаць; двума пальцамі ўніз – каб адхіліць." - "Важны" + "Тэрмінова" 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 54a5ab946..4e9422f00 100644 --- a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml @@ -1,20 +1,4 @@ - - "Прекарайте пръст от иконата, за да отхвърлите със съобщение" @@ -36,5 +20,5 @@ "Отговор и завършване на текущото обаждане" "Видеото е изключено" "Прекарайте два пръста нагоре за отговаряне, надолу за отхвърляне." - "Важно" + "Спешно" 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 d2aa4c3f3..869f7b9ae 100644 --- a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml @@ -1,20 +1,4 @@ - - "বার্তা সহ প্রত্যাখ্যান করতে আইকন থেকে সোয়াইপ করুন" @@ -36,5 +20,5 @@ "উত্তর দিন এবং চলছে এমন কল কেটে দিন" "ভিডিও বন্ধ আছে" "উত্তর দিতে উপরের দিকে, প্রত্যাখ্যান করতে নিচের দিকে দুই আঙুল দিয়ে সোয়াইপ করুন৷" - "গুরুত্বপূর্ণ" + "জরুরি" 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 e17588750..b36e178f4 100644 --- a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml @@ -1,20 +1,4 @@ - - "Prevucite preko ikone da odbijete porukom" @@ -36,5 +20,5 @@ "Odgovorite na poziv i završite ga" "Kamera je isključena" "Prevucite pomoću dva prsta prema gore da odgovorite. Prevucite pomoću dva prsta prema dolje da odbijete." - "Važno" + "Hitno" 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 538e0d3e0..13b3b321a 100644 --- a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml @@ -1,20 +1,4 @@ - - "Llisca des de la icona per rebutjar la trucada amb un missatge" @@ -36,5 +20,5 @@ "Respon a la trucada i finalitza l\'actual" "El vídeo està desactivat" "Llisca amb dos dits cap amunt per respondre a la trucada i cap avall per rebutjar-la." - "Important" + "Urgent" 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 626409ead..6c6903041 100644 --- a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml @@ -1,20 +1,4 @@ - - "Přejetím prstem od ikony hovor odmítnete a pošlete zprávu" @@ -36,5 +20,5 @@ "Přijmout hovor a ukončit probíhající hovor" "Video je vypnuté" "Přejetím dvěma prsty nahoru hovor přijmete. Přejetím dvěma prsty dolů jej odmítnete." - "Důležité" + "Naléhavé" 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 387089116..3a87d44fe 100644 --- a/java/com/android/incallui/answer/impl/res/values-da/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-da/strings.xml @@ -1,20 +1,4 @@ - - "Stryg fra ikonet for at afvise med en besked" @@ -36,5 +20,5 @@ "Besvar, og afslut det igangværende opkald" "Video er deaktiveret" "Stryg op med to fingre for at besvare. Stryg ned med to fingre for at afvise." - "Vigtigt" + "Haster" 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 ab3c33cc5..f4356d29f 100644 --- a/java/com/android/incallui/answer/impl/res/values-de/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-de/strings.xml @@ -1,20 +1,4 @@ - - "Zum Ablehnen mit Nachricht vom Symbol wegwischen" @@ -36,5 +20,5 @@ "Nimm den Anruf an und beende den aktuellen Anruf" "Video deaktiviert" "Zum Annehmen mit zwei Fingern nach oben wischen. Zum Ablehnen mit zwei Fingern nach unten wischen." - "Wichtig" + "Dringend" 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 d847aac54..9c9a0f35f 100644 --- a/java/com/android/incallui/answer/impl/res/values-el/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-el/strings.xml @@ -1,20 +1,4 @@ - - "Σύρετε από το εικονίδιο προς τα έξω για απόρριψη του μηνύματος" @@ -36,5 +20,5 @@ "Απάντηση και τερματισμός κλήσης σε εξέλιξη" "Το βίντεο είναι ανενεργό" "Σύρετε με δύο δάχτυλα, προς τα επάνω για απάντηση και προς τα κάτω για απόρριψη." - "Σημαντικό" + "Επείγον" 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 fe6aa4607..fb8d15682 100644 --- a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml @@ -1,20 +1,4 @@ - - "Swipe from icon to decline with a message" @@ -36,5 +20,5 @@ "Answer and end ongoing call" "Video is off" "Swipe up with two fingers to answer. Swipe down with two fingers to decline." - "Important" + "Urgent" 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 fe6aa4607..fb8d15682 100644 --- a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml @@ -1,20 +1,4 @@ - - "Swipe from icon to decline with a message" @@ -36,5 +20,5 @@ "Answer and end ongoing call" "Video is off" "Swipe up with two fingers to answer. Swipe down with two fingers to decline." - "Important" + "Urgent" 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 fe6aa4607..fb8d15682 100644 --- a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml @@ -1,20 +1,4 @@ - - "Swipe from icon to decline with a message" @@ -36,5 +20,5 @@ "Answer and end ongoing call" "Video is off" "Swipe up with two fingers to answer. Swipe down with two fingers to decline." - "Important" + "Urgent" 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 60fcd014e..14928eeb6 100644 --- a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml @@ -1,20 +1,4 @@ - - "Desliza desde el ícono para rechazar la llamada con un mensaje" @@ -36,5 +20,5 @@ "Responder y finalizar la llamada en curso" "El video está desactivado" "Desliza dos dedos hacia arriba para responder la llamada o hacia abajo para rechazarla." - "Importante" + "Urgente" 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 7b2f19a81..972bbc503 100644 --- a/java/com/android/incallui/answer/impl/res/values-es/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-es/strings.xml @@ -1,20 +1,4 @@ - - "Desliza desde el icono para rechazar con mensaje" @@ -36,5 +20,5 @@ "Responder a una llamada y finalizar otra en curso" "El vídeo está desconectado" "Desliza dos dedos hacia arriba para responder o hacia abajo para rechazar la llamada." - "Importante" + "Urgente" 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 b4632d184..9e303bb16 100644 --- a/java/com/android/incallui/answer/impl/res/values-et/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-et/strings.xml @@ -1,20 +1,4 @@ - - "Sõnumiga keeldumiseks pühkige ikoonilt eemale" @@ -36,5 +20,5 @@ "Vastake ja lõpetage käimasolev kõne" "Video on välja lülitatud" "Vastamiseks pühkige kahe sõrmega üles. Keeldumiseks pühkige kahe sõrmega alla." - "Tähtis" + "Kiireloomuline" 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 118a2c74d..a1f6d717d 100644 --- a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml @@ -1,20 +1,4 @@ - - "Pasatu hatza ikonotik baztertzeko eta mezu bat bidaltzeko" @@ -36,5 +20,5 @@ "Erantzun eta amaitu uneko deia" "Desaktibatuta dago kamera" "Pasatu bi hatz gora erantzuteko; eta behera, baztertzeko." - "Garrantzitsua" + "Premiazkoa" 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 971b172ef..28cf82619 100644 --- a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml @@ -1,20 +1,4 @@ - - "برای رد کردن با ارسال پیام، انگشتتان را تند از روی نماد بکشید" @@ -36,5 +20,5 @@ "پاسخ دادن به تماس درحال انجام و پایان دادن به آن" "ویدیو خاموش است" "برای پاسخ‌گویی، دو انگشتتان را تند به بالا بکشید و برای رد کردن به پایین بکشید." - "مهم" + "فوری" 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 7ae9a1f87..8b8eac942 100644 --- a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml @@ -1,20 +1,4 @@ - - "Hylkää ja kirjoita viesti pyyhkäisemällä kuvaketta." @@ -36,5 +20,5 @@ "Vastaa puheluun ja lopeta nykyinen puhelu" "Videokuva ei ole käytössä." "Vastaa pyyhkäisemällä ylös kahdella sormella. Hylkää pyyhkäisemällä alas kahdella sormella." - "Tärkeä" + "Kiireellinen" 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 ce454b5ce..9ea27b89c 100644 --- a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml @@ -1,20 +1,4 @@ - - "Balayez à partir de l\'icône pour refuser avec un message" @@ -36,5 +20,5 @@ "Répondre et mettre fin à l\'appel en cours" "La vidéo est désactivée" "Balayez vers le haut avec deux doigts pour répondre. Balayez vers le bas avec deux doigts pour refuser." - "Important" + "Urgent" 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 7f77ed0c8..3aa3c12c9 100644 --- a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml @@ -1,20 +1,4 @@ - - "Appuyer sur l\'icône, puis balayer l\'écran pour refuser l\'appel en envoyant un message" @@ -36,5 +20,5 @@ "Répondre ou mettre fin à l\'appel en cours" "La vidéo est désactivée." "Balayez l\'écran avec deux doigts vers le haut pour répondre, ou vers le bas pour refuser l\'appel." - "Importants" + "Urgent" 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 07e0c516d..16c0f6969 100644 --- a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml @@ -1,20 +1,4 @@ - - "Pasar o dedo desde a icona para rexeitar cunha mensaxe" @@ -36,5 +20,5 @@ "Responde á chamada entrante e finaliza a chamada en curso" "O vídeo está desactivado" "Pasa dous dedos cara arriba para responder a chamada ou cara abaixo para rexeitala." - "Importante" + "Urxente" 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 845e9def8..3f99c7108 100644 --- a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml @@ -1,20 +1,4 @@ - - "સંદેશ સાથે નકારવા માટે આઇકનથી સ્વાઇપ કરો" @@ -36,5 +20,5 @@ "જવાબ આપો અને ચાલુ કૉલ સમાપ્ત કરો" "વિડિઓ બંધ છે" "જવાબ આપવા માટે બે આંગળી ઉપર સ્વાઇપ કરો. નકારવા માટે બે આંગળી નીચે સ્વાઇપ કરો." - "મહત્વપૂર્ણ" + "તાત્કાલિક" 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 e8e3c75c4..f28505f7c 100644 --- a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml @@ -1,20 +1,4 @@ - - "संदेश के साथ अस्वीकार करने के लिए आइकन से स्वाइप करें" @@ -36,5 +20,5 @@ "कॉल का जवाब दें और जारी कॉल समाप्त करें" "वीडियो बंद है" "जवाब देने के लिए दो अंगुलियों से ऊपर स्वाइप करें. अस्वीकार करने के लिए दो अंगुलियों से नीचे स्वाइप करें." - "महत्वपूर्ण" + "बहुत ज़रूरी" 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 ffd0c9b8c..280743976 100644 --- a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml @@ -1,20 +1,4 @@ - - "Prijeđite prstom od ikone da biste odbili poruku" @@ -36,5 +20,5 @@ "Odgovorite na poziv i prekinite poziv u tijeku" "Videokamera je isključena" "Prijeđite dvama prstima prema gore za odgovor, a dvama prstima prema dolje za odbijanje." - "Važno" + "Hitno" 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 13ec7da17..d7dacbfe0 100644 --- a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml @@ -1,20 +1,4 @@ - - "Csúsztassa el az ujját az ikonról az üzenettel való elutasításhoz" @@ -36,5 +20,5 @@ "Hívásfogadás és a folyamatban lévő hívás befejezése" "A videokép ki van kapcsolva" "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." - "Fontos" + "Sürgős" 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 7fb7ef45f..4492833d9 100644 --- a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml @@ -1,20 +1,4 @@ - - "Զանգը մերժելու և հաղորդագրություն ուղարկելու համար պատկերակից մատով մի կողմ սահեցրեք" @@ -36,5 +20,5 @@ "Պատասխանել և ավարտել ընթացիկ զանգը" "Տեսախցիկն անջատած է" "Պատասխանելու համար երկու մատով սահեցրեք վերև, մերժելու համար՝ ներքև:" - "Կարևոր" + "Շտապ" 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 48d71af9a..a1fd19f6e 100644 --- a/java/com/android/incallui/answer/impl/res/values-in/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-in/strings.xml @@ -1,20 +1,4 @@ - - "Gesek dari ikon untuk menolak dengan pesan" @@ -36,5 +20,5 @@ "Menjawab dan mengakhiri panggilan yang sedang berlangsung" "Video nonaktif" "Geser ke atas dengan dua jari untuk menjawab. Geser ke bawah dengan dua jari untuk menolak." - "Penting" + "Penting" 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 a92a411ee..c4f9eb40c 100644 --- a/java/com/android/incallui/answer/impl/res/values-is/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-is/strings.xml @@ -1,20 +1,4 @@ - - "Strjúktu frá tákninu til að hafna með skilaboðum" @@ -36,5 +20,5 @@ "Svara og ljúka yfirstandandi símtali" "Slökkt á myndavél" "Strjúktu upp með tveimur fingrum til að svara. Strjúktu niður með tveimur fingrum til að hafna." - "Mikilvægt" + "Áríðandi" 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 b29bca7c8..70e972212 100644 --- a/java/com/android/incallui/answer/impl/res/values-it/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-it/strings.xml @@ -1,20 +1,4 @@ - - "Fai scorrere dall\'icona per rifiutare e inviare un messaggio" @@ -36,5 +20,5 @@ "Rispondi e termina la chiamata in corso" "Il video è disattivato" "Fai scorrere con due dita verso l\'alto per rispondere e verso il basso per rifiutare." - "Importante" + "Urgente" 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 6544e8f3c..08c02e389 100644 --- a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml @@ -1,20 +1,4 @@ - - "החלק מהסמל כדי לדחות עם הודעה" @@ -36,5 +20,5 @@ "מענה וסיום שיחה" "הווידאו מושבת" "החלק עם שתי אצבעות למעלה כדי לענות או למטה כדי לדחות." - "חשוב" + "דחופה" 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 83f8f094a..b7bd65bc4 100644 --- a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml @@ -1,20 +1,4 @@ - - "アイコンをスワイプして着信を拒否し、メッセージを送信" @@ -36,5 +20,5 @@ "通話に応答し、進行中の通話を終了" "ビデオ: OFF" "応答するには 2 本の指で上にスワイプ、拒否するには 2 本の指で下にスワイプします。" - "重要" + "緊急" 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 4a1120c69..681306776 100644 --- a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml @@ -1,20 +1,4 @@ - - "გადაუსვით ხატულადან შეტყობინებით უარყოფისთვის" @@ -36,5 +20,5 @@ "პასუხი და მიმდინარე ზარის დასრულება" "ვიდეო გამორთულია" "საპასუხოდ გადაფურცლეთ ზემოთ ორი თითით. უარყოფისთვის გადაფურცლეთ ქვემოთ ორი თითით." - "მნიშვნელოვანი" + "სასწრაფო" 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 69cf9497d..3d1863323 100644 --- a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml @@ -1,20 +1,4 @@ - - "Қабылдамай, жай хабар жіберу үшін, белгішеден әрі қарай сырғытыңыз" @@ -36,5 +20,5 @@ "Қоңырауға жауап беру және ағымдағы қоңырауды аяқтау" "Бейне өшірулі" "Жауап беру үшін екі саусақпен жоғары сырғытылады. Қабылдамау үшін екі саусақпен төмен сырғытылады." - "Маңызды" + "Шұғыл" 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 db65a97f5..89f9031e9 100644 --- a/java/com/android/incallui/answer/impl/res/values-km/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-km/strings.xml @@ -1,20 +1,4 @@ - - "អូស​ចេញ​ពី​រូបតំណាង​ដើម្បី​បដិសេធ​​ដោយ​មាន​សារ" @@ -36,5 +20,5 @@ "ឆ្លើយ និង​បញ្ចប់​ការ​ហៅ​ទូរសព្ទ​ដែល​កំពុង​ដំណើរការ" "វីដេអូត្រូវបានបិទ" "អូស​ម្រាម​ដៃ​ពីរ​ឡើងលើ​ ដើម្បី​ឆ្លើយ។ អូស​ម្រាមដៃ​ពីរ​ចុះ​ក្រោម​ ដើម្បី​បដិសេធ។" - "សំខាន់" + "បន្ទាន់" 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 8426aef46..f02a6b8a3 100644 --- a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml @@ -1,20 +1,4 @@ - - "ಸಂದೇಶದ ಜೊತೆಗೆ ನಿರಾಕರಿಸಲು ಐಕಾನ್‌ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ" @@ -36,5 +20,5 @@ "ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆಗೆ ಉತ್ತರಿಸಿ ಮತ್ತು ಅಂತ್ಯಗೊಳಿಸಿ" "ವೀಡಿಯೊ ಆಫ್ ಆಗಿದೆ" "ಉತ್ತರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ನಿರಾಕರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಕೆಳಗೆ ಸ್ವೈಪ್ ಮಾಡಿ." - "ಪ್ರಮುಖ" + "ತುರ್ತು" 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 6b6beff85..850b44007 100644 --- a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml @@ -1,20 +1,4 @@ - - "메시지를 거부하려면 아이콘에서 스와이프하세요." @@ -36,5 +20,5 @@ "현재 통화를 종료하고 전화 받기" "동영상이 꺼져 있습니다." "받으려면 두 손가락을 위로 스와이프하고 거부하려면 두 손가락을 아래로 스와이프하세요." - "중요" + "긴급" 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 6dd5a2dd7..dc08e8449 100644 --- a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml @@ -1,20 +1,4 @@ - - "Чалууну билдирүү менен четке кагуу үчүн сүрөтчөнү сүрүңүз" @@ -36,5 +20,5 @@ "Чалууга жооп бериңиз же учурдагы чалууну аяктаңыз" "Видео өчүк" "Жооп берүү үчүн экранды өйдө сүрүп, четке кагуу үчүн ылдый сүрүп коюңуз." - "Маанилүү" + "Шашылыш" 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 776c027b5..06ad00c88 100644 --- a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml @@ -1,20 +1,4 @@ - - "ປັດຈາກໄອຄອນເພື່ອປະຕິເສດຂໍ້ຄວາມ" @@ -36,5 +20,5 @@ "ຮັບສາຍ ແລະ ວາງສາຍທີ່ກຳລັງໂທອອກ" "ວິດີໂອປິດຢູ່" "ປັດສອງນິ້ວຂຶ້ນເພື່ອຮັບສາຍ. ປັດສອງນິ້ວລົງເພື່ອປະຕິເສດ." - "ສຳຄັນ" + "ດ່ວນ" 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 2ef70eaff..3366e337b 100644 --- a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml @@ -1,20 +1,4 @@ - - "Perbraukite iš piktogramos, kad atmestumėte išsiųsdami pranešimą" @@ -36,5 +20,5 @@ "Atsakykite ir užbaikite vykstantį skambutį" "Vaizdas išjungtas" "Perbraukite dviem pirštais aukštyn, kad atsakytumėte. Perbraukite dviem pirštais žemyn, kad atmestumėte." - "Svarbu" + "Skubus" 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 3fc754db4..49d1dc9f4 100644 --- a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml @@ -1,20 +1,4 @@ - - "Lai noraidītu, izmantojot ziņojumu, velciet no ikonas" @@ -36,5 +20,5 @@ "Atbildiet un beidziet notiekošo zvanu" "Video ir izslēgts" "Ar diviem pirkstiem velciet augšup, lai atbildētu. Ar diviem pirkstiem velciet lejup, lai noraidītu." - "Svarīgs" + "Steidzams" 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 deeba45e6..c068f665b 100644 --- a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml @@ -1,20 +1,4 @@ - - "Повлечете од иконата за да одбиете со порака" @@ -36,5 +20,5 @@ "Одговорете и завршете го тековниот повик" "Видеото е исклучено" "Повлечете нагоре со два прста за да одговорите. Повлечете надолу со два прста за да одбиете." - "Важно" + "Итно" 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 d8ce90dab..8e1d492e7 100644 --- a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml @@ -1,20 +1,4 @@ - - "സന്ദേശമയച്ചുകൊണ്ട് നിരസിക്കാൻ ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക" @@ -36,5 +20,5 @@ "മറുപടി നൽകുകയും നിലവിലുള്ള കോൾ അവസാനിപ്പിക്കുകയും ചെയ്യൂ" "വീഡിയോ ഓഫാണ്" "മറുപടി നൽകാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക. നിരസിക്കാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് താഴേക്ക് സ്വൈപ്പുചെയ്യുക." - "പ്രധാനപ്പെട്ടവ" + "അടിയന്തിര പ്രാധാന്യം" 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 aaa16213a..4bdd912ad 100644 --- a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml @@ -1,20 +1,4 @@ - - "Зурвас явуулангаа татгалзах бол дүрснээс шударна уу" @@ -36,5 +20,5 @@ "Ирсэн дуудлагыг авч, одоогийн дуудлагыг таслах" "Видео идэвхгүй байна" "Хариулах бол хоёр хуруугаар дээш шударна уу. Таслах бол хоёр хуруугаар доош шударна уу." - "Чухал" + "Яаралтай" 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 eea662fa1..11c826896 100644 --- a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml @@ -1,20 +1,4 @@ - - "संदेशासह नाकारण्यासाठी आयकॉनपासून स्वाइप करा" @@ -36,5 +20,5 @@ "उत्तर द्या आणि सुरु असलेला कॉल बंद करा" "व्हिडिओ बंद आहे" "उत्तर देण्यासाठी दोन बोटांनी वर स्वाइप करा. नकार देण्यासाठी दोन बोटांनी खाली स्वाइप करा." - "महत्त्वाचे" + "त्वरित" 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 04b054e4e..36ede7568 100644 --- a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml @@ -1,20 +1,4 @@ - - "Leret dari ikon untuk menolak dengan mesej" @@ -36,5 +20,5 @@ "Jawab dan tamatkan panggilan yang sedang berlangsung" "Video dimatikan" "Leret dua jari ke atas untuk menjawab. Leret dua jari ke bawah untuk menolak." - "Penting" + "Segera" 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 f3d6a2e38..5ad7a8284 100644 --- a/java/com/android/incallui/answer/impl/res/values-my/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-my/strings.xml @@ -1,20 +1,4 @@ - - "မက်ဆေ့ဂျ်ဖြင့်ငြင်းပယ်ရန် သင်္ကေတမှ ပွတ်ဆွဲပါ" @@ -36,5 +20,5 @@ "ဖြေကြားပြီး လက်ရှိခေါ်ဆိုမှုကို အပြီးသတ်ပါ" "ဗီဒီယို ပိတ်ထားပါသည်" "ဖြေကြားရန် လက်နှစ်ချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပါ။ ငြင်းပယ်ရန် လက်နှစ်ချောင်းဖြင့် အောက်သို့ ပွတ်ဆွဲပါ။" - "အရေးကြီး" + "အရေးတကြီး" 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 42ff3d0af..b1c32bea4 100644 --- a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml @@ -1,20 +1,4 @@ - - "Sveip fra ikonet for å avslå med en melding" @@ -36,5 +20,5 @@ "Svar, og avslutt samtalen som er i gang" "Video er av" "Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise." - "Viktig" + "Haster" 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 f0b8641af..40ef7b6e3 100644 --- a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml @@ -1,20 +1,4 @@ - - "सन्देश सहित अस्वीकार गर्न आइकनबाट स्वाइप गर्नुहोस्" @@ -36,5 +20,5 @@ "जवाफ फर्काउनुहोस् र जारी कललाई अन्त्य गर्नुहोस्" "भिडियो निष्क्रिय छ" "जवाफ दिन दुई औंलाले माथितिर स्वाइप गर्नुहोस्। अस्वीकार गर्न दुई औंलाले तलतिर स्वाइप गर्नुहोस्।" - "महत्त्वपूर्ण" + "जरुरी" 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 89c956a9f..b2f619fa3 100644 --- a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml @@ -1,20 +1,4 @@ - - "Veeg vanaf pictogram om te weigeren met bericht" @@ -36,5 +20,5 @@ "Opnemen en actieve oproep beëindigen" "Video is uit" "Veeg met twee vingers omhoog om te beantwoorden. Veeg met twee vingers omlaag om te weigeren." - "Belangrijk" + "Urgent" 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 42ff3d0af..b1c32bea4 100644 --- a/java/com/android/incallui/answer/impl/res/values-no/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-no/strings.xml @@ -1,20 +1,4 @@ - - "Sveip fra ikonet for å avslå med en melding" @@ -36,5 +20,5 @@ "Svar, og avslutt samtalen som er i gang" "Video er av" "Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise." - "Viktig" + "Haster" 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 3772f291f..d2b14523c 100644 --- a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml @@ -1,20 +1,4 @@ - - "ਸੁਨੇਹੇ ਦੇ ਨਾਲ ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਚਿੰਨ੍ਹ ਤੋਂ ਸਵਾਈਪ ਕਰੋ" @@ -36,5 +20,5 @@ "ਜਵਾਬ ਦਿਓ ਅਤੇ ਜਾਰੀ ਕਾਲ ਨੂੰ ਸਮਾਪਤ ਕਰੋ" "ਵੀਡੀਓ ਬੰਦ ਹੈ" "ਜਵਾਬ ਦੇਣ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।" - "ਮਹੱਤਵਪੂਰਨ" + "ਜ਼ਰੂਰੀ" 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 f6e1f1ba4..b0c44e72a 100644 --- a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml @@ -1,20 +1,4 @@ - - "Przesuń palcem od ikony, aby odrzucić połączenie i wysłać wiadomość" @@ -36,5 +20,5 @@ "Odbierz połączenie i zakończ trwającą rozmowę" "Wideo jest wyłączone" "Przesuń dwoma palcami w górę, aby odebrać. Przesuń dwoma palcami w dół, aby odrzucić." - "Ważne" + "Pilne" 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 1ed245140..fe1c89de4 100644 --- a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml @@ -1,20 +1,4 @@ - - "Deslize a partir do ícone para recusar com uma mensagem" @@ -36,5 +20,5 @@ "Atender e encerrar a chamada em andamento" "O vídeo está desativado" "Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar." - "Importante" + "Urgente" 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 f1e17a1d9..1a23a4a9d 100644 --- a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml @@ -1,20 +1,4 @@ - - "Deslize rapidamente a partir do ícone para recusar com uma mensagem" @@ -36,5 +20,5 @@ "Atender e terminar uma chamada em curso" "O vídeo está desativado" "Deslize rapidamente com dois dedos para cima para responder. Deslize rapidamente com dois dedos para baixo para recusar." - "Importante" + "Urgente" 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 1ed245140..fe1c89de4 100644 --- a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml @@ -1,20 +1,4 @@ - - "Deslize a partir do ícone para recusar com uma mensagem" @@ -36,5 +20,5 @@ "Atender e encerrar a chamada em andamento" "O vídeo está desativado" "Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar." - "Importante" + "Urgente" 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 0b1f4f481..6c8bafa28 100644 --- a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml @@ -1,20 +1,4 @@ - - "Glisați de pe pictogramă pentru a respinge cu un mesaj" @@ -36,5 +20,5 @@ "Răspundeți și încheiați apelul în curs" "Camera video este dezactivată." "Glisați cu două degete în sus pentru a răspunde și în jos pentru a respinge." - "Important" + "Urgent" 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 d1fdcf73e..67ff06a34 100644 --- a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml @@ -1,20 +1,4 @@ - - "Чтобы отклонить вызов и отправить SMS, проведите пальцем от значка" @@ -36,5 +20,5 @@ "Ответить и завершить текущий вызов" "Камера выключена" "Проведите двумя пальцами по экрану вверх, чтобы ответить, или вниз, чтобы отклонить вызов." - "Важный звонок" + "Срочно" 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 99f4989aa..ae3c08008 100644 --- a/java/com/android/incallui/answer/impl/res/values-si/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-si/strings.xml @@ -1,20 +1,4 @@ - - "පණිවිඩය සහිතව ප්‍රතික්ෂේප කිරීමට නිරූපකයේ සිට ස්වයිප් කරන්න" @@ -36,5 +20,5 @@ "යන අැමතුමට පිළිතරු දී අවසන් කරන්න" "වීඩියෝව ක්‍රියාවිරහිතයි" "පිළිතුරු දීමට ඇඟිලි දෙකකින් ඉහළට ස්වයිප් කරන්න, ප්‍රතික්ෂේප කිරීමට ඇඟිලි දෙකකින් පහළට ස්වයිප් කරන්න." - "වැදගත්" + "හදිසි" 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 fa00ac4c6..179be7b08 100644 --- a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml @@ -1,20 +1,4 @@ - - "Prejdením prstom od ikony odmietnuť so správou" @@ -36,5 +20,5 @@ "Prijať hovor a ukončiť prebiehajúci hovor" "Video je vypnuté" "Ak chcete hovor prijať, prejdite dvomi prstami nahor. Ak ho chcete odmietnuť, prejdite dvomi prstami nadol." - "Dôležité" + "Naliehavé" 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 147a09835..5f658be9d 100644 --- a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml @@ -1,20 +1,4 @@ - - "Povlecite z ikone, da klic zavrnete s sporočilom" @@ -36,5 +20,5 @@ "Sprejmi klic in končaj aktivni klic" "Video je izklopljen" "Z dvema prstoma povlecite navzgor, da sprejmete klic. Z dvema prstoma povlecite navzdol, da zavrnete klic." - "Pomembno" + "Nujno" 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 e71691af8..1de60c9c9 100644 --- a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml @@ -1,20 +1,4 @@ - - "Rrëshqit nga ikona për të refuzuar me mesazh" @@ -36,5 +20,5 @@ "Përgjigju dhe mbyll telefonatën në vazhdim" "Videoja është joaktive" "Rrëshqit dy gishta lart për t\'u përgjigjur. Rrëshqit dy gishta poshtë për të refuzuar." - "E rëndësishme" + "Urgjente" 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 c802b0e97..4d6ef5636 100644 --- a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml @@ -1,20 +1,4 @@ - - "Превуците од иконе да бисте одбили поруком" @@ -36,5 +20,5 @@ "Јавите се и завршите позив који је у току" "Камера је искључена" "Превуците нагоре помоћу два прста да бисте одговорили. Превуците надоле помоћу два прста да бисте одбили." - "Важно" + "Хитно" 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 2265dc4c2..e47b4e0a3 100644 --- a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml @@ -1,20 +1,4 @@ - - "Svep från ikonen för att avvisa med meddelande" @@ -36,5 +20,5 @@ "Svara och avsluta pågående samtal" "Video avstängd" "Dra två fingrar uppåt för att svara och två nedåt för att avvisa." - "Viktigt" + "Brådskande" 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 26e1b7ab5..1e5896662 100644 --- a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml @@ -1,20 +1,4 @@ - - "Telezesha kidole ukianzia kwenye aikoni ili utume ujumbe wa kukataa" @@ -36,5 +20,5 @@ "Jibu na ukate simu inayoendelea" "Video imezimwa" "Telezesha juu kwa vidole viwili ili uijibu. Telezesha chini kwa vidole viwili ili uikate." - "Muhimu" + "Dharura" 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 453781dae..847936f5b 100644 --- a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml @@ -1,20 +1,4 @@ - - "செய்தியுடன் நிராகரிக்க, ஐகானிலிருந்து ஸ்வைப் செய்யவும்" @@ -36,5 +20,5 @@ "உள்வரும் அழைப்பிற்குப் பதிலளித்து, செயலில் உள்ள அழைப்பை முடிக்கும்" "வீடியோ முடக்கப்பட்டுள்ளது" "பதிலளிக்க, இரு விரல்களால் மேலே ஸ்வைப் செய்யவும். நிராகரிக்க, இரு விரல்களால் கீழே ஸ்வைப் செய்யவும்." - "முக்கிய அழைப்பு" + "அவசரம்" 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 e0e508768..abc390294 100644 --- a/java/com/android/incallui/answer/impl/res/values-te/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-te/strings.xml @@ -1,20 +1,4 @@ - - "సందేశంతో తిరస్కరించడానికి చిహ్నం నుండి స్వైప్ చేయండి" @@ -36,5 +20,5 @@ "సమాధానం ఇస్తుంది మరియు కొనసాగుతున్న కాల్‌ను ముగిస్తుంది" "వీడియో ఆఫ్‌లో ఉంది" "సమాధానం ఇవ్వడానికి రెండు వేళ్లతో పైకి స్వైప్ చేయండి. తిరస్కరించడానికి రెండు వేళ్లతో క్రిందికి స్వైప్ చేయండి." - "ముఖ్యమైనది" + "అత్యవసరం" 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 695da74f7..54069b3d8 100644 --- a/java/com/android/incallui/answer/impl/res/values-th/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-th/strings.xml @@ -1,20 +1,4 @@ - - "เลื่อนไอคอนเพื่อปฏิเสธสายด้วยข้อความ" @@ -36,5 +20,5 @@ "รับและวางสาย" "วิดีโอปิดอยู่" "ใช้สองนิ้วเลื่อนขึ้นเพื่อรับสายและเลื่อนลงเพื่อตัดสาย" - "สำคัญ" + "ด่วน" 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 6128d6fad..8f87b5605 100644 --- a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml @@ -1,20 +1,4 @@ - - "I-swipe mula sa icon upang tanggihan gamit ang mensahe" @@ -36,5 +20,5 @@ "Sagutin at tapusin ang kasalukuyang tawag" "Naka-off ang video" "I-swipe nang pataas gamit ang dalawang daliri upang sagutin. I-swipe nang pababa gamit ang dalawang daliri upang tanggihan." - "Mahalaga" + "Apurahan" 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 87583c03d..53f5eb9a9 100644 --- a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml @@ -1,20 +1,4 @@ - - "Mesajla reddetmek için, simgeden hızlıca kaydırın" @@ -36,5 +20,5 @@ "Bir çağrı cevaplanır ve devam eden çağrı sona erdirilir" "Video kapalı" "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." - "Önemli" + "Acil" 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 76eb2b0a2..a0332d377 100644 --- a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml @@ -1,20 +1,4 @@ - - "Проведіть пальцем убік від значка, щоб відхилити з повідомленням" @@ -36,5 +20,5 @@ "Відповісти на виклик, завершивши поточний" "Відео вимкнено" "Проведіть двома пальцями вгору, щоб відповісти, або вниз, щоб відхилити дзвінок." - "Важливо" + "Терміново" 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 2a44e9083..e1813cbf7 100644 --- a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml @@ -1,20 +1,4 @@ - - "پیغام کے ساتھ رد کرنے کیلئے آئیکن سے سوائپ کریں" @@ -36,5 +20,5 @@ "جواب دیں اور جاری کال ختم کریں" "ویڈیو آف ہے" "جواب دینے کیلئے دوانگلیوں کے ساتھ اوپر سوائپ کریں۔ مسترد کرنے کیلئے دو انگلیوں کے ساتھ نیچے سوائپ کریں۔" - "اہم" + "ارجنٹ" 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 f348a499d..b83abcce0 100644 --- a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml @@ -1,20 +1,4 @@ - - "Qo‘ng‘iroqni SMS bilan rad etish uchun nishonchadan suring." @@ -36,5 +20,5 @@ "Kiruvchi chaqiruvga javob berish va joriy qo‘ng‘iroqni tugatish" "Kamera o‘chiq" "Chaqiruvga javob berish uchun ikki barmoq bilan tepaga, rad etish uchun ikki barmoq bilan pastga suring." - "Muhim qo‘ng‘iroq" + "Juda muhim" 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 f4dfa5b1d..94dd1c386 100644 --- a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml @@ -1,20 +1,4 @@ - - "Vuốt từ biểu tượng để từ chối kèm thông báo" @@ -36,5 +20,5 @@ "Trả lời và kết thúc cuộc gọi đang diễn ra" "Video đã tắt" "Vuốt hai ngón tay lên để trả lời. Vuốt hai ngón tay xuống để từ chối." - "Quan trọng" + "Khẩn cấp" 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 9698aa06d..fc7ce6409 100644 --- a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml @@ -1,20 +1,4 @@ - - "滑动图标即可拒接来电并发送信息" @@ -36,5 +20,5 @@ "接听并结束当前通话" "摄像头处于关闭状态" "双指向上滑动即可接听,向下滑动则可拒接。" - "重要" + "紧急" 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 81a88151b..97955396f 100644 --- a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml @@ -1,20 +1,4 @@ - - "從圖示快速滑動即可透過訊息拒絕" @@ -36,5 +20,5 @@ "接聽及結束進行中的通話" "視像已關閉" "兩指向上滑動可接聽,向下滑動則可拒接。" - "重要事項" + "緊急" 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 8f04992d1..f27e5ae5b 100644 --- a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml @@ -1,20 +1,4 @@ - - "滑動圖示即可拒接來電並傳送簡訊" @@ -36,5 +20,5 @@ "接聽來電及結束進行中的通話" "已關閉攝影機" "用雙指向上滑動可接聽,向下滑動可拒接。" - "重要" + "緊急" 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 23c988eaa..52f2400eb 100644 --- a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml @@ -1,20 +1,4 @@ - - "Swayipha isithonjana ukuze wenqabe ngomlayezo" @@ -36,5 +20,5 @@ "Phendula uphinde uqede ikholi eqhubekayo" "Ividiyo ivaliwe" "Swayiphela iminwe emibili phezulu ukuze uphendule. Swayiphela iminwe emibili phansi ukuze wenqabe." - "Kubalulekile" + "Okuphuthumayo" 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 de5ee6e69..235922047 100644 --- a/java/com/android/incallui/answer/impl/res/values/strings.xml +++ b/java/com/android/incallui/answer/impl/res/values/strings.xml @@ -1,19 +1,4 @@ - Swipe from icon to decline with message Swipe from icon to answer as an audio call @@ -41,5 +26,5 @@ Two finger swipe up to answer. Two finger swipe down to decline. - Important + Urgent diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java index 10a3413af..9815981ca 100644 --- a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java +++ b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java @@ -32,10 +32,6 @@ 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 fe4ae9f96..24fbfc428 100644 --- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java +++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java @@ -142,9 +142,6 @@ public class AnswerProximitySensor @Override public void onInternationalCallOnWifi() {} - @Override - public void onEnrichedCallSessionUpdate() {} - @Override public void onDialerCallSessionModificationStateChange() {} diff --git a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java index c7a9d6332..c757477f1 100644 --- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java +++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java @@ -18,7 +18,6 @@ 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; @@ -42,8 +41,6 @@ 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) { @@ -94,14 +91,6 @@ 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 5c6aef4be..d3d3a8b37 100644 --- a/java/com/android/incallui/bindings/InCallUiBindings.java +++ b/java/com/android/incallui/bindings/InCallUiBindings.java @@ -19,6 +19,7 @@ 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 { @@ -36,4 +37,12 @@ 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 3a005b0fb..7b42fb375 100644 --- a/java/com/android/incallui/bindings/InCallUiBindingsStub.java +++ b/java/com/android/incallui/bindings/InCallUiBindingsStub.java @@ -19,9 +19,11 @@ 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 @@ -40,4 +42,40 @@ 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 3876ca64d..34f0cc0d7 100644 --- a/java/com/android/incallui/call/CallList.java +++ b/java/com/android/incallui/call/CallList.java @@ -32,8 +32,6 @@ import com.android.dialer.blocking.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; @@ -119,10 +117,6 @@ 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()); @@ -284,10 +278,6 @@ 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) { @@ -802,9 +792,6 @@ public class CallList implements DialerCallDelegate { } } - @Override - public void onEnrichedCallSessionUpdate() {} - @Override public void onDialerCallSessionModificationStateChange() { for (Listener listener : mListeners) { diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java index 12edb07e6..acedf41f1 100644 --- a/java/com/android/incallui/call/DialerCall.java +++ b/java/com/android/incallui/call/DialerCall.java @@ -51,10 +51,6 @@ import com.android.dialer.common.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; @@ -81,7 +77,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.TimeUnit; /** Describes a single call and its state. */ -public class DialerCall implements VideoTechListener, StateChangedListener, CapabilitiesListener { +public class DialerCall implements VideoTechListener { public static final int CALL_HISTORY_STATUS_UNKNOWN = 0; public static final int CALL_HISTORY_STATUS_PRESENT = 1; @@ -147,12 +143,6 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa private EnrichedCallCapabilities mEnrichedCallCapabilities; private Session mEnrichedCallSession; - private int answerAndReleaseButtonDisplayedTimes = 0; - private boolean releasedByAnsweringSecondCall = false; - // Times when a second call is received but AnswerAndRelease button is not shown - // since it's not supported. - private int secondCallWithoutAnswerAndReleasedButtonTimes = 0; - public static String getNumberFromHandle(Uri handle) { return handle == null ? "" : handle.getSchemeSpecificPart(); } @@ -302,8 +292,6 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa mTimeAddedMs = System.currentTimeMillis(); parseCallSpecificAppData(); - - updateEnrichedCallSession(); } private static int translateState(int state) { @@ -425,12 +413,6 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa for (DialerCallListener listener : mListeners) { listener.onDialerCallDisconnect(); } - EnrichedCallComponent.get(mContext) - .getEnrichedCallManager() - .unregisterCapabilitiesListener(this); - EnrichedCallComponent.get(mContext) - .getEnrichedCallManager() - .unregisterCapabilitiesListener(this); } else { for (DialerCallListener listener : mListeners) { listener.onDialerCallUpdate(); @@ -978,30 +960,6 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa return mLatencyReport; } - public int getAnswerAndReleaseButtonDisplayedTimes() { - return answerAndReleaseButtonDisplayedTimes; - } - - public void increaseAnswerAndReleaseButtonDisplayedTimes() { - answerAndReleaseButtonDisplayedTimes++; - } - - public boolean getReleasedByAnsweringSecondCall() { - return releasedByAnsweringSecondCall; - } - - public void setReleasedByAnsweringSecondCall(boolean releasedByAnsweringSecondCall) { - this.releasedByAnsweringSecondCall = releasedByAnsweringSecondCall; - } - - public int getSecondCallWithoutAnswerAndReleasedButtonTimes() { - return secondCallWithoutAnswerAndReleasedButtonTimes; - } - - public void increaseSecondCallWithoutAnswerAndReleasedButtonTimes() { - secondCallWithoutAnswerAndReleasedButtonTimes++; - } - @Nullable public EnrichedCallCapabilities getEnrichedCallCapabilities() { return mEnrichedCallCapabilities; @@ -1214,66 +1172,6 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa TelecomAdapter.getInstance().setAudioRoute(CallAudioState.ROUTE_SPEAKER); } - @Override - public void onCapabilitiesUpdated() { - if (getNumber() == null) { - return; - } - EnrichedCallCapabilities capabilities = - EnrichedCallComponent.get(mContext).getEnrichedCallManager().getCapabilities(getNumber()); - if (capabilities != null) { - setEnrichedCallCapabilities(capabilities); - update(); - } - } - - @Override - public void onEnrichedCallStateChanged() { - updateEnrichedCallSession(); - } - - private void updateEnrichedCallSession() { - if (getNumber() == null) { - return; - } - if (getEnrichedCallSession() != null) { - // State changes to existing sessions are currently handled by the UI components (which have - // their own listeners). Someday instead we could remove those and just call update() here and - // have the usual onDialerCallUpdate update the UI. - dispatchOnEnrichedCallSessionUpdate(); - return; - } - - EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); - - Filter filter = - isIncoming() - ? manager.createIncomingCallComposerFilter() - : manager.createOutgoingCallComposerFilter(); - - Session session = manager.getSession(getUniqueCallId(), getNumber(), filter); - if (session == null) { - return; - } - - session.setUniqueDialerCallId(getUniqueCallId()); - setEnrichedCallSession(session); - - LogUtil.i( - "DialerCall.updateEnrichedCallSession", - "setting session %d's dialer id to %s", - session.getSessionId(), - getUniqueCallId()); - - dispatchOnEnrichedCallSessionUpdate(); - } - - private void dispatchOnEnrichedCallSessionUpdate() { - for (DialerCallListener listener : mListeners) { - listener.onEnrichedCallSessionUpdate(); - } - } - /** * Specifies whether a number is in the call history or not. {@link #CALL_HISTORY_STATUS_UNKNOWN} * means there is no result. @@ -1474,7 +1372,6 @@ public class DialerCall implements VideoTechListener, StateChangedListener, Capa 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 5d24a4d4b..ed321be05 100644 --- a/java/com/android/incallui/call/DialerCallListener.java +++ b/java/com/android/incallui/call/DialerCallListener.java @@ -36,6 +36,4 @@ 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 4fc9f81eb..ebf4ecf4f 100644 --- a/java/com/android/incallui/call/TelecomAdapter.java +++ b/java/com/android/incallui/call/TelecomAdapter.java @@ -20,13 +20,12 @@ 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 class TelecomAdapter implements InCallServiceListener { +public final class TelecomAdapter implements InCallServiceListener { private static final String ADD_CALL_MODE_KEY = "add_call_mode"; @@ -46,11 +45,6 @@ public 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 b093a1b15..801b0d35c 100644 --- a/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java +++ b/java/com/android/incallui/calllocation/impl/DownloadMapImageTask.java @@ -21,7 +21,6 @@ import android.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 99a759bbb..3a1478945 100644 --- a/java/com/android/incallui/calllocation/impl/LocationHelper.java +++ b/java/com/android/incallui/calllocation/impl/LocationHelper.java @@ -24,7 +24,6 @@ import android.os.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; @@ -88,12 +87,6 @@ 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 060ec0b4f..eb5957b05 100644 --- a/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java +++ b/java/com/android/incallui/calllocation/impl/ReverseGeocodeTask.java @@ -20,7 +20,6 @@ import android.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/calllocation/impl/TrafficStatsTags.java b/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java new file mode 100644 index 000000000..02cc2e083 --- /dev/null +++ b/java/com/android/incallui/calllocation/impl/TrafficStatsTags.java @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT 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.calllocation.impl; + +/** Constants used for logging */ +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 DOWNLOAD_LOCATION_MAP_TAG = 0xd000; + + public static final int REVERSE_GEOCODE_TAG = 0xd001; +} diff --git a/java/com/android/incallui/commontheme/res/anim/blinking.xml b/java/com/android/incallui/commontheme/res/anim/blinking.xml new file mode 100644 index 000000000..4b921c611 --- /dev/null +++ b/java/com/android/incallui/commontheme/res/anim/blinking.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png new file mode 100644 index 000000000..26f3fe001 Binary files /dev/null and b/java/com/android/incallui/commontheme/res/drawable-hdpi/ic_phone_audio_white_36dp.png differ diff --git a/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png new file mode 100644 index 000000000..5b0a9d663 Binary files /dev/null and b/java/com/android/incallui/commontheme/res/drawable-mdpi/ic_phone_audio_white_36dp.png differ diff --git a/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png new file mode 100644 index 000000000..d595b190d Binary files /dev/null and b/java/com/android/incallui/commontheme/res/drawable-xhdpi/ic_phone_audio_white_36dp.png differ diff --git a/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png new file mode 100644 index 000000000..fb7cf161b Binary files /dev/null and b/java/com/android/incallui/commontheme/res/drawable-xxhdpi/ic_phone_audio_white_36dp.png differ diff --git a/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png b/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png new file mode 100644 index 000000000..4bb58d9f5 Binary files /dev/null and b/java/com/android/incallui/commontheme/res/drawable-xxxhdpi/ic_phone_audio_white_36dp.png 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 0721869bb..0dfdbc7d5 100644 --- a/java/com/android/incallui/commontheme/res/values-af/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-af/strings.xml @@ -1,20 +1,4 @@ - - "Beëindig oproep" @@ -31,6 +15,4 @@ "Video aan" "Video af" "Verwissel video" - "Luidspreker" - "Klank" 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 9d748e380..3155c39be 100644 --- a/java/com/android/incallui/commontheme/res/values-am/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-am/strings.xml @@ -1,20 +1,4 @@ - - "ጥሪ ጨርስ" @@ -31,6 +15,4 @@ "ቪዲዮ በርቷል" "ቪዲዮ ጠፍቷል" "ቪዲዮ አገላብጥ" - "የድምጽ ማጉያ" - "ድምፅ" 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 693bfc57a..ecb3608bd 100644 --- a/java/com/android/incallui/commontheme/res/values-ar/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ar/strings.xml @@ -1,20 +1,4 @@ - - "إنهاء المكالمة" @@ -31,6 +15,4 @@ "الفيديو قيد التشغيل" "الفيديو ليس قيد التشغيل" "تبديل الفيديو" - "مكبر الصوت" - "صوت" 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 a1d88ceef..d935a6c93 100644 --- a/java/com/android/incallui/commontheme/res/values-az/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-az/strings.xml @@ -1,20 +1,4 @@ - - "Zəngi sonlandırın" @@ -31,6 +15,4 @@ "Video aktivdir" "Video deaktivdir" "Videonu dəyişdirin" - "Dinamik" - "Səs" 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 05ae59cdd..36430c42b 100644 --- a/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-b+sr+Latn/strings.xml @@ -1,20 +1,4 @@ - - "Završi poziv" @@ -31,6 +15,4 @@ "Uključi video" "Isključi video" "Zameni video" - "Zvučnik" - "Zvuk" 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 e772e2795..9609a6346 100644 --- a/java/com/android/incallui/commontheme/res/values-be/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-be/strings.xml @@ -1,20 +1,4 @@ - - "Завяршыць выклік" @@ -31,6 +15,4 @@ "Відэа ўкл." "Відэа выкл." "Пераключыць відэа" - "Вонк.дынамік" - "Гук" 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 63364f8e6..1a0f3e312 100644 --- a/java/com/android/incallui/commontheme/res/values-bg/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-bg/strings.xml @@ -1,20 +1,4 @@ - - "Край на обаждането" @@ -31,6 +15,4 @@ "Видеото е включено" "Видеото е изключено" "Размяна на видеото" - "Високогов." - "Звук" 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 9871ea447..ef2408f64 100644 --- a/java/com/android/incallui/commontheme/res/values-bn/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-bn/strings.xml @@ -1,20 +1,4 @@ - - "কল কেটে দিন" @@ -31,6 +15,4 @@ "ভিডিও চালু আছে" "ভিডিও বন্ধ আছে" "ভিডিও অদল বদল করুন" - "স্পিকার" - "শব্দ" 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 76f991d64..bfaff983f 100644 --- a/java/com/android/incallui/commontheme/res/values-bs/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-bs/strings.xml @@ -1,20 +1,4 @@ - - "Prekini poziv" @@ -31,6 +15,4 @@ "Kamera je uključena" "Kamera je isključena" "Zamijeni kameru" - "Zvučnik" - "Zvuk" 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 832027d39..1b6ed4492 100644 --- a/java/com/android/incallui/commontheme/res/values-ca/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ca/strings.xml @@ -1,20 +1,4 @@ - - "Finalitza la trucada" @@ -31,6 +15,4 @@ "Vídeo activat" "Vídeo desactivat" "Canvia de vídeo" - "Altaveu" - "So" 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 7afdcba0b..1f10d85fe 100644 --- a/java/com/android/incallui/commontheme/res/values-cs/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-cs/strings.xml @@ -1,20 +1,4 @@ - - "Ukončit hovor" @@ -31,6 +15,4 @@ "Zapnuté video" "Vypnuté video" "Přepnout video" - "Reproduktor" - "Zvuk" 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 bd26e90e5..35d01e317 100644 --- a/java/com/android/incallui/commontheme/res/values-da/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-da/strings.xml @@ -1,20 +1,4 @@ - - "Afslut opkald" @@ -31,6 +15,4 @@ "Video til" "Video fra" "Byt video" - "Højttaler" - "Lyd" 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 3fd10f0e6..57a95b7f3 100644 --- a/java/com/android/incallui/commontheme/res/values-de/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-de/strings.xml @@ -1,20 +1,4 @@ - - "Anruf beenden" @@ -31,6 +15,4 @@ "Video an" "Video aus" "Video wechseln" - "Lautsprecher" - "Tonausgabe" 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 71c0be9a7..6bb9edcd1 100644 --- a/java/com/android/incallui/commontheme/res/values-el/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-el/strings.xml @@ -1,20 +1,4 @@ - - "Τερματισμός" @@ -31,6 +15,4 @@ "Εικόνα βίντεο ενεργοποιημένη" "Εικόνα βίντεο απενεργοποιημένη" "Εναλλαγή βίντεο" - "Ηχείο" - "Ήχος" 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 4869c3fa3..8133185b5 100644 --- a/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-en-rAU/strings.xml @@ -1,20 +1,4 @@ - - "End call" @@ -31,6 +15,4 @@ "Video on" "Video off" "Swap video" - "Speaker" - "Sound" 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 4869c3fa3..8133185b5 100644 --- a/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-en-rGB/strings.xml @@ -1,20 +1,4 @@ - - "End call" @@ -31,6 +15,4 @@ "Video on" "Video off" "Swap video" - "Speaker" - "Sound" 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 4869c3fa3..8133185b5 100644 --- a/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-en-rIN/strings.xml @@ -1,20 +1,4 @@ - - "End call" @@ -31,6 +15,4 @@ "Video on" "Video off" "Swap video" - "Speaker" - "Sound" 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 a9596d9e6..45f2e2f42 100644 --- a/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-es-rUS/strings.xml @@ -1,20 +1,4 @@ - - "Finalizar llamada" @@ -31,6 +15,4 @@ "Video activado" "Video desactivado" "Intercambiar video" - "Altavoz" - "Sonido" 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 aa84c625b..56c8b2852 100644 --- a/java/com/android/incallui/commontheme/res/values-es/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-es/strings.xml @@ -1,20 +1,4 @@ - - "Finalizar llamada" @@ -31,6 +15,4 @@ "Vídeo activado" "Vídeo desactivado" "Cambiar de vídeo" - "Altavoz" - "Sonido" 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 ae2e1ba53..069f3b5fd 100644 --- a/java/com/android/incallui/commontheme/res/values-et/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-et/strings.xml @@ -1,20 +1,4 @@ - - "Kõne lõpetamine" @@ -31,6 +15,4 @@ "Video on sees" "Video on väljas" "Video vahetamine" - "Kõlar" - "Heli" 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 0dd126c5a..bbcf5dc6e 100644 --- a/java/com/android/incallui/commontheme/res/values-eu/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-eu/strings.xml @@ -1,20 +1,4 @@ - - "Amaitu deia" @@ -31,6 +15,4 @@ "Aktibatuta dago bideoa" "Desaktibatuta dago bideoa" "Aldatu bideoa" - "Bozgorailua" - "Soinua" 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 1996ad47b..ea967bb7e 100644 --- a/java/com/android/incallui/commontheme/res/values-fa/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-fa/strings.xml @@ -1,20 +1,4 @@ - - "پایان تماس" @@ -31,6 +15,4 @@ "ویدئو فعال" "ویدئو غیرفعال" "جابه‌جایی ویدئو" - "بلندگو" - "صدا" 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 5a579816b..f0da44f07 100644 --- a/java/com/android/incallui/commontheme/res/values-fi/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-fi/strings.xml @@ -1,20 +1,4 @@ - - "Päätä puhelu" @@ -31,6 +15,4 @@ "Videokuva käytössä" "Videokuva poissa käytöstä" "Vaihda videota" - "Kaiutin" - "Ääni" 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 a1db3065a..bf74dfbef 100644 --- a/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-fr-rCA/strings.xml @@ -1,20 +1,4 @@ - - "Mettre fin à l\'appel" @@ -31,6 +15,4 @@ "Vidéo activée" "Vidéo désactivée" "Permuter la vidéo" - "Haut-parleur" - "Son" 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 e169a3d7a..fb674a483 100644 --- a/java/com/android/incallui/commontheme/res/values-fr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-fr/strings.xml @@ -1,20 +1,4 @@ - - "Mettre fin à l\'appel" @@ -31,6 +15,4 @@ "Vidéo activée" "Vidéo désactivée" "Permuter la vidéo" - "Haut-parleur" - "Audio" 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 ba98a98a7..c7e221416 100644 --- a/java/com/android/incallui/commontheme/res/values-gl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-gl/strings.xml @@ -1,20 +1,4 @@ - - "Finalizar chamada" @@ -31,6 +15,4 @@ "Vídeo activado" "Vídeo desactivado" "Alternar vídeo" - "Altofalante" - "Son" 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 194590cec..75584ea0d 100644 --- a/java/com/android/incallui/commontheme/res/values-gu/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-gu/strings.xml @@ -1,20 +1,4 @@ - - "કૉલ સમાપ્ત કરો" @@ -31,6 +15,4 @@ "વિડિઓ ચાલુ" "વિડિઓ બંધ" "વિડિઓ સ્વેપ કરો" - "સ્પીકર" - "ધ્વનિ" 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 207bbf2be..f7ea68ad8 100644 --- a/java/com/android/incallui/commontheme/res/values-hi/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-hi/strings.xml @@ -1,20 +1,4 @@ - - "कॉल समाप्त करें" @@ -31,6 +15,4 @@ "वीडियो चालू" "वीडियो बंद" "वीडियो स्वैप करें" - "स्‍पीकर" - "ध्वनि" 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 c58ab852f..c30f3977e 100644 --- a/java/com/android/incallui/commontheme/res/values-hr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-hr/strings.xml @@ -1,20 +1,4 @@ - - "Prekid poziva" @@ -31,6 +15,4 @@ "Videopoziv uključen" "Videopoziv isključen" "Zamijeni videopoziv" - "Zvučnik" - "Zvuk" 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 ba7fec7d5..9ee2300e2 100644 --- a/java/com/android/incallui/commontheme/res/values-hu/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-hu/strings.xml @@ -1,20 +1,4 @@ - - "Hívás befejezése" @@ -31,6 +15,4 @@ "Videó be" "Videó ki" "Videó cseréje" - "Hangszóró" - "Hang" 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 81262e4c6..96a0cab6f 100644 --- a/java/com/android/incallui/commontheme/res/values-hy/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-hy/strings.xml @@ -1,20 +1,4 @@ - - "Ավարտել զանգը" @@ -31,6 +15,4 @@ "Տեսախցիկը միացած է" "Տեսախցիկն անջատած է" "Փոխարկել խցիկը" - "Բարձրախոս" - "Ձայն" 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 fb3fc56ec..4536f5db0 100644 --- a/java/com/android/incallui/commontheme/res/values-in/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-in/strings.xml @@ -1,20 +1,4 @@ - - "Akhiri panggilan" @@ -31,6 +15,4 @@ "Video aktif" "Video nonaktif" "Tukar Video" - "Speaker" - "Suara" 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 438b143e4..357f90eee 100644 --- a/java/com/android/incallui/commontheme/res/values-is/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-is/strings.xml @@ -1,20 +1,4 @@ - - "Ljúka símtali" @@ -31,6 +15,4 @@ "Kveikja á mynd" "Slökkva á mynd" "Skipta um mynd" - "Hátalari" - "Hljóð" 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 b7c1d3f4e..a63d3140a 100644 --- a/java/com/android/incallui/commontheme/res/values-it/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-it/strings.xml @@ -1,20 +1,4 @@ - - "Termina chiamata" @@ -31,6 +15,4 @@ "Video attivo" "Video non attivo" "Scambia video" - "Altoparlante" - "Suono" 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 cbd6d7573..1e2b7f2b1 100644 --- a/java/com/android/incallui/commontheme/res/values-iw/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-iw/strings.xml @@ -1,20 +1,4 @@ - - "סיים שיחה" @@ -31,6 +15,4 @@ "הווידאו מופעל" "הווידאו מושבת" "החלף וידאו" - "רמקול" - "קול" 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 4ea949581..658b51349 100644 --- a/java/com/android/incallui/commontheme/res/values-ja/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ja/strings.xml @@ -1,20 +1,4 @@ - - "通話を終了" @@ -31,6 +15,4 @@ "ビデオが ON になっています" "ビデオが OFF になっています" "ビデオを切り替える" - "スピーカー" - "音声" 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 3163476b6..ffba7cede 100644 --- a/java/com/android/incallui/commontheme/res/values-ka/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ka/strings.xml @@ -1,20 +1,4 @@ - - "ზარის დასრულება" @@ -31,6 +15,4 @@ "ვიდეო ჩართულია" "ვიდეო გამორთულია" "ვიდეოს შენაცვლება" - "სპიკერი" - "ხმა" 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 23b3a2ad6..ace83ecee 100644 --- a/java/com/android/incallui/commontheme/res/values-kk/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-kk/strings.xml @@ -1,20 +1,4 @@ - - "Қоңырауды аяқтау" @@ -31,6 +15,4 @@ "Бейне қосулы" "Бейне өшірулі" "Бейнені ауыстыру" - "Динамик" - "Дыбыс" 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 55cfa0a16..e28f12029 100644 --- a/java/com/android/incallui/commontheme/res/values-km/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-km/strings.xml @@ -1,20 +1,4 @@ - - "បញ្ចប់​ការ​ហៅ" @@ -31,6 +15,4 @@ "បើក​វីដេអូ​" "បិទ​វីដេអូ" "ប្ដូរ​វីដេអូ" - "ឧបករណ៍​បំពង​សំឡេង" - "សំឡេង" 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 685ef642f..59186e0a3 100644 --- a/java/com/android/incallui/commontheme/res/values-kn/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-kn/strings.xml @@ -1,20 +1,4 @@ - - "ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ" @@ -31,6 +15,4 @@ "ವೀಡಿಯೊ ಆನ್" "ವೀಡಿಯೊ ಆಫ್" "ವೀಡಿಯೊ ಬದಲಾಯಿಸಿ" - "ಸ್ಪೀಕರ್‌" - "ಶಬ್ದ" 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 088746ddd..0a0e3c9aa 100644 --- a/java/com/android/incallui/commontheme/res/values-ko/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ko/strings.xml @@ -1,20 +1,4 @@ - - "통화 종료" @@ -31,6 +15,4 @@ "동영상 켜짐" "동영상 꺼짐" "동영상 전환" - "스피커" - "소리" 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 5dd4d0c21..ac697e4fe 100644 --- a/java/com/android/incallui/commontheme/res/values-ky/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ky/strings.xml @@ -1,20 +1,4 @@ - - "Чалууну бүтүрүү" @@ -31,6 +15,4 @@ "Видео күйүк" "Видео өчүк" "Видеону иштетүү/өчүрүү" - "Катуу сүйлөткүч" - "Добуш" 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 2f0b94b54..da2050ac2 100644 --- a/java/com/android/incallui/commontheme/res/values-lo/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-lo/strings.xml @@ -1,20 +1,4 @@ - - "ວາງສາຍ" @@ -31,6 +15,4 @@ "ວິດີໂອເປີດ" "ວິດີໂອປິດ" "ສະຫຼັບວິດີໂອ" - "ລຳໂພງ" - "ສຽງ" 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 d0a5e0d9c..bda53d6f6 100644 --- a/java/com/android/incallui/commontheme/res/values-lt/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-lt/strings.xml @@ -1,20 +1,4 @@ - - "Baigti skambutį" @@ -31,6 +15,4 @@ "Vaizdas įjungtas" "Vaizdas išjungtas" "Sukeisti vaizdą" - "Garsiakalbis" - "Garsas" 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 443ac5e80..beaf35c58 100644 --- a/java/com/android/incallui/commontheme/res/values-lv/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-lv/strings.xml @@ -1,20 +1,4 @@ - - "Beigt zvanu" @@ -31,6 +15,4 @@ "Video ieslēgts" "Video izslēgts" "Mainīt video" - "Skaļrunis" - "Skaņa" 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 d9a339eab..5b4f6d0c5 100644 --- a/java/com/android/incallui/commontheme/res/values-mk/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-mk/strings.xml @@ -1,20 +1,4 @@ - - "Завршете го повикот" @@ -31,6 +15,4 @@ "Видеото е вклучено" "Видеото е исклучено" "Заменете го видеото" - "Звучник" - "Звук" 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 0f2d88968..024266736 100644 --- a/java/com/android/incallui/commontheme/res/values-ml/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ml/strings.xml @@ -1,20 +1,4 @@ - - "കോള്‍ അവസാനിപ്പിക്കൂ" @@ -31,6 +15,4 @@ "വീഡിയോ ഓണാണ്" "വീഡിയോ ഓഫാണ്" "വീഡിയോ സ്വാപ്പുചെയ്യുക" - "സ്പീക്കർ" - "ശബ്‌ദം" 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 3665fcfa6..cd286edb9 100644 --- a/java/com/android/incallui/commontheme/res/values-mn/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-mn/strings.xml @@ -1,20 +1,4 @@ - - "Дуудлагыг таслах" @@ -31,6 +15,4 @@ "Видео идэвхтэй" "Видео идэвхгүй" "Видеог солих" - "Чанга яригч" - "Дуу" 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 f7498097f..2c626edbd 100644 --- a/java/com/android/incallui/commontheme/res/values-mr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-mr/strings.xml @@ -1,20 +1,4 @@ - - "कॉल समाप्त करा" @@ -31,6 +15,4 @@ "व्हिडिओ चालू" "व्हिडिओ बंद" "व्हिडिओ बदला" - "स्पीकर" - "ध्वनी" 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 fb38fa9d1..f6c358d79 100644 --- a/java/com/android/incallui/commontheme/res/values-ms/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ms/strings.xml @@ -1,20 +1,4 @@ - - "Tamatkan panggilan" @@ -31,6 +15,4 @@ "Video dihidupkan" "Video dimatikan" "Silih video" - "Pmbsr suara" - "Bunyi" 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 5b396be59..6b6614c36 100644 --- a/java/com/android/incallui/commontheme/res/values-my/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-my/strings.xml @@ -1,20 +1,4 @@ - - "ခေါ်ဆိုမှုအပြီးသတ်ရန်" @@ -31,6 +15,4 @@ "ဗီဒီယိုဖွင့်ထားသည်" "ဗီဒီယိုပိတ်ထားသည်" "ဗီဒီယိုဖလှယ်ရန်" - "စပီကာ" - "အသံ" 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 506b15e31..4974411bc 100644 --- a/java/com/android/incallui/commontheme/res/values-nb/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-nb/strings.xml @@ -1,20 +1,4 @@ - - "Avslutt samtalen" @@ -31,6 +15,4 @@ "Video på" "Video av" "Bytt video" - "Høyttaler" - "Lyd" 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 fa9d87fb7..5cd91b336 100644 --- a/java/com/android/incallui/commontheme/res/values-ne/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ne/strings.xml @@ -1,20 +1,4 @@ - - "कल अन्त्य गर्नुहोस्" @@ -31,6 +15,4 @@ "सक्रिय भिडियो" "निष्क्रिय भिडियो" "भिडियो साट्नुहोस्" - "स्पिकर" - "आवाज" 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 192c47b97..d33d60075 100644 --- a/java/com/android/incallui/commontheme/res/values-nl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-nl/strings.xml @@ -1,20 +1,4 @@ - - "Oproep beëindigen" @@ -31,6 +15,4 @@ "Video aan" "Video uit" "Video wisselen" - "Luidspreker" - "Geluid" 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 506b15e31..4974411bc 100644 --- a/java/com/android/incallui/commontheme/res/values-no/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-no/strings.xml @@ -1,20 +1,4 @@ - - "Avslutt samtalen" @@ -31,6 +15,4 @@ "Video på" "Video av" "Bytt video" - "Høyttaler" - "Lyd" 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 77ceb252a..7e59e6114 100644 --- a/java/com/android/incallui/commontheme/res/values-pa/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pa/strings.xml @@ -1,20 +1,4 @@ - - "ਕਾਲ ਸਮਾਪਤ ਕਰੋ" @@ -31,6 +15,4 @@ "ਵੀਡੀਓ ਚਾਲੂ" "ਵੀਡੀਓ ਬੰਦ" "ਵੀਡੀਓ ਦੀ ਅਦਲਾ ਬਦਲੀ ਕਰੋ" - "ਸਪੀਕਰ" - "ਧੁਨੀ" 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 d9b037e8d..4ab1d244d 100644 --- a/java/com/android/incallui/commontheme/res/values-pl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pl/strings.xml @@ -1,20 +1,4 @@ - - "Zakończ połączenie" @@ -31,6 +15,4 @@ "Wideo włączone" "Wideo wyłączone" "Przełącz wideo" - "Głośnik" - "Dźwięk" 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 2c1834e0f..67f367466 100644 --- a/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pt-rBR/strings.xml @@ -1,20 +1,4 @@ - - "Encerrar chamada" @@ -31,6 +15,4 @@ "Vídeo ativado" "Vídeo desativado" "Trocar vídeo" - "Alto-falante" - "Som" 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 f0c14d027..27c564928 100644 --- a/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pt-rPT/strings.xml @@ -1,20 +1,4 @@ - - "Terminar chamada" @@ -31,6 +15,4 @@ "Vídeo ativado" "Vídeo desativado" "Alternar vídeo" - "Altifalante" - "Som" 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 2c1834e0f..67f367466 100644 --- a/java/com/android/incallui/commontheme/res/values-pt/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-pt/strings.xml @@ -1,20 +1,4 @@ - - "Encerrar chamada" @@ -31,6 +15,4 @@ "Vídeo ativado" "Vídeo desativado" "Trocar vídeo" - "Alto-falante" - "Som" 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 f7c8f7257..b7fec9a58 100644 --- a/java/com/android/incallui/commontheme/res/values-ro/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ro/strings.xml @@ -1,20 +1,4 @@ - - "Încheiați apelul" @@ -31,6 +15,4 @@ "Imaginea video este activată" "Imaginea video este dezactivată" "Schimbați imaginea video" - "Difuzor" - "Sunet" 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 1853ad23f..5d1807f7a 100644 --- a/java/com/android/incallui/commontheme/res/values-ru/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ru/strings.xml @@ -1,20 +1,4 @@ - - "Завершить вызов" @@ -31,6 +15,4 @@ "Камера включена" "Камера выключена" "Включить/выключить камеру" - "Динамик" - "Звук" 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 ae13cc424..0a0f35c47 100644 --- a/java/com/android/incallui/commontheme/res/values-si/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-si/strings.xml @@ -1,20 +1,4 @@ - - "ඇමතුම අවසන් කරන්න" @@ -31,6 +15,4 @@ "වීඩියෝව ක්‍රියාත්මකයි" "වීඩියෝව ක්‍රියාවිරහිතයි" "වීඩියෝව මාරු කරන්න" - "ස්පීකරය" - "හඬ" 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 cd9aa9912..97eabebb4 100644 --- a/java/com/android/incallui/commontheme/res/values-sk/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sk/strings.xml @@ -1,20 +1,4 @@ - - "Ukončiť hovor" @@ -31,6 +15,4 @@ "Video je zapnuté" "Video je vypnuté" "Zameniť video" - "Reproduktor" - "Zvuk" 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 0aa6e699a..46cf2e8ee 100644 --- a/java/com/android/incallui/commontheme/res/values-sl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sl/strings.xml @@ -1,20 +1,4 @@ - - "Končaj klic" @@ -31,6 +15,4 @@ "Vklopi video" "Izklopi video" "Zamenjaj video" - "Zvočnik" - "Zvok" 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 b9c97d1dd..17ec08167 100644 --- a/java/com/android/incallui/commontheme/res/values-sq/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sq/strings.xml @@ -1,20 +1,4 @@ - - "Mbylle telefonatën" @@ -31,6 +15,4 @@ "Videoja aktive" "Videoja joaktive" "Shkëmbe video" - "Altoparlanti" - "Tingulli" 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 67586b72e..2928bc992 100644 --- a/java/com/android/incallui/commontheme/res/values-sr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sr/strings.xml @@ -1,20 +1,4 @@ - - "Заврши позив" @@ -31,6 +15,4 @@ "Укључи видео" "Искључи видео" "Замени видео" - "Звучник" - "Звук" 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 957a2f85a..17b5d3745 100644 --- a/java/com/android/incallui/commontheme/res/values-sv/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sv/strings.xml @@ -1,20 +1,4 @@ - - "Avsluta samtal" @@ -31,6 +15,4 @@ "Video på" "Video av" "Byt video" - "Högtalare" - "Ljud" 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 8752c2d37..165d57622 100644 --- a/java/com/android/incallui/commontheme/res/values-sw/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-sw/strings.xml @@ -1,20 +1,4 @@ - - "Kata simu" @@ -31,6 +15,4 @@ "Washa video" "Zima video" "Badilisha video" - "Spika" - "Sauti" 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 69258d2e6..fa2dfb280 100644 --- a/java/com/android/incallui/commontheme/res/values-ta/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ta/strings.xml @@ -1,20 +1,4 @@ - - "அழைப்பைத் துண்டிக்கும்" @@ -31,6 +15,4 @@ "வீடியோ இயக்கப்பட்டது" "வீடியோ முடக்கப்பட்டது" "வீடியோவிற்கு மாற்றும்" - "ஸ்பீக்கர்" - "ஒலி" 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 9454e15b7..3ce431cd1 100644 --- a/java/com/android/incallui/commontheme/res/values-te/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-te/strings.xml @@ -1,20 +1,4 @@ - - "కాల్‌ను ముగిస్తుంది" @@ -31,6 +15,4 @@ "వీడియో ఆన్‌లో ఉంది" "వీడియో ఆఫ్‌లో ఉంది" "వీడియోను మారుస్తుంది" - "స్పీకర్" - "ధ్వని" 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 823531000..1fa145c02 100644 --- a/java/com/android/incallui/commontheme/res/values-th/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-th/strings.xml @@ -1,20 +1,4 @@ - - "วางสาย" @@ -31,6 +15,4 @@ "เปิดวิดีโอ" "ปิดวิดีโอ" "สลับวิดีโอ" - "ลำโพง" - "เสียง" 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 f368e3a68..a53e11c7d 100644 --- a/java/com/android/incallui/commontheme/res/values-tl/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-tl/strings.xml @@ -1,20 +1,4 @@ - - "Tapusin ang tawag" @@ -31,6 +15,4 @@ "Naka-on ang video" "Naka-off ang video" "Pagpalitin ang video" - "Speaker" - "Tunog" 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 cbf550211..09552730a 100644 --- a/java/com/android/incallui/commontheme/res/values-tr/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-tr/strings.xml @@ -1,20 +1,4 @@ - - "Çağrıyı sonlandırın" @@ -31,6 +15,4 @@ "Video açık" "Video kapalı" "Videoyu değiştirin" - "Hoparlör" - "Ses" 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 2bcd04c0e..e17e781b3 100644 --- a/java/com/android/incallui/commontheme/res/values-uk/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-uk/strings.xml @@ -1,20 +1,4 @@ - - "Завершити виклик" @@ -31,6 +15,4 @@ "Відео ввімкнено" "Відео вимкнено" "Поміняти відео" - "Динамік" - "Звук" 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 bd8cf6807..5082e9d11 100644 --- a/java/com/android/incallui/commontheme/res/values-ur/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-ur/strings.xml @@ -1,20 +1,4 @@ - - "کال ختم کریں" @@ -31,6 +15,4 @@ "ویڈیو آن ہے" "ویڈیو آف ہے" "ویڈیو کا تبادلہ کریں" - "اسپیکر" - "آواز" 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 9bc995de2..d349d3f9a 100644 --- a/java/com/android/incallui/commontheme/res/values-uz/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-uz/strings.xml @@ -1,20 +1,4 @@ - - "Qo‘ng‘iroqni tugatish" @@ -31,6 +15,4 @@ "Video yoniq" "Video o‘chiq" "Videoni yoqish/ochirish" - "Karnay" - "Tovush" 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 caf8f3434..3bd39ae4d 100644 --- a/java/com/android/incallui/commontheme/res/values-vi/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-vi/strings.xml @@ -1,20 +1,4 @@ - - "Kết thúc cuộc gọi" @@ -31,6 +15,4 @@ "Bật video" "Tắt video" "Hoán đổi video" - "Loa" - "Âm báo" 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 4d8bda6bc..0f57120e2 100644 --- a/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-zh-rCN/strings.xml @@ -1,20 +1,4 @@ - - "结束通话" @@ -31,6 +15,4 @@ "视频已开启" "视频已关闭" "切换视频" - "免提" - "音频路径" 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 175b3e657..a3809ebca 100644 --- a/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-zh-rHK/strings.xml @@ -1,20 +1,4 @@ - - "結束通話" @@ -31,6 +15,4 @@ "視像已開啟" "視像已關閉" "切換視像" - "喇叭" - "音效" 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 dee1b9c95..983dddda7 100644 --- a/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-zh-rTW/strings.xml @@ -1,20 +1,4 @@ - - "結束通話" @@ -31,6 +15,4 @@ "開啟視訊畫面" "關閉視訊畫面" "切換視訊畫面" - "擴音" - "音訊" 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 953596231..2dd2c897e 100644 --- a/java/com/android/incallui/commontheme/res/values-zu/strings.xml +++ b/java/com/android/incallui/commontheme/res/values-zu/strings.xml @@ -1,20 +1,4 @@ - - "Qeda ikholi" @@ -31,6 +15,4 @@ "Ividiyo ivuliwe" "Ividiyo ivaliwe" "Shintsha ividiyo" - "Isipikha" - "Umsindo" diff --git a/java/com/android/incallui/commontheme/res/values/strings.xml b/java/com/android/incallui/commontheme/res/values/strings.xml index 94a8c901b..6f346a34d 100644 --- a/java/com/android/incallui/commontheme/res/values/strings.xml +++ b/java/com/android/incallui/commontheme/res/values/strings.xml @@ -1,19 +1,4 @@ - End call @@ -47,11 +32,4 @@ Swap video - - Speaker - - Sound - diff --git a/java/com/android/incallui/contactgrid/BottomRow.java b/java/com/android/incallui/contactgrid/BottomRow.java index d0ff1926a..228c786a0 100644 --- a/java/com/android/incallui/contactgrid/BottomRow.java +++ b/java/com/android/incallui/contactgrid/BottomRow.java @@ -22,6 +22,7 @@ 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; @@ -136,7 +137,7 @@ public class BottomRow { } private static CharSequence spanDisplayNumber(String displayNumber) { - return PhoneNumberUtils.createTtsSpannable( + return PhoneNumberUtilsCompat.createTtsSpannable( BidiFormatter.getInstance().unicodeWrap(displayNumber, TextDirectionHeuristics.LTR)); } diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java index 502cc52b8..1322d58ea 100644 --- a/java/com/android/incallui/contactgrid/ContactGridManager.java +++ b/java/com/android/incallui/contactgrid/ContactGridManager.java @@ -20,8 +20,10 @@ 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; @@ -76,7 +78,6 @@ 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(); @@ -104,7 +105,6 @@ public class ContactGridManager { contactGridLayout = (View) contactNameTextView.getParent(); letterTile = new LetterTileDrawable(context.getResources()); - isTimerStarted = false; } public void show() { @@ -213,7 +213,7 @@ public class ContactGridManager { * */ private void updateTopRow() { - TopRow.Info info = TopRow.getInfo(context, primaryCallState, primaryInfo); + TopRow.Info info = TopRow.getInfo(context, primaryCallState); if (TextUtils.isEmpty(info.label)) { // Use INVISIBLE here to prevent the rows below this one from moving up and down. statusTextView.setVisibility(View.INVISIBLE); @@ -232,6 +232,26 @@ public class ContactGridManager { } } + /** + * Returns the appropriate LetterTileDrawable.TYPE_ based on a given call state. + * + *

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: * @@ -275,12 +295,8 @@ public class ContactGridManager { primaryInfo.name, primaryInfo.contactInfoLookupKey, LetterTileDrawable.SHAPE_CIRCLE, - LetterTileDrawable.getContactTypeFromPrimitives( - primaryCallState.isVoiceMailNumber, - primaryInfo.isSpam, - primaryCallState.isBusinessNumber, - primaryInfo.numberPresentation, - primaryCallState.isConference)); + getContactTypeForPrimaryCallState(primaryCallState, primaryInfo)); + // By invalidating the avatarImageView we force a redraw of the letter tile. // This is required to properly display the updated letter tile iconography based on the // contact type, because the background drawable reference cached in the view, and the @@ -347,19 +363,15 @@ public class ContactGridManager { } if (info.isTimerVisible) { - if (!isTimerStarted) { - bottomTextSwitcher.setDisplayedChild(1); - bottomTimerView.setBase( - primaryCallState.connectTimeMillis - - System.currentTimeMillis() - + SystemClock.elapsedRealtime()); - bottomTimerView.start(); - isTimerStarted = true; - } + bottomTextSwitcher.setDisplayedChild(1); + bottomTimerView.setBase( + primaryCallState.connectTimeMillis + - System.currentTimeMillis() + + SystemClock.elapsedRealtime()); + bottomTimerView.start(); } else { bottomTextSwitcher.setDisplayedChild(0); bottomTimerView.stop(); - isTimerStarted = false; } } } diff --git a/java/com/android/incallui/contactgrid/TopRow.java b/java/com/android/incallui/contactgrid/TopRow.java index ab003570f..8c3d6b004 100644 --- a/java/com/android/incallui/contactgrid/TopRow.java +++ b/java/com/android/incallui/contactgrid/TopRow.java @@ -19,14 +19,10 @@ 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; @@ -59,7 +55,7 @@ public class TopRow { private TopRow() {} - public static Info getInfo(Context context, PrimaryCallState state, PrimaryInfo primaryInfo) { + public static Info getInfo(Context context, PrimaryCallState state) { CharSequence label = null; Drawable icon = state.connectionIcon; boolean labelIsSingleLine = true; @@ -77,11 +73,6 @@ 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)) { @@ -94,8 +85,6 @@ 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 @@ -105,27 +94,9 @@ 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.sessionModificationState, state.isWifi); + return getLabelForIncomingVideo(context, state.isWifi); } else if (state.isWifi && !TextUtils.isEmpty(state.connectionLabel)) { return state.connectionLabel; } else if (isAccount(state)) { @@ -137,20 +108,11 @@ public class TopRow { } } - private static CharSequence getLabelForIncomingVideo( - Context context, @SessionModificationState int sessionModificationState, boolean isWifi) { - if (sessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) { - if (isWifi) { - return context.getString(R.string.contact_grid_incoming_wifi_video_request); - } else { - return context.getString(R.string.contact_grid_incoming_video_request); - } + private static CharSequence getLabelForIncomingVideo(Context context, boolean isWifi) { + if (isWifi) { + return context.getString(R.string.contact_grid_incoming_wifi_video_call); } else { - if (isWifi) { - return context.getString(R.string.contact_grid_incoming_wifi_video_call); - } else { - return context.getString(R.string.contact_grid_incoming_video_call); - } + return context.getString(R.string.contact_grid_incoming_video_call); } } @@ -192,7 +154,7 @@ 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.sessionModificationState, state.isWifi); + return getLabelForIncomingVideo(context, state.isWifi); case SessionModificationState.NO_REQUEST: default: Assert.fail(); diff --git a/java/com/android/incallui/contactgrid/res/values-af/strings.xml b/java/com/android/incallui/contactgrid/res/values-af/strings.xml index 75a8bf37f..95ec39bc3 100644 --- a/java/com/android/incallui/contactgrid/res/values-af/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-af/strings.xml @@ -1,20 +1,4 @@ - - "Bel via %s" @@ -30,8 +14,6 @@ "Hou aan" "Video-oproep vanaf" "Wi-Fi-video-oproep vanaf" - "Versoekvorm vir video-opgradering" - "Versoekvorm vir Wi-Fi-video-opgradering" "Oproep vanaf" "Werkoproep vanaf" "Inkomend via %s" 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 3d11f73c2..d8060c9c5 100644 --- a/java/com/android/incallui/contactgrid/res/values-am/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-am/strings.xml @@ -1,20 +1,4 @@ - - "በ%s በኩል በመደወል ላይ" @@ -30,8 +14,6 @@ "ያዝና ቆይ" "ቪዲዮ ጥሪ ከ" "Wi-Fi ቪዲዮ ጥሪ ከ" - "የቪዲዮ ማሻሻል ጥያቄ ከ" - "የWi-Fi ቪዲዮ ማሻሻል ጥያቄ ከ" "ጥሪ ከ" "የሥራ ጥሪ ከ" "በ%s በኩል የገባ" 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 cddd1eca9..30fd32cfa 100644 --- a/java/com/android/incallui/contactgrid/res/values-ar/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ar/strings.xml @@ -1,20 +1,4 @@ - - "الاتصال عبر %s" @@ -30,8 +14,6 @@ "معلقة" "مكالمة فيديو من" "‏مكالمة فيديو عبر Wi-Fi من" - "طلب ترقية الفيديو من" - "‏طلب ترقية فيديو Wi-Fi من" "اتصال من" "مكالمة عمل من" "واردة عبر %s" 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 8c1993dc0..4fe79eeaa 100644 --- a/java/com/android/incallui/contactgrid/res/values-az/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-az/strings.xml @@ -1,20 +1,4 @@ - - "%s vasitəsilə zəng edilir" @@ -30,8 +14,6 @@ "Gözləmədə" "Video zəng edən" "Wi-Fi video zəng edən" - "Video təkmilləşdirilməsi üçün təklif" - "Wi-Fi video təkmilləşdirilməsi üçün təklif" "Zəng edən" "İş zəngi edən" "%s vasitəsilə gələn" 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 caa61bdac..f1a938ea9 100644 --- a/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-b+sr+Latn/strings.xml @@ -1,20 +1,4 @@ - - "Pozivamo preko %s" @@ -30,8 +14,6 @@ "Na čekanju" "Video poziv od" "Wi-Fi video poziv od" - "Zahtev za prelazak na video poziv od" - "Zahtev za prelazak na video poziv preko Wi-Fi-ja od" "Poziv od" "Poslovni poziv od" "Dolazni poziv preko %s" 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 51f7ea97a..aec3a3106 100644 --- a/java/com/android/incallui/contactgrid/res/values-be/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-be/strings.xml @@ -1,20 +1,4 @@ - - "Званкі праз %s" @@ -30,8 +14,6 @@ "На ўтрыманні" "Відэавыклік ад" "Відэавыклік праз Wi-Fi ад" - "Запыт на абнаўленне да відэавыкліка ад" - "Запыт на абнаўленне да відэавыкліка па Wi-Fi ад" "Выклік ад" "Рабочы выклік ад" "Уваходны выклік праз %s" 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 4e313d408..f162e4cd0 100644 --- a/java/com/android/incallui/contactgrid/res/values-bg/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-bg/strings.xml @@ -1,20 +1,4 @@ - - "Обаждане чрез %s" @@ -30,8 +14,6 @@ "Задържано" "Видеообаждане от" "Видеообаждане по Wi-Fi от" - "Заявка за преминаване към видеообаждане от" - "Заявка за преминаване към видеообаждане през Wi-Fi от" "Обаждане от" "Служебно обаждане от" "Входящо обаждане чрез %s" 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 8fce2e460..6d3a50c61 100644 --- a/java/com/android/incallui/contactgrid/res/values-bn/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-bn/strings.xml @@ -1,20 +1,4 @@ - - "%s এর মাধ্যমে কল করা হচ্ছে" @@ -30,8 +14,6 @@ "হোল্ডে রয়েছে" "এর থেকে আগত ভিডিও কল" "এর থেকে আগত Wi-Fi ভিডিও কল" - "এর থেকে ভিডিও আপগ্রেড করার অনুরোধ" - "এর থেকে ওয়াই-ফাই ভিডিও আপগ্রেড করার অনুরোধ" "এর থেকে আগত কল" "এর থেকে আগত কর্মক্ষেত্রের কল" "%s এর মাধ্যমে আগত কল" 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 0d4dfb3d8..258799215 100644 --- a/java/com/android/incallui/contactgrid/res/values-bs/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-bs/strings.xml @@ -1,20 +1,4 @@ - - "Pozivanje putem mreže %s" @@ -30,8 +14,6 @@ "Na čekanju" "Videopoziv od" "Wi-Fi videopoziv od" - "Zahtjev za nadogradnju na videozapis od pozivaoca" - "Zahtjev za nadogradnju na Wi-Fi videozapis od pozivaoca" "Poziv od" "Poslovni poziv od" "Dolazni poziv putem %s" 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 b4aa2ddc0..07598a217 100644 --- a/java/com/android/incallui/contactgrid/res/values-ca/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ca/strings.xml @@ -1,20 +1,4 @@ - - "S\'està trucant amb %s" @@ -30,8 +14,6 @@ "En espera" "Videotrucada de" "Videotrucada per Wi-Fi de" - "Sol·licitud d\'actualització a videotrucada procedent de:" - "Sol·licitud d\'actualització a videotrucada per Wi-Fi procedent de:" "Trucada de" "Trucada de feina de" "Entrant via %s" 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 b8698f071..d27a0283b 100644 --- a/java/com/android/incallui/contactgrid/res/values-cs/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-cs/strings.xml @@ -1,20 +1,4 @@ - - "Volání přes poskytovatele %s" @@ -30,8 +14,6 @@ "Podrženo" "Příchozí videohovor:" "Příchozí videohovor přes Wi-Fi:" - "Žádost o upgrade na videohovor od uživatele" - "Žádost o upgrade na videohovor přes Wi-Fi od uživatele" "Příchozí hovor:" "Příchozí pracovní hovor:" "Příchozí hovor přes poskytovatele %s" 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 71a651f18..555a2ac5f 100644 --- a/java/com/android/incallui/contactgrid/res/values-da/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-da/strings.xml @@ -1,20 +1,4 @@ - - "Ringer via %s" @@ -30,8 +14,6 @@ "I venteposition" "Videoopkald fra" "Wi-Fi-videoopkald fra" - "Anmodning om opgradering til et videoopkald fra" - "Anmodning om opgradering til et Wi-Fi-videoopkald fra" "Opkald fra" "Arbejdsopkald fra" "Indgående opkald via %s" 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 d69e0f6bb..3d3838ca2 100644 --- a/java/com/android/incallui/contactgrid/res/values-de/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-de/strings.xml @@ -1,20 +1,4 @@ - - "Anruf über %s" @@ -30,8 +14,6 @@ "Anruf wird gehalten" "Videoanruf von" "WLAN-Videoanruf von" - "Anfrage für Upgrade auf Videoanruf von" - "Anfrage für Upgrade auf Videoanruf über WLAN von" "Anruf von" "Geschäftlicher Anruf von" "Eingehender Anruf über %s" 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 954e7b75d..337da7b03 100644 --- a/java/com/android/incallui/contactgrid/res/values-el/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-el/strings.xml @@ -1,20 +1,4 @@ - - "Κλήση μέσω %s" @@ -30,8 +14,6 @@ "Σε αναμονή" "Βιντεοκλήση από" "Βιντεοκλήση μέσω Wi-Fi από" - "Αίτημα αναβάθμισης βίντεο από" - "Αίτημα αναβάθμισης βίντεο Wi-Fi από" "Κλήση από" "Κλήση από το γραφείο από" "Εισερχόμενη κλήση μέσω %s" 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 a1402ff5c..3748db2f4 100644 --- a/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-en-rAU/strings.xml @@ -1,20 +1,4 @@ - - "Calling via %s" @@ -30,8 +14,6 @@ "On hold" "Video call from" "Wi-Fi video call from" - "Video upgrade request from" - "Wi-Fi video upgrade request from" "Call from" "Work call from" "Incoming via %s" 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 a1402ff5c..3748db2f4 100644 --- a/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-en-rGB/strings.xml @@ -1,20 +1,4 @@ - - "Calling via %s" @@ -30,8 +14,6 @@ "On hold" "Video call from" "Wi-Fi video call from" - "Video upgrade request from" - "Wi-Fi video upgrade request from" "Call from" "Work call from" "Incoming via %s" 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 a1402ff5c..3748db2f4 100644 --- a/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-en-rIN/strings.xml @@ -1,20 +1,4 @@ - - "Calling via %s" @@ -30,8 +14,6 @@ "On hold" "Video call from" "Wi-Fi video call from" - "Video upgrade request from" - "Wi-Fi video upgrade request from" "Call from" "Work call from" "Incoming via %s" 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 abb2b01d9..fa5684927 100644 --- a/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-es-rUS/strings.xml @@ -1,20 +1,4 @@ - - "Llamada por medio de %s" @@ -30,8 +14,6 @@ "En espera" "Videollamada de" "Videollamada con Wi-Fi de" - "Actualización a video solicitada por" - "Actualización a video con Wi-Fi solicitada por" "Llamada de" "Llamada laboral de" "Entrante por medio de %s" 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 ef7c45774..1d57f9c6f 100644 --- a/java/com/android/incallui/contactgrid/res/values-es/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-es/strings.xml @@ -1,20 +1,4 @@ - - "Llamada a través de %s" @@ -30,8 +14,6 @@ "En espera" "Videollamada de" "Videollamada por Wi-Fi de" - "Solicitud de actualización de videollamada de" - "Solicitud de actualización de videollamada por Wi-Fi de" "Llamada de" "Llamada de trabajo de" "Recibida a través de %s" 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 b91f073d0..2d81062f4 100644 --- a/java/com/android/incallui/contactgrid/res/values-et/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-et/strings.xml @@ -1,20 +1,4 @@ - - "Kõne edastab %s" @@ -30,8 +14,6 @@ "Ootel" "Videokõne kontaktilt" "WiFi-videokõne kontaktilt" - "Video täiendamise taotlus:" - "WiFi kaudu video täiendamise taotlus:" "Kõne kontaktilt" "Töökõne kontaktilt" "Sissetulev kõne teenusepakkuja %s kaudu" 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 ba7995ad9..f08347bf0 100644 --- a/java/com/android/incallui/contactgrid/res/values-eu/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-eu/strings.xml @@ -1,20 +1,4 @@ - - "%s bidez deitzen" @@ -30,8 +14,6 @@ "Zain" "Bideo-deia:" "Wi-Fi bidezko bideo-deia:" - "Bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:" - "Wi-Fi bidezko bideo-dei bat egiteko eskaera bidali dizu erabiltzaile honek:" "Deia:" "Laneko deia:" "%s bidez jasotzen" 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 40873ca15..0dfc0f41f 100644 --- a/java/com/android/incallui/contactgrid/res/values-fa/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-fa/strings.xml @@ -1,20 +1,4 @@ - - "تماس از طریق %s" @@ -30,8 +14,6 @@ "درانتظار" "تماس ویدئویی از" "‏تماس ویدئویی Wi-Fi از" - "درخواست ارتقای تماس ویدیویی از" - "‏در خواست ارتقای تماس ویدیویی Wi-Fi از" "تماس از" "تماس کاری از" "تماس‌های ورودی ازطریق %s" 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 241fef5a1..00503bf2f 100644 --- a/java/com/android/incallui/contactgrid/res/values-fi/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-fi/strings.xml @@ -1,20 +1,4 @@ - - "Käytetään operaattoria %s" @@ -30,8 +14,6 @@ "Pidossa" "Videopuhelu henkilöltä" "Wi-Fi-videopuhelu henkilöltä" - "Videoon siirtymispyyntö, jonka lähettäjä on" - "Wi-Fi-videopuheluun siirtymispyyntö, jonka lähettäjän on" "Puhelu henkilöltä" "Työpuhelu henkilöltä" "Saapuva puhelu (%s)" 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 3ffc1e918..ee0196d98 100644 --- a/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-fr-rCA/strings.xml @@ -1,20 +1,4 @@ - - "Appel par %s en cours…" @@ -30,8 +14,6 @@ "En attente" "Appel vidéo de" "Appel vidéo Wi-Fi de" - "Demande de mise à niveau vidéo de" - "Demande de mise à niveau vidéo Wi-Fi de" "Appel de" "Appel professionnel de" "Appel entrant par %s" 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 0db6ae089..9849ad623 100644 --- a/java/com/android/incallui/contactgrid/res/values-fr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-fr/strings.xml @@ -1,20 +1,4 @@ - - "Appel via %s" @@ -30,8 +14,6 @@ "En attente" "Appel vidéo de" "Appel vidéo Wi-Fi de" - "Demande de passage en mode vidéo par" - "Demande de passage en mode vidéo Wi-Fi par" "Appel de" "Appel professionnel de" "Appel entrant via %s" 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 297001454..c85f336b8 100644 --- a/java/com/android/incallui/contactgrid/res/values-gl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-gl/strings.xml @@ -1,20 +1,4 @@ - - "Chamando a través de %s" @@ -30,8 +14,6 @@ "En espera" "Videochamada de" "Videochamada por wifi de" - "Solicitude de actualización a videochamada de" - "Solicitude de actualización a videochamada por wifi de" "Chamada de" "Chamada de traballo de" "Chamada entrante a través de %s" 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 220bebe39..5179cc0cb 100644 --- a/java/com/android/incallui/contactgrid/res/values-gu/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-gu/strings.xml @@ -1,20 +1,4 @@ - - "%s મારફતે કૉલ કરી રહ્યાં છે" @@ -30,8 +14,6 @@ "હોલ્ડ પર" "આમના તરફથી વિડિઓ કૉલ" "આમના તરફથી Wi-Fi વિડિઓ કૉલ" - "આમના તરફથી વિડિઓ અપગ્રેડની વિનંતી" - "આમના તરફથી Wi-Fi વિડિઓ અપગ્રેડની વિનંતી" "આમના તરફથી કૉલ" "આમના તરફથી કાર્ય કૉલ" "%s મારફતે ઇનકમિંગ" 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 da128b644..dec7b629d 100644 --- a/java/com/android/incallui/contactgrid/res/values-hi/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-hi/strings.xml @@ -1,20 +1,4 @@ - - "%s के माध्यम से कॉल किया जा रहा है" @@ -30,8 +14,6 @@ "होल्ड पर" "इससे वीडियो कॉल" "इससे वाई-फ़ाई वीडियो कॉल" - "इसकी ओर से वीडियो में अपग्रेड करने का अनुरोध" - "इसकी ओर से वाई-फ़ाई वीडियो में अपग्रेड करने का अनुरोध" "इससे कॉल" "इससे कार्य संबंधी कॉल" "%s की ओर से इनकमिंग" 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 24429a248..d7023ac24 100644 --- a/java/com/android/incallui/contactgrid/res/values-hr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-hr/strings.xml @@ -1,20 +1,4 @@ - - "Pozivanje putem operatera %s" @@ -30,8 +14,6 @@ "Na čekanju" "Videopoziv s broja" "Videopoziv putem Wi-Fi veze s broja" - "Video upgrade request from" - "Wi-Fi video upgrade request from" "Poziv s broja" "Poslovni poziv s broja" "Dolazni pozivi putem davatelja %s" 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 600b69f6d..f7da92322 100644 --- a/java/com/android/incallui/contactgrid/res/values-hu/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-hu/strings.xml @@ -1,20 +1,4 @@ - - "Hívás a(z) %s szolgáltatón keresztül" @@ -30,8 +14,6 @@ "Várakoztatva" "Videohívás a következőtől:" "Wi-Fi-videohívás a következőtől:" - "Videófrissítési kérelem a következőtől" - "Wi-Fi-videófrissítési kérelem a következőtől" "Hívás a következőtől:" "Munkahelyi hívás a következőről:" "Bejövő hívás a következőn keresztül: %s" 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 88a49eb48..6384fa924 100644 --- a/java/com/android/incallui/contactgrid/res/values-hy/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-hy/strings.xml @@ -1,20 +1,4 @@ - - "Զանգում է %s-ի միջոցով" @@ -30,8 +14,6 @@ "Սպասում" "Տեսազանգ հետևյալ բաժանորդից՝" "Wi-Fi տեսազանգ հետևյալ բաժանորդից՝" - "Տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝" - "Wi-Fi-ի միջոցով տեսազանգին անցնելու խնդրանք հետևյալ օգտատիրոջից՝" "Զանգ հետևյալ բաժանորդից՝" "Գործնական զանգ հետևյալ բաժանորդից՝" "Մուտքային զանգ %s ցանցից" 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 f6735832a..75568387b 100644 --- a/java/com/android/incallui/contactgrid/res/values-in/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-in/strings.xml @@ -1,20 +1,4 @@ - - "Menelepon melalui %s" @@ -30,8 +14,6 @@ "Ditangguhkan" "Video call dari" "Video call Wi-Fi dari" - "Permintaan upgrade video dari" - "Permintaan upgrade video Wi-Fi dari" "Telepon dari" "Panggilan telepon kerja dari" "Masuk melalui %s" 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 9e830312d..86d577c64 100644 --- a/java/com/android/incallui/contactgrid/res/values-is/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-is/strings.xml @@ -1,20 +1,4 @@ - - "Hringt í gegnum %s" @@ -30,8 +14,6 @@ "Í bið" "Myndsímtal berst frá" "Wi-Fi myndsímtal berst frá" - "Beiðni um að uppfæra í myndsímtal frá" - "Beiðni um að uppfæra í Wi-Fi myndsímtal frá" "Símtal berst frá" "Vinnusímtal berst frá" "Berst í gegnum %s" 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 76958cf72..9576a6d95 100644 --- a/java/com/android/incallui/contactgrid/res/values-it/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-it/strings.xml @@ -1,20 +1,4 @@ - - "Chiamate tramite %s" @@ -30,8 +14,6 @@ "In attesa" "Videochiamata da" "Videochiamata Wi-Fi da" - "Upgrade della videochiamata richiesto da" - "Upgrade della videochiamata Wi-Fi richiesto da" "Chiamata da" "Chiamata di lavoro da" "In arrivo tramite %s" 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 b06c3212c..62771d18f 100644 --- a/java/com/android/incallui/contactgrid/res/values-iw/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-iw/strings.xml @@ -1,20 +1,4 @@ - - "שיחה באמצעות %s" @@ -30,8 +14,6 @@ "בהמתנה" "שיחת וידאו מאת" "‏שיחת וידאו ב-Wi-Fi מאת" - "בקשה לשדרוג לשיחת וידאו מאת" - "‏בקשת לשדרוג לשיחת וידאו ברשת Wi-Fi מאת" "שיחה מאת" "שיחת עבודה מאת" "שיחה נכנסת באמצעות %s" 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 a2fce09cf..a5d958c60 100644 --- a/java/com/android/incallui/contactgrid/res/values-ja/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ja/strings.xml @@ -1,20 +1,4 @@ - - "%s で発信中" @@ -30,8 +14,6 @@ "保留中" "ビデオハングアウトの着信" "Wi-Fi ビデオハングアウトの着信" - "ビデオハングアウトへの変更リクエスト" - "Wi-Fi ビデオハングアウトへの変更リクエスト" "着信" "仕事の通話の着信" "%s から着信" 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 cb0094d37..7848f595e 100644 --- a/java/com/android/incallui/contactgrid/res/values-ka/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ka/strings.xml @@ -1,20 +1,4 @@ - - "მიმდინარეობს დარეკვა %s-ის მეშვეობით" @@ -30,8 +14,6 @@ "მოცდის რეჟიმში" "ვიდეოზარი აბონენტისგან" "Wi-Fi ვიდეოზარი აბონენტისგან" - "ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:" - "Wi-Fi ვიდეოზარზე გადასვლის მოთხოვნა კონტაქტისგან:" "ზარი აბონენტისგან" "სამსახურებრივი ზარი აბონენტისგან" "შემომავალი, %s-იდან" 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 3fc68c2db..aaf260b9a 100644 --- a/java/com/android/incallui/contactgrid/res/values-kk/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-kk/strings.xml @@ -1,20 +1,4 @@ - - "%s арқылы қоңырау шалу" @@ -30,8 +14,6 @@ "Күтуде" "Бейне қоңырау шалушы:" "Wi-Fi бейне қоңырау шалушы:" - "Бейне қоңырауға ауысу өтініші:" - "Wi-Fi арқылы бейне қоңырауға ауысу өтініші:" "Қоңырау шалушы:" "Жұмыстан қоңырау шалушы:" "%s арқылы кіріс" 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 7ee21ba70..b2bfc9628 100644 --- a/java/com/android/incallui/contactgrid/res/values-km/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-km/strings.xml @@ -1,20 +1,4 @@ - - "កំពុង​ហៅតាម %s" @@ -30,8 +14,6 @@ "កំពុង​រង់ចាំ" "ការ​ហៅ​ជា​វីដេអូ​ពី" "ការ​ហៅ​ជា​វីដេអូ​តាម Wi-Fi ពី" - "ស្នើ​ដំឡើង​កំណែ​វីដេអូ​ពី" - "ស្នើ​ដំឡើង​កំណែ​វីដេអូតាម Wi-Fi ពី" "ការ​ហៅ​ពី" "ការ​ហៅ​ការងារ​ពី" "ការ​ហៅ​ចូល​តាម %s" 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 e90bd6b54..0ee73bacc 100644 --- a/java/com/android/incallui/contactgrid/res/values-kn/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-kn/strings.xml @@ -1,20 +1,4 @@ - - "%s ಮೂಲಕ ಕರೆ ಮಾಡಲಾಗುತ್ತಿದೆ" @@ -30,8 +14,6 @@ "ಹೋಲ್ಡ್‌ ಮಾಡಲಾಗಿದೆ" "ಇವರಿಂದ ವೀಡಿಯೊ ಕರೆ" "ಇವರಿಂದ ವೈ-ಫೈ ವೀಡಿಯೊ ಕರೆ" - "ಇದರಿಂದ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ" - "ಇದರಿಂದ ವೈಫೈ ವೀಡಿಯೊ ಅಪ್‌ಗ್ರೇಡ್ ವಿನಂತಿ" "ಇವರಿಂದ ಕರೆ" "ಇವರಿಂದ ಕೆಲಸದ ಕರೆ" "%s ಮೂಲಕ ಒಳಬರುತ್ತಿರುವ ಕರೆ" 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 85dd613bb..a5a34e3d7 100644 --- a/java/com/android/incallui/contactgrid/res/values-ko/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ko/strings.xml @@ -1,20 +1,4 @@ - - "%s을(를) 통해 거는 전화" @@ -30,8 +14,6 @@ "대기 중" "화상 통화 발신:" "Wi-Fi 화상 통화 발신:" - "화상 통화로의 업그레이드를 요청한 사용자:" - "Wi-Fi 화상 통화로의 업그레이드를 요청한 사용자:" "통화 발신:" "업무 통화 발신:" "%s을(를) 통해 걸려온 전화" 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 6028022e1..a020e70d1 100644 --- a/java/com/android/incallui/contactgrid/res/values-ky/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ky/strings.xml @@ -1,20 +1,4 @@ - - "%s аркылуу чалуу" @@ -30,8 +14,6 @@ "Күтүү режиминде" "Видео чалуу" "Wi-Fi аркылуу видео чалуу:" - "Видеону кийинки версияга көтөрүү сурамы:" - "Wi-Fi аркылуу видеомаектешүү сурамы:" "Чалып жатат:" "Иш боюнча чалып жатат:" "%s аркылуу чалып жатат" 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 6ad117818..96c1dcf11 100644 --- a/java/com/android/incallui/contactgrid/res/values-lo/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-lo/strings.xml @@ -1,20 +1,4 @@ - - "ກຳລັງໂທຜ່ານ %s" @@ -30,8 +14,6 @@ "ຖືສາຍລໍຖ້າ" "ການໂທວິດີໂອຈາກ" "Wi-Fi video call from" - "ຄຳຮ້ອງອັບເກຣດວິດີໂອຈາກ" - "ຄຳຮ້ອງອັບເກຣດວິດີໂອ Wi-Fi ຈາກ" "ການໂທຈາກ" "Work call from" "ສາຍໂທເຂົ້າ​ຈາກ %s" 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 3cca55c46..e8e42fc9b 100644 --- a/java/com/android/incallui/contactgrid/res/values-lt/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-lt/strings.xml @@ -1,20 +1,4 @@ - - "Skambinama naudojantis „%s“ paslaugomis" @@ -30,8 +14,6 @@ "Sulaikytas" "Vaizdo skambutis nuo" "„Wi-Fi“ vaizdo skambutis nuo" - "Vaizdo skambučio naujovinimo užklausa nuo" - "„Wi-Fi“ vaizdo skambučio naujovinimo užklausa nuo" "Skambutis nuo" "Darbo skambutis nuo" "Gaunama per „%s“" 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 87e5c9049..1b3823f1e 100644 --- a/java/com/android/incallui/contactgrid/res/values-lv/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-lv/strings.xml @@ -1,20 +1,4 @@ - - "Zvanu nodrošina %s" @@ -30,8 +14,6 @@ "Aizturēts" "Videozvans no:" "Wi-Fi videozvans no:" - "Videozvana jaunināšanas pieprasījums no:" - "Wi-Fi videozvana jaunināšanas pieprasījums no:" "Zvans no:" "Darba zvans no:" "Ienākošie zvani, ko nodrošina %s" 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 fcab8f452..104468359 100644 --- a/java/com/android/incallui/contactgrid/res/values-mk/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-mk/strings.xml @@ -1,20 +1,4 @@ - - "Повикување преку %s" @@ -30,8 +14,6 @@ "На чекање" "Видеоповик од" "Видеоповик преку Wi-Fi од" - "Барање за надградба на видеоповик од" - "Барање за надградба на видеоповик преку Wi-Fi од" "Повик од" "Работен повик од" "Дојдовни повици преку %s" 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 1dfb46a93..519e9f478 100644 --- a/java/com/android/incallui/contactgrid/res/values-ml/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ml/strings.xml @@ -1,20 +1,4 @@ - - "%s മുഖേന വിളിക്കുന്നു" @@ -30,8 +14,6 @@ "ഹോള്‍ഡിലാണ്" "ഈ വ്യക്തിയിൽ നിന്നുള്ള വീഡിയോ കോൾ" "ഈ വ്യക്തിയിൽ നിന്നുള്ള Wi-Fi വീഡിയോ കോൾ" - "ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന" - "ഇനിപ്പറയുന്നതിൽ നിന്നുള്ള Wi-Fi വീഡിയോ അപ്‌ഗ്രേഡ് അഭ്യർത്ഥന" "ഈ വ്യക്തിയിൽ നിന്നുള്ള കോൾ" "ഈ വ്യക്തിയിൽ നിന്നുള്ള ഔദ്യോഗിക കോൾ" "%s മുഖേനയുള്ള ഇൻകമിംഗ്" 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 c93bd468a..c87e07179 100644 --- a/java/com/android/incallui/contactgrid/res/values-mn/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-mn/strings.xml @@ -1,20 +1,4 @@ - - "%s-р залгаж байна" @@ -30,8 +14,6 @@ "Хүлээлгэнд байгаа" "Видео дуудлага" "Wi-Fi видео дуудлага" - "Видеог сайжруулах хүсэлт" - "Wi-Fi видеог сайжруулах хүсэлт" "Дуудлага" "Ажлын дуудлага" "%s-р ирж байна" 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 81d76dd70..6a0181774 100644 --- a/java/com/android/incallui/contactgrid/res/values-mr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-mr/strings.xml @@ -1,20 +1,4 @@ - - "%s द्वारे कॉल करीत आहे" @@ -30,8 +14,6 @@ "होल्ड वर" "यावरून व्हिडिओ कॉल" "Wi-Fi व्हिडिओ कॉल" - "याकडून व्हिडिओ श्रेणीसुधारणेची विनंती" - "याकडून Wi-Fi व्हिडिओ श्रेणीसुधारणेची विनंती" "यावरील कॉल" "कडून कार्य कॉल" "%s द्वारे येणारे" 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 815df7947..17ca75369 100644 --- a/java/com/android/incallui/contactgrid/res/values-ms/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ms/strings.xml @@ -1,20 +1,4 @@ - - "Memanggil melalui %s" @@ -30,8 +14,6 @@ "Panggilan ditahan" "Panggilan video daripada" "Panggilan video Wi-Fi daripada" - "Permintaan peningkatan video daripada" - "Permintaan peningkatan video Wi-Fi daripada" "Panggilan daripada" "Panggilan kerja daripada" "Panggilan masuk melalui %s" 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 3c8a88e41..14770cfaf 100644 --- a/java/com/android/incallui/contactgrid/res/values-my/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-my/strings.xml @@ -1,20 +1,4 @@ - - "%s မှတစ်ဆင့် ခေါ်ဆိုနေသည်" @@ -30,8 +14,6 @@ "ဖုန်းကိုင်ထားသည်" "အောက်ပါထံမှ ဗီဒီယိုခေါ်ဆိုမှု" "အောက်ပါထံမှ Wi-Fi ဗီဒီယိုခေါ်ဆိုမှု" - "အောက်ပါထံမှ ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်" - "အောက်ပါထံမှ Wi-Fi ဗီဒီယိုအဆင့်မြှင့်ခြင်းတောင်းဆိုချက်" "အောက်ပါထံမှ ခေါ်ဆိုမှု" "အောက်ပါထံမှ အလုပ်ခေါ်ဆိုမှု" "%s မှတစ်ဆင့် အဝင်ခေါ်ဆိုမှု" 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 9ad8d0d6a..fbf98954c 100644 --- a/java/com/android/incallui/contactgrid/res/values-nb/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-nb/strings.xml @@ -1,20 +1,4 @@ - - "Ringer via %s" @@ -30,8 +14,6 @@ "På vent" "Videoanrop fra" "Wi-Fi-videoanrop fra" - "Forespørsel om videooppdatering fra" - "Forespørsel om Wi-Fi-videooppdatering fra" "Anrop fra" "Jobbrelatert anrop fra" "Innkommende via %s" 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 e6e65c5fb..d618af43f 100644 --- a/java/com/android/incallui/contactgrid/res/values-ne/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ne/strings.xml @@ -1,20 +1,4 @@ - - "%s मार्फत कल गर्दै" @@ -30,8 +14,6 @@ "होल्डमा छ" "निम्नबाट भिडियो कल आएको छ" "निम्नबाट Wi-Fi मार्फत गरिएको भिडियो कल आएको छ" - "निम्नबाट आएको भिडियो अपग्रेडसम्बन्धी अनुरोध" - "निम्नबाट आएको Wi-Fi मार्फत भिडियो अपग्रेडसम्बन्धी अनुरोध" "निम्नबाट कल आएको छ" "निम्नबाट कार्य सम्बन्धी कल आएको छ" "%s मार्फत गरिएको आगमन कल" 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 828a7a228..10dcd13f0 100644 --- a/java/com/android/incallui/contactgrid/res/values-nl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-nl/strings.xml @@ -1,20 +1,4 @@ - - "Bellen via %s" @@ -30,8 +14,6 @@ "In de wacht" "Videogesprek van" "Wifi-videogesprek van" - "Upgradeverzoek voor videogesprek van" - "Upgradeverzoek voor wifi-videogesprek van" "Oproep van" "Zakelijke oproep van" "Inkomend via %s" 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 9ad8d0d6a..fbf98954c 100644 --- a/java/com/android/incallui/contactgrid/res/values-no/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-no/strings.xml @@ -1,20 +1,4 @@ - - "Ringer via %s" @@ -30,8 +14,6 @@ "På vent" "Videoanrop fra" "Wi-Fi-videoanrop fra" - "Forespørsel om videooppdatering fra" - "Forespørsel om Wi-Fi-videooppdatering fra" "Anrop fra" "Jobbrelatert anrop fra" "Innkommende via %s" 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 1d4801c43..fb261d649 100644 --- a/java/com/android/incallui/contactgrid/res/values-pa/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pa/strings.xml @@ -1,20 +1,4 @@ - - "%s ਰਾਹੀਂ ਕਾਲ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ" @@ -30,8 +14,6 @@ "ਰੋਕ ਕੇ ਰੱਖੀ ਗਈ" "ਇਸ ਤੋਂ ਵੀਡੀਓ ਕਾਲ" "ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਕਾਲ" - "ਇਸ ਤੋਂ ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ" - "ਇਸ ਤੋਂ Wi-Fi ਵੀਡੀਓ ਅੱਪਗ੍ਰੇਡ ਬੇਨਤੀ" "ਇਸ ਤੋਂ ਕਾਲ" "ਇਸ ਤੋਂ ਕੰਮ ਸਬੰਧੀ ਕਾਲ" "%s ਰਾਹੀਂ ਇਨਕਮਿੰਗ" 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 586f39e65..998e49e3e 100644 --- a/java/com/android/incallui/contactgrid/res/values-pl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pl/strings.xml @@ -1,20 +1,4 @@ - - "Dzwonię przez %s" @@ -30,8 +14,6 @@ "Oczekujące" "Rozmowa wideo z:" "Rozmowa wideo przez Wi-Fi z:" - "Prośba o przejście na rozmowę wideo wysłana przez:" - "Prośba o przejście na rozmowę wideo przez Wi-Fi wysłana przez:" "Połączenie z:" "Połączenie służbowe z:" "Przychodzące z sieci %s" 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 a445cdf60..4365cba59 100644 --- a/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pt-rBR/strings.xml @@ -1,20 +1,4 @@ - - "Ligando via %s" @@ -30,8 +14,6 @@ "Em espera" "Videochamada de" "Videochamada via Wi-Fi de" - "Solicitação de upgrade de vídeo de" - "Solicitação de upgrade de vídeo por Wi-Fi de" "Chamada de" "Chamada de trabalho de" "Chamada de %s" 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 ca07b3fc9..55d3c2695 100644 --- a/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pt-rPT/strings.xml @@ -1,20 +1,4 @@ - - "A telefonar através de %s…" @@ -30,8 +14,6 @@ "Em espera" "Videochamada de" "Videochamada a partir de rede Wi-Fi de" - "Pedido de atualização para videochamada de" - "Pedido de atualização para videochamada por Wi-Fi de" "Chamada de" "Chamada de trabalho de" "Chamada recebida através de %s" 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 a445cdf60..4365cba59 100644 --- a/java/com/android/incallui/contactgrid/res/values-pt/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-pt/strings.xml @@ -1,20 +1,4 @@ - - "Ligando via %s" @@ -30,8 +14,6 @@ "Em espera" "Videochamada de" "Videochamada via Wi-Fi de" - "Solicitação de upgrade de vídeo de" - "Solicitação de upgrade de vídeo por Wi-Fi de" "Chamada de" "Chamada de trabalho de" "Chamada de %s" 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 180a01f4c..f8d1c9b54 100644 --- a/java/com/android/incallui/contactgrid/res/values-ro/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ro/strings.xml @@ -1,20 +1,4 @@ - - "Se apelează prin %s" @@ -30,8 +14,6 @@ "În așteptare" "Apel video de la" "Apel video prin Wi-Fi de la" - "Solicitare de upgrade la apel video de la" - "Solicitare de upgrade la apel video prin Wi-Fi de la" "Apel primit de la" "Apel de serviciu de la" "Primite prin %s" 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 e0a63518f..dfbc08828 100644 --- a/java/com/android/incallui/contactgrid/res/values-ru/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ru/strings.xml @@ -1,20 +1,4 @@ - - "Вызов через %s" @@ -30,8 +14,6 @@ "На удержании" "Видеовызов от" "Видеовызов по Wi-Fi от" - "Запрос на переход к видеовстрече от:" - "Запрос на переход к видеовстрече через Wi-Fi от:" "Вызов от" "Рабочий вызов от" "Входящий вызов (оператор: %s)" 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 451dc396c..00ca2aa90 100644 --- a/java/com/android/incallui/contactgrid/res/values-si/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-si/strings.xml @@ -1,20 +1,4 @@ - - "%s හරහා අමතමින්" @@ -30,8 +14,6 @@ "රඳවා ගත්" "වෙතින් වීඩියෝ ඇමතුම" "වෙතින් Wi-Fi වීඩියෝ ඇමතුම" - "වෙතින් වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම" - "වෙතින් Wi-Fi වීඩියෝ උත්ශ්‍රේණි කිරීමේ ඉල්ලීම" "වෙතින් ඇමතුම" "වෙතින් කාර්යාල ඇමතුම" "%s හරහා එන" 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 ae21ec855..40039ee9a 100644 --- a/java/com/android/incallui/contactgrid/res/values-sk/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sk/strings.xml @@ -1,20 +1,4 @@ - - "Voláte prostredníctvom poskytovateľa %s" @@ -30,8 +14,6 @@ "Podržané" "Videohovor od:" "Videohovor cez Wi-Fi od:" - "Žiadosť o inováciu na videohovor od používateľa" - "Žiadosť o inováciu na videohovor cez Wi-Fi od používateľa" "Hovor od:" "Pracovný hovor od:" "Prichádzajúci hovor prostredníctvom poskytovateľa %s" 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 1d93d21a4..f76b5cdac 100644 --- a/java/com/android/incallui/contactgrid/res/values-sl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sl/strings.xml @@ -1,20 +1,4 @@ - - "Klicanje prek ponudnika %s" @@ -30,8 +14,6 @@ "Zadržano" "Videoklic osebe" "Videoklic prek omrežja Wi-Fi osebe" - "Zahteva za nadgradnjo v video – zahteva osebe" - "Zahteva za nadgradnjo v video prek omrežja Wi-Fi – zahteva osebe" "Klic osebe" "Delovni klic osebe" "Dohodni klic prek storitve %s" 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 8c28eb7ea..34ec2d1f6 100644 --- a/java/com/android/incallui/contactgrid/res/values-sq/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sq/strings.xml @@ -1,20 +1,4 @@ - - "Telefonatë nëpërmjet %s" @@ -30,8 +14,6 @@ "Në pritje" "Telefonatë me video nga" "Telefonatë me video në Wi-Fi nga" - "Kërkesë për përmirësimin me video nga" - "Kërkesë për përmirësimin me video me Wi-Fi nga" "Telefonatë nga" "Telefonatë pune nga" "Telefonatë hyrëse nëpërmjet %s" 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 66ea45d6e..9ad149905 100644 --- a/java/com/android/incallui/contactgrid/res/values-sr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sr/strings.xml @@ -1,20 +1,4 @@ - - "Позивамо преко %s" @@ -30,8 +14,6 @@ "На чекању" "Видео позив од" "Wi-Fi видео позив од" - "Захтев за прелазак на видео позив од" - "Захтев за прелазак на видео позив преко Wi-Fi-ја од" "Позив од" "Пословни позив од" "Долазни позив преко %s" 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 931d9c98d..d5dd15953 100644 --- a/java/com/android/incallui/contactgrid/res/values-sv/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sv/strings.xml @@ -1,20 +1,4 @@ - - "Ringer med %s" @@ -30,8 +14,6 @@ "Parkerat" "Videosamtal från" "Wi-Fi-videosamtal från" - "Begäran om videouppgradering från" - "Begäran om uppgradering av Wi-Fi-video från" "Samtal från" "Jobbsamtal från" "Inkommande via %s" 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 581d7970a..72bc26f58 100644 --- a/java/com/android/incallui/contactgrid/res/values-sw/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-sw/strings.xml @@ -1,20 +1,4 @@ - - "Inapiga simu kupitia %s" @@ -30,8 +14,6 @@ "Imesitishwa" "Simu ya video kutoka kwa" "Simu ya video kupitia Wi-Fi kutoka kwa" - "Umetumiwa ombi ili ubadilishe utumie simu ya video na" - "Umetumiwa ombi ili ubadilishe utumie simu ya video kwenye Wi-Fi na" "Simu kutoka kwa" "Simu ya kazi kutoka kwa" "Simu zinazoingia kupitia %s" 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 37ff87681..2f5b1b81d 100644 --- a/java/com/android/incallui/contactgrid/res/values-ta/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ta/strings.xml @@ -1,20 +1,4 @@ - - "%s வழியாக அழைக்கிறது" @@ -30,8 +14,6 @@ "ஹோல்டில் உள்ளது" "வீடியோ அழைப்பு:" "வைஃபை வீடியோ அழைப்பு:" - "வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:" - "வைஃபையில் வீடியோவை மேம்படுத்துவதற்கான கோரிக்கை:" "அழைப்பு:" "அழைப்பு (பணி) :" "%s மூலம் உள்வரும் அழைப்பு" 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 913c9448a..52038dbf8 100644 --- a/java/com/android/incallui/contactgrid/res/values-te/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-te/strings.xml @@ -1,20 +1,4 @@ - - "%s ద్వారా కాల్ చేస్తోంది" @@ -30,8 +14,6 @@ "హోల్డ్‌లో ఉంది" "వీరి నుండి వీడియో కాల్:" "వీరి నుండి Wi-Fi వీడియో కాల్:" - "వీరి నుండి వీడియో అప్‌గ్రేడ్ అభ్యర్థన" - "వీరి నుండి Wi-Fi వీడియో అప్‌గ్రేడ్ అభ్యర్థన" "వీరి నుండి కాల్:" "వీరి నుండి కార్యాలయ కాల్:" "%s ద్వారా ఇన్‌కమింగ్ కాల్" 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 6503959e4..419db19cc 100644 --- a/java/com/android/incallui/contactgrid/res/values-th/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-th/strings.xml @@ -1,20 +1,4 @@ - - "โทรผ่าน %s" @@ -30,8 +14,6 @@ "พักสาย" "แฮงเอาท์วิดีโอจาก" "แฮงเอาท์วิดีโอผ่าน Wi-Fi จาก" - "คำขออัปเกรดวิดีโอจาก" - "คำขออัปเกรดวิดีโอผ่าน Wi-Fi จาก" "โทรจาก" "โทรเรื่องงานจาก" "สายเรียกเข้าผ่าน %s" 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 7fa063b61..282ec106f 100644 --- a/java/com/android/incallui/contactgrid/res/values-tl/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-tl/strings.xml @@ -1,20 +1,4 @@ - - "Tumatawag sa pamamagitan ng %s" @@ -30,8 +14,6 @@ "Naka-hold" "Video call mula kay" "Wi-Fi na video call mula kay" - "Kahilingan upang i-upgrade ang video mula kay" - "Kahilingan upang i-upgrade ang video gamit ang Wi-Fi mula kay" "Tawag mula kay" "Tawag sa trabaho mula kay" "Papasok sa pamamagitan ng %s" 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 1ce565dca..5ecbf3543 100644 --- a/java/com/android/incallui/contactgrid/res/values-tr/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-tr/strings.xml @@ -1,20 +1,4 @@ - - "%s üzerinden çağrı yapılıyor" @@ -30,8 +14,6 @@ "Beklemede" "Gelen video görüşmesi isteği:" "Gelen kablosuz video görüşmesi isteği:" - "Görüntülü görüşmeye geçme isteği alındı:" - "Kablosuz görüntülü görüşmeye geçme isteği alındı:" "Gelen çağrı:" "Gelen iş çağrısı:" "%s adlı sağlayıcı üzerinden gelen çağrı" 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 0d4a595ca..7b84fb650 100644 --- a/java/com/android/incallui/contactgrid/res/values-uk/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-uk/strings.xml @@ -1,20 +1,4 @@ - - "Виклик здійснюється через оператора %s" @@ -30,8 +14,6 @@ "Утримується" "Відеодзвінок від:" "Відеодзвінок через Wi-Fi від:" - "Запит на відеодзвінок від користувача" - "Запит на відеодзвінок через Wi-Fi від користувача" "Виклик від:" "Виклик на робочий телефон від:" "Вхідні виклики через оператора %s" 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 793e4879d..6584181fb 100644 --- a/java/com/android/incallui/contactgrid/res/values-ur/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-ur/strings.xml @@ -1,20 +1,4 @@ - - "کالنگ بذریعہ %s" @@ -30,8 +14,6 @@ "ہولڈ پر ہے" "ویڈیو کال منجانب" "‏Wi-Fi ویڈیو کال منجانب" - "ویڈیو اپ گریڈ کی درخواست منجانب" - "‏Wi-Fi ویڈیو اپ گریڈ کی درخواست منجانب" "کال منجانب" "دفتری کال منجانب" "%s کے ذریعے آنے والی کال" 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 a5ce1caea..db11a1822 100644 --- a/java/com/android/incallui/contactgrid/res/values-uz/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-uz/strings.xml @@ -1,20 +1,4 @@ - - "%s orqali qo‘ng‘rioq qilinmoqda" @@ -30,8 +14,6 @@ "Kutish rejimida" "Kimdan video qo‘ng‘iroq:" "Wi-Fi orqali kimdan video qo‘ng‘iroq:" - "Bu foydalanuvchi video suhbatga o‘tishni so‘ramoqda:" - "Bu foydalanuvchi Wi-Fi orqali video suhbatga o‘tishni so‘ramoqda:" "Kimdan qo‘ng‘iroq:" "Ish telefoniga kimdan qo‘ng‘iroq:" "Kiruvchi qo‘ng‘iroq (operator: %s)" 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 9ce0f1838..340a11577 100644 --- a/java/com/android/incallui/contactgrid/res/values-vi/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-vi/strings.xml @@ -1,20 +1,4 @@ - - "Đang gọi điện qua %s" @@ -30,8 +14,6 @@ "Đang chờ" "Cuộc gọi điện video từ" "Cuộc gọi điện video qua Wi-Fi từ" - "Yêu cầu nâng cấp video từ" - "Yêu cầu nâng cấp video Wi-Fi từ" "Cuộc gọi từ" "Cuộc gọi về công việc từ" "Cuộc gọi đến qua %s" 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 af5008af0..16031b811 100644 --- a/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-zh-rCN/strings.xml @@ -1,20 +1,4 @@ - - "正在通过%s进行通话" @@ -30,8 +14,6 @@ "保持" "视频通话来自:" "WLAN 视频通话来自:" - "视频通话升级请求来自:" - "WLAN 视频通话升级请求来自:" "通话来自:" "工作通话来自:" "有人通过 %s 来电" 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 9f4748175..14a444124 100644 --- a/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-zh-rHK/strings.xml @@ -1,20 +1,4 @@ - - "正在透過 %s 撥號" @@ -30,8 +14,6 @@ "保留" "視像通話來自" "Wi-Fi 視像通話來自" - "視像升級要求來自" - "Wi-Fi 視像升級要求來自" "通話來自" "工作通話來自" "透過 %s 的來電" 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 563bb2832..bdee41e67 100644 --- a/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-zh-rTW/strings.xml @@ -1,20 +1,4 @@ - - "正在透過 %s 撥號" @@ -30,8 +14,6 @@ "保留中" "視訊通話來電:" "Wi-Fi 視訊通話來電:" - "視訊升級要求,來自:" - "Wi-Fi 視訊升級要求,來自:" "語音來電:" "公司來電:" "有人透過 %s 來電" 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 19951ccf7..150d5cc98 100644 --- a/java/com/android/incallui/contactgrid/res/values-zu/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values-zu/strings.xml @@ -1,20 +1,4 @@ - - "Ishaya ucingo nge-%s" @@ -30,8 +14,6 @@ "Ibambile" "Ikholi yevidiyo kusukela ku-" "Ikholi yevidiyo ye-Wi-Fi kusukela ku-" - "Isicelo sokuthuthukiswa kwevidiyo kusukela" - "Isicelo sokuthuthukiswa kwevidiyo ye-Wi-Fi kusukela" "Ikholi esuka ku-" "Ikholi yomsebenzi kusukela ku-" "Ingena nge-%s" diff --git a/java/com/android/incallui/contactgrid/res/values/strings.xml b/java/com/android/incallui/contactgrid/res/values/strings.xml index 5a9272ca3..385f843b1 100644 --- a/java/com/android/incallui/contactgrid/res/values/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values/strings.xml @@ -1,19 +1,4 @@ - Wi-Fi video call from - - Video upgrade request from - - - Wi-Fi video upgrade request from - Call from diff --git a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java index 99364e22c..0dcfdb5fe 100644 --- a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java +++ b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java @@ -82,19 +82,12 @@ class ButtonChooserFactory { Map mapping = createCommonMapping(); mapping.put( InCallButtonIds.BUTTON_SWITCH_TO_SECONDARY, MappingInfo.builder(4).setSlotOrder(0).build()); - mapping.put( - InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO, MappingInfo.builder(4).setSlotOrder(10).build()); - - /* - * Unlike the other configurations, MANAGE_VOICE_CONFERENCE shares a spot with HOLD for GSM. - * On GSM, pressing hold while there's a background call just swaps to the background call. It - * doesn't make sense to show both SWITCH_TO_SECONDARY and HOLD when they do the same thing, so - * we show MANAGE_VOICE_CONFERENCE instead. Previously MANAGE_VOICE_CONFERENCE would not show. - */ mapping.put( InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE, - MappingInfo.builder(5).setSlotOrder(0).build()); - mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(5).build()); + MappingInfo.builder(4).setSlotOrder(5).build()); + mapping.put( + InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO, MappingInfo.builder(4).setSlotOrder(10).build()); + mapping.put(InCallButtonIds.BUTTON_HOLD, MappingInfo.builder(5).setSlotOrder(0).build()); return new ButtonChooser(new MappedButtonConfig(mapping)); } diff --git a/java/com/android/incallui/incall/impl/ButtonController.java b/java/com/android/incallui/incall/impl/ButtonController.java index b7a47f08e..8c113649d 100644 --- a/java/com/android/incallui/incall/impl/ButtonController.java +++ b/java/com/android/incallui/incall/impl/ButtonController.java @@ -29,8 +29,6 @@ import com.android.incallui.incall.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 { @@ -378,13 +376,36 @@ interface ButtonController { } public void setAudioState(CallAudioState audioState) { - 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; + @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; + } 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 d329dc903..c5d75329f 100644 --- a/java/com/android/incallui/incall/impl/InCallFragment.java +++ b/java/com/android/incallui/incall/impl/InCallFragment.java @@ -473,9 +473,6 @@ 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 bc0c61607..0b1088d2d 100644 --- a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java +++ b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java @@ -21,6 +21,7 @@ import android.support.v4.app.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; @@ -46,7 +47,8 @@ public class InCallPagerAdapter extends FragmentStatePagerAdapter { @Override public int getCount() { - if (attachments != null && attachments.hasData()) { + if (attachments != null + && (!TextUtils.isEmpty(attachments.getText()) || attachments.hasImageData())) { return 2; } return 1; diff --git a/java/com/android/incallui/incall/impl/res/values-af/strings.xml b/java/com/android/incallui/incall/impl/res/values-af/strings.xml index 64529a51f..fd632fb9a 100644 --- a/java/com/android/incallui/incall/impl/res/values-af/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-af/strings.xml @@ -1,33 +1,18 @@ - - "Video-oproep" "Hou aan" "Voeg oproep by" "Demp" - "Beëindig oproep" "Sleutelblok" + "Luidspreker" ", is aan" ", is af" "Voeg saam" "Bestuur" "Bestuur bellers" "Verwissel" + "Klank" "Nota is gestuur" 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 66a38680e..9dfd0e61d 100644 --- a/java/com/android/incallui/incall/impl/res/values-am/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-am/strings.xml @@ -1,33 +1,18 @@ - - "የቪዲዮ ጥሪ" "ይዘህ ቆይ" "ጥሪ ያክሉ" "ድምፀ-ከል አድርግ" - "ጥሪ ጨርስ" "ቁልፍ ሰሌዳ" + "የድምጽ ማጉያ" "፣ በርቷል" "፣ ጠፍቷል" "አዋህድ" "አስተዳድር" "ደዋዮችን ያስተዳድሩ" "አገላብጥ" + "ድምፅ" "ማስታወሻ ተልኳል" 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 e4dbfe4b6..a5f448a31 100644 --- a/java/com/android/incallui/incall/impl/res/values-ar/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ar/strings.xml @@ -1,33 +1,18 @@ - - "مكالمة فيديو" "انتظار" "إضافة مكالمة" "كتم" - "إنهاء المكالمة" "لوحة مفاتيح" + "مكبر الصوت" "، مشغل" "، غير مشغل" "دمج" "إدارة" "إدارة المتصلين" "تبديل" + "الصوت" "تم إرسال الملاحظة" 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 9a1f7f8fe..5f1f8cb98 100644 --- a/java/com/android/incallui/incall/impl/res/values-az/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-az/strings.xml @@ -1,33 +1,18 @@ - - "Video zəng" "Xətdə axlayın" "Zəng əlavə edin" "Susdurun" - "Zəngi bitirin" "Klaviatura" + "Dinamik" ", aktivdir" ", deaktivdir" "Birləşdir" "İdarə edin" "Zəng edənləri idarə edin" "Dəyişdirin" + "Səs" "Qeyd göndərildi" 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 02d6b7c96..bff7ed079 100644 --- a/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-b+sr+Latn/strings.xml @@ -1,33 +1,18 @@ - - "Video poziv" "Na čekanje" "Dodaj poziv" "Isključi zvuk" - "Završi poziv" "Tastatura" + "Zvučnik" ", uključen" ", isključen" "Objedini" "Upravljaj" "Upravljajte pozivaocima" "Zameni" + "Zvuk" "Beleška je poslata" 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 45e1e1010..394c7c82e 100644 --- a/java/com/android/incallui/incall/impl/res/values-be/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-be/strings.xml @@ -1,33 +1,18 @@ - - "Відэавыклік" "Утрымліваць" "Дадаць выклік" "Адключыць мікрафон" - "Сконч. выкл." "Клавіятура" + "Вонк.дынамік" ", уключана" ", выключана" "Аб\'яднаць" "Кіраваць" "Кіраваць выклікаючымі абанентамі" "Пераключыць" + "Гук" "Нататка адпраўлена" 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 c339d3bca..4f5933be9 100644 --- a/java/com/android/incallui/incall/impl/res/values-bg/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-bg/strings.xml @@ -1,33 +1,18 @@ - - "Видеообажд." "Задържане" "Ново обажд." "Без звук" - "Затваряне" "Клавиатура" + "Високоговорител" "е включено" "е изключено" "Обединяване" "Управление" "Управление на обаждащите се" "Размяна" + "Звук" "Бележката е изпратена" 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 ca5837b0e..9453e14bd 100644 --- a/java/com/android/incallui/incall/impl/res/values-bn/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-bn/strings.xml @@ -1,33 +1,18 @@ - - "ভিডিও কল" "ধরে থাকুন" "কল যোগ করুন" "নিঃশব্দ করুন" - "কল শেষ করুন" "কীপ্যাড" + "স্পিকার" ", চালু রয়েছে" ", বন্ধ রয়েছে" "মার্জ করুন" "পরিচালনা করুন" "কলারদের পরিচালনা করুন" "অদল বদল করুন" + "শব্দ" "নোট পাঠানো হয়েছে" 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 26b44ea90..4b4796457 100644 --- a/java/com/android/incallui/incall/impl/res/values-bs/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-bs/strings.xml @@ -1,33 +1,18 @@ - - "Videopoziv" "Na čekanju" "Dodaj poziv" "Isključi" - "Prekini poziv" "Telefonska tastatura" + "Zvučnik" ", uključen" ", isključen" "Spoji" "Upravljaj" "Upravljanje pozivaocima" "Zamijeni" + "Zvuk" "Bilješka je poslana" 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 9c76a3a5f..e10b7bd2d 100644 --- a/java/com/android/incallui/incall/impl/res/values-ca/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ca/strings.xml @@ -1,33 +1,18 @@ - - "Videotrucada" "Posa en espera" "Afeg. trucada" "Silencia" - "Penja" "Teclat" + "Altaveu" ", activat" ", desactivat" "Combina" "Gestiona" "Gestiona les persones que truquen" "Canvia" + "So" "La nota s\'ha enviat" 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 69f3e53a0..a00c10547 100644 --- a/java/com/android/incallui/incall/impl/res/values-cs/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-cs/strings.xml @@ -1,33 +1,18 @@ - - "Videohovor" "Podržet" "Přidat hovor" "Vyp. mikrof." - "Zavěsit" "Klávesnice" + "Reproduktor" "– zapnuto" "– vypnuto" "Sloučit" "Spravovat" "Spravovat volající" "Přepnout" + "Zvuk" "Poznámka byla odeslána" 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 d9328afe4..08b5cbb8e 100644 --- a/java/com/android/incallui/incall/impl/res/values-da/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-da/strings.xml @@ -1,33 +1,18 @@ - - "Videoopkald" "Parkér" "Tilføj opkald" "Slå lyden fra" - "Slut opkald" "Tastatur" + "Højttaler" ", er til" ", er fra" "Flet" "Administrer" "Administrer opkaldere" "Byt" + "Lyd" "Noten blev sendt" 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 30eae96b3..5f3f8c1cb 100644 --- a/java/com/android/incallui/incall/impl/res/values-de/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-de/strings.xml @@ -1,33 +1,18 @@ - - "Videoanruf" "Halten" "Hinzufügen" "Stumm" - "Beenden" "Wähltasten" + "Lautsprecher" ", ist an" ", ist aus" "Zusammenf." "Verwalten" "Anrufer verwalten" "Wechseln" + "Audio" "Notiz gesendet" 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 b45314fa7..0f5a14238 100644 --- a/java/com/android/incallui/incall/impl/res/values-el/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-el/strings.xml @@ -1,33 +1,18 @@ - - "Βιντεοκλήση" "Αναμονή" "Προσθ. κλήσ." "Σίγαση" - "Τερματισμός" "Πληκτρολόγιο" + "Ηχείο" ", ενεργό" ", ανενεργό" "Συγχώνευση" "Διαχείριση" "Διαχείριση καλούντων" "Ανταλλαγή" + "Ήχος" "Η σημείωση εστάλη" 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 34323f57a..89b72df54 100644 --- a/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-en-rAU/strings.xml @@ -1,33 +1,18 @@ - - "Video call" "Hold" "Add call" "Mute" - "End call" "Keypad" + "Speaker" ", is on" ", is off" "Merge" "Manage" "Manage callers" "Swap" + "Sound" "Note sent" 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 34323f57a..89b72df54 100644 --- a/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-en-rGB/strings.xml @@ -1,33 +1,18 @@ - - "Video call" "Hold" "Add call" "Mute" - "End call" "Keypad" + "Speaker" ", is on" ", is off" "Merge" "Manage" "Manage callers" "Swap" + "Sound" "Note sent" 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 34323f57a..89b72df54 100644 --- a/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-en-rIN/strings.xml @@ -1,33 +1,18 @@ - - "Video call" "Hold" "Add call" "Mute" - "End call" "Keypad" + "Speaker" ", is on" ", is off" "Merge" "Manage" "Manage callers" "Swap" + "Sound" "Note sent" 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 d39cf2f6f..fe9374cb9 100644 --- a/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-es-rUS/strings.xml @@ -1,33 +1,18 @@ - - "Videollamada" "Retener" "Agregar llamada" "Silenciar" - "Finalizar" "Teclado" + "Altavoz" ", activado" ", desactivado" "Combinar" "Administrar" "Administrar números" "Cambiar" + "Sonido" "Se envió la nota" 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 db5a7e643..f2dd09bb9 100644 --- a/java/com/android/incallui/incall/impl/res/values-es/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-es/strings.xml @@ -1,33 +1,18 @@ - - "Videollamada" "Retener" "Añadir" "Silenciar" - "Finalizar" "Teclado" + "Altavoz" ", activado" ", desactivado" "Combinar" "Gestionar" "Administrar llamadas" "Cambiar" + "Sonido" "Nota enviada" 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 f4587adaa..03fa7deae 100644 --- a/java/com/android/incallui/incall/impl/res/values-et/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-et/strings.xml @@ -1,33 +1,18 @@ - - "Videokõne" "Ootele" "Lisa kõne" "Vaigista" - "Lõpeta kõne" "Klaviatuur" + "Kõlar" ", on sees" ", on väljas" "Ühenda" "Halda" "Helistajate haldamine" "Vaheta" + "Heli" "Märge on saadetud" 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 28d78a70b..51d300e2e 100644 --- a/java/com/android/incallui/incall/impl/res/values-eu/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-eu/strings.xml @@ -1,33 +1,18 @@ - - "Bideo-deia" "Utzi zain" "Gehitu deia" "Des. audioa" - "Amaitu deia" "Teklatua" + "Bozgorailua" ", aktibatuta" ", desaktib." "Bateratu" "Kudeatu" "Kudeatu deitzaileak" "Aldatu" + "Soinua" "Bidali da oharra" 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 a26ac75a2..a0701163e 100644 --- a/java/com/android/incallui/incall/impl/res/values-fa/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-fa/strings.xml @@ -1,33 +1,18 @@ - - "تماس ویدئویی" "درحال انتظار" "افزودن تماس" "بی‌صدا کردن" - "پایان تماس" "صفحه کلید" + "بلندگو" "، فعال است" "، غیرفعال است" "ادغام" "مدیریت" "مدیریت تماس‌گیرندگان" "جابه‌جایی" + "صدا" "یادداشت ارسال شد" 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 9ae53488a..d81bfbf39 100644 --- a/java/com/android/incallui/incall/impl/res/values-fi/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-fi/strings.xml @@ -1,33 +1,18 @@ - - "Videopuhelu" "Pitoon" "Lisää puhelu" "Mykistä" - "Päätä puhelu" "Näppäimistö" + "Kaiutin" ", käytössä" ", ei käytössä" "Yhdistä" "Hallinnoi" "Hallinnoi soittajia" "Vaihda" + "Ääni" "Muistiinpano lähetettiin." 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 cff6745d1..1278bce2d 100644 --- a/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-fr-rCA/strings.xml @@ -1,33 +1,18 @@ - - "Appel vidéo" "En attente" "Autre appel" "Couper son" - "Raccrocher" "Clavier" + "Haut-parleur" ", activé" ", désactivé" "Fusionner" "Gérer" "Gérer les appels" "Permuter" + "Son" "Note envoyée" 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 14e92beeb..5532032b9 100644 --- a/java/com/android/incallui/incall/impl/res/values-fr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-fr/strings.xml @@ -1,33 +1,18 @@ - - "Appel vidéo" "En attente" "Autre appel" "Couper micro" - "Raccrocher" "Clavier" + "Haut-parleur" ", activé" ", désactivé" "Fusionner" "Gérer" "Gérer les appelants" "Permuter" + "Son" "Note envoyée" 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 4b399f4ee..ec99b7c75 100644 --- a/java/com/android/incallui/incall/impl/res/values-gl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-gl/strings.xml @@ -1,33 +1,18 @@ - - "Videochamada" "En espera" "Eng. chamada" "Ignorar" - "Finalizar chamada" "Teclado" + "Altofalante" "activado" "desactivado" "Combinar" "Xestionar" "Xestionar emisores de chamadas" "Cambiar" + "Son" "Enviouse a nota" 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 438f0f351..fb3999c9a 100644 --- a/java/com/android/incallui/incall/impl/res/values-gu/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-gu/strings.xml @@ -1,33 +1,18 @@ - - "વિડિઓ કૉલ" "હોલ્ડ કરો" "કૉલ ઉમેરો" "મ્યૂટ કરો" - "કૉલ સમાપ્ત કરો" "કીપેડ" + "સ્પીકર" ", ચાલુ છે" ", બંધ છે" "મર્જ કરો" "સંચાલિત કરો" "કૉલર્સને સંચાલિત કરો" "સ્વેપ કરો" + "ધ્વનિ" "નોંધ મોકલી" diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml new file mode 100644 index 000000000..1f37cd504 --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-h580dp/dimens.xml @@ -0,0 +1,4 @@ + + + 88dp + diff --git a/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml b/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml new file mode 100644 index 000000000..b58ef4819 --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-h580dp/styles.xml @@ -0,0 +1,24 @@ + + + + + + + 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 deleted file mode 100644 index 904aed235..000000000 --- a/java/com/android/incallui/incall/impl/res/values-h600dp/dimens.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - 88dp - diff --git a/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml b/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml deleted file mode 100644 index b58ef4819..000000000 --- a/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - 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 39e6e6b6d..6a7538dea 100644 --- a/java/com/android/incallui/incall/impl/res/values-hi/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-hi/strings.xml @@ -1,33 +1,18 @@ - - "वीडियो कॉल" "होल्ड करें" "कॉल जोड़ें" "म्यूट करें" - "कॉल समाप्त करें" "कीपैड" + "स्‍पीकर" ", चालू है" ", बंद है" "एक बनाएं" "प्रबंधित करें" "कॉलर प्रबंधित करें" "स्वैप करें" + "ध्वनि" "नोट भेज दिया गया है" 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 e440028d8..fc431b33b 100644 --- a/java/com/android/incallui/incall/impl/res/values-hr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-hr/strings.xml @@ -1,33 +1,18 @@ - - "Videopoziv" "Pauziraj" "Dodaj poziv" "Isklj. zvuk" - "Prekini poziv" "Tipkovnica" + "Zvučnik" ", uključeno" ", isključeno" "Spoji" "Upravljanje" "Upravljaj pozivateljima" "Zamijeni" + "Zvuk" "Bilješka je poslana" 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 e63ce5946..194c348d9 100644 --- a/java/com/android/incallui/incall/impl/res/values-hu/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-hu/strings.xml @@ -1,33 +1,18 @@ - - "Videohívás" "Várakoztatás" "Hívás felv." "Némítás" - "Hívás vége" "Billentyűzet" + "Hangszóró" ", be" ", ki" "Egyesítés" "Kezelés" "Hívók kezelése" "Csere" + "Hang" "Üzenet elküldve" 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 ce395e70c..0e8054ec9 100644 --- a/java/com/android/incallui/incall/impl/res/values-hy/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-hy/strings.xml @@ -1,33 +1,18 @@ - - "Տեսազանգ" "Պահել զանգը" "Ավելացնել զանգ" "Անջատել" - "Ավարտել զանգը" "Ստեղնաշար" + "Բարձրախոս" ", միացած է" ", անջատած է" "Միավորել" "Կառավարել" "Զանգողների կառավարում" "Փոխարկել" + "Ձայն" "Գրառումն ուղարկվեց" 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 e9d738a36..f429cb4b7 100644 --- a/java/com/android/incallui/incall/impl/res/values-in/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-in/strings.xml @@ -1,33 +1,18 @@ - - "Video call" "Tahan" "Tambahkan panggilan" "Bisukan" - "Akhiri panggilan" "Keypad" + "Speaker" ", aktif" ", Nonaktif" "Gabungkan" "Kelola" "Kelola penelepon" "Tukar" + "Suara" "Catatan telah dikirim" 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 f262e3f9f..9c3bf89bf 100644 --- a/java/com/android/incallui/incall/impl/res/values-is/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-is/strings.xml @@ -1,33 +1,18 @@ - - "Myndsímtal" "Setja í bið" "Bæta við" "Hljóð af" - "Ljúka" "Talnaborð" + "Hátalari" ", kveikt" ", slökkt" "Sameina" "Stjórna" "Hafa umsjón með hringjendum" "Skipta milli" + "Hljóð" "Glósa send" 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 f29a70260..1cfb0be67 100644 --- a/java/com/android/incallui/incall/impl/res/values-it/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-it/strings.xml @@ -1,33 +1,18 @@ - - "Videochiamata" "In attesa" "Aggiungi chiamata" "Disattiva" - "Termina chiamata" "Tastierino" + "Altoparlante" ", attivo" ", non attivo" "Unisci" "Gestisci" "Gestisci chiamanti" "Scambia" + "Audio" "Nota inviata" 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 bf08e3b06..2426fc868 100644 --- a/java/com/android/incallui/incall/impl/res/values-iw/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-iw/strings.xml @@ -1,33 +1,18 @@ - - "שיחת וידאו" "המתנה" "הוסף שיחה" "השתק" - "סיום השיחה" "לוח חיוג" + "רמקול" ", מופעל" ", מושבת" "מזג" "נהל" "ניהול המתקשרים" "החלף" + "צלילים" "ההערה נשלחה" 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 b78ee202e..9e313a072 100644 --- a/java/com/android/incallui/incall/impl/res/values-ja/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ja/strings.xml @@ -1,33 +1,18 @@ - - "ビデオ通話" "保留" "通話を追加" "ミュート" - "通話を終了" "キーパッド" + "スピーカー" "がオンです" "がオフです" "統合" "管理" "発信者を管理" "切り替え" + "音声" "メモを送信しました" 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 f6926f39c..d33af5a46 100644 --- a/java/com/android/incallui/incall/impl/res/values-ka/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ka/strings.xml @@ -1,33 +1,18 @@ - - "ვიდეოზარი" "შეყოვნება" "ზარის დამატ." "დადუმება" - "ზარის დასრ." "კლავიატურა" + "სპიკერი" ", ჩართულია" ", გამორთულია" "გაერთიანება" "მართვა" "აბონენტების მართვა" "შენაცვლება" + "ხმა" "ჩანიშვნა გაიგზავნა" 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 8da9982d0..db9c4f6ca 100644 --- a/java/com/android/incallui/incall/impl/res/values-kk/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-kk/strings.xml @@ -1,33 +1,18 @@ - - "Бейне қоңырау" "Күттіру" "Қоңырау қосу" "Дыбысын өшіру" - "Қоңырауды аяқтау" "Пернетақта" + "Динамик" ", қосулы" ", өшірулі" "Біріктіру" "Басқару" "Қоңырау шалушыларды басқару" "Ауыстыру" + "Дыбыс" "Ескертпе жіберілді" 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 88e356a41..6596bdf0c 100644 --- a/java/com/android/incallui/incall/impl/res/values-km/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-km/strings.xml @@ -1,33 +1,18 @@ - - "ហៅ​ជា​វីដេអូ" "រង់ចាំ" "បន្ថែម​ការ​ហៅ" "បិទ​សំឡេង" - "បញ្ចប់​ការ​ហៅ" "បន្ទះ​​ចុច​លេខ" + "ឧបករណ៍​បំពង​សំឡេង" ", បាន​បើក" ", បានបិទ" "បញ្ចូលគ្នា" "គ្រប់គ្រង" "គ្រប់គ្រងអ្នក​ហៅ" "ប្ដូរ" + "សំឡេង" "បានផ្ញើចំណាំ" 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 ad29b6d36..c03ec09fa 100644 --- a/java/com/android/incallui/incall/impl/res/values-kn/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-kn/strings.xml @@ -1,33 +1,18 @@ - - "ವೀಡಿಯೊ ಕರೆ" "ಹೋಲ್ಡ್‌‌ ಮಾಡು" "ಕರೆಯನ್ನು ಸೇರಿಸಿ" "ಮ್ಯೂಟ್ ಮಾಡಿ" - "ಕರೆ ಅಂತ್ಯಗೊಳಿಸಿ" "ಕೀಪ್ಯಾಡ್‌" + "ಸ್ಪೀಕರ್‌" ", ಆನ್ ಆಗಿದೆ" ", ಆಫ್ ಆಗಿದೆ" "ವಿಲೀನಗೊಳಿಸು" "ನಿರ್ವಹಿಸು" "ಕರೆದಾತರನ್ನು ನಿರ್ವಹಿಸಿ" "ಸ್ವ್ಯಾಪ್‌ ಮಾಡು" + "ಧ್ವನಿ" "ಟಿಪ್ಪಣಿ ಕಳುಹಿಸಲಾಗಿದೆ" 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 f9bb20f8b..e701e772f 100644 --- a/java/com/android/incallui/incall/impl/res/values-ko/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ko/strings.xml @@ -1,33 +1,18 @@ - - "화상 통화" "대기" "통화 추가" "음소거" - "통화 종료" "키패드" + "스피커" ", 켜짐" ", 꺼짐" "병합" "관리" "발신자 관리" "전환" + "소리" "메모가 전송되었습니다." 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 f00264dbe..e51d4c582 100644 --- a/java/com/android/incallui/incall/impl/res/values-ky/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ky/strings.xml @@ -1,33 +1,18 @@ - - "Видео чалуу" "Күттүрүү" "Чалууну кошуу" "Үнүн өчүрүү" - "Чалууну бүтүрүү" "Ном. тергич" + "Катуу сүйлөткүч" ", күйүк" ", өчүк" "Бириктирүү" "Башкаруу" "Чалуучуларды башкаруу" "Алмаштыруу" + "Добуш" "Билдирүү жөнөтүлдү" 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 2382f3241..52de3ffcc 100644 --- a/java/com/android/incallui/incall/impl/res/values-lo/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-lo/strings.xml @@ -1,33 +1,18 @@ - - "ໂທດ້ວຍວິດີໂອ" "ພັກສາຍຊົ່ວຄາວ" "ເພີ່ມການໂທ" "ປີດສຽງ" - "ວາງສາຍ" "ແປ້ນກົດ" + "ລຳໂພງ" ", ເປີດຢູ່" ", ປິດຢູ່" "ຮວມສາຍ" "ຈັດການ" "ຈັດການຜູ້ໂທ" "ສະຫຼັບສາຍ" + "ສຽງ" "ສົ່ງບັນທຶກແລ້ວ" 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 1a10884cb..4cd0356f3 100644 --- a/java/com/android/incallui/incall/impl/res/values-lt/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-lt/strings.xml @@ -1,33 +1,18 @@ - - "Vaizdo skambutis" "Sulaikyti" "Pr. skambutį" "Nutildyti" - "Baig. skamb." "Klaviatūra" + "Garsiakalbis" ", įjungtas" ", išjungtas" "Sujungti" "Tvarkyti" "Tvarkyti skambintojus" "Sukeisti" + "Garsas" "Užrašas išsiųstas" 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 c19e7c0ae..48f9ae032 100644 --- a/java/com/android/incallui/incall/impl/res/values-lv/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-lv/strings.xml @@ -1,33 +1,18 @@ - - "Videozvans" "Aizturēt" "Pievienot zvanu" "Izslēgt" - "Beigt zvanu" "Cipartast." + "Skaļrunis" ", ieslēgts" ", izslēgts" "Apvienot" "Pārvaldīt" "Pārvaldīt zvanītājus" "Pārslēgt" + "Skaņa" "Piezīme nosūtīta" 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 610a30803..5a61de5d3 100644 --- a/java/com/android/incallui/incall/impl/res/values-mk/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-mk/strings.xml @@ -1,33 +1,18 @@ - - "Видеоповик" "На чекање" "Додај повик" "Исклучи звук" - "Заврши повик" "Тастатура" + "Звучник" ", е вклучен" ", е исклучен" "Спои" "Управувај" "Управувајте со повикувачите" "Замени" + "Звук" "Белешката е испратена" 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 83c2989f0..00586ffa7 100644 --- a/java/com/android/incallui/incall/impl/res/values-ml/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ml/strings.xml @@ -1,33 +1,18 @@ - - "വീഡിയോ കോള്‍" "ഹോള്‍ഡുചെയ്യുക" "കോൾ ചേർക്കുക" "മ്യൂട്ടുചെയ്യുക" - "കോള്‍ അവസാനിപ്പിക്കൂ" "കീപാഡ്" + "സ്പീക്കർ" ", ഓണാണ്" ", ഓഫാണ്" "ലയിപ്പിക്കുക" "മാനേജുചെയ്യുക" "കോൾ ചെയ്യുന്നവരെ മാനേജുചെയ്യുക" "സ്വാപ്പുചെയ്യുക" + "ശബ്‌ദം" "കുറിപ്പ് അയച്ചു" 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 9427d86d2..085a405b0 100644 --- a/java/com/android/incallui/incall/impl/res/values-mn/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-mn/strings.xml @@ -1,33 +1,18 @@ - - "Видео хурал" "Саатуулах" "Дуудлага нэмэх" "Дууг хаах" - "Дуудлагыг таслах" "Товчлуур" + "Чанга яригч" ", асаатай" ", унтраатай" "Нэгтгэх" "Удирдах" "Залгагчдыг удирдах" "Солих" + "Дуу" "Тэмдэглэлийг илгээсэн" 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 194c192bd..841923352 100644 --- a/java/com/android/incallui/incall/impl/res/values-mr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-mr/strings.xml @@ -1,33 +1,18 @@ - - "व्हिडिओ कॉल" "होल्ड करा" "कॉल जोडा" "नि:शब्द करा" - "कॉल समाप्त करा" "कीपॅड" + "स्पीकर" ", सुरू आहे" ", बंद आहे" "विलीन करा" "व्यवस्थापित करा" "कॉलर व्यवस्थापित करा" "अदलाबदल करा" + "ध्वनी" "टीप पाठविली" 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 a918dedb4..c9db8325e 100644 --- a/java/com/android/incallui/incall/impl/res/values-ms/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ms/strings.xml @@ -1,33 +1,18 @@ - - "Pgln video" "Tunda" "Tambah pgln" "Redam" - "Tamatkn pgln" "Pad kekunci" + "Pmbsr suara" ", dihidupkan" ", Dimatikan" "Gabung" "Urus" "Urus pemanggil" "Silih" + "Bunyi" "Nota dihantar" 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 80070297b..e0bfb8c71 100644 --- a/java/com/android/incallui/incall/impl/res/values-my/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-my/strings.xml @@ -1,33 +1,18 @@ - - "ဗီဒီယိုခေါ်ဆိုမှု" "ခဏရပ်ထားရန်" "ထပ်ခေါ်ရန်" "အသံပိတ်ရန်" - "ဖုန်းချရန်" "ခလုတ်ခုံ" + "စပီကာ" "၊ ပွင့်နေသည်" "၊ ပိတ်နေသည်" "ပေါင်းရန်" "စီမံရန်" "ခေါ်ဆိုသူများကို စီမံခန့်ခွဲရန်" "ဖလှယ်ရန်" + "အသံ" "မှတ်စုပို့ပြီးပါပြီ" 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 704384ea0..75200869c 100644 --- a/java/com/android/incallui/incall/impl/res/values-nb/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-nb/strings.xml @@ -1,33 +1,18 @@ - - "Videosamtale" "Sett på vent" "Nytt anrop" "Ignorer" - "Avslutt samtalen" "Tastatur" + "Høyttaler" "er på" "er av" "Slå sammen" "Administrer" "Håndter innringere" "Bytt" + "Lyd" "Notatet er sendt" 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 beffa3e74..6bcfb6dd2 100644 --- a/java/com/android/incallui/incall/impl/res/values-ne/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ne/strings.xml @@ -1,33 +1,18 @@ - - "भिडियो कल" "होल्ड गर्ने" "कल थप्नुहोस्" "म्यूट गर्ने" - "कल अन्त्य गर्ने" "किप्याड" + "स्पिकर" ", खुला छ" ", बन्द छ" "मर्ज गर्ने" "प्रबन्ध गर्ने" "कल गर्ने व्यक्तिहरूलाई व्यवस्थित गर्नुहोस्" "साट्नुहोस्" + "आवाज" "टिपोट पठाइयो" 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 e3c919e1a..63f1ebd5d 100644 --- a/java/com/android/incallui/incall/impl/res/values-nl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-nl/strings.xml @@ -1,33 +1,18 @@ - - "Videogespr." "In wacht" "Oproep toev." "Dempen" - "Oproep beëindigen" "Toetsenblok" + "Luidspreker" ", is aan" ", is uit" "Samenvoegen" "Beheren" "Bellers beheren" "Wisselen" + "Geluid" "Notitie verzonden" 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 704384ea0..75200869c 100644 --- a/java/com/android/incallui/incall/impl/res/values-no/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-no/strings.xml @@ -1,33 +1,18 @@ - - "Videosamtale" "Sett på vent" "Nytt anrop" "Ignorer" - "Avslutt samtalen" "Tastatur" + "Høyttaler" "er på" "er av" "Slå sammen" "Administrer" "Håndter innringere" "Bytt" + "Lyd" "Notatet er sendt" 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 d7e74ed83..10a2865a6 100644 --- a/java/com/android/incallui/incall/impl/res/values-pa/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pa/strings.xml @@ -1,33 +1,18 @@ - - "ਵੀਡੀਓ ਕਾਲ" "ਰੋਕ ਕੇ ਰੱਖੋ" "ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ" "ਮਿਊਟ ਕਰੋ" - "ਕਾਲ ਖਤਮ ਕਰੋ" "ਕੀਪੈਡ" + "ਸਪੀਕਰ" ", ਚਾਲੂ ਹੈ" ", ਬੰਦ ਹੈ" "ਰਲਗੱਡ ਕਰੋ" "ਪ੍ਰਬੰਧਨ ਕਰੋ" "ਕਾਲਰਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ" "ਅਦਲੋ-ਬਦਲੋ" + "ਧੁਨੀ" "ਨੋਟ-ਕਥਨ ਭੇਜਿਆ ਗਿਆ" 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 9971d7553..4bf6a5833 100644 --- a/java/com/android/incallui/incall/impl/res/values-pl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pl/strings.xml @@ -1,33 +1,18 @@ - - "Rozmowa wid." "Wstrzymaj" "Dodaj poł." "Wycisz" - "Zakończ" "Klawiatura" + "Głośnik" "– włączony" "– wyłączony" "Scal" "Zarządzaj" "Zarządzaj rozmówcami" "Przełącz" + "Dźwięk" "Notatka wysłana" 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 538c20c0b..7ca6b6b6b 100644 --- a/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pt-rBR/strings.xml @@ -1,33 +1,18 @@ - - "Videocham." "Em espera" "Adic chamada" "Desativar" - "Encerrar" "Teclado" + "Alto-falante" "ativado" "desativado" "Mesclar" "Gerenciar" "Gerenciar os autores das chamadas" "Trocar" + "Som" "Nota enviada" 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 376ee8443..750e57e37 100644 --- a/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pt-rPT/strings.xml @@ -1,33 +1,18 @@ - - "Videochamada" "Em espera" "Adic. cham." "Desativ. som" - "Term. cham." "Teclado" + "Altifalante" ", ativado" ", desativado" "Unir" "Gerir" "Gerir autores das chamadas" "Alternar" + "Som" "Nota enviada" 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 538c20c0b..7ca6b6b6b 100644 --- a/java/com/android/incallui/incall/impl/res/values-pt/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-pt/strings.xml @@ -1,33 +1,18 @@ - - "Videocham." "Em espera" "Adic chamada" "Desativar" - "Encerrar" "Teclado" + "Alto-falante" "ativado" "desativado" "Mesclar" "Gerenciar" "Gerenciar os autores das chamadas" "Trocar" + "Som" "Nota enviada" 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 81dcdf3cc..1f93da9be 100644 --- a/java/com/android/incallui/incall/impl/res/values-ro/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ro/strings.xml @@ -1,33 +1,18 @@ - - "Apel video" "În așteptare" "Încă un apel" "Dezactivați" - "Încheiați" "Tastatură" + "Difuzor" ", e activat" ", dezactivat" "Îmbinați" "Gestionați" "Gestionați apelanții" "Schimbați" + "Sunet" "Nota a fost trimisă" 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 274f8fff7..89192c3ae 100644 --- a/java/com/android/incallui/incall/impl/res/values-ru/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ru/strings.xml @@ -1,33 +1,18 @@ - - "Видеовызов" "Удерживать" "Добавить вызов" "Выкл. звук" - "Завершить вызов" "Клавиатура" + "Динамик" ", включен" ", отключен" "Объединить" "Управление" "Управление абонентами" "Переключить" + "Звук" "Сообщение отправлено" 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 a600c2193..209bb77b1 100644 --- a/java/com/android/incallui/incall/impl/res/values-si/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-si/strings.xml @@ -1,33 +1,18 @@ - - "වීඩියෝ ඇමතුම" "රඳවා ගන්න" "ඇමතුම එක් ක." "නිහඬ කරන්න" - "ඇමතුම නිම ක." "යතුරු පුවරුව" + "ස්පීකරය" ", සක්‍රියයි" ", අක්‍රියයි" "ඒකාබද්ධ කර." "කළමනාකරණය ක." "අමතන්නන් කළමනාකරණය කරන්න" "මාරු කරන්න" + "හඬ" "සටහන යවන ලදී" 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 d74d19e22..4e06aee32 100644 --- a/java/com/android/incallui/incall/impl/res/values-sk/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sk/strings.xml @@ -1,33 +1,18 @@ - - "Videohovor" "Podržať" "Pridať hovor" "Vypnúť zvuk" - "Ukonč. hovor" "Klávesnica" + "Reproduktor" ", je zapnutý" ", je vypnutý" "Zlúčiť" "Spravovať" "Spravovať volajúcich" "Zameniť" + "Zvuk" "Poznámka bola odoslaná" 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 782ce444b..7cdb6c88c 100644 --- a/java/com/android/incallui/incall/impl/res/values-sl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sl/strings.xml @@ -1,33 +1,18 @@ - - "Videoklic" "Zadrži" "Dodaj klic" "Izklopi zvok" - "Končaj klic" "Tipkovnica" + "Zvočnik" ", vklopljen" ", izklopljen" "Združi" "Upravljanje" "Upravljanje klicateljev" "Zamenjaj" + "Zvok" "Opomba je poslana" 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 a0fca3668..9ba18b5f4 100644 --- a/java/com/android/incallui/incall/impl/res/values-sq/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sq/strings.xml @@ -1,33 +1,18 @@ - - "Video tel." "Në pritje" "Shto telef." "Hiqi zërin" - "Mbyll tel." "Blloku i tasteve" + "Altoparlant" ", është aktiv" ", është joaktiv" "Shkri" "Menaxho" "Menaxho telefonuesit" "Shkëmbe" + "Tingulli" "Shënimi u dërgua" 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 ec704511b..56a968453 100644 --- a/java/com/android/incallui/incall/impl/res/values-sr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sr/strings.xml @@ -1,33 +1,18 @@ - - "Видео позив" "На чекање" "Додај позив" "Искључи звук" - "Заврши позив" "Тастатура" + "Звучник" ", укључен" ", искључен" "Обједини" "Управљај" "Управљајте позиваоцима" "Замени" + "Звук" "Белешка је послата" 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 ded45221c..27d83b74b 100644 --- a/java/com/android/incallui/incall/impl/res/values-sv/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sv/strings.xml @@ -1,33 +1,18 @@ - - "Videosamtal" "Parkera" "Lägg t samt." "Ljud av" - "Avsl. samtal" "Knappsats" + "Högtalare" ", är på" ", är av" "Sammanfoga" "Hantera" "Hantera uppringare" "Växla" + "Ljud" "Anteckning skickad" 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 df634f469..136fe1713 100644 --- a/java/com/android/incallui/incall/impl/res/values-sw/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-sw/strings.xml @@ -1,33 +1,18 @@ - - "Hangout ya video" "Shikilia" "Ongeza simu" "Zima maikrofoni" - "Kata simu" "Vitufe vya Simu" + "Spika" ", kimewashwa" ", kimezimwa" "Unganisha" "Dhibiti" "Dhibiti wanaopiga simu" "Badili" + "Sauti" "Dokezo limetumwa" 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 5c94abff4..342f8d041 100644 --- a/java/com/android/incallui/incall/impl/res/values-ta/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ta/strings.xml @@ -1,33 +1,18 @@ - - "வீடியோ கால்" "ஹோல்டில் வை" "அழைப்பை சேர்" "முடக்கு" - "அழைப்பை முடி" "விசைத்தளம்" + "ஸ்பீக்கர்" ", ஆன்" ", ஆஃப்" "இணை" "நிர்வகி" "அழைப்பாளர்களை நிர்வகிக்கும்" "மாற்று" + "ஒலி" "குறிப்பு அனுப்பப்பட்டது" 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 0cb3fb837..004895647 100644 --- a/java/com/android/incallui/incall/impl/res/values-te/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-te/strings.xml @@ -1,33 +1,18 @@ - - "వీడియో కాల్" "హోల్డ్ చేయి" "కాల్ జోడించు" "మ్యూట్ చేయి" - "కాల్ ముగించు" "కీప్యాడ్" + "స్పీకర్" ", ఆన్‌లో ఉంది" ", ఆఫ్‌లో ఉంది" "విలీనం చేయి" "నిర్వహించు" "కాలర్‌లను నిర్వహిస్తుంది" "మార్చు" + "శబ్దం" "గమనిక పంపబడింది" 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 0929cfc23..a74028842 100644 --- a/java/com/android/incallui/incall/impl/res/values-th/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-th/strings.xml @@ -1,33 +1,18 @@ - - "แฮงเอาท์วิดีโอ" "พักสาย" "เพิ่มการโทร" "ปิดเสียง" - "วางสาย" "ปุ่มกด" + "ลำโพง" "เปิดอยู่" "ปิดอยู่" "รวม" "จัดการ" "จัดการผู้โทร" "สลับ" + "เสียง" "ส่งโน้ตแล้ว" 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 1ac2ef88c..46ff79731 100644 --- a/java/com/android/incallui/incall/impl/res/values-tl/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-tl/strings.xml @@ -1,33 +1,18 @@ - - "Video call" "I-hold" "Mag-add: tawag" "I-mute" - "Tapusin ang tawag" "Keypad" + "Speaker" ",ay On" ", ay Off" "I-merge" "Pamahalaan" "Pamahalaan ang mga tumatawag" "Pagpalitin" + "Tunog" "Naipadala ang tala" 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 241b69429..89ca3302f 100644 --- a/java/com/android/incallui/incall/impl/res/values-tr/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-tr/strings.xml @@ -1,33 +1,18 @@ - - "Görü. görüş." "Beklemeye al" "Çağrı ekle" "Sesi kapat" - "Çğryı sonldr" "Tuş takımı" + "Hoparlör" ", Açık" ", Kapalı" "Birleştir" "Yönet" "Arayanları yönetin" "Değiştir" + "Ses" "Not gönderildi" 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 1821556fa..516bcb757 100644 --- a/java/com/android/incallui/incall/impl/res/values-uk/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-uk/strings.xml @@ -1,33 +1,18 @@ - - "Відеодзвінок" "Утримувати" "Дод. виклик" "Без звуку" - "Завер. викл." "Клавіатура" + "Динамік" ", увімкнено" ", вимкнено" "Об’єднати" "Керувати" "Керувати абонентами" "Поміняти" + "Звук" "Нотатку надіслано" 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 fed0af6c2..53ba19031 100644 --- a/java/com/android/incallui/incall/impl/res/values-ur/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-ur/strings.xml @@ -1,33 +1,18 @@ - - "ویڈیو کال" "ہولڈ کریں" "کال شامل کریں" "خاموش کریں" - "کال ختم کریں" "کی پیڈ" + "اسپیکر" "، آن ہے" "، آف ہے" "ضم کریں" "نظم کریں" "کالرز کا نظم کریں" "تبادلہ کریں" + "آواز" "نوٹ بھیج دیا گیا" 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 7d6af27b2..881848965 100644 --- a/java/com/android/incallui/incall/impl/res/values-uz/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-uz/strings.xml @@ -1,33 +1,18 @@ - - "Video qo‘n." "Pauza" "Chaqiruv" "Ovozsiz" - "Tugatish" "Klaviatura" + "Karnay" ", yoniq" ", o‘chiq" - "Birlashtirish" + "Birlashtir." "Boshqarish" "Qo‘ng‘iroq qiluvchilarni boshqarish" "Almashish" + "Ovoz" "Qayd yuborildi" 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 42e320a7a..29f85efab 100644 --- a/java/com/android/incallui/incall/impl/res/values-vi/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-vi/strings.xml @@ -1,33 +1,18 @@ - - "Gọi điện video" "Giữ" "Thêm cuộc gọi" "Tắt tiếng" - "Kết thúc cuộc gọi" "Bàn phím" + "Loa" ", đang bật" ", đang tắt" "Hợp nhất" "Quản lý" "Quản lý người gọi" "Hoán đổi" + "Âm thanh" "Đã gửi ghi chú" diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml new file mode 100644 index 000000000..e73eb934c --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-w260dp-h520dp/dimens.xml @@ -0,0 +1,7 @@ + + + 16dp + 16dp + 64dp + 92dp + diff --git a/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml deleted file mode 100644 index 834ea2f30..000000000 --- a/java/com/android/incallui/incall/impl/res/values-w260dp-h580dp/dimens.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - 16dp - 16dp - 64dp - 92dp - diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml new file mode 100644 index 000000000..502ae72dc --- /dev/null +++ b/java/com/android/incallui/incall/impl/res/values-w300dp-h540dp/dimens.xml @@ -0,0 +1,5 @@ + + + 32dp + 32dp + diff --git a/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml b/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml deleted file mode 100644 index c7ac35efc..000000000 --- a/java/com/android/incallui/incall/impl/res/values-w300dp-h620dp/dimens.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - 32dp - 32dp - 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 f0cca9060..ec6404569 100644 --- a/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-zh-rCN/strings.xml @@ -1,33 +1,18 @@ - - "视频通话" "保持" "添加通话" "静音" - "结束通话" "拨号键盘" + "免提" ",已开启" ",已关闭" "合并" "管理" "管理来电者" "切换" + "声音" "已发送备注" 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 c38ef35a0..63cd6d8c8 100644 --- a/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-zh-rHK/strings.xml @@ -1,33 +1,18 @@ - - "視像通話" "保留" "新增通話" "靜音" - "結束通話" "小鍵盤" + "揚聲器" ",已開啟" ",已關閉" "合併" "管理" "管理來電者" "切換" + "音效" "已傳送筆記" 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 c04b8309e..be3103ba6 100644 --- a/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-zh-rTW/strings.xml @@ -1,33 +1,18 @@ - - "視訊通話" "保留" "新增通話" "靜音" - "結束通話" "撥號鍵盤" + "擴音模式" ",已開啟" ",已關閉" "合併" "管理" "管理來電者" "切換" + "音訊" "備註已送出" 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 a23a1d5e3..df3f79484 100644 --- a/java/com/android/incallui/incall/impl/res/values-zu/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values-zu/strings.xml @@ -1,33 +1,18 @@ - - "Ikholi yevidiyo ye-Hangout" "Bamba" "Engeza ikholi" "Thulisa" - "Qeda ikholi" "Ikhiphedi" + "Isipikha" ", ivuliwe" ", ivaliwe" "Hlanganisa" "Phatha" "Phatha abashayi" "Shintsha" + "Umsindo" "Inothi lithunyelwe" 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 2b30dfa53..054ca9687 100644 --- a/java/com/android/incallui/incall/impl/res/values/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values/strings.xml @@ -1,19 +1,4 @@ - Mute - - End call - Keypad + + Speaker + , is on @@ -60,9 +45,12 @@ [CHAR LIMIT=12] --> Swap + + Sound Note sent - + \ No newline at end of file diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java index 26dd3887a..2ae6a18e5 100644 --- a/java/com/android/incallui/incall/protocol/PrimaryCallState.java +++ b/java/com/android/incallui/incall/protocol/PrimaryCallState.java @@ -44,7 +44,6 @@ 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() { @@ -68,8 +67,7 @@ public class PrimaryCallState { 0, false /* isVoiceMailNumber */, false /* isRemotelyHeld */, - false /* isBusinessNumber */, - true /* supportsCallOnHold */); + false /* isBusinessNumber */); } public PrimaryCallState( @@ -92,8 +90,7 @@ public class PrimaryCallState { long connectTimeMillis, boolean isVoiceMailNumber, boolean isRemotelyHeld, - boolean isBusinessNumber, - boolean supportsCallOnHold) { + boolean isBusinessNumber) { this.state = state; this.isVideoCall = isVideoCall; this.sessionModificationState = sessionModificationState; @@ -114,7 +111,6 @@ 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 new file mode 100644 index 000000000..3d9f683a5 Binary files /dev/null and b/java/com/android/incallui/res/drawable-hdpi/img_conference.png differ diff --git a/java/com/android/incallui/res/drawable-mdpi/img_conference.png b/java/com/android/incallui/res/drawable-mdpi/img_conference.png new file mode 100644 index 000000000..0694dbd55 Binary files /dev/null and b/java/com/android/incallui/res/drawable-mdpi/img_conference.png differ diff --git a/java/com/android/incallui/res/drawable-xhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png new file mode 100644 index 000000000..b0dbcc2dc Binary files /dev/null and b/java/com/android/incallui/res/drawable-xhdpi/img_conference.png differ diff --git a/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png new file mode 100644 index 000000000..a8dba5ed0 Binary files /dev/null and b/java/com/android/incallui/res/drawable-xxhdpi/img_conference.png differ diff --git a/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png new file mode 100644 index 000000000..eb42b5552 Binary files /dev/null and b/java/com/android/incallui/res/drawable-xxxhdpi/img_conference.png differ diff --git a/java/com/android/incallui/res/drawable/img_conference_automirrored.xml b/java/com/android/incallui/res/drawable/img_conference_automirrored.xml new file mode 100644 index 000000000..78b2876bc --- /dev/null +++ b/java/com/android/incallui/res/drawable/img_conference_automirrored.xml @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/java/com/android/incallui/res/values-ca/strings.xml b/java/com/android/incallui/res/values-ca/strings.xml index ad34b00ef..5148db540 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 @@ "En una trucada" "S\'està continuant la trucada mitjançant dades mòbils…" "No s\'ha pogut canviar a la xarxa Wi-Fi" - "La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'hi apliquin càrrecs de dades estàndard." + "La videotrucada es mantindrà a la xarxa mòbil. És possible que s\'apliquin càrrecs de dades estàndard." "No ho tornis a mostrar" diff --git a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml b/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml deleted file mode 100644 index 2679653a7..000000000 --- a/java/com/android/incallui/res/values-mcc262-mnc01/strings.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - Ongoing WLAN Call - - Ongoing WLAN work call - - Incoming WLAN Call - - Incoming WLAN work call - \ 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 b04972ffd..38285015a 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 @@ "Chiquvchi Wi-Fi qo‘ng‘irog‘i" "Chiquvchi Wi-Fi ishchi qo‘ng‘irog‘i" "Kutmoqda" - "Kiruvchi chaqiruv" + "Kiruvchi qo‘ng‘iroq" "Suratga ega kiruvchi chaqiruv" "Xabarga ega kiruvchi chaqiruv" "Joylashuv axborotiga ega kiruvchi chaqiruv" diff --git a/java/com/android/incallui/res/values/dimens.xml b/java/com/android/incallui/res/values/dimens.xml index fb4934d01..18816f645 100644 --- a/java/com/android/incallui/res/values/dimens.xml +++ b/java/com/android/incallui/res/values/dimens.xml @@ -38,7 +38,7 @@ 0dp 20sp 50dp - 36dp + 36sp 10dp diff --git a/java/com/android/incallui/res/values/styles.xml b/java/com/android/incallui/res/values/styles.xml index 3c036c95f..68a38f0b2 100644 --- a/java/com/android/incallui/res/values/styles.xml +++ b/java/com/android/incallui/res/values/styles.xml @@ -78,13 +78,4 @@ @color/dialer_theme_color - - 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 3b3327d4f..ed29e78c4 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 @@ + android:scaleType="fitCenter"/> - - diff --git a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java b/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java deleted file mode 100644 index 5ab821be0..000000000 --- a/java/com/android/incallui/speakerbuttonlogic/SpeakerButtonInfo.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package com.android.incallui.speakerbuttonlogic; - -import android.support.annotation.DrawableRes; -import android.support.annotation.IntDef; -import android.support.annotation.StringRes; -import android.telecom.CallAudioState; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -/** Info about how a "Speaker" button should be displayed */ -public class SpeakerButtonInfo { - - // Testing note: most of this is exercised in ReturnToCallTest.java - - /** Preferred size for icons */ - @Retention(RetentionPolicy.SOURCE) - @IntDef({IconSize.SIZE_24_DP, IconSize.SIZE_36_DP}) - public @interface IconSize { - int SIZE_24_DP = 1; - int SIZE_36_DP = 2; - } - - @DrawableRes public final int icon; - @StringRes public final int contentDescription; - @StringRes public final int label; - public final boolean checkable; - public final boolean isChecked; - - public SpeakerButtonInfo(CallAudioState audioState, @IconSize int iconSize) { - if ((audioState.getSupportedRouteMask() & CallAudioState.ROUTE_BLUETOOTH) - == CallAudioState.ROUTE_BLUETOOTH) { - checkable = false; - isChecked = false; - label = R.string.incall_label_audio; - - if ((audioState.getRoute() & CallAudioState.ROUTE_BLUETOOTH) - == CallAudioState.ROUTE_BLUETOOTH) { - icon = - iconSize == IconSize.SIZE_36_DP - ? R.drawable.quantum_ic_bluetooth_audio_white_36 - : R.drawable.quantum_ic_bluetooth_audio_white_24; - contentDescription = R.string.incall_content_description_bluetooth; - } else if ((audioState.getRoute() & CallAudioState.ROUTE_SPEAKER) - == CallAudioState.ROUTE_SPEAKER) { - icon = - iconSize == IconSize.SIZE_36_DP - ? R.drawable.quantum_ic_volume_up_white_36 - : R.drawable.quantum_ic_volume_up_white_24; - contentDescription = R.string.incall_content_description_speaker; - } else if ((audioState.getRoute() & CallAudioState.ROUTE_WIRED_HEADSET) - == CallAudioState.ROUTE_WIRED_HEADSET) { - icon = - iconSize == IconSize.SIZE_36_DP - ? R.drawable.quantum_ic_headset_white_36 - : R.drawable.quantum_ic_headset_white_24; - contentDescription = R.string.incall_content_description_headset; - } else { - icon = - iconSize == IconSize.SIZE_36_DP - ? R.drawable.quantum_ic_phone_in_talk_white_36 - : R.drawable.quantum_ic_phone_in_talk_white_24; - contentDescription = R.string.incall_content_description_earpiece; - } - } else { - checkable = true; - isChecked = audioState.getRoute() == CallAudioState.ROUTE_SPEAKER; - label = R.string.incall_label_speaker; - icon = - iconSize == IconSize.SIZE_36_DP - ? R.drawable.quantum_ic_volume_up_white_36 - : R.drawable.quantum_ic_volume_up_white_24; - contentDescription = R.string.incall_content_description_speaker; - } - } -} diff --git a/java/com/android/incallui/video/impl/SpeakerButtonController.java b/java/com/android/incallui/video/impl/SpeakerButtonController.java index d98545feb..e12032abf 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.quantum_ic_phone_in_talk_white_36; + icon = R.drawable.ic_phone_audio_white_36dp; contentDescriptionResId = R.string.incall_content_description_earpiece; } } else { diff --git a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java index 489f72b7d..b7a960e35 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, mutePreviewOverlay}; + return new View[] {previewRoot}; } private int getOffsetTop(View view) { @@ -644,6 +644,12 @@ 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); @@ -827,9 +833,6 @@ public class SurfaceViewVideoCallFragment extends Fragment inCallButtonUiDelegate.setAudioRoute(audioRoute); } - @Override - public void onAudioRouteSelectorDismiss() {} - @Override public void setPrimary(@NonNull PrimaryInfo primaryInfo) { LogUtil.i("SurfaceViewVideoCallFragment.setPrimary", primaryInfo.toString()); diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java index 6e45f928a..8e2f5aefd 100644 --- a/java/com/android/incallui/video/impl/VideoCallFragment.java +++ b/java/com/android/incallui/video/impl/VideoCallFragment.java @@ -59,7 +59,6 @@ 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; @@ -666,14 +665,22 @@ 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. */ @@ -845,9 +852,6 @@ public class VideoCallFragment extends Fragment inCallButtonUiDelegate.setAudioRoute(audioRoute); } - @Override - public void onAudioRouteSelectorDismiss() {} - @Override public void setPrimary(@NonNull PrimaryInfo primaryInfo) { LogUtil.i("VideoCallFragment.setPrimary", primaryInfo.toString()); @@ -1041,6 +1045,7 @@ public class VideoCallFragment extends Fragment params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); previewTextureView.setLayoutParams(params); previewTextureView.setOutlineProvider(circleOutlineProvider); + updatePreviewVideoScaling(); updateOverlayBackground(); contactGridManager.setIsMiddleRowVisible(false); updateMutePreviewOverlayVisibility(); @@ -1048,9 +1053,6 @@ 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 1a2bc2429..c67246675 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 --> - - - + + - + 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 e9e7f9e8b..a53fb6404 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 @@ 72dp 88dp 88dp - 116dp + 104dp 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 d0a5e409a..6485735e2 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 --> - 96dp + 92dp 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 f60dbd1d6..a809708df 100644 --- a/java/com/android/incallui/video/impl/res/values-land/styles.xml +++ b/java/com/android/incallui/video/impl/res/values-land/styles.xml @@ -16,8 +16,7 @@ -->