From 10b34a5ebf12e97ecba0caf3c8e30b476b038a96 Mon Sep 17 00:00:00 2001 From: Eric Erfanian Date: Thu, 4 May 2017 08:23:17 -0700 Subject: Update Dialer to V10 RC16 This release was created following the instructions at: go/dialer-aosp-release Subsequent dialer releases will follow as O bugs are fixed, until we reach our final RC. Version: 10 Candidate: RC16 Branch: dialer-android_release_branch/153304843.1 dialer-android/dialer-android_20170416.00/dialer-android_20170416.00_RC16 This release contains the following bug fixes since RC00: Bug: 37324705 35304403 36067503 35304446 33203808 37280992 37346084 35766990 37481880 37424493 36470282 37347691 37519015 37168472 35805360 37545472 27704934 36515614 35766990 37577470 34739750 35801628 36788693 35264204 36708536 37628370 36904650 37314436 37642171 37530847 37637799 37666625 37548549 37648036 37636412 37323529 37630507 35919141 37198343 37548572 36178218 37640315 37663896 37720467 37275944 37710497 31634477 37744796 37348506 37744796 37568534 37672424 34872683 34873026 37681461 34873295 37748373 37526812 37618638 37663896 37536088 37727455 37165687 36651204 36900708 37323529 36902926 37256480 37328353 37432034 37436952 34093562 37720889 37321935 37780300 37781115 37755902 36588206 34258266 37290464 37698062 37618638 37473004 37432034 37918676 37870494 37722091 Test: make, on device Change-Id: I99e1a484ccd578c1f8a13e7a6a4b4952f0791297 --- .../android/contacts/common/AndroidManifest.xml | 8 - .../contacts/common/dialog/CallSubjectDialog.java | 6 +- .../contacts/common/list/ContactListItemView.java | 210 +++++----- .../common/list/PhoneNumberListAdapter.java | 89 +++- .../common/list/PhoneNumberPickerFragment.java | 46 ++- .../contacts/common/model/ContactLoader.java | 26 +- .../common/res/drawable/ic_call_and_share.xml | 22 + .../common/res/drawable/ic_search_video_call.xml | 3 +- .../contacts/common/res/values-af/strings.xml | 5 +- .../contacts/common/res/values-am/strings.xml | 5 +- .../contacts/common/res/values-ar/strings.xml | 5 +- .../contacts/common/res/values-az/strings.xml | 5 +- .../common/res/values-b+sr+Latn/strings.xml | 5 +- .../contacts/common/res/values-be/strings.xml | 5 +- .../contacts/common/res/values-bg/strings.xml | 5 +- .../contacts/common/res/values-bn/strings.xml | 5 +- .../contacts/common/res/values-bs/strings.xml | 5 +- .../contacts/common/res/values-ca/strings.xml | 5 +- .../contacts/common/res/values-cs/strings.xml | 5 +- .../contacts/common/res/values-da/strings.xml | 5 +- .../contacts/common/res/values-de/strings.xml | 5 +- .../contacts/common/res/values-el/strings.xml | 5 +- .../contacts/common/res/values-en-rAU/strings.xml | 5 +- .../contacts/common/res/values-en-rGB/strings.xml | 5 +- .../contacts/common/res/values-en-rIN/strings.xml | 5 +- .../contacts/common/res/values-es-rUS/strings.xml | 5 +- .../contacts/common/res/values-es/strings.xml | 5 +- .../contacts/common/res/values-et/strings.xml | 5 +- .../contacts/common/res/values-eu/strings.xml | 5 +- .../contacts/common/res/values-fa/strings.xml | 5 +- .../contacts/common/res/values-fi/strings.xml | 5 +- .../contacts/common/res/values-fr-rCA/strings.xml | 5 +- .../contacts/common/res/values-fr/strings.xml | 5 +- .../contacts/common/res/values-gl/strings.xml | 5 +- .../contacts/common/res/values-gu/strings.xml | 5 +- .../contacts/common/res/values-hi/strings.xml | 5 +- .../contacts/common/res/values-hr/strings.xml | 5 +- .../contacts/common/res/values-hu/strings.xml | 5 +- .../contacts/common/res/values-hy/strings.xml | 5 +- .../contacts/common/res/values-in/strings.xml | 5 +- .../contacts/common/res/values-is/strings.xml | 5 +- .../contacts/common/res/values-it/strings.xml | 5 +- .../contacts/common/res/values-iw/strings.xml | 5 +- .../contacts/common/res/values-ja/strings.xml | 5 +- .../contacts/common/res/values-ka/strings.xml | 5 +- .../contacts/common/res/values-kk/strings.xml | 5 +- .../contacts/common/res/values-km/strings.xml | 5 +- .../contacts/common/res/values-kn/strings.xml | 5 +- .../contacts/common/res/values-ko/strings.xml | 5 +- .../contacts/common/res/values-ky/strings.xml | 5 +- .../contacts/common/res/values-lo/strings.xml | 5 +- .../contacts/common/res/values-lt/strings.xml | 5 +- .../contacts/common/res/values-lv/strings.xml | 5 +- .../contacts/common/res/values-mk/strings.xml | 5 +- .../contacts/common/res/values-ml/strings.xml | 5 +- .../contacts/common/res/values-mn/strings.xml | 5 +- .../contacts/common/res/values-mr/strings.xml | 5 +- .../contacts/common/res/values-ms/strings.xml | 5 +- .../contacts/common/res/values-my/strings.xml | 5 +- .../contacts/common/res/values-nb/strings.xml | 5 +- .../contacts/common/res/values-ne/strings.xml | 5 +- .../contacts/common/res/values-nl/strings.xml | 5 +- .../contacts/common/res/values-no/strings.xml | 5 +- .../contacts/common/res/values-pa/strings.xml | 5 +- .../contacts/common/res/values-pl/strings.xml | 5 +- .../contacts/common/res/values-pt-rBR/strings.xml | 5 +- .../contacts/common/res/values-pt-rPT/strings.xml | 5 +- .../contacts/common/res/values-pt/strings.xml | 5 +- .../contacts/common/res/values-ro/strings.xml | 5 +- .../contacts/common/res/values-ru/strings.xml | 5 +- .../contacts/common/res/values-si/strings.xml | 5 +- .../contacts/common/res/values-sk/strings.xml | 5 +- .../contacts/common/res/values-sl/strings.xml | 5 +- .../contacts/common/res/values-sq/strings.xml | 5 +- .../contacts/common/res/values-sr/strings.xml | 5 +- .../contacts/common/res/values-sv/strings.xml | 5 +- .../contacts/common/res/values-sw/strings.xml | 5 +- .../contacts/common/res/values-ta/strings.xml | 5 +- .../contacts/common/res/values-te/strings.xml | 5 +- .../contacts/common/res/values-th/strings.xml | 5 +- .../contacts/common/res/values-tl/strings.xml | 5 +- .../contacts/common/res/values-tr/strings.xml | 5 +- .../contacts/common/res/values-uk/strings.xml | 5 +- .../contacts/common/res/values-ur/strings.xml | 5 +- .../contacts/common/res/values-uz/strings.xml | 5 +- .../contacts/common/res/values-vi/strings.xml | 5 +- .../contacts/common/res/values-zh-rCN/strings.xml | 5 +- .../contacts/common/res/values-zh-rHK/strings.xml | 5 +- .../contacts/common/res/values-zh-rTW/strings.xml | 5 +- .../contacts/common/res/values-zu/strings.xml | 5 +- .../android/contacts/common/res/values/strings.xml | 9 +- .../widget/FloatingActionButtonController.java | 8 +- java/com/android/dialer/app/AndroidManifest.xml | 2 +- java/com/android/dialer/app/DialtactsActivity.java | 69 ++-- .../app/calllog/BlockReportSpamListener.java | 5 +- .../android/dialer/app/calllog/CallLogAdapter.java | 29 +- .../dialer/app/calllog/CallLogAsyncTaskUtil.java | 16 +- .../dialer/app/calllog/CallLogFragment.java | 5 +- .../app/calllog/CallLogListItemViewHolder.java | 43 +- .../calllog/CallLogNotificationsQueryHelper.java | 2 +- .../app/calllog/DefaultVoicemailNotifier.java | 23 +- .../calllog/VisualVoicemailCallLogFragment.java | 19 +- .../dialer/app/contactinfo/ContactInfoCache.java | 22 +- .../dialer/app/contactinfo/ContactPhotoLoader.java | 2 +- .../dialer/app/dialpad/DialpadFragment.java | 7 +- .../dialer/app/dialpad/SmartDialCursorLoader.java | 41 +- .../app/filterednumber/BlockedNumbersAdapter.java | 2 +- .../filterednumber/ViewNumbersToImportAdapter.java | 2 +- .../dialer/app/list/BlockedListSearchAdapter.java | 2 +- .../dialer/app/list/BlockedListSearchFragment.java | 2 +- .../app/list/DialerPhoneNumberListAdapter.java | 12 +- .../app/manifests/activities/AndroidManifest.xml | 5 + .../app/res/layout/call_log_list_item_actions.xml | 2 +- .../app/res/layout/phone_favorite_tile_view.xml | 171 ++++---- .../dialer/app/res/layout/search_edittext.xml | 2 + .../android/dialer/app/res/values-af/strings.xml | 2 + .../android/dialer/app/res/values-am/strings.xml | 2 + .../android/dialer/app/res/values-ar/strings.xml | 2 + .../android/dialer/app/res/values-az/strings.xml | 2 + .../dialer/app/res/values-b+sr+Latn/strings.xml | 2 + .../android/dialer/app/res/values-be/strings.xml | 2 + .../android/dialer/app/res/values-bg/strings.xml | 2 + .../android/dialer/app/res/values-bn/strings.xml | 2 + .../android/dialer/app/res/values-bs/strings.xml | 2 + .../android/dialer/app/res/values-ca/strings.xml | 2 + .../android/dialer/app/res/values-cs/strings.xml | 2 + .../android/dialer/app/res/values-da/strings.xml | 2 + .../android/dialer/app/res/values-de/strings.xml | 2 + .../android/dialer/app/res/values-el/strings.xml | 2 + .../dialer/app/res/values-en-rAU/strings.xml | 2 + .../dialer/app/res/values-en-rGB/strings.xml | 2 + .../dialer/app/res/values-en-rIN/strings.xml | 2 + .../dialer/app/res/values-es-rUS/strings.xml | 2 + .../android/dialer/app/res/values-es/strings.xml | 2 + .../android/dialer/app/res/values-et/strings.xml | 2 + .../android/dialer/app/res/values-eu/strings.xml | 2 + .../android/dialer/app/res/values-fa/strings.xml | 2 + .../android/dialer/app/res/values-fi/strings.xml | 2 + .../dialer/app/res/values-fr-rCA/strings.xml | 2 + .../android/dialer/app/res/values-fr/strings.xml | 2 + .../android/dialer/app/res/values-gl/strings.xml | 2 + .../android/dialer/app/res/values-gu/strings.xml | 2 + .../android/dialer/app/res/values-hi/strings.xml | 2 + .../android/dialer/app/res/values-hr/strings.xml | 2 + .../android/dialer/app/res/values-hu/strings.xml | 2 + .../android/dialer/app/res/values-hy/strings.xml | 2 + .../android/dialer/app/res/values-in/strings.xml | 2 + .../android/dialer/app/res/values-is/strings.xml | 2 + .../android/dialer/app/res/values-it/strings.xml | 2 + .../android/dialer/app/res/values-iw/strings.xml | 2 + .../android/dialer/app/res/values-ja/strings.xml | 2 + .../android/dialer/app/res/values-ka/strings.xml | 2 + .../android/dialer/app/res/values-kk/strings.xml | 2 + .../android/dialer/app/res/values-km/strings.xml | 2 + .../android/dialer/app/res/values-kn/strings.xml | 2 + .../android/dialer/app/res/values-ko/strings.xml | 2 + .../android/dialer/app/res/values-ky/strings.xml | 2 + .../android/dialer/app/res/values-lo/strings.xml | 2 + .../android/dialer/app/res/values-lt/strings.xml | 2 + .../android/dialer/app/res/values-lv/strings.xml | 2 + .../android/dialer/app/res/values-mk/strings.xml | 2 + .../android/dialer/app/res/values-ml/strings.xml | 2 + .../android/dialer/app/res/values-mn/strings.xml | 2 + .../android/dialer/app/res/values-mr/strings.xml | 2 + .../android/dialer/app/res/values-ms/strings.xml | 2 + .../android/dialer/app/res/values-my/strings.xml | 2 + .../android/dialer/app/res/values-nb/strings.xml | 2 + .../android/dialer/app/res/values-ne/strings.xml | 2 + .../android/dialer/app/res/values-nl/strings.xml | 2 + .../android/dialer/app/res/values-no/strings.xml | 2 + .../android/dialer/app/res/values-pa/strings.xml | 2 + .../android/dialer/app/res/values-pl/strings.xml | 2 + .../dialer/app/res/values-pt-rBR/strings.xml | 2 + .../dialer/app/res/values-pt-rPT/strings.xml | 2 + .../android/dialer/app/res/values-pt/strings.xml | 2 + .../android/dialer/app/res/values-ro/strings.xml | 2 + .../android/dialer/app/res/values-ru/strings.xml | 2 + .../android/dialer/app/res/values-si/strings.xml | 2 + .../android/dialer/app/res/values-sk/strings.xml | 2 + .../android/dialer/app/res/values-sl/strings.xml | 2 + .../android/dialer/app/res/values-sq/strings.xml | 2 + .../android/dialer/app/res/values-sr/strings.xml | 2 + .../android/dialer/app/res/values-sv/strings.xml | 2 + .../android/dialer/app/res/values-sw/strings.xml | 2 + .../android/dialer/app/res/values-ta/strings.xml | 2 + .../android/dialer/app/res/values-te/strings.xml | 2 + .../android/dialer/app/res/values-th/strings.xml | 2 + .../android/dialer/app/res/values-tl/strings.xml | 2 + .../android/dialer/app/res/values-tr/strings.xml | 2 + .../android/dialer/app/res/values-uk/strings.xml | 2 + .../android/dialer/app/res/values-ur/strings.xml | 2 + .../android/dialer/app/res/values-uz/strings.xml | 2 + .../android/dialer/app/res/values-vi/strings.xml | 2 + .../dialer/app/res/values-zh-rCN/strings.xml | 2 + .../dialer/app/res/values-zh-rHK/strings.xml | 2 + .../dialer/app/res/values-zh-rTW/strings.xml | 2 + .../android/dialer/app/res/values-zu/strings.xml | 2 + java/com/android/dialer/app/res/values/strings.xml | 3 + java/com/android/dialer/app/res/values/styles.xml | 2 + .../app/settings/DialerSettingsActivity.java | 61 ++- .../settings/PhoneAccountSelectionFragment.java | 126 ++++++ .../LegacyVoicemailNotificationReceiver.java | 53 ++- .../app/voicemail/VoicemailPlaybackPresenter.java | 3 + .../dialer/app/widget/ActionBarController.java | 29 +- .../dialer/app/widget/SearchEditTextLayout.java | 9 +- .../android/dialer/backup/DialerBackupAgent.java | 5 +- .../dialer/binary/common/DialerApplication.java | 3 + .../blocking/FilteredNumberAsyncQueryHandler.java | 4 +- .../dialer/blocking/FilteredNumberProvider.java | 7 +- .../dialer/blocking/FilteredNumbersUtil.java | 52 +-- .../dialer/callcomposer/CallComposerActivity.java | 39 +- .../android/dialer/calldetails/AndroidManifest.xml | 2 +- .../dialer/calldetails/CallDetailsActivity.java | 23 +- .../calldetails/CallDetailsEntryViewHolder.java | 16 +- .../calldetails/CallDetailsHeaderViewHolder.java | 13 +- .../calldetails/res/layout/call_details_entry.xml | 12 +- .../calldetails/res/layout/ec_data_container.xml | 7 +- .../dialer/calldetails/res/values/dimens.xml | 1 - .../dialer/callintent/CallIntentParser.java | 25 +- .../dialer/calllogutils/CallEntryFormatter.java | 74 +++- .../dialer/calllogutils/res/values-af/strings.xml | 18 +- .../dialer/calllogutils/res/values-am/strings.xml | 18 +- .../dialer/calllogutils/res/values-ar/strings.xml | 18 +- .../dialer/calllogutils/res/values-az/strings.xml | 18 +- .../calllogutils/res/values-b+sr+Latn/strings.xml | 18 +- .../dialer/calllogutils/res/values-be/strings.xml | 18 +- .../dialer/calllogutils/res/values-bg/strings.xml | 18 +- .../dialer/calllogutils/res/values-bn/strings.xml | 18 +- .../dialer/calllogutils/res/values-bs/strings.xml | 18 +- .../dialer/calllogutils/res/values-ca/strings.xml | 18 +- .../dialer/calllogutils/res/values-cs/strings.xml | 18 +- .../dialer/calllogutils/res/values-da/strings.xml | 18 +- .../dialer/calllogutils/res/values-de/strings.xml | 18 +- .../dialer/calllogutils/res/values-el/strings.xml | 18 +- .../calllogutils/res/values-en-rAU/strings.xml | 18 +- .../calllogutils/res/values-en-rGB/strings.xml | 18 +- .../calllogutils/res/values-en-rIN/strings.xml | 18 +- .../calllogutils/res/values-es-rUS/strings.xml | 18 +- .../dialer/calllogutils/res/values-es/strings.xml | 18 +- .../dialer/calllogutils/res/values-et/strings.xml | 18 +- .../dialer/calllogutils/res/values-eu/strings.xml | 18 +- .../dialer/calllogutils/res/values-fa/strings.xml | 18 +- .../dialer/calllogutils/res/values-fi/strings.xml | 18 +- .../calllogutils/res/values-fr-rCA/strings.xml | 18 +- .../dialer/calllogutils/res/values-fr/strings.xml | 18 +- .../dialer/calllogutils/res/values-gl/strings.xml | 18 +- .../dialer/calllogutils/res/values-gu/strings.xml | 18 +- .../dialer/calllogutils/res/values-hi/strings.xml | 18 +- .../dialer/calllogutils/res/values-hr/strings.xml | 18 +- .../dialer/calllogutils/res/values-hu/strings.xml | 18 +- .../dialer/calllogutils/res/values-hy/strings.xml | 18 +- .../dialer/calllogutils/res/values-in/strings.xml | 18 +- .../dialer/calllogutils/res/values-is/strings.xml | 18 +- .../dialer/calllogutils/res/values-it/strings.xml | 18 +- .../dialer/calllogutils/res/values-iw/strings.xml | 18 +- .../dialer/calllogutils/res/values-ja/strings.xml | 18 +- .../dialer/calllogutils/res/values-ka/strings.xml | 18 +- .../dialer/calllogutils/res/values-kk/strings.xml | 18 +- .../dialer/calllogutils/res/values-km/strings.xml | 18 +- .../dialer/calllogutils/res/values-kn/strings.xml | 18 +- .../dialer/calllogutils/res/values-ko/strings.xml | 18 +- .../dialer/calllogutils/res/values-ky/strings.xml | 18 +- .../dialer/calllogutils/res/values-lo/strings.xml | 18 +- .../dialer/calllogutils/res/values-lt/strings.xml | 18 +- .../dialer/calllogutils/res/values-lv/strings.xml | 18 +- .../dialer/calllogutils/res/values-mk/strings.xml | 18 +- .../dialer/calllogutils/res/values-ml/strings.xml | 18 +- .../dialer/calllogutils/res/values-mn/strings.xml | 18 +- .../dialer/calllogutils/res/values-mr/strings.xml | 18 +- .../dialer/calllogutils/res/values-ms/strings.xml | 18 +- .../dialer/calllogutils/res/values-my/strings.xml | 18 +- .../dialer/calllogutils/res/values-nb/strings.xml | 18 +- .../dialer/calllogutils/res/values-ne/strings.xml | 18 +- .../dialer/calllogutils/res/values-nl/strings.xml | 18 +- .../dialer/calllogutils/res/values-no/strings.xml | 18 +- .../dialer/calllogutils/res/values-pa/strings.xml | 18 +- .../dialer/calllogutils/res/values-pl/strings.xml | 18 +- .../calllogutils/res/values-pt-rBR/strings.xml | 18 +- .../calllogutils/res/values-pt-rPT/strings.xml | 18 +- .../dialer/calllogutils/res/values-pt/strings.xml | 18 +- .../dialer/calllogutils/res/values-ro/strings.xml | 18 +- .../dialer/calllogutils/res/values-ru/strings.xml | 18 +- .../dialer/calllogutils/res/values-si/strings.xml | 18 +- .../dialer/calllogutils/res/values-sk/strings.xml | 18 +- .../dialer/calllogutils/res/values-sl/strings.xml | 18 +- .../dialer/calllogutils/res/values-sq/strings.xml | 18 +- .../dialer/calllogutils/res/values-sr/strings.xml | 18 +- .../dialer/calllogutils/res/values-sv/strings.xml | 18 +- .../dialer/calllogutils/res/values-sw/strings.xml | 18 +- .../dialer/calllogutils/res/values-ta/strings.xml | 18 +- .../dialer/calllogutils/res/values-te/strings.xml | 18 +- .../dialer/calllogutils/res/values-th/strings.xml | 18 +- .../dialer/calllogutils/res/values-tl/strings.xml | 18 +- .../dialer/calllogutils/res/values-tr/strings.xml | 18 +- .../dialer/calllogutils/res/values-uk/strings.xml | 18 +- .../dialer/calllogutils/res/values-ur/strings.xml | 18 +- .../dialer/calllogutils/res/values-uz/strings.xml | 18 +- .../dialer/calllogutils/res/values-vi/strings.xml | 18 +- .../calllogutils/res/values-zh-rCN/strings.xml | 18 +- .../calllogutils/res/values-zh-rHK/strings.xml | 18 +- .../calllogutils/res/values-zh-rTW/strings.xml | 18 +- .../dialer/calllogutils/res/values-zu/strings.xml | 18 +- .../dialer/calllogutils/res/values/strings.xml | 58 ++- .../android/dialer/constants/ScheduledJobIds.java | 2 + .../dialer/database/DialerDatabaseHelper.java | 10 +- .../dialer/enrichedcall/EnrichedCallManager.java | 28 +- .../enrichedcall/stub/EnrichedCallManagerStub.java | 19 +- .../android/dialer/location/AndroidManifest.xml | 22 + .../android/dialer/location/CountryDetector.java | 262 ++++++++++++ java/com/android/dialer/location/GeoUtil.java | 47 +++ .../android/dialer/logging/contact_source.proto | 1 - .../android/dialer/logging/dialer_impression.proto | 5 +- .../android/dialer/logging/interaction_event.proto | 1 - .../dialer/logging/reporting_location.proto | 1 - java/com/android/dialer/logging/screen_event.proto | 1 - .../dialer/notification/AndroidManifest.xml | 16 +- .../notification/NotificationChannelManager.java | 141 ++++++- .../notification/PackageUpdatedReceiver.java | 37 ++ .../dialer/notification/res/values-af/strings.xml | 3 +- .../dialer/notification/res/values-am/strings.xml | 3 +- .../dialer/notification/res/values-ar/strings.xml | 3 +- .../dialer/notification/res/values-az/strings.xml | 3 +- .../notification/res/values-b+sr+Latn/strings.xml | 3 +- .../dialer/notification/res/values-be/strings.xml | 3 +- .../dialer/notification/res/values-bg/strings.xml | 3 +- .../dialer/notification/res/values-bn/strings.xml | 3 +- .../dialer/notification/res/values-bs/strings.xml | 3 +- .../dialer/notification/res/values-ca/strings.xml | 3 +- .../dialer/notification/res/values-cs/strings.xml | 3 +- .../dialer/notification/res/values-da/strings.xml | 3 +- .../dialer/notification/res/values-de/strings.xml | 3 +- .../dialer/notification/res/values-el/strings.xml | 3 +- .../notification/res/values-en-rAU/strings.xml | 3 +- .../notification/res/values-en-rGB/strings.xml | 3 +- .../notification/res/values-en-rIN/strings.xml | 3 +- .../notification/res/values-es-rUS/strings.xml | 3 +- .../dialer/notification/res/values-es/strings.xml | 3 +- .../dialer/notification/res/values-et/strings.xml | 3 +- .../dialer/notification/res/values-eu/strings.xml | 3 +- .../dialer/notification/res/values-fa/strings.xml | 3 +- .../dialer/notification/res/values-fi/strings.xml | 3 +- .../notification/res/values-fr-rCA/strings.xml | 3 +- .../dialer/notification/res/values-fr/strings.xml | 3 +- .../dialer/notification/res/values-gl/strings.xml | 3 +- .../dialer/notification/res/values-gu/strings.xml | 3 +- .../dialer/notification/res/values-hi/strings.xml | 3 +- .../dialer/notification/res/values-hr/strings.xml | 3 +- .../dialer/notification/res/values-hu/strings.xml | 3 +- .../dialer/notification/res/values-hy/strings.xml | 3 +- .../dialer/notification/res/values-in/strings.xml | 3 +- .../dialer/notification/res/values-is/strings.xml | 3 +- .../dialer/notification/res/values-it/strings.xml | 3 +- .../dialer/notification/res/values-iw/strings.xml | 3 +- .../dialer/notification/res/values-ja/strings.xml | 3 +- .../dialer/notification/res/values-ka/strings.xml | 3 +- .../dialer/notification/res/values-kk/strings.xml | 3 +- .../dialer/notification/res/values-km/strings.xml | 3 +- .../dialer/notification/res/values-kn/strings.xml | 3 +- .../dialer/notification/res/values-ko/strings.xml | 3 +- .../dialer/notification/res/values-ky/strings.xml | 3 +- .../dialer/notification/res/values-lo/strings.xml | 3 +- .../dialer/notification/res/values-lt/strings.xml | 3 +- .../dialer/notification/res/values-lv/strings.xml | 3 +- .../dialer/notification/res/values-mk/strings.xml | 3 +- .../dialer/notification/res/values-ml/strings.xml | 3 +- .../dialer/notification/res/values-mn/strings.xml | 3 +- .../dialer/notification/res/values-mr/strings.xml | 3 +- .../dialer/notification/res/values-ms/strings.xml | 3 +- .../dialer/notification/res/values-my/strings.xml | 3 +- .../dialer/notification/res/values-nb/strings.xml | 3 +- .../dialer/notification/res/values-ne/strings.xml | 3 +- .../dialer/notification/res/values-nl/strings.xml | 3 +- .../dialer/notification/res/values-no/strings.xml | 3 +- .../dialer/notification/res/values-pa/strings.xml | 3 +- .../dialer/notification/res/values-pl/strings.xml | 3 +- .../notification/res/values-pt-rBR/strings.xml | 3 +- .../notification/res/values-pt-rPT/strings.xml | 3 +- .../dialer/notification/res/values-pt/strings.xml | 3 +- .../dialer/notification/res/values-ro/strings.xml | 3 +- .../dialer/notification/res/values-ru/strings.xml | 3 +- .../dialer/notification/res/values-si/strings.xml | 3 +- .../dialer/notification/res/values-sk/strings.xml | 3 +- .../dialer/notification/res/values-sl/strings.xml | 3 +- .../dialer/notification/res/values-sq/strings.xml | 3 +- .../dialer/notification/res/values-sr/strings.xml | 3 +- .../dialer/notification/res/values-sv/strings.xml | 3 +- .../dialer/notification/res/values-sw/strings.xml | 3 +- .../dialer/notification/res/values-ta/strings.xml | 3 +- .../dialer/notification/res/values-te/strings.xml | 3 +- .../dialer/notification/res/values-th/strings.xml | 3 +- .../dialer/notification/res/values-tl/strings.xml | 3 +- .../dialer/notification/res/values-tr/strings.xml | 3 +- .../dialer/notification/res/values-uk/strings.xml | 3 +- .../dialer/notification/res/values-ur/strings.xml | 3 +- .../dialer/notification/res/values-uz/strings.xml | 3 +- .../dialer/notification/res/values-vi/strings.xml | 3 +- .../notification/res/values-zh-rCN/strings.xml | 3 +- .../notification/res/values-zh-rHK/strings.xml | 3 +- .../notification/res/values-zh-rTW/strings.xml | 3 +- .../dialer/notification/res/values-zu/strings.xml | 3 +- .../android/dialer/notification/res/values/ids.xml | 1 - .../dialer/notification/res/values/strings.xml | 3 +- .../android/dialer/oem/CequintCallerIdManager.java | 2 +- .../persistentlog/PersistentLogFileHandler.java | 13 +- .../dialer/phonenumbercache/ContactInfo.java | 5 +- .../android/dialer/postcall/AndroidManifest.xml | 2 +- java/com/android/dialer/postcall/PostCall.java | 38 +- .../android/dialer/postcall/PostCallActivity.java | 19 +- .../dialer/postcall/res/values-af/strings.xml | 2 + .../dialer/postcall/res/values-am/strings.xml | 2 + .../dialer/postcall/res/values-ar/strings.xml | 2 + .../dialer/postcall/res/values-az/strings.xml | 2 + .../postcall/res/values-b+sr+Latn/strings.xml | 2 + .../dialer/postcall/res/values-be/strings.xml | 2 + .../dialer/postcall/res/values-bg/strings.xml | 2 + .../dialer/postcall/res/values-bn/strings.xml | 2 + .../dialer/postcall/res/values-bs/strings.xml | 2 + .../dialer/postcall/res/values-ca/strings.xml | 2 + .../dialer/postcall/res/values-cs/strings.xml | 2 + .../dialer/postcall/res/values-da/strings.xml | 2 + .../dialer/postcall/res/values-de/strings.xml | 2 + .../dialer/postcall/res/values-el/strings.xml | 2 + .../dialer/postcall/res/values-en-rAU/strings.xml | 2 + .../dialer/postcall/res/values-en-rGB/strings.xml | 2 + .../dialer/postcall/res/values-en-rIN/strings.xml | 2 + .../dialer/postcall/res/values-es-rUS/strings.xml | 2 + .../dialer/postcall/res/values-es/strings.xml | 2 + .../dialer/postcall/res/values-et/strings.xml | 2 + .../dialer/postcall/res/values-eu/strings.xml | 2 + .../dialer/postcall/res/values-fa/strings.xml | 2 + .../dialer/postcall/res/values-fi/strings.xml | 2 + .../dialer/postcall/res/values-fr-rCA/strings.xml | 2 + .../dialer/postcall/res/values-fr/strings.xml | 2 + .../dialer/postcall/res/values-gl/strings.xml | 2 + .../dialer/postcall/res/values-gu/strings.xml | 2 + .../dialer/postcall/res/values-hi/strings.xml | 2 + .../dialer/postcall/res/values-hr/strings.xml | 2 + .../dialer/postcall/res/values-hu/strings.xml | 2 + .../dialer/postcall/res/values-hy/strings.xml | 2 + .../dialer/postcall/res/values-in/strings.xml | 2 + .../dialer/postcall/res/values-is/strings.xml | 2 + .../dialer/postcall/res/values-it/strings.xml | 2 + .../dialer/postcall/res/values-iw/strings.xml | 2 + .../dialer/postcall/res/values-ja/strings.xml | 2 + .../dialer/postcall/res/values-ka/strings.xml | 2 + .../dialer/postcall/res/values-kk/strings.xml | 2 + .../dialer/postcall/res/values-km/strings.xml | 2 + .../dialer/postcall/res/values-kn/strings.xml | 2 + .../dialer/postcall/res/values-ko/strings.xml | 2 + .../dialer/postcall/res/values-ky/strings.xml | 2 + .../dialer/postcall/res/values-lo/strings.xml | 2 + .../dialer/postcall/res/values-lt/strings.xml | 2 + .../dialer/postcall/res/values-lv/strings.xml | 2 + .../dialer/postcall/res/values-mk/strings.xml | 2 + .../dialer/postcall/res/values-ml/strings.xml | 2 + .../dialer/postcall/res/values-mn/strings.xml | 2 + .../dialer/postcall/res/values-mr/strings.xml | 2 + .../dialer/postcall/res/values-ms/strings.xml | 2 + .../dialer/postcall/res/values-my/strings.xml | 2 + .../dialer/postcall/res/values-nb/strings.xml | 2 + .../dialer/postcall/res/values-ne/strings.xml | 2 + .../dialer/postcall/res/values-nl/strings.xml | 2 + .../dialer/postcall/res/values-no/strings.xml | 2 + .../dialer/postcall/res/values-pa/strings.xml | 2 + .../dialer/postcall/res/values-pl/strings.xml | 2 + .../dialer/postcall/res/values-pt-rBR/strings.xml | 2 + .../dialer/postcall/res/values-pt-rPT/strings.xml | 2 + .../dialer/postcall/res/values-pt/strings.xml | 2 + .../dialer/postcall/res/values-ro/strings.xml | 2 + .../dialer/postcall/res/values-ru/strings.xml | 2 + .../dialer/postcall/res/values-si/strings.xml | 2 + .../dialer/postcall/res/values-sk/strings.xml | 2 + .../dialer/postcall/res/values-sl/strings.xml | 2 + .../dialer/postcall/res/values-sq/strings.xml | 2 + .../dialer/postcall/res/values-sr/strings.xml | 2 + .../dialer/postcall/res/values-sv/strings.xml | 2 + .../dialer/postcall/res/values-sw/strings.xml | 2 + .../dialer/postcall/res/values-ta/strings.xml | 2 + .../dialer/postcall/res/values-te/strings.xml | 2 + .../dialer/postcall/res/values-th/strings.xml | 2 + .../dialer/postcall/res/values-tl/strings.xml | 2 + .../dialer/postcall/res/values-tr/strings.xml | 2 + .../dialer/postcall/res/values-uk/strings.xml | 2 + .../dialer/postcall/res/values-ur/strings.xml | 2 + .../dialer/postcall/res/values-uz/strings.xml | 2 + .../dialer/postcall/res/values-vi/strings.xml | 2 + .../dialer/postcall/res/values-zh-rCN/strings.xml | 2 + .../dialer/postcall/res/values-zh-rHK/strings.xml | 2 + .../dialer/postcall/res/values-zh-rTW/strings.xml | 2 + .../dialer/postcall/res/values-zu/strings.xml | 2 + .../android/dialer/postcall/res/values/strings.xml | 2 + java/com/android/dialer/protos/ProtoParsers.java | 188 +++++++++ .../android/dialer/shortcuts/AndroidManifest.xml | 2 +- .../com/android/dialer/theme/res/values/colors.xml | 2 + .../com/android/dialer/util/TouchPointManager.java | 2 +- java/com/android/incallui/AndroidManifest.xml | 2 +- java/com/android/incallui/CallCardPresenter.java | 10 +- java/com/android/incallui/ContactInfoCache.java | 6 +- java/com/android/incallui/InCallActivity.java | 6 +- .../com/android/incallui/InCallActivityCommon.java | 8 +- java/com/android/incallui/InCallPresenter.java | 17 +- java/com/android/incallui/StatusBarNotifier.java | 124 +++--- .../incallui/answer/impl/AnswerFragment.java | 14 +- .../incallui/answer/impl/hint/DotAnswerHint.java | 8 +- .../incallui/answer/impl/hint/PawAnswerHint.java | 9 +- .../answer/impl/hint/res/values-af/strings.xml | 4 +- .../answer/impl/hint/res/values-am/strings.xml | 4 +- .../answer/impl/hint/res/values-ar/strings.xml | 4 +- .../answer/impl/hint/res/values-az/strings.xml | 4 +- .../impl/hint/res/values-b+sr+Latn/strings.xml | 4 +- .../answer/impl/hint/res/values-be/strings.xml | 4 +- .../answer/impl/hint/res/values-bg/strings.xml | 4 +- .../answer/impl/hint/res/values-bn/strings.xml | 4 +- .../answer/impl/hint/res/values-bs/strings.xml | 4 +- .../answer/impl/hint/res/values-ca/strings.xml | 4 +- .../answer/impl/hint/res/values-cs/strings.xml | 4 +- .../answer/impl/hint/res/values-da/strings.xml | 4 +- .../answer/impl/hint/res/values-de/strings.xml | 4 +- .../answer/impl/hint/res/values-el/strings.xml | 4 +- .../answer/impl/hint/res/values-en-rAU/strings.xml | 4 +- .../answer/impl/hint/res/values-en-rGB/strings.xml | 4 +- .../answer/impl/hint/res/values-en-rIN/strings.xml | 4 +- .../answer/impl/hint/res/values-es-rUS/strings.xml | 4 +- .../answer/impl/hint/res/values-es/strings.xml | 4 +- .../answer/impl/hint/res/values-et/strings.xml | 4 +- .../answer/impl/hint/res/values-eu/strings.xml | 4 +- .../answer/impl/hint/res/values-fa/strings.xml | 4 +- .../answer/impl/hint/res/values-fi/strings.xml | 4 +- .../answer/impl/hint/res/values-fr-rCA/strings.xml | 4 +- .../answer/impl/hint/res/values-fr/strings.xml | 4 +- .../answer/impl/hint/res/values-gl/strings.xml | 4 +- .../answer/impl/hint/res/values-gu/strings.xml | 4 +- .../answer/impl/hint/res/values-hi/strings.xml | 4 +- .../answer/impl/hint/res/values-hr/strings.xml | 4 +- .../answer/impl/hint/res/values-hu/strings.xml | 4 +- .../answer/impl/hint/res/values-hy/strings.xml | 4 +- .../answer/impl/hint/res/values-in/strings.xml | 4 +- .../answer/impl/hint/res/values-is/strings.xml | 4 +- .../answer/impl/hint/res/values-it/strings.xml | 4 +- .../answer/impl/hint/res/values-iw/strings.xml | 4 +- .../answer/impl/hint/res/values-ja/strings.xml | 4 +- .../answer/impl/hint/res/values-ka/strings.xml | 4 +- .../answer/impl/hint/res/values-kk/strings.xml | 4 +- .../answer/impl/hint/res/values-km/strings.xml | 4 +- .../answer/impl/hint/res/values-kn/strings.xml | 4 +- .../answer/impl/hint/res/values-ko/strings.xml | 4 +- .../answer/impl/hint/res/values-ky/strings.xml | 4 +- .../answer/impl/hint/res/values-lo/strings.xml | 4 +- .../answer/impl/hint/res/values-lt/strings.xml | 4 +- .../answer/impl/hint/res/values-lv/strings.xml | 4 +- .../answer/impl/hint/res/values-mk/strings.xml | 4 +- .../answer/impl/hint/res/values-ml/strings.xml | 4 +- .../answer/impl/hint/res/values-mn/strings.xml | 4 +- .../answer/impl/hint/res/values-mr/strings.xml | 4 +- .../answer/impl/hint/res/values-ms/strings.xml | 4 +- .../answer/impl/hint/res/values-my/strings.xml | 4 +- .../answer/impl/hint/res/values-nb/strings.xml | 4 +- .../answer/impl/hint/res/values-ne/strings.xml | 4 +- .../answer/impl/hint/res/values-nl/strings.xml | 4 +- .../answer/impl/hint/res/values-no/strings.xml | 4 +- .../answer/impl/hint/res/values-pa/strings.xml | 4 +- .../answer/impl/hint/res/values-pl/strings.xml | 4 +- .../answer/impl/hint/res/values-pt-rBR/strings.xml | 4 +- .../answer/impl/hint/res/values-pt-rPT/strings.xml | 4 +- .../answer/impl/hint/res/values-pt/strings.xml | 4 +- .../answer/impl/hint/res/values-ro/strings.xml | 4 +- .../answer/impl/hint/res/values-ru/strings.xml | 4 +- .../answer/impl/hint/res/values-si/strings.xml | 4 +- .../answer/impl/hint/res/values-sk/strings.xml | 4 +- .../answer/impl/hint/res/values-sl/strings.xml | 4 +- .../answer/impl/hint/res/values-sq/strings.xml | 4 +- .../answer/impl/hint/res/values-sr/strings.xml | 4 +- .../answer/impl/hint/res/values-sv/strings.xml | 4 +- .../answer/impl/hint/res/values-sw/strings.xml | 4 +- .../answer/impl/hint/res/values-ta/strings.xml | 4 +- .../answer/impl/hint/res/values-te/strings.xml | 4 +- .../answer/impl/hint/res/values-th/strings.xml | 4 +- .../answer/impl/hint/res/values-tl/strings.xml | 4 +- .../answer/impl/hint/res/values-tr/strings.xml | 4 +- .../answer/impl/hint/res/values-uk/strings.xml | 4 +- .../answer/impl/hint/res/values-ur/strings.xml | 4 +- .../answer/impl/hint/res/values-uz/strings.xml | 4 +- .../answer/impl/hint/res/values-vi/strings.xml | 4 +- .../answer/impl/hint/res/values-zh-rCN/strings.xml | 4 +- .../answer/impl/hint/res/values-zh-rHK/strings.xml | 4 +- .../answer/impl/hint/res/values-zh-rTW/strings.xml | 4 +- .../answer/impl/hint/res/values-zu/strings.xml | 4 +- .../answer/impl/hint/res/values/strings.xml | 6 +- .../impl/res/drawable/urgent_call_background.xml | 22 + .../impl/res/layout/fragment_incoming_call.xml | 10 +- .../incallui/answer/impl/res/values-af/strings.xml | 3 +- .../incallui/answer/impl/res/values-am/strings.xml | 3 +- .../incallui/answer/impl/res/values-ar/strings.xml | 3 +- .../incallui/answer/impl/res/values-az/strings.xml | 3 +- .../answer/impl/res/values-b+sr+Latn/strings.xml | 3 +- .../incallui/answer/impl/res/values-be/strings.xml | 3 +- .../incallui/answer/impl/res/values-bg/strings.xml | 3 +- .../incallui/answer/impl/res/values-bn/strings.xml | 3 +- .../incallui/answer/impl/res/values-bs/strings.xml | 3 +- .../incallui/answer/impl/res/values-ca/strings.xml | 3 +- .../incallui/answer/impl/res/values-cs/strings.xml | 3 +- .../incallui/answer/impl/res/values-da/strings.xml | 3 +- .../incallui/answer/impl/res/values-de/strings.xml | 3 +- .../incallui/answer/impl/res/values-el/strings.xml | 3 +- .../answer/impl/res/values-en-rAU/strings.xml | 3 +- .../answer/impl/res/values-en-rGB/strings.xml | 3 +- .../answer/impl/res/values-en-rIN/strings.xml | 3 +- .../answer/impl/res/values-es-rUS/strings.xml | 3 +- .../incallui/answer/impl/res/values-es/strings.xml | 3 +- .../incallui/answer/impl/res/values-et/strings.xml | 3 +- .../incallui/answer/impl/res/values-eu/strings.xml | 3 +- .../incallui/answer/impl/res/values-fa/strings.xml | 3 +- .../incallui/answer/impl/res/values-fi/strings.xml | 3 +- .../answer/impl/res/values-fr-rCA/strings.xml | 3 +- .../incallui/answer/impl/res/values-fr/strings.xml | 3 +- .../incallui/answer/impl/res/values-gl/strings.xml | 3 +- .../incallui/answer/impl/res/values-gu/strings.xml | 3 +- .../incallui/answer/impl/res/values-hi/strings.xml | 3 +- .../incallui/answer/impl/res/values-hr/strings.xml | 3 +- .../incallui/answer/impl/res/values-hu/strings.xml | 3 +- .../incallui/answer/impl/res/values-hy/strings.xml | 3 +- .../incallui/answer/impl/res/values-in/strings.xml | 3 +- .../incallui/answer/impl/res/values-is/strings.xml | 3 +- .../incallui/answer/impl/res/values-it/strings.xml | 3 +- .../incallui/answer/impl/res/values-iw/strings.xml | 3 +- .../incallui/answer/impl/res/values-ja/strings.xml | 3 +- .../incallui/answer/impl/res/values-ka/strings.xml | 3 +- .../incallui/answer/impl/res/values-kk/strings.xml | 3 +- .../incallui/answer/impl/res/values-km/strings.xml | 3 +- .../incallui/answer/impl/res/values-kn/strings.xml | 3 +- .../incallui/answer/impl/res/values-ko/strings.xml | 3 +- .../incallui/answer/impl/res/values-ky/strings.xml | 3 +- .../incallui/answer/impl/res/values-lo/strings.xml | 3 +- .../incallui/answer/impl/res/values-lt/strings.xml | 3 +- .../incallui/answer/impl/res/values-lv/strings.xml | 3 +- .../incallui/answer/impl/res/values-mk/strings.xml | 3 +- .../incallui/answer/impl/res/values-ml/strings.xml | 3 +- .../incallui/answer/impl/res/values-mn/strings.xml | 3 +- .../incallui/answer/impl/res/values-mr/strings.xml | 3 +- .../incallui/answer/impl/res/values-ms/strings.xml | 3 +- .../incallui/answer/impl/res/values-my/strings.xml | 3 +- .../incallui/answer/impl/res/values-nb/strings.xml | 3 +- .../incallui/answer/impl/res/values-ne/strings.xml | 3 +- .../incallui/answer/impl/res/values-nl/strings.xml | 3 +- .../incallui/answer/impl/res/values-no/strings.xml | 3 +- .../incallui/answer/impl/res/values-pa/strings.xml | 3 +- .../incallui/answer/impl/res/values-pl/strings.xml | 3 +- .../answer/impl/res/values-pt-rBR/strings.xml | 3 +- .../answer/impl/res/values-pt-rPT/strings.xml | 3 +- .../incallui/answer/impl/res/values-pt/strings.xml | 3 +- .../incallui/answer/impl/res/values-ro/strings.xml | 3 +- .../incallui/answer/impl/res/values-ru/strings.xml | 3 +- .../incallui/answer/impl/res/values-si/strings.xml | 3 +- .../incallui/answer/impl/res/values-sk/strings.xml | 3 +- .../incallui/answer/impl/res/values-sl/strings.xml | 3 +- .../incallui/answer/impl/res/values-sq/strings.xml | 3 +- .../incallui/answer/impl/res/values-sr/strings.xml | 3 +- .../incallui/answer/impl/res/values-sv/strings.xml | 3 +- .../incallui/answer/impl/res/values-sw/strings.xml | 3 +- .../incallui/answer/impl/res/values-ta/strings.xml | 3 +- .../incallui/answer/impl/res/values-te/strings.xml | 3 +- .../incallui/answer/impl/res/values-th/strings.xml | 3 +- .../incallui/answer/impl/res/values-tl/strings.xml | 3 +- .../incallui/answer/impl/res/values-tr/strings.xml | 3 +- .../incallui/answer/impl/res/values-uk/strings.xml | 3 +- .../incallui/answer/impl/res/values-ur/strings.xml | 3 +- .../incallui/answer/impl/res/values-uz/strings.xml | 3 +- .../incallui/answer/impl/res/values-vi/strings.xml | 3 +- .../answer/impl/res/values-zh-rCN/strings.xml | 3 +- .../answer/impl/res/values-zh-rHK/strings.xml | 3 +- .../answer/impl/res/values-zh-rTW/strings.xml | 3 +- .../incallui/answer/impl/res/values-zu/strings.xml | 3 +- .../incallui/answer/impl/res/values/strings.xml | 2 +- .../incallui/autoresizetext/AndroidManifest.xml | 2 +- java/com/android/incallui/call/CallList.java | 4 +- java/com/android/incallui/call/DialerCall.java | 2 +- .../call/InCallVideoCallCallbackNotifier.java | 2 +- .../calllocation/impl/LocationFragment.java | 7 +- .../impl/res/drawable/bg_location_card.xml | 21 + .../impl/res/layout/location_fragment.xml | 2 +- .../incallui/commontheme/res/values/styles.xml | 3 +- .../incallui/contactgrid/ContactGridManager.java | 29 +- java/com/android/incallui/contactgrid/TopRow.java | 12 +- .../contactgrid/res/anim/hd_scale_interpolator.xml | 22 + .../res/anim/hd_scale_interpolator2.xml | 22 + .../contactgrid/res/anim/trim_end_interpolator.xml | 19 + .../res/anim/trim_start_interpolator.xml | 19 + .../contactgrid/res/drawable/asd_hd_icon.xml | 108 +++++ .../contactgrid/res/drawable/avd_hd_attempting.xml | 95 +++++ .../contactgrid/res/drawable/vd_hd_attempting.xml | 56 +++ .../res/layout/incall_contactgrid_bottom_row.xml | 78 ++-- .../incallui/incall/impl/InCallFragment.java | 9 +- .../incallui/incall/impl/InCallPagerAdapter.java | 2 +- .../incallui/sessiondata/MultimediaFragment.java | 40 +- .../res/drawable/answer_data_background.xml | 7 +- .../res/drawable/answer_text_only_background.xml | 23 ++ .../res/drawable/spam_container_background.xml | 22 + .../res/layout/fragment_composer_frag.xml | 46 +-- .../res/layout/fragment_composer_image.xml | 57 +-- .../res/layout/fragment_composer_image_frag.xml | 87 ++-- .../res/layout/fragment_composer_text.xml | 54 +-- .../res/layout/fragment_composer_text_frag.xml | 82 ++-- .../res/layout/fragment_composer_text_image.xml | 95 +++-- .../layout/fragment_composer_text_image_frag.xml | 122 +++--- .../sessiondata/res/layout/fragment_spam.xml | 51 +++ .../incallui/sessiondata/res/values-af/strings.xml | 24 ++ .../incallui/sessiondata/res/values-am/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ar/strings.xml | 24 ++ .../incallui/sessiondata/res/values-az/strings.xml | 24 ++ .../sessiondata/res/values-b+sr+Latn/strings.xml | 24 ++ .../incallui/sessiondata/res/values-be/strings.xml | 24 ++ .../incallui/sessiondata/res/values-bg/strings.xml | 24 ++ .../incallui/sessiondata/res/values-bn/strings.xml | 24 ++ .../incallui/sessiondata/res/values-bs/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ca/strings.xml | 24 ++ .../incallui/sessiondata/res/values-cs/strings.xml | 24 ++ .../incallui/sessiondata/res/values-da/strings.xml | 24 ++ .../incallui/sessiondata/res/values-de/strings.xml | 24 ++ .../incallui/sessiondata/res/values-el/strings.xml | 24 ++ .../sessiondata/res/values-en-rAU/strings.xml | 24 ++ .../sessiondata/res/values-en-rGB/strings.xml | 24 ++ .../sessiondata/res/values-en-rIN/strings.xml | 24 ++ .../sessiondata/res/values-es-rUS/strings.xml | 24 ++ .../incallui/sessiondata/res/values-es/strings.xml | 24 ++ .../incallui/sessiondata/res/values-et/strings.xml | 24 ++ .../incallui/sessiondata/res/values-eu/strings.xml | 24 ++ .../incallui/sessiondata/res/values-fa/strings.xml | 24 ++ .../incallui/sessiondata/res/values-fi/strings.xml | 24 ++ .../sessiondata/res/values-fr-rCA/strings.xml | 24 ++ .../incallui/sessiondata/res/values-fr/strings.xml | 24 ++ .../incallui/sessiondata/res/values-gl/strings.xml | 24 ++ .../incallui/sessiondata/res/values-gu/strings.xml | 24 ++ .../incallui/sessiondata/res/values-hi/strings.xml | 24 ++ .../incallui/sessiondata/res/values-hr/strings.xml | 24 ++ .../incallui/sessiondata/res/values-hu/strings.xml | 24 ++ .../incallui/sessiondata/res/values-hy/strings.xml | 24 ++ .../incallui/sessiondata/res/values-in/strings.xml | 24 ++ .../incallui/sessiondata/res/values-is/strings.xml | 24 ++ .../incallui/sessiondata/res/values-it/strings.xml | 24 ++ .../incallui/sessiondata/res/values-iw/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ja/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ka/strings.xml | 24 ++ .../incallui/sessiondata/res/values-kk/strings.xml | 24 ++ .../incallui/sessiondata/res/values-km/strings.xml | 24 ++ .../incallui/sessiondata/res/values-kn/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ko/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ky/strings.xml | 24 ++ .../incallui/sessiondata/res/values-lo/strings.xml | 24 ++ .../incallui/sessiondata/res/values-lt/strings.xml | 24 ++ .../incallui/sessiondata/res/values-lv/strings.xml | 24 ++ .../incallui/sessiondata/res/values-mk/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ml/strings.xml | 24 ++ .../incallui/sessiondata/res/values-mn/strings.xml | 24 ++ .../incallui/sessiondata/res/values-mr/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ms/strings.xml | 24 ++ .../incallui/sessiondata/res/values-my/strings.xml | 24 ++ .../incallui/sessiondata/res/values-nb/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ne/strings.xml | 24 ++ .../incallui/sessiondata/res/values-nl/strings.xml | 24 ++ .../incallui/sessiondata/res/values-no/strings.xml | 24 ++ .../incallui/sessiondata/res/values-pa/strings.xml | 24 ++ .../incallui/sessiondata/res/values-pl/strings.xml | 24 ++ .../sessiondata/res/values-pt-rBR/strings.xml | 24 ++ .../sessiondata/res/values-pt-rPT/strings.xml | 24 ++ .../incallui/sessiondata/res/values-pt/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ro/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ru/strings.xml | 24 ++ .../incallui/sessiondata/res/values-si/strings.xml | 24 ++ .../incallui/sessiondata/res/values-sk/strings.xml | 24 ++ .../incallui/sessiondata/res/values-sl/strings.xml | 24 ++ .../incallui/sessiondata/res/values-sq/strings.xml | 24 ++ .../incallui/sessiondata/res/values-sr/strings.xml | 24 ++ .../incallui/sessiondata/res/values-sv/strings.xml | 24 ++ .../incallui/sessiondata/res/values-sw/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ta/strings.xml | 24 ++ .../incallui/sessiondata/res/values-te/strings.xml | 24 ++ .../incallui/sessiondata/res/values-th/strings.xml | 24 ++ .../incallui/sessiondata/res/values-tl/strings.xml | 24 ++ .../incallui/sessiondata/res/values-tr/strings.xml | 24 ++ .../incallui/sessiondata/res/values-uk/strings.xml | 24 ++ .../incallui/sessiondata/res/values-ur/strings.xml | 24 ++ .../incallui/sessiondata/res/values-uz/strings.xml | 24 ++ .../incallui/sessiondata/res/values-vi/strings.xml | 24 ++ .../sessiondata/res/values-zh-rCN/strings.xml | 24 ++ .../sessiondata/res/values-zh-rHK/strings.xml | 24 ++ .../sessiondata/res/values-zh-rTW/strings.xml | 24 ++ .../incallui/sessiondata/res/values-zu/strings.xml | 24 ++ .../incallui/sessiondata/res/values/dimens.xml | 5 +- .../incallui/sessiondata/res/values/ids.xml | 1 + .../incallui/sessiondata/res/values/strings.xml | 20 + .../incallui/spam/SpamCallListListener.java | 4 +- .../incallui/spam/SpamNotificationActivity.java | 2 +- .../incallui/spam/SpamNotificationService.java | 2 +- .../video/impl/SurfaceViewVideoCallFragment.java | 3 +- .../incallui/video/impl/VideoCallFragment.java | 1 + .../impl/res/layout/frag_videocall_surfaceview.xml | 33 +- .../incallui/video/impl/res/values-land/styles.xml | 3 +- .../incallui/video/impl/res/values/styles.xml | 3 +- .../incallui/video/protocol/AndroidManifest.xml | 2 +- .../videosurface/impl/VideoSurfaceTextureImpl.java | 13 +- .../incallui/videotech/ims/ImsVideoTech.java | 28 +- .../com/android/voicemail/impl/ActivationTask.java | 43 +- .../com/android/voicemail/impl/AndroidManifest.xml | 29 +- java/com/android/voicemail/impl/OmtpService.java | 153 +++++++ .../voicemail/impl/OmtpVvmCarrierConfigHelper.java | 10 +- .../voicemail/impl/PreOMigrationHandler.java | 102 +++++ .../android/voicemail/impl/StatusCheckTask.java | 2 +- .../voicemail/impl/TelephonyMangerCompat.java | 82 +++- .../voicemail/impl/VoicemailClientImpl.java | 8 +- .../voicemail/impl/VvmPackageInstallHandler.java | 167 ++++++++ .../android/voicemail/impl/imap/ImapHelper.java | 63 ++- .../voicemail/impl/protocol/Vvm3Subscriber.java | 56 ++- .../voicemail/impl/res/values-af/strings.xml | 5 +- .../voicemail/impl/res/values-am/strings.xml | 5 +- .../voicemail/impl/res/values-ar/strings.xml | 5 +- .../voicemail/impl/res/values-az/strings.xml | 5 +- .../impl/res/values-b+sr+Latn/strings.xml | 5 +- .../voicemail/impl/res/values-be/strings.xml | 5 +- .../voicemail/impl/res/values-bg/strings.xml | 5 +- .../voicemail/impl/res/values-bn/strings.xml | 5 +- .../voicemail/impl/res/values-bs/strings.xml | 5 +- .../voicemail/impl/res/values-ca/strings.xml | 5 +- .../voicemail/impl/res/values-cs/strings.xml | 5 +- .../voicemail/impl/res/values-da/strings.xml | 5 +- .../voicemail/impl/res/values-de/strings.xml | 5 +- .../voicemail/impl/res/values-el/strings.xml | 5 +- .../voicemail/impl/res/values-en-rAU/strings.xml | 5 +- .../voicemail/impl/res/values-en-rGB/strings.xml | 5 +- .../voicemail/impl/res/values-en-rIN/strings.xml | 5 +- .../voicemail/impl/res/values-es-rUS/strings.xml | 5 +- .../voicemail/impl/res/values-es/strings.xml | 5 +- .../voicemail/impl/res/values-et/strings.xml | 5 +- .../voicemail/impl/res/values-eu/strings.xml | 5 +- .../voicemail/impl/res/values-fa/strings.xml | 5 +- .../voicemail/impl/res/values-fi/strings.xml | 5 +- .../voicemail/impl/res/values-fr-rCA/strings.xml | 5 +- .../voicemail/impl/res/values-fr/strings.xml | 5 +- .../voicemail/impl/res/values-gl/strings.xml | 5 +- .../voicemail/impl/res/values-gu/strings.xml | 5 +- .../voicemail/impl/res/values-hi/strings.xml | 5 +- .../voicemail/impl/res/values-hr/strings.xml | 5 +- .../voicemail/impl/res/values-hu/strings.xml | 5 +- .../voicemail/impl/res/values-hy/strings.xml | 5 +- .../voicemail/impl/res/values-in/strings.xml | 5 +- .../voicemail/impl/res/values-is/strings.xml | 5 +- .../voicemail/impl/res/values-it/strings.xml | 5 +- .../voicemail/impl/res/values-iw/strings.xml | 5 +- .../voicemail/impl/res/values-ja/strings.xml | 5 +- .../voicemail/impl/res/values-ka/strings.xml | 5 +- .../voicemail/impl/res/values-kk/strings.xml | 5 +- .../voicemail/impl/res/values-km/strings.xml | 5 +- .../voicemail/impl/res/values-kn/strings.xml | 5 +- .../voicemail/impl/res/values-ko/strings.xml | 5 +- .../voicemail/impl/res/values-ky/strings.xml | 5 +- .../voicemail/impl/res/values-lo/strings.xml | 5 +- .../voicemail/impl/res/values-lt/strings.xml | 5 +- .../voicemail/impl/res/values-lv/strings.xml | 5 +- .../voicemail/impl/res/values-mk/strings.xml | 5 +- .../voicemail/impl/res/values-ml/strings.xml | 5 +- .../voicemail/impl/res/values-mn/strings.xml | 5 +- .../voicemail/impl/res/values-mr/strings.xml | 5 +- .../voicemail/impl/res/values-ms/strings.xml | 5 +- .../voicemail/impl/res/values-my/strings.xml | 5 +- .../voicemail/impl/res/values-nb/strings.xml | 5 +- .../voicemail/impl/res/values-ne/strings.xml | 5 +- .../voicemail/impl/res/values-nl/strings.xml | 5 +- .../voicemail/impl/res/values-no/strings.xml | 5 +- .../voicemail/impl/res/values-pa/strings.xml | 5 +- .../voicemail/impl/res/values-pl/strings.xml | 5 +- .../voicemail/impl/res/values-pt-rBR/strings.xml | 5 +- .../voicemail/impl/res/values-pt-rPT/strings.xml | 5 +- .../voicemail/impl/res/values-pt/strings.xml | 5 +- .../voicemail/impl/res/values-ro/strings.xml | 5 +- .../voicemail/impl/res/values-ru/strings.xml | 5 +- .../voicemail/impl/res/values-si/strings.xml | 5 +- .../voicemail/impl/res/values-sk/strings.xml | 5 +- .../voicemail/impl/res/values-sl/strings.xml | 5 +- .../voicemail/impl/res/values-sq/strings.xml | 5 +- .../voicemail/impl/res/values-sr/strings.xml | 5 +- .../voicemail/impl/res/values-sv/strings.xml | 5 +- .../voicemail/impl/res/values-sw/strings.xml | 5 +- .../voicemail/impl/res/values-ta/strings.xml | 5 +- .../voicemail/impl/res/values-te/strings.xml | 5 +- .../voicemail/impl/res/values-th/strings.xml | 5 +- .../voicemail/impl/res/values-tl/strings.xml | 5 +- .../voicemail/impl/res/values-tr/strings.xml | 5 +- .../voicemail/impl/res/values-uk/strings.xml | 5 +- .../voicemail/impl/res/values-ur/strings.xml | 5 +- .../voicemail/impl/res/values-uz/strings.xml | 5 +- .../voicemail/impl/res/values-vi/strings.xml | 5 +- .../voicemail/impl/res/values-zh-rCN/strings.xml | 5 +- .../voicemail/impl/res/values-zh-rHK/strings.xml | 5 +- .../voicemail/impl/res/values-zh-rTW/strings.xml | 5 +- .../voicemail/impl/res/values-zu/strings.xml | 5 +- .../android/voicemail/impl/res/values/strings.xml | 15 +- .../voicemail/impl/res/xml/voicemail_settings.xml | 13 +- .../voicemail/impl/scheduling/BaseTask.java | 2 +- .../impl/scheduling/MinimalIntervalPolicy.java | 2 +- .../voicemail/impl/scheduling/RetryPolicy.java | 2 +- .../android/voicemail/impl/scheduling/Task.java | 8 +- .../voicemail/impl/scheduling/TaskExecutor.java | 455 +++++++++++++++++++++ .../voicemail/impl/scheduling/TaskReceiver.java | 80 ++++ .../impl/scheduling/TaskSchedulerJobService.java | 60 ++- .../android/voicemail/impl/scheduling/Tasks.java | 5 +- .../impl/settings/VoicemailSettingsFragment.java | 50 +-- .../voicemail/impl/sms/OmtpMessageReceiver.java | 4 +- .../voicemail/impl/sms/OmtpMessageSender.java | 6 +- .../voicemail/impl/sms/StatusSmsFetcher.java | 6 +- .../voicemail/impl/sync/OmtpVvmSyncService.java | 39 +- .../android/voicemail/impl/sync/SyncOneTask.java | 2 +- java/com/android/voicemail/impl/sync/SyncTask.java | 2 +- .../android/voicemail/impl/sync/UploadTask.java | 2 +- .../voicemail/impl/sync/VoicemailsQueryHelper.java | 24 +- java/com/android/voicemail/permissions.xml | 2 +- 914 files changed, 8588 insertions(+), 2293 deletions(-) create mode 100644 java/com/android/contacts/common/res/drawable/ic_call_and_share.xml create mode 100644 java/com/android/dialer/app/settings/PhoneAccountSelectionFragment.java create mode 100644 java/com/android/dialer/location/AndroidManifest.xml create mode 100644 java/com/android/dialer/location/CountryDetector.java create mode 100644 java/com/android/dialer/location/GeoUtil.java create mode 100644 java/com/android/dialer/notification/PackageUpdatedReceiver.java create mode 100644 java/com/android/dialer/protos/ProtoParsers.java create mode 100644 java/com/android/incallui/answer/impl/res/drawable/urgent_call_background.xml create mode 100644 java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml create mode 100644 java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator.xml create mode 100644 java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator2.xml create mode 100644 java/com/android/incallui/contactgrid/res/anim/trim_end_interpolator.xml create mode 100644 java/com/android/incallui/contactgrid/res/anim/trim_start_interpolator.xml create mode 100644 java/com/android/incallui/contactgrid/res/drawable/asd_hd_icon.xml create mode 100644 java/com/android/incallui/contactgrid/res/drawable/avd_hd_attempting.xml create mode 100644 java/com/android/incallui/contactgrid/res/drawable/vd_hd_attempting.xml create mode 100644 java/com/android/incallui/sessiondata/res/drawable/answer_text_only_background.xml create mode 100644 java/com/android/incallui/sessiondata/res/drawable/spam_container_background.xml create mode 100644 java/com/android/incallui/sessiondata/res/layout/fragment_spam.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-af/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-am/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ar/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-az/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-b+sr+Latn/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-be/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-bg/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-bn/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-bs/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ca/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-cs/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-da/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-de/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-el/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-en-rAU/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-en-rGB/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-en-rIN/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-es-rUS/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-es/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-et/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-eu/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-fa/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-fi/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-fr-rCA/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-fr/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-gl/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-gu/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-hi/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-hr/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-hu/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-hy/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-in/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-is/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-it/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-iw/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ja/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ka/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-kk/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-km/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-kn/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ko/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ky/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-lo/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-lt/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-lv/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-mk/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ml/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-mn/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-mr/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ms/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-my/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-nb/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ne/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-nl/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-no/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-pa/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-pl/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-pt-rBR/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-pt-rPT/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-pt/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ro/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ru/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-si/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-sk/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-sl/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-sq/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-sr/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-sv/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-sw/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ta/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-te/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-th/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-tl/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-tr/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-uk/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-ur/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-uz/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-vi/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-zh-rCN/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-zh-rHK/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-zh-rTW/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values-zu/strings.xml create mode 100644 java/com/android/incallui/sessiondata/res/values/strings.xml create mode 100644 java/com/android/voicemail/impl/OmtpService.java create mode 100644 java/com/android/voicemail/impl/PreOMigrationHandler.java create mode 100644 java/com/android/voicemail/impl/VvmPackageInstallHandler.java create mode 100644 java/com/android/voicemail/impl/scheduling/TaskExecutor.java create mode 100644 java/com/android/voicemail/impl/scheduling/TaskReceiver.java (limited to 'java/com/android') diff --git a/java/com/android/contacts/common/AndroidManifest.xml b/java/com/android/contacts/common/AndroidManifest.xml index eae70cd30..e97221549 100644 --- a/java/com/android/contacts/common/AndroidManifest.xml +++ b/java/com/android/contacts/common/AndroidManifest.xml @@ -26,14 +26,6 @@ - - - - - - diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java index 117ac5e4e..0e7937102 100644 --- a/java/com/android/contacts/common/dialog/CallSubjectDialog.java +++ b/java/com/android/contacts/common/dialog/CallSubjectDialog.java @@ -330,10 +330,12 @@ public class CallSubjectDialog extends Activity { mContactPhoto.setVisibility(View.GONE); } mNameView.setText(mNameOrNumber); - if (!TextUtils.isEmpty(mNumberLabel) && !TextUtils.isEmpty(mDisplayNumber)) { + if (!TextUtils.isEmpty(mDisplayNumber)) { mNumberView.setVisibility(View.VISIBLE); mNumberView.setText( - getString(R.string.call_subject_type_and_number, mNumberLabel, mDisplayNumber)); + TextUtils.isEmpty(mNumberLabel) + ? mDisplayNumber + : getString(R.string.call_subject_type_and_number, mNumberLabel, mDisplayNumber)); } else { mNumberView.setVisibility(View.GONE); mNumberView.setText(null); diff --git a/java/com/android/contacts/common/list/ContactListItemView.java b/java/com/android/contacts/common/list/ContactListItemView.java index 76842483a..7a3194720 100644 --- a/java/com/android/contacts/common/list/ContactListItemView.java +++ b/java/com/android/contacts/common/list/ContactListItemView.java @@ -29,6 +29,7 @@ import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.SearchSnippets; +import android.support.annotation.IntDef; import android.support.v4.content.ContextCompat; import android.support.v4.graphics.drawable.DrawableCompat; import android.text.Spannable; @@ -51,10 +52,13 @@ import com.android.contacts.common.ContactStatusUtil; import com.android.contacts.common.R; import com.android.contacts.common.compat.PhoneNumberUtilsCompat; import com.android.contacts.common.format.TextHighlighter; +import com.android.contacts.common.list.PhoneNumberListAdapter.Listener; import com.android.contacts.common.util.ContactDisplayUtils; import com.android.contacts.common.util.SearchUtil; import com.android.dialer.compat.CompatUtils; import com.android.dialer.util.ViewUtil; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.List; import java.util.Locale; @@ -74,6 +78,16 @@ import java.util.regex.Pattern; * contact's data and a divider between contact view. */ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdjuster { + + /** IntDef for indices of ViewPager tabs. */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({NONE, VIDEO, CALL_AND_SHARE}) + public @interface CallToAction {} + + public static final int NONE = 0; + public static final int VIDEO = 1; + public static final int CALL_AND_SHARE = 2; + private static final Pattern SPLIT_PATTERN = Pattern.compile("([\\w-\\.]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})|[\\w]+"); static final char SNIPPET_START_MATCH = '['; @@ -92,8 +106,8 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj private int mNameTextViewTextSize; private int mHeaderWidth; private Drawable mActivatedBackgroundDrawable; - private int mVideoCallIconSize = 32; - private int mVideoCallIconMargin = 16; + private int mCallToActionSize = 32; + private int mCallToActionMargin = 16; // Set in onLayout. Represent left and right position of the View on the screen. private int mLeftOffset; private int mRightOffset; @@ -106,12 +120,10 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj private ArrayList mNumberHighlightSequence; // Highlighting prefix for names. private String mHighlightedPrefix; - /** Used to notify listeners when a video call icon is clicked. */ - private PhoneNumberListAdapter.Listener mPhoneNumberListAdapterListener; - /** Indicates whether to show the "video call" icon, used to initiate a video call. */ - private boolean mShowVideoCallIcon = false; /** Indicates whether the view should leave room for the "video call" icon. */ - private boolean mSupportVideoCallIcon = false; + private boolean mSupportVideoCall; + /** Indicates whether the view should leave room for the "call and share" icon. */ + private boolean mSupportCallAndShare; private PhotoPosition mPhotoPosition = getDefaultPhotoPosition(false /* normal/non opposite */); // Header layout data @@ -127,7 +139,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj private TextView mSnippetView; private TextView mStatusView; private ImageView mPresenceIcon; - private ImageView mVideoCallIcon; + private ImageView mCallToAction; private ImageView mWorkProfileIcon; private ColorStateList mSecondaryTextColor; private int mDefaultPhotoViewSize = 0; @@ -168,20 +180,24 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj private boolean mAdjustSelectionBoundsEnabled = true; private Rect mBoundsWithoutHeader = new Rect(); private CharSequence mUnknownNameText; - private int mPosition; public ContactListItemView(Context context) { super(context); mTextHighlighter = new TextHighlighter(Typeface.BOLD); - mNameHighlightSequence = new ArrayList(); - mNumberHighlightSequence = new ArrayList(); + mNameHighlightSequence = new ArrayList<>(); + mNumberHighlightSequence = new ArrayList<>(); } - public ContactListItemView(Context context, AttributeSet attrs, boolean supportVideoCallIcon) { + public ContactListItemView( + Context context, + AttributeSet attrs, + boolean supportVideoCallIcon, + boolean supportCallAndShare) { this(context, attrs); - mSupportVideoCallIcon = supportVideoCallIcon; + mSupportVideoCall = supportVideoCallIcon; + mSupportCallAndShare = supportCallAndShare; } public ContactListItemView(Context context, AttributeSet attrs) { @@ -197,7 +213,6 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj R.styleable.ContactListItemView_list_item_height, mPreferredHeight); mActivatedBackgroundDrawable = a.getDrawable(R.styleable.ContactListItemView_activated_background); - mGapBetweenImageAndText = a.getDimensionPixelOffset( R.styleable.ContactListItemView_list_item_gap_between_image_and_text, @@ -235,13 +250,13 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj a.getDimension( R.styleable.ContactListItemView_list_item_name_text_size, (int) getResources().getDimension(R.dimen.contact_browser_list_item_text_size)); - mVideoCallIconSize = + mCallToActionSize = a.getDimensionPixelOffset( - R.styleable.ContactListItemView_list_item_video_call_icon_size, mVideoCallIconSize); - mVideoCallIconMargin = + R.styleable.ContactListItemView_list_item_video_call_icon_size, mCallToActionSize); + mCallToActionMargin = a.getDimensionPixelOffset( R.styleable.ContactListItemView_list_item_video_call_icon_margin, - mVideoCallIconMargin); + mCallToActionMargin); setPaddingRelative( a.getDimensionPixelOffset(R.styleable.ContactListItemView_list_item_padding_left, 0), @@ -266,13 +281,13 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mActivatedBackgroundDrawable.setCallback(this); } - mNameHighlightSequence = new ArrayList(); - mNumberHighlightSequence = new ArrayList(); + mNameHighlightSequence = new ArrayList<>(); + mNumberHighlightSequence = new ArrayList<>(); setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE); } - public static final PhotoPosition getDefaultPhotoPosition(boolean opposite) { + public static PhotoPosition getDefaultPhotoPosition(boolean opposite) { final Locale locale = Locale.getDefault(); final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale); switch (layoutDirection) { @@ -310,45 +325,43 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj } /** - * Sets whether the video calling icon is shown. For the video calling icon to be shown, {@link - * #mSupportVideoCallIcon} must be {@code true}. + * Sets whether the call to action is shown. For the {@link CallToAction} to be shown, it must be + * supported as well. * - * @param showVideoCallIcon {@code true} if the video calling icon is shown, {@code false} - * otherwise. - * @param listener Listener to notify when the video calling icon is clicked. - * @param position The position in the adapater of the video calling icon. + * @param action {@link CallToAction} you want to display (if it's supported). + * @param listener Listener to notify when the call to action is clicked. + * @param position The position in the adapter of the call to action. */ - public void setShowVideoCallIcon( - boolean showVideoCallIcon, PhoneNumberListAdapter.Listener listener, int position) { - mShowVideoCallIcon = showVideoCallIcon; - mPhoneNumberListAdapterListener = listener; - mPosition = position; - - if (mShowVideoCallIcon) { - if (mVideoCallIcon == null) { - mVideoCallIcon = new ImageView(getContext()); - addView(mVideoCallIcon); - } - mVideoCallIcon.setContentDescription( - getContext().getString(R.string.description_search_video_call)); - mVideoCallIcon.setImageResource(R.drawable.ic_search_video_call); - mVideoCallIcon.setScaleType(ScaleType.CENTER); - mVideoCallIcon.setVisibility(View.VISIBLE); - mVideoCallIcon.setOnClickListener( - new OnClickListener() { - @Override - public void onClick(View v) { - // Inform the adapter that the video calling icon was clicked. - if (mPhoneNumberListAdapterListener != null) { - mPhoneNumberListAdapterListener.onVideoCallIconClicked(mPosition); - } - } - }); + public void setCallToAction(@CallToAction int action, Listener listener, int position) { + int drawable; + int description; + OnClickListener onClickListener; + if (action == CALL_AND_SHARE && mSupportCallAndShare) { + drawable = R.drawable.ic_call_and_share; + description = R.string.description_search_video_call; + onClickListener = v -> listener.onCallAndShareIconClicked(position); + } else if (action == VIDEO && mSupportVideoCall) { + drawable = R.drawable.ic_search_video_call; + description = R.string.description_search_call_and_share; + onClickListener = v -> listener.onVideoCallIconClicked(position); } else { - if (mVideoCallIcon != null) { - mVideoCallIcon.setVisibility(View.GONE); + if (mCallToAction != null) { + mCallToAction.setVisibility(View.GONE); + mCallToAction.setOnClickListener(null); } + return; } + + if (mCallToAction == null) { + mCallToAction = new ImageView(getContext()); + mCallToAction.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize)); + mCallToAction.setScaleType(ScaleType.CENTER); + addView(mCallToAction); + } + mCallToAction.setContentDescription(getContext().getString(description)); + mCallToAction.setOnClickListener(onClickListener); + mCallToAction.setImageResource(drawable); + mCallToAction.setVisibility(View.VISIBLE); } /** @@ -356,11 +369,23 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj * actually showing an icon. Support for the video calling icon ensures that the layout leaves * space for the video icon, should it be shown. * - * @param supportVideoCallIcon {@code true} if the video call icon is supported, {@code false} + * @param supportVideoCall {@code true} if the video call icon is supported, {@code false} + * otherwise. + */ + public void setSupportVideoCallIcon(boolean supportVideoCall) { + 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 setSupportVideoCallIcon(boolean supportVideoCallIcon) { - mSupportVideoCallIcon = supportVideoCallIcon; + public void setSupportCallAndShareIcon(boolean supportCallAndShare) { + mSupportCallAndShare = supportCallAndShare; } @Override @@ -398,8 +423,8 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj effectiveWidth -= mHeaderWidth + mGapBetweenImageAndText; } - if (mSupportVideoCallIcon) { - effectiveWidth -= (mVideoCallIconSize + mVideoCallIconMargin); + if (mSupportVideoCall || mSupportCallAndShare) { + effectiveWidth -= (mCallToActionSize + mCallToActionMargin); } // Go over all visible text views and measure actual width of each of them. @@ -471,10 +496,10 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight(); } - if (mSupportVideoCallIcon && isVisible(mVideoCallIcon)) { - mVideoCallIcon.measure( - MeasureSpec.makeMeasureSpec(mVideoCallIconSize, MeasureSpec.EXACTLY), - MeasureSpec.makeMeasureSpec(mVideoCallIconSize, MeasureSpec.EXACTLY)); + if ((mSupportVideoCall || mSupportCallAndShare) && isVisible(mCallToAction)) { + mCallToAction.measure( + MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY)); } if (isVisible(mWorkProfileIcon)) { @@ -529,7 +554,6 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj // Determine the vertical bounds by laying out the header first. int topBound = 0; - int bottomBound = height; int leftBound = getPaddingLeft(); int rightBound = width - getPaddingRight(); @@ -545,7 +569,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj } if (mHeaderTextView != null) { int headerHeight = mHeaderTextView.getMeasuredHeight(); - int headerTopBound = (bottomBound + topBound - headerHeight) / 2 + mTextOffsetTop; + int headerTopBound = (height + topBound - headerHeight) / 2 + mTextOffsetTop; mHeaderTextView.layout( isLayoutRtl ? rightBound - mHeaderWidth : leftBound, @@ -560,7 +584,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj } } - mBoundsWithoutHeader.set(left + leftBound, topBound, left + rightBound, bottomBound); + mBoundsWithoutHeader.set(left + leftBound, topBound, left + rightBound, height); mLeftOffset = left + leftBound; mRightOffset = left + rightBound; if (mIsSectionHeaderEnabled) { @@ -580,7 +604,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj // Photo is the left most view. All the other Views should on the right of the photo. if (photoView != null) { // Center the photo vertically - final int photoTop = topBound + (bottomBound - topBound - mPhotoViewHeight) / 2; + final int photoTop = topBound + (height - topBound - mPhotoViewHeight) / 2; photoView.layout( leftBound, photoTop, leftBound + mPhotoViewWidth, photoTop + mPhotoViewHeight); leftBound += mPhotoViewWidth + mGapBetweenImageAndText; @@ -592,7 +616,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj // Photo is the right most view. Right bound should be adjusted that way. if (photoView != null) { // Center the photo vertically - final int photoTop = topBound + (bottomBound - topBound - mPhotoViewHeight) / 2; + final int photoTop = topBound + (height - topBound - mPhotoViewHeight) / 2; photoView.layout( rightBound - mPhotoViewWidth, photoTop, rightBound, photoTop + mPhotoViewHeight); rightBound -= (mPhotoViewWidth + mGapBetweenImageAndText); @@ -605,33 +629,33 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj leftBound += mTextIndent; } - if (mSupportVideoCallIcon) { - // Place the video call button at the end of the list (e.g. take into account RTL mode). - if (isVisible(mVideoCallIcon)) { - // Center the video icon vertically - final int videoIconTop = topBound + (bottomBound - topBound - mVideoCallIconSize) / 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, video icon is placed on the right edge. - mVideoCallIcon.layout( - rightBound - mVideoCallIconSize, - videoIconTop, + // When photo is on left, icon is placed on the right edge. + mCallToAction.layout( + rightBound - mCallToActionSize, + callToActionTop, rightBound, - videoIconTop + mVideoCallIconSize); + callToActionTop + mCallToActionSize); } else { - // When photo is on right, video icon is placed on the left edge. - mVideoCallIcon.layout( + // When photo is on right, icon is placed on the left edge. + mCallToAction.layout( leftBound, - videoIconTop, - leftBound + mVideoCallIconSize, - videoIconTop + mVideoCallIconSize); + callToActionTop, + leftBound + mCallToActionSize, + callToActionTop + mCallToActionSize); } } if (mPhotoPosition == PhotoPosition.LEFT) { - rightBound -= (mVideoCallIconSize + mVideoCallIconMargin); + rightBound -= (mCallToActionSize + mCallToActionMargin); } else { - leftBound += mVideoCallIconSize + mVideoCallIconMargin; + leftBound += mCallToActionSize + mCallToActionMargin; } } @@ -642,7 +666,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj + mLabelAndDataViewMaxHeight + mSnippetTextViewHeight + mStatusTextViewHeight; - int textTopBound = (bottomBound + topBound - totalTextHeight) / 2 + mTextOffsetTop; + int textTopBound = (height + topBound - totalTextHeight) / 2 + mTextOffsetTop; // Work Profile icon align top int workProfileIconWidth = 0; @@ -854,7 +878,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj if (!TextUtils.isEmpty(title)) { if (mHeaderTextView == null) { mHeaderTextView = new TextView(getContext()); - mHeaderTextView.setTextAppearance(getContext(), R.style.SectionHeaderStyle); + mHeaderTextView.setTextAppearance(R.style.SectionHeaderStyle); mHeaderTextView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); addView(mHeaderTextView); } @@ -1014,7 +1038,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mLabelView.setSingleLine(true); mLabelView.setEllipsize(getTextEllipsis()); - mLabelView.setTextAppearance(getContext(), R.style.TextAppearanceSmall); + mLabelView.setTextAppearance(R.style.TextAppearanceSmall); if (mPhotoPosition == PhotoPosition.LEFT) { mLabelView.setAllCaps(true); } else { @@ -1081,7 +1105,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mDataView = new TextView(getContext()); mDataView.setSingleLine(true); mDataView.setEllipsize(getTextEllipsis()); - mDataView.setTextAppearance(getContext(), R.style.TextAppearanceSmall); + mDataView.setTextAppearance(R.style.TextAppearanceSmall); mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); mDataView.setActivated(isActivated()); mDataView.setId(R.id.cliv_data_view); @@ -1117,7 +1141,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mSnippetView = new TextView(getContext()); mSnippetView.setSingleLine(true); mSnippetView.setEllipsize(getTextEllipsis()); - mSnippetView.setTextAppearance(getContext(), android.R.style.TextAppearance_Small); + mSnippetView.setTextAppearance(android.R.style.TextAppearance_Small); mSnippetView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); mSnippetView.setActivated(isActivated()); addView(mSnippetView); @@ -1131,7 +1155,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj mStatusView = new TextView(getContext()); mStatusView.setSingleLine(true); mStatusView.setEllipsize(getTextEllipsis()); - mStatusView.setTextAppearance(getContext(), android.R.style.TextAppearance_Small); + mStatusView.setTextAppearance(android.R.style.TextAppearance_Small); mStatusView.setTextColor(mSecondaryTextColor); mStatusView.setActivated(isActivated()); mStatusView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START); @@ -1483,7 +1507,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj } } - private final boolean pointIsInView(float localX, float localY) { + private boolean pointIsInView(float localX, float localY) { return localX >= mLeftOffset && localX < mRightOffset && localY >= 0 diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java index c7b24229f..9a490d78a 100644 --- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java +++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java @@ -28,20 +28,26 @@ import android.provider.ContactsContract.CommonDataKinds.SipAddress; import android.provider.ContactsContract.Contacts; import android.provider.ContactsContract.Directory; import android.text.TextUtils; -import android.util.Log; 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.GeoUtil; import com.android.contacts.common.R; 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.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.enrichedcall.EnrichedCallCapabilities; +import com.android.dialer.enrichedcall.EnrichedCallComponent; +import com.android.dialer.enrichedcall.EnrichedCallManager; +import com.android.dialer.location.GeoUtil; import com.android.dialer.util.CallUtil; import java.util.ArrayList; import java.util.Arrays; @@ -62,6 +68,7 @@ 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 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 @@ -83,6 +90,9 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { int videoCapabilities = CallUtil.getVideoCallingAvailability(context); mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0; mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0; + + // TODO + mCallAndShareEnabled = true; } @Override @@ -207,7 +217,7 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { case ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY: break; // This adapter is always "phone only", so no selection needed either. default: - Log.w( + LogUtil.w( TAG, "Unsupported filter type came " + "(type: " @@ -239,6 +249,48 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null; } + public CallComposerContact getCallComposerContact(int position) { + Cursor cursor = (Cursor) getItem(position); + if (cursor == null) { + LogUtil.e("PhoneNumberListAdapter.getCallComposerContact", "cursor was null."); + return null; + } + + String displayName = cursor.getString(PhoneQuery.DISPLAY_NAME); + String number = cursor.getString(PhoneQuery.PHONE_NUMBER); + String photoUri = cursor.getString(PhoneQuery.PHOTO_URI); + Uri contactUri = + Contacts.getLookupUri( + cursor.getLong(PhoneQuery.CONTACT_ID), cursor.getString(PhoneQuery.LOOKUP_KEY)); + + CallComposerContact.Builder contact = CallComposerContact.newBuilder(); + contact + .setNumber(number) + .setPhotoId(cursor.getLong(PhoneQuery.PHOTO_ID)) + .setContactType(ContactPhotoManager.TYPE_DEFAULT) + .setNameOrNumber(displayName) + .setNumberLabel( + Phone.getTypeLabel( + mContext.getResources(), + cursor.getInt(PhoneQuery.PHONE_TYPE), + cursor.getString(PhoneQuery.PHONE_LABEL)) + .toString()); + + if (photoUri != null) { + contact.setPhotoUri(photoUri); + } + + if (contactUri != null) { + contact.setContactUri(contactUri.toString()); + } + + if (!TextUtils.isEmpty(displayName)) { + contact.setDisplayNumber(number); + } + + return contact.build(); + } + @Override protected ContactListItemView newView( Context context, int partition, Cursor cursor, int position, ViewGroup parent) { @@ -323,12 +375,13 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { final String customLabel = cursor.getString(PhoneQuery.PHONE_LABEL); // TODO cache - label = Phone.getTypeLabel(getContext().getResources(), type, customLabel); + label = Phone.getTypeLabel(mContext.getResources(), type, customLabel); } view.setLabel(label); final String text; + String number = cursor.getString(PhoneQuery.PHONE_NUMBER); if (displayNumber) { - text = cursor.getString(PhoneQuery.PHONE_NUMBER); + text = number; } else { // Display phone label. If that's null, display geocoded location for the number final String phoneLabel = cursor.getString(PhoneQuery.PHONE_LABEL); @@ -341,14 +394,32 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { } view.setPhoneNumber(text); + @CallToAction int action = ContactListItemView.NONE; + if (CompatUtils.isVideoCompatible()) { // Determine if carrier presence indicates the number supports video calling. int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE); boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0; boolean isVideoIconShown = mIsVideoEnabled && (!mIsPresenceEnabled || isPresent); - view.setShowVideoCallIcon(isVideoIconShown, mListener, position); + if (isVideoIconShown) { + action = ContactListItemView.VIDEO; + } + } + + if (isCallAndShareEnabled() && action == ContactListItemView.NONE && number != null) { + EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); + EnrichedCallCapabilities capabilities = manager.getCapabilities(number); + if (capabilities != null && capabilities.supportsCallComposer()) { + action = ContactListItemView.CALL_AND_SHARE; + } else if (capabilities == null + && getQueryString() != null + && getQueryString().length() >= 3) { + manager.requestCapabilities(number); + } } + + view.setCallToAction(action, mListener, position); } protected void bindSectionHeaderAndDivider(final ContactListItemView view, int position) { @@ -499,9 +570,15 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter { mListener = listener; } + public boolean isCallAndShareEnabled() { + return mCallAndShareEnabled; + } + public interface Listener { void onVideoCallIconClicked(int position); + + void onCallAndShareIconClicked(int position); } public static class PhoneQuery { diff --git a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java index 99c41f92d..8f25f82a5 100644 --- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java +++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java @@ -15,6 +15,8 @@ */ package com.android.contacts.common.list; +import android.content.ComponentName; +import android.content.Intent; import android.content.Loader; import android.database.Cursor; import android.os.Bundle; @@ -28,19 +30,23 @@ import android.view.View; import android.view.ViewGroup; import com.android.contacts.common.R; 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.enrichedcall.EnrichedCallComponent; +import com.android.dialer.enrichedcall.EnrichedCallManager; import com.android.dialer.logging.Logger; +import com.android.dialer.protos.ProtoParsers; import java.util.Set; import org.json.JSONException; import org.json.JSONObject; /** Fragment containing a phone number list for picking. */ public class PhoneNumberPickerFragment extends ContactEntryListFragment - implements PhoneNumberListAdapter.Listener { + implements PhoneNumberListAdapter.Listener, EnrichedCallManager.CapabilitiesListener { private static final String KEY_FILTER = "filter"; private OnPhoneNumberPickerActionListener mListener; @@ -58,8 +64,7 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment mLoadFinishedListeners = - new ArraySet(); + private final Set mLoadFinishedListeners = new ArraySet<>(); private CursorReranker mCursorReranker; @@ -83,6 +88,18 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment { @Override public Contact loadInBackground() { - Log.e(TAG, "loadInBackground=" + mLookupUri); + LogUtil.e(TAG, "loadInBackground=" + mLookupUri); try { final ContentResolver resolver = getContext().getContentResolver(); final Uri uriCurrentFormat = ContactLoaderUtils.ensureIsContactUri(resolver, mLookupUri); @@ -264,7 +263,7 @@ public class ContactLoader extends AsyncTaskLoader { } return result; } catch (Exception e) { - Log.e(TAG, "Error loading the contact: " + mLookupUri, e); + LogUtil.e(TAG, "Error loading the contact: " + mLookupUri, e); return Contact.forError(mRequestedUri, e); } } @@ -274,7 +273,7 @@ public class ContactLoader extends AsyncTaskLoader { Cursor cursor = resolver.query(entityUri, ContactQuery.COLUMNS, null, null, Contacts.Entity.RAW_CONTACT_ID); if (cursor == null) { - Log.e(TAG, "No cursor returned in loadContactEntity"); + LogUtil.e(TAG, "No cursor returned in loadContactEntity"); return Contact.forNotFound(mRequestedUri); } @@ -521,10 +520,7 @@ public class ContactLoader extends AsyncTaskLoader { cursorColumnToContentValues(cursor, cv, ContactQuery.CHAT_CAPABILITY); cursorColumnToContentValues(cursor, cv, ContactQuery.TIMES_USED); cursorColumnToContentValues(cursor, cv, ContactQuery.LAST_TIME_USED); - if (CompatUtils.isMarshmallowCompatible()) { - cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE); - } - + cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE); return cv; } @@ -577,7 +573,7 @@ public class ContactLoader extends AsyncTaskLoader { Resources resources = pm.getResourcesForApplication(packageName); directoryType = resources.getString(typeResourceId); } catch (NameNotFoundException e) { - Log.w( + LogUtil.w( TAG, "Contact directory resource not found: " + packageName + "." + typeResourceId); } } @@ -692,7 +688,7 @@ public class ContactLoader extends AsyncTaskLoader { mLookupUri = result.getLookupUri(); if (!result.isDirectoryEntry()) { - Log.i(TAG, "Registering content observer for " + mLookupUri); + LogUtil.i(TAG, "Registering content observer for " + mLookupUri); if (mObserver == null) { mObserver = new ForceLoadContentObserver(); } @@ -732,7 +728,7 @@ public class ContactLoader extends AsyncTaskLoader { try { context.startService(intent); } catch (Exception e) { - Log.e(TAG, "Error sending message to source-app", e); + LogUtil.e(TAG, "Error sending message to source-app", e); } } } @@ -919,9 +915,7 @@ public class ContactLoader extends AsyncTaskLoader { static { List projectionList = Lists.newArrayList(COLUMNS_INTERNAL); - if (CompatUtils.isMarshmallowCompatible()) { - projectionList.add(Data.CARRIER_PRESENCE); - } + projectionList.add(Data.CARRIER_PRESENCE); COLUMNS = projectionList.toArray(new String[projectionList.size()]); } } 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_search_video_call.xml b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml index 68c46fed6..0fe0367e1 100644 --- 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 @@ -18,4 +18,5 @@ + android:tint="@color/search_video_call_icon_tint" + android:background="?attr/selectableItemBackgroundBorderless"/> 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 1f1b33c62..9b8bf7886 100644 --- a/java/com/android/contacts/common/res/values-af/strings.xml +++ b/java/com/android/contacts/common/res/values-af/strings.xml @@ -261,5 +261,8 @@ "Diensbepalings" "Oopbronlisensies" "Kon nie die URL oopmaak nie." - "Maak video-oproep" + + + + 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 81b87fc61..1e56dd26b 100644 --- a/java/com/android/contacts/common/res/values-am/strings.xml +++ b/java/com/android/contacts/common/res/values-am/strings.xml @@ -261,5 +261,8 @@ "የአገልግሎት ውል" "የክፍት ምንጭ ፈቃዶች" "ዩ አር ኤሉን ለመክፈት አልተሳካም።" - "የቪዲዮ ጥሪ አስቀምጥ" + + + + 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 b878582a1..366613d85 100644 --- a/java/com/android/contacts/common/res/values-ar/strings.xml +++ b/java/com/android/contacts/common/res/values-ar/strings.xml @@ -269,5 +269,8 @@ "بنود الخدمة" "تراخيص البرامج مفتوحة المصدر" "‏فشل فتح عنوان URL." - "إجراء مكالمة فيديو" + + + + 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 da6f0a940..04647a580 100644 --- a/java/com/android/contacts/common/res/values-az/strings.xml +++ b/java/com/android/contacts/common/res/values-az/strings.xml @@ -261,5 +261,8 @@ "Xidmət şərtləri" "Açıq mənbə lisenziyaları" "Linki açmaq alınmadı." - "Video zəng edin" + + + + 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 0d8cdee95..4ef8bebc3 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 @@ -263,5 +263,8 @@ "Uslovi korišćenja usluge" "Licence otvorenog koda" "Otvaranje URL-a nije uspelo." - "Uputi video poziv" + + + + 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 d4f8e4cf2..95be65221 100644 --- a/java/com/android/contacts/common/res/values-be/strings.xml +++ b/java/com/android/contacts/common/res/values-be/strings.xml @@ -265,5 +265,8 @@ "Умовы абслугоўвання" "Ліцэнзіі ПЗ з адкрытым зыходным кодам" "Не ўдалося адкрыць URL." - "Зрабіць відэавыклік" + + + + 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 23345d8ea..68a9d1215 100644 --- a/java/com/android/contacts/common/res/values-bg/strings.xml +++ b/java/com/android/contacts/common/res/values-bg/strings.xml @@ -261,5 +261,8 @@ "Общи условия" "Лицензи за отворен код" "Отварянето на URL адреса не бе успешно." - "Извършване на видеообаждане" + + + + 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 d7df63aa1..0c10cc828 100644 --- a/java/com/android/contacts/common/res/values-bn/strings.xml +++ b/java/com/android/contacts/common/res/values-bn/strings.xml @@ -261,5 +261,8 @@ "পরিষেবার শর্তাবলী" "মুক্ত উৎস লাইসেন্সগুলি" "url খুলতে ব্যর্থ হয়েছে৷" - "ভিডিও কল করুন" + + + + 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 d8916d7d5..b00806927 100644 --- a/java/com/android/contacts/common/res/values-bs/strings.xml +++ b/java/com/android/contacts/common/res/values-bs/strings.xml @@ -263,5 +263,8 @@ "Uslovi pružanja usluge" "Licence otvorenog koda" "Otvaranje URL-a nije uspjelo." - "Uputi videopoziv" + + + + 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 c08c13e7a..0e4b2c5ee 100644 --- a/java/com/android/contacts/common/res/values-ca/strings.xml +++ b/java/com/android/contacts/common/res/values-ca/strings.xml @@ -261,5 +261,8 @@ "Condicions del servei" "Llicències de programari lliure" "No s\'ha pogut obrir l\'URL." - "Fa una videotrucada" + + + + 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 743a12ce9..0e9646fe2 100644 --- a/java/com/android/contacts/common/res/values-cs/strings.xml +++ b/java/com/android/contacts/common/res/values-cs/strings.xml @@ -265,5 +265,8 @@ "Smluvní podmínky" "Licence open source" "Adresu URL se nepodařilo otevřít." - "Zahájit videohovor" + + + + 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 8bfa56d93..534225ece 100644 --- a/java/com/android/contacts/common/res/values-da/strings.xml +++ b/java/com/android/contacts/common/res/values-da/strings.xml @@ -261,5 +261,8 @@ "Servicevilkår" "Open source-licenser" "Webadressen kunne ikke åbnes." - "Foretag videoopkald" + + + + 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 146fa966e..ffc5de0e9 100644 --- a/java/com/android/contacts/common/res/values-de/strings.xml +++ b/java/com/android/contacts/common/res/values-de/strings.xml @@ -261,5 +261,8 @@ "Nutzungsbedingungen" "Open-Source-Lizenzen" "Die URL konnte nicht geöffnet werden." - "Videoanruf starten" + + + + 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 510fcb046..5b1c7da2b 100644 --- a/java/com/android/contacts/common/res/values-el/strings.xml +++ b/java/com/android/contacts/common/res/values-el/strings.xml @@ -261,5 +261,8 @@ "Όροι Παροχής Υπηρεσιών" "Άδειες λογισμικού ανοικτού κώδικα" "Αποτυχία ανοίγματος url." - "Πραγματοποίηση βιντεοκλήσης" + + + + 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 79a09fff0..1040b1d4e 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 @@ -261,5 +261,8 @@ "Terms of Service" "Open-source licences" "Failed to open the URL." - "Place video call" + + + + 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 79a09fff0..1040b1d4e 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 @@ -261,5 +261,8 @@ "Terms of Service" "Open-source licences" "Failed to open the URL." - "Place video call" + + + + 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 79a09fff0..1040b1d4e 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 @@ -261,5 +261,8 @@ "Terms of Service" "Open-source licences" "Failed to open the URL." - "Place video call" + + + + 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 f44426beb..59ac2ce8b 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 @@ -261,5 +261,8 @@ "Condiciones del servicio" "Licencias de código abierto" "No se pudo abrir la url." - "Hacer una videollamada" + + + + 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 39ab71487..3307e6a78 100644 --- a/java/com/android/contacts/common/res/values-es/strings.xml +++ b/java/com/android/contacts/common/res/values-es/strings.xml @@ -261,5 +261,8 @@ "Condiciones de Servicio" "Licencias de código abierto" "No se ha podido abrir la URL." - "Hacer videollamada" + + + + 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 5e9d5c729..82d44b254 100644 --- a/java/com/android/contacts/common/res/values-et/strings.xml +++ b/java/com/android/contacts/common/res/values-et/strings.xml @@ -261,5 +261,8 @@ "Teenusetingimused" "Avatud lähtekoodi litsentsid" "URL-i avamine ebaõnnestus." - "Videokõne tegemine" + + + + 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 84c933094..1a101c92e 100644 --- a/java/com/android/contacts/common/res/values-eu/strings.xml +++ b/java/com/android/contacts/common/res/values-eu/strings.xml @@ -261,5 +261,8 @@ "Zerbitzu-baldintzak" "Kode irekiko lizentziak" "Ezin izan da ireki URLa." - "Egin bideo-deia" + + + + 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 e583a765d..dde50c136 100644 --- a/java/com/android/contacts/common/res/values-fa/strings.xml +++ b/java/com/android/contacts/common/res/values-fa/strings.xml @@ -261,5 +261,8 @@ "شرایط خدمات" "مجوزهای منبع آزاد" "نشانی وب باز نشد." - "برقراری تماس ویدئویی" + + + + 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 01468c354..370827a15 100644 --- a/java/com/android/contacts/common/res/values-fi/strings.xml +++ b/java/com/android/contacts/common/res/values-fi/strings.xml @@ -261,5 +261,8 @@ "Käyttöehdot" "Avoimen lähdekoodin käyttöluvat" "URL-osoitteen avaus epäonnistui." - "Soita videopuhelu" + + + + 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 cdeb4f097..d392e0c9b 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 @@ -261,5 +261,8 @@ "Modalités" "Licences de logiciels libres" "Échec de l\'ouverture de l\'URL." - "Faire un appel vidéo" + + + + 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 c0b20db1f..504f40b8a 100644 --- a/java/com/android/contacts/common/res/values-fr/strings.xml +++ b/java/com/android/contacts/common/res/values-fr/strings.xml @@ -261,5 +261,8 @@ "Conditions d\'utilisation" "Licences Open Source" "Impossible d\'ouvrir l\'URL." - "Passer un appel vidéo" + + + + 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 672f82baf..e1e2c11d6 100644 --- a/java/com/android/contacts/common/res/values-gl/strings.xml +++ b/java/com/android/contacts/common/res/values-gl/strings.xml @@ -261,5 +261,8 @@ "Condicións de servizo" "Licenzas de código aberto" "Produciuse un erro ao abrir o URL." - "Facer videochamada" + + + + 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 787e1d93a..19dbb8caf 100644 --- a/java/com/android/contacts/common/res/values-gu/strings.xml +++ b/java/com/android/contacts/common/res/values-gu/strings.xml @@ -261,5 +261,8 @@ "સેવાની શરતો" "ખુલ્લા સ્રોત લાઇસન્સીસ" "url ખોલવામાં નિષ્ફળ થયાં." - "વિડિઓ કૉલ કરો" + + + + 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 736ce97f8..841a69021 100644 --- a/java/com/android/contacts/common/res/values-hi/strings.xml +++ b/java/com/android/contacts/common/res/values-hi/strings.xml @@ -261,5 +261,8 @@ "सेवा की शर्तें" "ओपन सोर्स लाइसेंस" "url खोलने में विफल रहा." - "वीडियो कॉल करें" + + + + 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 a65b73c5b..ece6fe789 100644 --- a/java/com/android/contacts/common/res/values-hr/strings.xml +++ b/java/com/android/contacts/common/res/values-hr/strings.xml @@ -263,5 +263,8 @@ "Uvjeti pružanja usluge" "Licence otvorenog izvornog koda" "Otvaranje URL-a nije uspjelo." - "Upućivanje videopoziva" + + + + 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 82c983b94..696ed1d1e 100644 --- a/java/com/android/contacts/common/res/values-hu/strings.xml +++ b/java/com/android/contacts/common/res/values-hu/strings.xml @@ -261,5 +261,8 @@ "Általános Szerződési Feltételek" "Nyílt forráskódú licencek" "Nem sikerült megnyitni az URL-címet." - "Videohívás indítása" + + + + 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 384156e86..1340a0efa 100644 --- a/java/com/android/contacts/common/res/values-hy/strings.xml +++ b/java/com/android/contacts/common/res/values-hy/strings.xml @@ -261,5 +261,8 @@ "Օգտագործման պայմաններ" "Բաց կոդով ծրագրակազմի արտոնագրեր" "Չհաջողվեց բացել url-ը:" - "Կատարել տեսազանգ" + + + + 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 d2f596d57..17e54f00d 100644 --- a/java/com/android/contacts/common/res/values-in/strings.xml +++ b/java/com/android/contacts/common/res/values-in/strings.xml @@ -261,5 +261,8 @@ "Persyaratan layanan" "Lisensi sumber terbuka" "Gagal membuka url." - "Lakukan video call" + + + + 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 054dedf1d..7fa50d674 100644 --- a/java/com/android/contacts/common/res/values-is/strings.xml +++ b/java/com/android/contacts/common/res/values-is/strings.xml @@ -261,5 +261,8 @@ "Þjónustuskilmálar" "Leyfi opins kóða" "Ekki tókst að opna slóðina." - "Hringja myndsímtal" + + + + 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 80ddf2409..591ad851e 100644 --- a/java/com/android/contacts/common/res/values-it/strings.xml +++ b/java/com/android/contacts/common/res/values-it/strings.xml @@ -261,5 +261,8 @@ "Termini di servizio" "Licenze open source" "Impossibile aprire l\'URL." - "Effettua videochiamata" + + + + 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 b95998bae..7ad55d88e 100644 --- a/java/com/android/contacts/common/res/values-iw/strings.xml +++ b/java/com/android/contacts/common/res/values-iw/strings.xml @@ -265,5 +265,8 @@ "תנאים והגבלות" "רישיונות קוד פתוח" "לא ניתן לפתוח את כתובת האתר." - "בצע שיחת וידאו" + + + + 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 0135da0ce..2e7c5382e 100644 --- a/java/com/android/contacts/common/res/values-ja/strings.xml +++ b/java/com/android/contacts/common/res/values-ja/strings.xml @@ -261,5 +261,8 @@ "利用規約" "オープンソース ライセンス" "この URL を開けませんでした。" - "ビデオハングアウトを発信" + + + + 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 f126d4c81..26585942a 100644 --- a/java/com/android/contacts/common/res/values-ka/strings.xml +++ b/java/com/android/contacts/common/res/values-ka/strings.xml @@ -261,5 +261,8 @@ "მომსახურების პირობები" "ღია კოდის ლიცენზიები" "Url-ის გახსნა ვერ მოხერხდა." - "ვიდეოზარის განხორციელება" + + + + 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 3d2e9bd69..47acf5e83 100644 --- a/java/com/android/contacts/common/res/values-kk/strings.xml +++ b/java/com/android/contacts/common/res/values-kk/strings.xml @@ -261,5 +261,8 @@ "Қызмет көрсету шарттары" "Бастапқы коды ашық бағдарлама лицензиялары" "Url ашылған жоқ." - "Бейне қоңырау соғу" + + + + 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 7715f401c..98abe6882 100644 --- a/java/com/android/contacts/common/res/values-km/strings.xml +++ b/java/com/android/contacts/common/res/values-km/strings.xml @@ -261,5 +261,8 @@ "លក្ខខណ្ឌប្រើប្រាស់" "អាជ្ញាប័ណ្ណប្រភពកូដចំហ" "បាន​បរាជ័យ​ក្នុង​ការ​បើក URL។" - "ធ្វើការហៅជាវីដេអូ" + + + + 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 8b8b3f293..3dd4f5ada 100644 --- a/java/com/android/contacts/common/res/values-kn/strings.xml +++ b/java/com/android/contacts/common/res/values-kn/strings.xml @@ -261,5 +261,8 @@ "ಸೇವಾ ನಿಯಮಗಳು" "ಮುಕ್ತ ಮೂಲ ಪರವಾನಗಿಗಳು" "url ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ." - "ವೀಡಿಯೊ ಕರೆ ಮಾಡಿ" + + + + 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 a0eb767e5..ccf1845bd 100644 --- a/java/com/android/contacts/common/res/values-ko/strings.xml +++ b/java/com/android/contacts/common/res/values-ko/strings.xml @@ -261,5 +261,8 @@ "서비스 약관" "오픈소스 라이선스" "URL을 열지 못했습니다." - "화상 통화 걸기" + + + + 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 116da198d..c3309b7ee 100644 --- a/java/com/android/contacts/common/res/values-ky/strings.xml +++ b/java/com/android/contacts/common/res/values-ky/strings.xml @@ -261,5 +261,8 @@ "Тейлөө шарттары" "Ачык программа уруксаттамалары" "url ачылбай калды." - "Видео чалуу" + + + + 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 68d485c95..ec684beec 100644 --- a/java/com/android/contacts/common/res/values-lo/strings.xml +++ b/java/com/android/contacts/common/res/values-lo/strings.xml @@ -261,5 +261,8 @@ "​ເງື່ອນ​ໄຂ​ການ​ໃຫ້​ບໍ​ລິ​ການ" "ລິຂະສິດໂອເພນຊອດ" "ເປີດ URL ລົ້ມເຫລວ." - "ເຮັດການໂທວິດີໂອ" + + + + 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 15095f8ea..082950a08 100644 --- a/java/com/android/contacts/common/res/values-lt/strings.xml +++ b/java/com/android/contacts/common/res/values-lt/strings.xml @@ -265,5 +265,8 @@ "Paslaugų teikimo sąlygos" "Atvirojo šaltinio licencijos" "Nepavyko atidaryti URL." - "Atlikti vaizdo skambutį" + + + + 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 feb575dd8..54a2481ea 100644 --- a/java/com/android/contacts/common/res/values-lv/strings.xml +++ b/java/com/android/contacts/common/res/values-lv/strings.xml @@ -263,5 +263,8 @@ "Pakalpojumu sniegšanas noteikumi" "Atklātā pirmkoda licences" "Neizdevās atvērt URL." - "Sākt videozvanu" + + + + 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 b49f2a9e9..060519fd8 100644 --- a/java/com/android/contacts/common/res/values-mk/strings.xml +++ b/java/com/android/contacts/common/res/values-mk/strings.xml @@ -261,5 +261,8 @@ "Услови на користење" "Лиценци за софтвер со отворен код" "Врската не успеа да се отвори." - "Воспостави видеоповик" + + + + 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 5645d8667..bd77e7ea2 100644 --- a/java/com/android/contacts/common/res/values-ml/strings.xml +++ b/java/com/android/contacts/common/res/values-ml/strings.xml @@ -261,5 +261,8 @@ "സേവന നിബന്ധനകൾ" "ഓപ്പൺ സോഴ്‌സ് ലൈസൻസ്" "url തുറക്കാനായില്ല." - "വീഡിയോ കോൾ ചെയ്യുക" + + + + 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 b8c5dbbc3..e6e1ab12a 100644 --- a/java/com/android/contacts/common/res/values-mn/strings.xml +++ b/java/com/android/contacts/common/res/values-mn/strings.xml @@ -261,5 +261,8 @@ "Үйлчилгээний нөхцөл" "Нээлттэй эхийн лиценз" "URL-г нээж чадсангүй." - "Видео дуудлага хийх" + + + + 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 72e52823b..52b989fe9 100644 --- a/java/com/android/contacts/common/res/values-mr/strings.xml +++ b/java/com/android/contacts/common/res/values-mr/strings.xml @@ -261,5 +261,8 @@ "सेवा अटी" "मुक्त स्त्रोत परवाने" "url उघडण्यात अयशस्वी झाले." - "व्हिडिओ कॉल करा" + + + + 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 91cf2de87..c3ae12a92 100644 --- a/java/com/android/contacts/common/res/values-ms/strings.xml +++ b/java/com/android/contacts/common/res/values-ms/strings.xml @@ -261,5 +261,8 @@ "Syarat perkhidmatan" "Lesen sumber terbuka" "Gagal membuka url." - "Buat panggilan video" + + + + 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 e162b0cf7..3a90758d5 100644 --- a/java/com/android/contacts/common/res/values-my/strings.xml +++ b/java/com/android/contacts/common/res/values-my/strings.xml @@ -261,5 +261,8 @@ "ဝန်ဆောင်မှုဆိုင်ရာ စည်းမျဉ်းများ" "အခမဲ့ရင်းမြစ်လိုင်စင်များ" "url ကို ဖွင့်၍မရပါ။" - "ဗီဒီယို ခေါ်ဆိုမှုကို ပြုလုပ်ပါ" + + + + 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 930e949fd..ab1fd57d4 100644 --- a/java/com/android/contacts/common/res/values-nb/strings.xml +++ b/java/com/android/contacts/common/res/values-nb/strings.xml @@ -261,5 +261,8 @@ "Vilkår for bruk" "Lisenser for åpen kildekode" "Kunne ikke åpne nettadressen." - "Start et videoanrop" + + + + 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 50b44fdb7..1d3e5a2b3 100644 --- a/java/com/android/contacts/common/res/values-ne/strings.xml +++ b/java/com/android/contacts/common/res/values-ne/strings.xml @@ -261,5 +261,8 @@ "सेवा सर्तहरू" "खुला स्रोत सम्बन्धी इजाजतपत्रहरू" "url खोल्न सकिएन।" - "भिडियो कल गर्नुहोस्" + + + + 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 cfeb7dfa4..fb7d571dc 100644 --- a/java/com/android/contacts/common/res/values-nl/strings.xml +++ b/java/com/android/contacts/common/res/values-nl/strings.xml @@ -261,5 +261,8 @@ "Servicevoorwaarden" "Open-sourcelicenties" "Kan de URL niet openen." - "Videogesprek starten" + + + + 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 930e949fd..ab1fd57d4 100644 --- a/java/com/android/contacts/common/res/values-no/strings.xml +++ b/java/com/android/contacts/common/res/values-no/strings.xml @@ -261,5 +261,8 @@ "Vilkår for bruk" "Lisenser for åpen kildekode" "Kunne ikke åpne nettadressen." - "Start et videoanrop" + + + + 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 c043ab7d0..fef6578b0 100644 --- a/java/com/android/contacts/common/res/values-pa/strings.xml +++ b/java/com/android/contacts/common/res/values-pa/strings.xml @@ -261,5 +261,8 @@ "ਸੇਵਾ ਦੀਆਂ ਮਦਾਂ" "ਖੁੱਲ੍ਹਾ ਸਰੋਤ ਲਾਇਸੰਸ" "url ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ।" - "ਵੀਡੀਓ ਕਾਲ ਕਰੋ" + + + + 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 f48e2ce38..c2268d492 100644 --- a/java/com/android/contacts/common/res/values-pl/strings.xml +++ b/java/com/android/contacts/common/res/values-pl/strings.xml @@ -265,5 +265,8 @@ "Warunki usługi" "Licencje open source" "Nie udało się otworzyć URL-a." - "Rozpocznij rozmowę wideo" + + + + 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 1dbdce966..4ab169e91 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 @@ -261,5 +261,8 @@ "Termos de Serviço" "Licenças de código aberto" "Falha ao abrir o URL." - "Realizar videochamada" + + + + 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 08fe820d7..f979fdc3e 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 @@ -261,5 +261,8 @@ "Termos de Utilização" "Licenças de código aberto" "Falha ao abrir o URL." - "Efetuar videochamada" + + + + 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 1dbdce966..4ab169e91 100644 --- a/java/com/android/contacts/common/res/values-pt/strings.xml +++ b/java/com/android/contacts/common/res/values-pt/strings.xml @@ -261,5 +261,8 @@ "Termos de Serviço" "Licenças de código aberto" "Falha ao abrir o URL." - "Realizar videochamada" + + + + 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 0f1b98d81..ae2ea6599 100644 --- a/java/com/android/contacts/common/res/values-ro/strings.xml +++ b/java/com/android/contacts/common/res/values-ro/strings.xml @@ -263,5 +263,8 @@ "Termeni și condiții" "Licențe open source" "Adresa URL nu a putut fi deschisă." - "Efectuați un apel video" + + + + 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 a75cc6400..eaa998335 100644 --- a/java/com/android/contacts/common/res/values-ru/strings.xml +++ b/java/com/android/contacts/common/res/values-ru/strings.xml @@ -265,5 +265,8 @@ "Условия использования" "Лицензии открытого ПО" "Не удалось открыть URL." - "Видеовызов" + + + + 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 42a851723..238bcfee1 100644 --- a/java/com/android/contacts/common/res/values-si/strings.xml +++ b/java/com/android/contacts/common/res/values-si/strings.xml @@ -261,5 +261,8 @@ "සේවා නියම" "විවෘත මූලාශ්‍ර බලපත්‍ර" "url විවෘත කිරීමට අසමත් විය." - "වීඩියෝ ඇමතුම සිදු කිරීම" + + + + 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 22e47bfac..6daafb7b0 100644 --- a/java/com/android/contacts/common/res/values-sk/strings.xml +++ b/java/com/android/contacts/common/res/values-sk/strings.xml @@ -265,5 +265,8 @@ "Zmluvné podmienky" "Licencie open source" "Webovú adresu nebolo možné otvoriť" - "Uskutočniť videohovor" + + + + 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 f2826c6d1..964bac24c 100644 --- a/java/com/android/contacts/common/res/values-sl/strings.xml +++ b/java/com/android/contacts/common/res/values-sl/strings.xml @@ -265,5 +265,8 @@ "Pogoji storitve" "Odprtokodne licence" "Naslova URL ni bilo mogoče odpreti." - "Začetek videoklica" + + + + 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 83920fa12..d46841b4b 100644 --- a/java/com/android/contacts/common/res/values-sq/strings.xml +++ b/java/com/android/contacts/common/res/values-sq/strings.xml @@ -261,5 +261,8 @@ "Kushtet e shërbimit" "Licencat me burim të hapur" "Dështoi në hapjen e url-së." - "Kryej një telefonatë me video" + + + + 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 9801a29a3..6151ef960 100644 --- a/java/com/android/contacts/common/res/values-sr/strings.xml +++ b/java/com/android/contacts/common/res/values-sr/strings.xml @@ -263,5 +263,8 @@ "Услови коришћења услуге" "Лиценце отвореног кода" "Отварање URL-а није успело." - "Упути видео позив" + + + + 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 9fa33bee8..94f7abd35 100644 --- a/java/com/android/contacts/common/res/values-sv/strings.xml +++ b/java/com/android/contacts/common/res/values-sv/strings.xml @@ -261,5 +261,8 @@ "Användarvillkor" "Licenser för öppen källkod" "Det gick inte att öppna webbadressen." - "Ring ett videosamtal" + + + + 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 43e81e500..717f1b87e 100644 --- a/java/com/android/contacts/common/res/values-sw/strings.xml +++ b/java/com/android/contacts/common/res/values-sw/strings.xml @@ -261,5 +261,8 @@ "Sheria na masharti" "Leseni za programu huria" "Imeshindwa kufungua url." - "Anzisha Hangout ya Video" + + + + 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 6a66f60cd..0bbee79f7 100644 --- a/java/com/android/contacts/common/res/values-ta/strings.xml +++ b/java/com/android/contacts/common/res/values-ta/strings.xml @@ -261,5 +261,8 @@ "சேவை விதிமுறைகள்" "ஓப்பன் சோர்ஸ் உரிமங்கள்" "urlஐத் திறக்க முடியவில்லை." - "வீடியோ அழைப்பைச் செய்" + + + + 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 59acd5b17..474bb9359 100644 --- a/java/com/android/contacts/common/res/values-te/strings.xml +++ b/java/com/android/contacts/common/res/values-te/strings.xml @@ -261,5 +261,8 @@ "సేవా నిబంధనలు" "ఓపెన్ సోర్స్ లైసెన్స్‌లు" "urlని తెరవడంలో విఫలమైంది." - "వీడియో కాల్ చేస్తుంది" + + + + 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 0585fba9f..598b810b4 100644 --- a/java/com/android/contacts/common/res/values-th/strings.xml +++ b/java/com/android/contacts/common/res/values-th/strings.xml @@ -261,5 +261,8 @@ "ข้อกำหนดในการให้บริการ" "ใบอนุญาตโอเพนซอร์ส" "เปิด URL ไม่สำเร็จ" - "เริ่มแฮงเอาท์วิดีโอ" + + + + 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 49a2830a8..fd51f1f2a 100644 --- a/java/com/android/contacts/common/res/values-tl/strings.xml +++ b/java/com/android/contacts/common/res/values-tl/strings.xml @@ -261,5 +261,8 @@ "Tuntunin ng serbisyo" "Mga open source na lisensya" "Nabigong buksan ang url." - "Magsimula ng video call" + + + + 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 b0d4a91aa..20b076e2e 100644 --- a/java/com/android/contacts/common/res/values-tr/strings.xml +++ b/java/com/android/contacts/common/res/values-tr/strings.xml @@ -261,5 +261,8 @@ "Hizmet şartları" "Açık kaynak lisansları" "URL açılamadı." - "Video görüşmesi yap" + + + + 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 fe936d5cf..2e9c3cb84 100644 --- a/java/com/android/contacts/common/res/values-uk/strings.xml +++ b/java/com/android/contacts/common/res/values-uk/strings.xml @@ -265,5 +265,8 @@ "Умови використання" "Ліцензії на ПЗ з відкритим кодом" "Не вдалося відкрити посилання." - "Почати відеодзвінок" + + + + 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 3273fb2ef..8db576e08 100644 --- a/java/com/android/contacts/common/res/values-ur/strings.xml +++ b/java/com/android/contacts/common/res/values-ur/strings.xml @@ -261,5 +261,8 @@ "سروس کی شرائط" "اوپن سورس لائسنسز" "‏URL کھولنے میں ناکامی۔" - "ویڈیو کال کریں" + + + + 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 93fc0841d..9fe0e5086 100644 --- a/java/com/android/contacts/common/res/values-uz/strings.xml +++ b/java/com/android/contacts/common/res/values-uz/strings.xml @@ -261,5 +261,8 @@ "Foydalanish shartlari" "Ochiq kodli dasturiy ta’minot litsenziyalari" "URLni ochishda xatolik yuz berdi." - "Video qo‘ng‘iroq qilish" + + + + 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 c444245b1..3a6f59473 100644 --- a/java/com/android/contacts/common/res/values-vi/strings.xml +++ b/java/com/android/contacts/common/res/values-vi/strings.xml @@ -261,5 +261,8 @@ "Điều khoản dịch vụ" "Giấy phép nguồn mở" "Không mở được url." - "Gọi điện video" + + + + 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 764664bb0..89c8e8d0d 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 @@ -261,5 +261,8 @@ "服务条款" "开放源代码许可" "无法打开网址。" - "发起视频通话" + + + + 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 8c37a02b9..bd912b6ff 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 @@ -261,5 +261,8 @@ "服務條款" "開放原始碼授權" "無法開啟網址。" - "開始視像通話" + + + + 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 015683eb0..14e1e901f 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 @@ -261,5 +261,8 @@ "服務條款" "開放原始碼授權" "無法開啟網址。" - "撥打視訊通話" + + + + 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 f128b2a2a..1c93e4c11 100644 --- a/java/com/android/contacts/common/res/values-zu/strings.xml +++ b/java/com/android/contacts/common/res/values-zu/strings.xml @@ -261,5 +261,8 @@ "Imigomo yesevisi" "Amalayisense womthombo ovulekile" "Yehlulekile ukuvula i-url." - "Yenza ikholi yevidiyo" + + + + diff --git a/java/com/android/contacts/common/res/values/strings.xml b/java/com/android/contacts/common/res/values/strings.xml index d58787087..9ac9fef28 100644 --- a/java/com/android/contacts/common/res/values/strings.xml +++ b/java/com/android/contacts/common/res/values/strings.xml @@ -791,5 +791,12 @@ This is especially valuable for views without textual representation like ImageView. [CHAR LIMIT=NONE]--> - Place video call + Video call + + + Share and call diff --git a/java/com/android/contacts/common/widget/FloatingActionButtonController.java b/java/com/android/contacts/common/widget/FloatingActionButtonController.java index 368d09207..d924681ea 100644 --- a/java/com/android/contacts/common/widget/FloatingActionButtonController.java +++ b/java/com/android/contacts/common/widget/FloatingActionButtonController.java @@ -72,12 +72,16 @@ public class FloatingActionButtonController { } /** - * Sets FAB as View.VISIBLE or View.GONE. + * Sets FAB as shown or hidden. * * @param visible Whether or not to make the container visible. */ public void setVisible(boolean visible) { - mFab.setVisibility(visible ? View.VISIBLE : View.GONE); + if (visible) { + mFab.show(); + } else { + mFab.hide(); + } } public void changeIcon(Drawable icon, String description) { diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml index 5b7e75751..de4b48c51 100644 --- a/java/com/android/dialer/app/AndroidManifest.xml +++ b/java/com/android/dialer/app/AndroidManifest.xml @@ -55,7 +55,7 @@ + android:targetSdkVersion="26"/> diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java index 139f27af8..3318c506d 100644 --- a/java/com/android/dialer/app/DialtactsActivity.java +++ b/java/com/android/dialer/app/DialtactsActivity.java @@ -18,6 +18,7 @@ package com.android.dialer.app; import android.app.Fragment; import android.app.FragmentTransaction; +import android.app.KeyguardManager; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; @@ -161,6 +162,7 @@ public class DialtactsActivity extends TransactionSafeActivity private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1; public static final int ACTIVITY_REQUEST_CODE_CALL_COMPOSE = 2; + public static final int ACTIVITY_REQUEST_CODE_LIGHTBRINGER = 3; private static final int FAB_SCALE_IN_DELAY_MS = 300; @@ -379,12 +381,8 @@ public class DialtactsActivity extends TransactionSafeActivity mSearchView.addTextChangedListener(mPhoneSearchQueryTextListener); mVoiceSearchButton = searchEditTextLayout.findViewById(R.id.voice_search_button); searchEditTextLayout - .findViewById(R.id.search_magnifying_glass) + .findViewById(R.id.search_box_collapsed) .setOnClickListener(mSearchViewOnClickListener); - searchEditTextLayout - .findViewById(R.id.search_box_start_search) - .setOnClickListener(mSearchViewOnClickListener); - searchEditTextLayout.setOnClickListener(mSearchViewOnClickListener); searchEditTextLayout.setCallback( new SearchEditTextLayout.Callback() { @Override @@ -505,8 +503,6 @@ public class DialtactsActivity extends TransactionSafeActivity mVoiceSearchQuery = null; } - mFirstLaunch = false; - if (mIsRestarting) { // This is only called when the activity goes from resumed -> paused -> resumed, so it // will not cause an extra view to be sent out on rotation @@ -522,33 +518,39 @@ public class DialtactsActivity extends TransactionSafeActivity } mFloatingActionButtonController.align(getFabAlignment(), false /* animate */); - if (Calls.CONTENT_TYPE.equals(getIntent().getType())) { - // Externally specified extras take precedence to EXTRA_SHOW_TAB, which is only - // used internally. - final Bundle extras = getIntent().getExtras(); - if (extras != null && extras.getInt(Calls.EXTRA_CALL_TYPE_FILTER) == Calls.VOICEMAIL_TYPE) { - mListsFragment.showTab(DialtactsPagerAdapter.TAB_INDEX_VOICEMAIL); - Logger.get(this).logImpression(DialerImpression.Type.VVM_NOTIFICATION_CLICKED); - } else { - mListsFragment.showTab(DialtactsPagerAdapter.TAB_INDEX_HISTORY); + if (mFirstLaunch) { + // Only process the Intent the first time onResume() is called after receiving it + if (Calls.CONTENT_TYPE.equals(getIntent().getType())) { + // Externally specified extras take precedence to EXTRA_SHOW_TAB, which is only + // used internally. + final Bundle extras = getIntent().getExtras(); + if (extras != null && extras.getInt(Calls.EXTRA_CALL_TYPE_FILTER) == Calls.VOICEMAIL_TYPE) { + mListsFragment.showTab(DialtactsPagerAdapter.TAB_INDEX_VOICEMAIL); + Logger.get(this).logImpression(DialerImpression.Type.VVM_NOTIFICATION_CLICKED); + } else { + mListsFragment.showTab(DialtactsPagerAdapter.TAB_INDEX_HISTORY); + } + } else if (getIntent().hasExtra(EXTRA_SHOW_TAB)) { + int index = + getIntent().getIntExtra(EXTRA_SHOW_TAB, DialtactsPagerAdapter.TAB_INDEX_SPEED_DIAL); + if (index < mListsFragment.getTabCount()) { + // Hide dialpad since this is an explicit intent to show a specific tab, which is coming + // from missed call or voicemail notification. + hideDialpadFragment(false, false); + exitSearchUi(); + mListsFragment.showTab(index); + } } - } else if (getIntent().hasExtra(EXTRA_SHOW_TAB)) { - int index = - getIntent().getIntExtra(EXTRA_SHOW_TAB, DialtactsPagerAdapter.TAB_INDEX_SPEED_DIAL); - if (index < mListsFragment.getTabCount()) { - // Hide dialpad since this is an explicit intent to show a specific tab, which is coming - // from missed call or voicemail notification. - hideDialpadFragment(false, false); - exitSearchUi(); - mListsFragment.showTab(index); + + if (getIntent().getBooleanExtra(EXTRA_CLEAR_NEW_VOICEMAILS, false)) { + CallLogNotificationsService.markNewVoicemailsAsOld(this, null); } } - if (getIntent().getBooleanExtra(EXTRA_CLEAR_NEW_VOICEMAILS, false)) { - CallLogNotificationsService.markNewVoicemailsAsOld(this, null); - } + mFirstLaunch = false; setSearchBoxHint(); + timeTabSelected = SystemClock.elapsedRealtime(); mP13nLogger.reset(); mP13nRanker.refresh( @@ -586,7 +588,10 @@ public class DialtactsActivity extends TransactionSafeActivity SystemClock.elapsedRealtime() - timeTabSelected >= HISTORY_TAB_SEEN_TIMEOUT; boolean isOnHistoryTab = mListsFragment.getCurrentTabIndex() == DialtactsPagerAdapter.TAB_INDEX_HISTORY; - if (isOnHistoryTab && timeoutElapsed && !isChangingConfigurations()) { + if (isOnHistoryTab + && timeoutElapsed + && !isChangingConfigurations() + && !getSystemService(KeyguardManager.class).isKeyguardLocked()) { mListsFragment.markMissedCallsAsReadAndRemoveNotifications(); } } @@ -857,7 +862,10 @@ public class DialtactsActivity extends TransactionSafeActivity /** Finishes hiding the dialpad fragment after any animations are completed. */ private void commitDialpadFragmentHide() { - if (!mStateSaved && mDialpadFragment != null && !mDialpadFragment.isHidden()) { + if (!mStateSaved + && mDialpadFragment != null + && !mDialpadFragment.isHidden() + && !isDestroyed()) { final FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.hide(mDialpadFragment); ft.commit(); @@ -1006,6 +1014,7 @@ public class DialtactsActivity extends TransactionSafeActivity @Override public void onNewIntent(Intent newIntent) { setIntent(newIntent); + mFirstLaunch = true; mStateSaved = false; displayFragment(newIntent); diff --git a/java/com/android/dialer/app/calllog/BlockReportSpamListener.java b/java/com/android/dialer/app/calllog/BlockReportSpamListener.java index 740d6b361..28082df2b 100644 --- a/java/com/android/dialer/app/calllog/BlockReportSpamListener.java +++ b/java/com/android/dialer/app/calllog/BlockReportSpamListener.java @@ -20,6 +20,7 @@ import android.app.FragmentManager; import android.content.ContentValues; import android.content.Context; import android.net.Uri; +import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import com.android.dialer.blocking.BlockReportSpamDialogs; import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; @@ -55,7 +56,7 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic final String number, final String countryIso, final int callType, - final ContactSource.Type contactSourceType) { + @NonNull final ContactSource.Type contactSourceType) { BlockReportSpamDialogs.BlockReportSpamDialogFragment.newInstance( displayNumber, Spam.get(mContext).isDialogReportSpamCheckedByDefault(), @@ -99,7 +100,7 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic final String number, final String countryIso, final int callType, - final ContactSource.Type contactSourceType) { + @NonNull final ContactSource.Type contactSourceType) { BlockReportSpamDialogs.BlockDialogFragment.newInstance( displayNumber, Spam.get(mContext).isSpamEnabled(), diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java index d4872d5b3..b433e6529 100644 --- a/java/com/android/dialer/app/calllog/CallLogAdapter.java +++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java @@ -77,6 +77,7 @@ import com.android.dialer.enrichedcall.historyquery.proto.HistoryResult; import com.android.dialer.lightbringer.Lightbringer; import com.android.dialer.lightbringer.LightbringerComponent; import com.android.dialer.lightbringer.LightbringerListener; +import com.android.dialer.logging.ContactSource; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.phonenumbercache.CallLogQuery; @@ -177,13 +178,14 @@ public class CallLogAdapter extends GroupingListAdapter } }; + // Todo (uabdullah): Use plurals http://b/37751831 private void showDeleteSelectedItemsDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); Assert.checkArgument(selectedItems.size() > 0); String voicemailString = selectedItems.size() == 1 ? mActivity.getResources().getString(R.string.voicemailMultiSelectVoicemail) - : mActivity.getResources().getString(R.string.voicemailMultiSelectVoicemail); + : mActivity.getResources().getString(R.string.voicemailMultiSelectVoicemails); String deleteVoicemailTitle = mActivity .getResources() @@ -228,14 +230,15 @@ public class CallLogAdapter extends GroupingListAdapter if (ConfigProviderBindings.get(v.getContext()) .getBoolean("enable_call_log_multiselect", true) && mVoicemailPlaybackPresenter != null) { - if (v.getId() == R.id.primary_action_view) { + if (v.getId() == R.id.primary_action_view || v.getId() == R.id.quick_contact_photo) { if (mActionMode == null) { mActionMode = v.startActionMode(mActionModeCallback); } CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder) v.getTag(); viewHolder.quickContactView.setVisibility(View.GONE); viewHolder.checkBoxView.setVisibility(View.VISIBLE); - return false; + mExpandCollapseListener.onClick(v); + return true; } } return true; @@ -522,6 +525,7 @@ public class CallLogAdapter extends GroupingListAdapter viewHolder.callLogEntryView.setTag(viewHolder); viewHolder.primaryActionView.setTag(viewHolder); + viewHolder.quickContactView.setTag(viewHolder); return viewHolder; } @@ -630,7 +634,7 @@ public class CallLogAdapter extends GroupingListAdapter @Override protected Boolean doInBackground(Void... params) { views.blockId = - mFilteredNumberAsyncQueryHandler.getBlockedIdSynchronousForCalllogOnly( + mFilteredNumberAsyncQueryHandler.getBlockedIdSynchronous( views.number, views.countryIso); details.isBlocked = views.blockId != null; if (isCancelled()) { @@ -872,14 +876,25 @@ public class CallLogAdapter extends GroupingListAdapter } views.info = info; - views.numberType = - (String) - Phone.getTypeLabel(mActivity.getResources(), details.numberType, details.numberLabel); + views.numberType = getNumberType(mActivity.getResources(), details); mCallLogListItemHelper.updatePhoneCallDetails(details); return true; } + private static String getNumberType(Resources res, PhoneCallDetails details) { + // Label doesn't make much sense if the information is coming from CNAP or Cequint Caller ID. + if (details.sourceType == ContactSource.Type.SOURCE_TYPE_CNAP + || details.sourceType == ContactSource.Type.SOURCE_TYPE_CEQUINT_CALLER_ID) { + return ""; + } + // Returns empty label instead of "custom" if the custom label is empty. + if (details.numberType == Phone.TYPE_CUSTOM && TextUtils.isEmpty(details.numberLabel)) { + return ""; + } + return (String) Phone.getTypeLabel(res, details.numberType, details.numberLabel); + } + /** * Render item view given position. This is running on UI thread so DO NOT put any expensive * operation into it. diff --git a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java index 2aedb6f17..a58357448 100644 --- a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java +++ b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java @@ -83,12 +83,7 @@ public class CallLogAsyncTaskUtil { new AsyncTask() { @Override public Void doInBackground(Void... params) { - ContentValues values = new ContentValues(); - values.put(Voicemails.DELETED, "1"); - context.getContentResolver().update(voicemailUri, values, null, null); - // TODO(b/35440541): check which source package is changed. Don't need - // to upload changes on foreign voicemails, they will get a PROVIDER_CHANGED - uploadVoicemailLocalChangesToServer(context); + deleteVoicemailSynchronous(context, voicemailUri); return null; } @@ -101,6 +96,15 @@ public class CallLogAsyncTaskUtil { }); } + public static void deleteVoicemailSynchronous(Context context, Uri voicemailUri) { + ContentValues values = new ContentValues(); + values.put(Voicemails.DELETED, "1"); + context.getContentResolver().update(voicemailUri, values, null, null); + // TODO(b/35440541): check which source package is changed. Don't need + // to upload changes on foreign voicemails, they will get a PROVIDER_CHANGED + uploadVoicemailLocalChangesToServer(context); + } + public static void markCallAsRead(@NonNull final Context context, @NonNull final long[] callIds) { if (!PermissionsUtil.hasPhonePermissions(context)) { return; diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java index fcc34ebef..874aeeac8 100644 --- a/java/com/android/dialer/app/calllog/CallLogFragment.java +++ b/java/com/android/dialer/app/calllog/CallLogFragment.java @@ -41,7 +41,6 @@ import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.android.contacts.common.GeoUtil; import com.android.dialer.app.Bindings; import com.android.dialer.app.R; import com.android.dialer.app.calllog.calllogcache.CallLogCache; @@ -56,6 +55,7 @@ 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.phonenumbercache.ContactInfoHelper; import com.android.dialer.util.PermissionsUtil; @@ -376,6 +376,7 @@ public class CallLogFragment extends Fragment super.onStop(); mAdapter.onStop(); + mContactInfoCache.stop(); } @Override @@ -398,8 +399,6 @@ public class CallLogFragment extends Fragment outState.putBoolean(KEY_HAS_READ_CALL_LOG_PERMISSION, mHasReadCallLogPermission); outState.putBoolean(KEY_REFRESH_DATA_REQUIRED, mRefreshDataRequired); - mContactInfoCache.stop(); - mAdapter.onSaveInstanceState(outState); } diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java index b57f9b04a..278caba92 100644 --- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java +++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java @@ -17,6 +17,7 @@ package com.android.dialer.app.calllog; import android.app.Activity; +import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.res.Resources; @@ -26,6 +27,7 @@ import android.provider.CallLog; import android.provider.CallLog.Calls; import android.provider.ContactsContract.CommonDataKinds.Phone; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.support.v7.widget.CardView; import android.support.v7.widget.RecyclerView; @@ -43,6 +45,7 @@ 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; @@ -182,7 +185,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder * The name or number associated with the call. Cached here for use when setting content * descriptions on buttons in the actions ViewStub when it is inflated. */ - public CharSequence nameOrNumber; + @Nullable public CharSequence nameOrNumber; /** * The call type or Location associated with the call. Cached here for use when setting text for a * voicemail log's call button @@ -257,6 +260,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder primaryActionView.setOnClickListener(mExpandCollapseListener); if (mVoicemailPlaybackPresenter != null) { primaryActionView.setOnLongClickListener(longPressListener); + quickContactView.setOnLongClickListener(longPressListener); } else { primaryActionView.setOnCreateContextMenuListener(this); } @@ -788,17 +792,38 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder mVoicemailPlaybackPresenter.shareVoicemail(); } else { logCallLogAction(view.getId()); + final IntentProvider intentProvider = (IntentProvider) view.getTag(); - if (intentProvider != null) { - final Intent intent = intentProvider.getIntent(mContext); - // See IntentProvider.getCallDetailIntentProvider() for why this may be null. - if (intent != null) { - DialerUtils.startActivityWithErrorToast(mContext, intent); - } + if (intentProvider == null) { + return; + } + + final Intent intent = intentProvider.getIntent(mContext); + // See IntentProvider.getCallDetailIntentProvider() for why this may be null. + if (intent == null) { + return; + } + + // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer + // intents need to be started using startActivityForResult instead of the usual startActivity + String packageName = intent.getPackage(); + if (packageName != null && packageName.equals(getLightbringer().getPackageName(mContext))) { + startLightbringerActivity(intent); + } else { + DialerUtils.startActivityWithErrorToast(mContext, intent); } } } + private void startLightbringerActivity(Intent intent) { + try { + Activity activity = (Activity) mContext; + activity.startActivityForResult(intent, DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER); + } catch (ActivityNotFoundException e) { + Toast.makeText(mContext, R.string.activity_not_available, Toast.LENGTH_SHORT).show(); + } + } + private CallComposerContact buildContact() { CallComposerContact.Builder contact = CallComposerContact.newBuilder(); contact.setPhotoId(info.photoId); @@ -808,7 +833,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder if (info.lookupUri != null) { contact.setContactUri(info.lookupUri.toString()); } - contact.setNameOrNumber((String) nameOrNumber); + if (nameOrNumber != null) { + contact.setNameOrNumber((String) nameOrNumber); + } contact.setContactType(getContactType()); contact.setNumber(number); /* second line of contact view. */ diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java index 79a32afe3..4127d1f0b 100644 --- a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java +++ b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java @@ -32,10 +32,10 @@ import android.support.annotation.WorkerThread; import android.support.v4.os.UserManagerCompat; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; -import com.android.contacts.common.GeoUtil; import com.android.dialer.app.R; import com.android.dialer.calllogutils.PhoneNumberDisplayUtil; import com.android.dialer.common.LogUtil; +import com.android.dialer.location.GeoUtil; import com.android.dialer.notification.GroupedNotificationUtil; import com.android.dialer.phonenumbercache.ContactInfo; import com.android.dialer.phonenumbercache.ContactInfoHelper; diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java index 0007d1863..d67f12266 100644 --- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java +++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java @@ -31,6 +31,7 @@ import android.os.PersistableBundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; +import android.support.annotation.WorkerThread; import android.support.v4.os.BuildCompat; import android.support.v4.util.Pair; import android.telecom.PhoneAccount; @@ -48,6 +49,7 @@ import com.android.dialer.app.R; import com.android.dialer.app.calllog.CallLogNotificationsQueryHelper.NewCall; import com.android.dialer.app.contactinfo.ContactPhotoLoader; import com.android.dialer.app.list.DialtactsPagerAdapter; +import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; import com.android.dialer.blocking.FilteredNumbersUtil; import com.android.dialer.calllogutils.PhoneAccountUtils; import com.android.dialer.common.Assert; @@ -76,17 +78,24 @@ public class DefaultVoicemailNotifier { private final Context context; private final CallLogNotificationsQueryHelper queryHelper; + private final FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler; @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) - DefaultVoicemailNotifier(Context context, CallLogNotificationsQueryHelper queryHelper) { + DefaultVoicemailNotifier( + Context context, + CallLogNotificationsQueryHelper queryHelper, + FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler) { this.context = context; this.queryHelper = queryHelper; + this.filteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler; } /** Returns an instance of {@link DefaultVoicemailNotifier}. */ public static DefaultVoicemailNotifier getInstance(Context context) { return new DefaultVoicemailNotifier( - context, CallLogNotificationsQueryHelper.getInstance(context)); + context, + CallLogNotificationsQueryHelper.getInstance(context), + new FilteredNumberAsyncQueryHandler(context)); } /** @@ -97,7 +106,9 @@ public class DefaultVoicemailNotifier { * *

It is not safe to call this method from the main thread. */ + @WorkerThread public void updateNotification() { + Assert.isWorkerThread(); // Lookup the list of new voicemails to include in the notification. final List newCalls = queryHelper.getNewVoicemails(); @@ -121,13 +132,15 @@ public class DefaultVoicemailNotifier { NewCall newCall = itr.next(); // Skip notifying for numbers which are blocked. - if (FilteredNumbersUtil.shouldBlockVoicemail( - context, newCall.number, newCall.countryIso, newCall.dateMs)) { + if (!FilteredNumbersUtil.hasRecentEmergencyCall(context) + && filteredNumberAsyncQueryHandler.getBlockedIdSynchronous( + newCall.number, newCall.countryIso) + != null) { itr.remove(); if (newCall.voicemailUri != null) { // Delete the voicemail. - context.getContentResolver().delete(newCall.voicemailUri, null, null); + CallLogAsyncTaskUtil.deleteVoicemailSynchronous(context, newCall.voicemailUri); } continue; } diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java index 7c25e7d39..1440218fb 100644 --- a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java +++ b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java @@ -45,16 +45,6 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment { super(CallLog.Calls.VOICEMAIL_TYPE); } - @Override - public void onCreate(Bundle state) { - super.onCreate(state); - mVoicemailPlaybackPresenter = VoicemailPlaybackPresenter.getInstance(getActivity(), state); - getActivity() - .getContentResolver() - .registerContentObserver( - VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver); - } - @Override protected VoicemailPlaybackPresenter getVoicemailPlaybackPresenter() { return mVoicemailPlaybackPresenter; @@ -62,6 +52,12 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment { @Override public void onActivityCreated(Bundle savedInstanceState) { + mVoicemailPlaybackPresenter = + VoicemailPlaybackPresenter.getInstance(getActivity(), savedInstanceState); + getActivity() + .getContentResolver() + .registerContentObserver( + VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver); super.onActivityCreated(savedInstanceState); mVoicemailErrorManager = new VoicemailErrorManager(getContext(), getAdapter().getAlertManager(), mModalAlertManager); @@ -132,9 +128,6 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment { public void onNotVisible() { LogUtil.enterBlock("VisualVoicemailCallLogFragment.onPageUnselected"); super.onNotVisible(); - if (getAdapter() != null && getAdapter().mActionMode != null) { - getAdapter().mActionMode.finish(); - } if (getActivity() != null) { getActivity().setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE); } diff --git a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java index 7a5db19f2..e561b5607 100644 --- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java +++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java @@ -28,6 +28,7 @@ import com.android.dialer.phonenumbercache.ContactInfo; import com.android.dialer.phonenumbercache.ContactInfoHelper; import com.android.dialer.util.ExpirableCache; import java.lang.ref.WeakReference; +import java.util.Objects; import java.util.concurrent.BlockingQueue; import java.util.concurrent.PriorityBlockingQueue; @@ -77,6 +78,8 @@ public class ContactInfoCache { break; case START_THREAD: reference.startRequestProcessing(); + break; + default: // fall out } } } @@ -125,7 +128,7 @@ public class ContactInfoCache { enqueueRequest(number, countryIso, callLogContactInfo, /* immediate */ false, requestType); } - if (info == ContactInfo.EMPTY) { + if (Objects.equals(info, ContactInfo.EMPTY)) { // Use the cached contact info from the call log. info = callLogContactInfo; } @@ -153,11 +156,15 @@ public class ContactInfoCache { ContactInfo info; if (request.isLocalRequest()) { info = mContactInfoHelper.lookupNumber(request.number, request.countryIso); - // TODO: Maybe skip look up if it's already available in cached number lookup service. - long start = SystemClock.elapsedRealtime(); - mContactInfoHelper.updateFromCequintCallerId(info, request.number); - long time = SystemClock.elapsedRealtime() - start; - LogUtil.d("ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time); + if (!info.contactExists) { + // TODO: Maybe skip look up if it's already available in cached number lookup + // service. + long start = SystemClock.elapsedRealtime(); + mContactInfoHelper.updateFromCequintCallerId(info, request.number); + long time = SystemClock.elapsedRealtime() - start; + LogUtil.d( + "ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time); + } if (request.type == ContactInfoRequest.TYPE_LOCAL_AND_REMOTE) { if (!mContactInfoHelper.hasName(info)) { enqueueRequest( @@ -192,7 +199,8 @@ public class ContactInfoCache { // Exception: Photo uris for contacts from remote sources are not cached in the call log // cache, so we have to force a redraw for these contacts regardless. boolean updated = - (existingInfo != ContactInfo.EMPTY || isRemoteSource) && !info.equals(existingInfo); + (!Objects.equals(existingInfo, ContactInfo.EMPTY) || isRemoteSource) + && !info.equals(existingInfo); // Store the data in the cache so that the UI thread can use to display it. Store it // even if it has not changed so that it is marked as not expired. diff --git a/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java b/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java index 71e4a16ad..4c8e32a41 100644 --- a/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java +++ b/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java @@ -25,11 +25,11 @@ import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.support.v4.graphics.drawable.RoundedBitmapDrawable; import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory; -import com.android.contacts.common.GeoUtil; import com.android.contacts.common.lettertiles.LetterTileDrawable; import com.android.dialer.app.R; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.android.dialer.location.GeoUtil; import com.android.dialer.phonenumbercache.ContactInfo; import com.android.dialer.phonenumbercache.ContactInfoHelper; import java.io.IOException; diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java index 271f62199..a0c348424 100644 --- a/java/com/android/dialer/app/dialpad/DialpadFragment.java +++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java @@ -69,7 +69,6 @@ import android.widget.ListView; import android.widget.PopupMenu; import android.widget.RelativeLayout; import android.widget.TextView; -import com.android.contacts.common.GeoUtil; import com.android.contacts.common.dialog.CallSubjectDialog; import com.android.contacts.common.util.StopWatch; import com.android.contacts.common.widget.FloatingActionButtonController; @@ -84,6 +83,7 @@ import com.android.dialer.calllogutils.PhoneAccountUtils; 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.proguard.UsedByReflection; import com.android.dialer.telecom.TelecomUtil; import com.android.dialer.util.CallUtil; @@ -1189,7 +1189,6 @@ public class DialpadFragment extends Fragment // Just call 'scaleIn()' method if the mFloatingActionButtonController was not already // previously visible. mFloatingActionButtonController.scaleIn(0); - mFloatingActionButtonController.setVisible(true); } mDialpadChooser.setVisibility(View.GONE); } @@ -1410,10 +1409,10 @@ public class DialpadFragment extends Fragment public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); final DialtactsActivity activity = (DialtactsActivity) getActivity(); - final DialpadView dialpadView = (DialpadView) getView().findViewById(R.id.dialpad_view); - if (activity == null) { + if (activity == null || getView() == null) { return; } + final DialpadView dialpadView = (DialpadView) getView().findViewById(R.id.dialpad_view); if (!hidden && !isDialpadChooserVisible()) { if (mAnimate) { dialpadView.animateShow(); diff --git a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java index f3a93f916..2e3b0cf92 100644 --- a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java +++ b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java @@ -17,11 +17,14 @@ package com.android.dialer.app.dialpad; import android.content.AsyncTaskLoader; +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.database.Cursor; import android.database.MatrixCursor; -import android.util.Log; import com.android.contacts.common.list.PhoneNumberListAdapter.PhoneQuery; +import com.android.dialer.common.LogUtil; import com.android.dialer.database.Database; import com.android.dialer.database.DialerDatabaseHelper; import com.android.dialer.database.DialerDatabaseHelper.ContactNumber; @@ -43,7 +46,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader { private String mQuery; private SmartDialNameMatcher mNameMatcher; - private ForceLoadContentObserver mObserver; + private BroadcastReceiver mSmartDialUpdatedReceiver; private boolean mShowEmptyListForNullQuery = true; @@ -59,7 +62,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader { */ public void configureQuery(String query) { if (DEBUG) { - Log.v(TAG, "Configure new query to be " + query); + LogUtil.v(TAG, "Configure new query to be " + query); } mQuery = SmartDialNameMatcher.normalizeNumber(query, SmartDialPrefix.getMap()); @@ -76,7 +79,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader { @Override public Cursor loadInBackground() { if (DEBUG) { - Log.v(TAG, "Load in background " + mQuery); + LogUtil.v(TAG, "Load in background " + mQuery); } if (!PermissionsUtil.hasContactsPermissions(mContext)) { @@ -90,7 +93,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader { dialerDatabaseHelper.getLooseMatches(mQuery, mNameMatcher); if (DEBUG) { - Log.v(TAG, "Loaded matches " + String.valueOf(allMatches.size())); + LogUtil.v(TAG, "Loaded matches " + allMatches.size()); } /** Constructs a cursor for the returned array of results. */ @@ -121,11 +124,17 @@ public class SmartDialCursorLoader extends AsyncTaskLoader { Cursor oldCursor = mCursor; mCursor = cursor; - if (mObserver == null) { - mObserver = new ForceLoadContentObserver(); - mContext - .getContentResolver() - .registerContentObserver(DialerDatabaseHelper.SMART_DIAL_UPDATED_URI, true, mObserver); + if (mSmartDialUpdatedReceiver == null) { + mSmartDialUpdatedReceiver = + new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + onContentChanged(); + } + }; + mContext.registerReceiver( + mSmartDialUpdatedReceiver, + new IntentFilter(DialerDatabaseHelper.ACTION_SMART_DIAL_UPDATED)); } if (isStarted()) { @@ -162,9 +171,9 @@ public class SmartDialCursorLoader extends AsyncTaskLoader { /** Ensure the loader has been stopped. */ onStopLoading(); - if (mObserver != null) { - mContext.getContentResolver().unregisterContentObserver(mObserver); - mObserver = null; + if (mSmartDialUpdatedReceiver != null) { + mContext.unregisterReceiver(mSmartDialUpdatedReceiver); + mSmartDialUpdatedReceiver = null; } /** Release all previously saved query results. */ @@ -178,9 +187,9 @@ public class SmartDialCursorLoader extends AsyncTaskLoader { public void onCanceled(Cursor cursor) { super.onCanceled(cursor); - if (mObserver != null) { - mContext.getContentResolver().unregisterContentObserver(mObserver); - mObserver = null; + if (mSmartDialUpdatedReceiver != null) { + mContext.unregisterReceiver(mSmartDialUpdatedReceiver); + mSmartDialUpdatedReceiver = null; } /** The load has been canceled, so we should release the resources associated with 'data'. */ diff --git a/java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java b/java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java index ac4903c31..dbd4e868c 100644 --- a/java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java +++ b/java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java @@ -21,10 +21,10 @@ import android.database.Cursor; import android.telephony.PhoneNumberUtils; import android.view.View; import com.android.contacts.common.ContactPhotoManager; -import com.android.contacts.common.GeoUtil; import com.android.dialer.app.R; import com.android.dialer.blocking.BlockNumberDialogFragment; import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns; +import com.android.dialer.location.GeoUtil; import com.android.dialer.logging.InteractionEvent; import com.android.dialer.logging.Logger; import com.android.dialer.phonenumbercache.ContactInfoHelper; diff --git a/java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java b/java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java index 5228a1d79..313efb4d7 100644 --- a/java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java +++ b/java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java @@ -20,9 +20,9 @@ import android.content.Context; import android.database.Cursor; import android.view.View; import com.android.contacts.common.ContactPhotoManager; -import com.android.contacts.common.GeoUtil; import com.android.dialer.app.R; import com.android.dialer.blocking.FilteredNumbersUtil; +import com.android.dialer.location.GeoUtil; import com.android.dialer.phonenumbercache.ContactInfoHelper; public class ViewNumbersToImportAdapter extends NumbersAdapter { diff --git a/java/com/android/dialer/app/list/BlockedListSearchAdapter.java b/java/com/android/dialer/app/list/BlockedListSearchAdapter.java index a90ce7a0d..96d02d7bf 100644 --- a/java/com/android/dialer/app/list/BlockedListSearchAdapter.java +++ b/java/com/android/dialer/app/list/BlockedListSearchAdapter.java @@ -19,10 +19,10 @@ import android.content.Context; import android.content.res.Resources; import android.database.Cursor; import android.view.View; -import com.android.contacts.common.GeoUtil; import com.android.contacts.common.list.ContactListItemView; import com.android.dialer.app.R; import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; +import com.android.dialer.location.GeoUtil; /** List adapter to display search results for adding a blocked number. */ public class BlockedListSearchAdapter extends RegularSearchListAdapter { diff --git a/java/com/android/dialer/app/list/BlockedListSearchFragment.java b/java/com/android/dialer/app/list/BlockedListSearchFragment.java index 0f96e2d6e..8d42221c0 100644 --- a/java/com/android/dialer/app/list/BlockedListSearchFragment.java +++ b/java/com/android/dialer/app/list/BlockedListSearchFragment.java @@ -28,7 +28,6 @@ import android.view.View; import android.widget.AdapterView; import android.widget.EditText; import android.widget.Toast; -import com.android.contacts.common.GeoUtil; import com.android.contacts.common.list.ContactEntryListAdapter; import com.android.contacts.common.util.ContactDisplayUtils; import com.android.dialer.app.R; @@ -37,6 +36,7 @@ import com.android.dialer.blocking.BlockNumberDialogFragment; import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener; import com.android.dialer.common.LogUtil; +import com.android.dialer.location.GeoUtil; import com.android.dialer.logging.InteractionEvent; import com.android.dialer.logging.Logger; diff --git a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java index 542501cfd..537f488d5 100644 --- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java +++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java @@ -24,11 +24,11 @@ import android.text.BidiFormatter; import android.text.TextDirectionHeuristics; import android.view.View; import android.view.ViewGroup; -import com.android.contacts.common.GeoUtil; import com.android.contacts.common.list.ContactListItemView; 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; /** @@ -47,11 +47,13 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { public static final int SHORTCUT_MAKE_VIDEO_CALL = 4; public static final int SHORTCUT_BLOCK_NUMBER = 5; public static final int SHORTCUT_COUNT = 6; + 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; - private String mCountryIso; - private boolean mVideoCallingEnabled = false; public DialerPhoneNumberListAdapter(Context context) { super(context); @@ -108,7 +110,8 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { return convertView; } else { final ContactListItemView v = - new ContactListItemView(getContext(), null, mVideoCallingEnabled); + new ContactListItemView( + getContext(), null, mVideoCallingEnabled, isCallAndShareEnabled()); assignShortcutToView(v, shortcutType); return v; } @@ -123,6 +126,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter { final ContactListItemView view = super.newView(context, partition, cursor, position, parent); view.setSupportVideoCallIcon(mVideoCallingEnabled); + view.setSupportCallAndShareIcon(isCallAndShareEnabled()); return view; } diff --git a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml index 7e450c4cd..ca93da0de 100644 --- a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml +++ b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml @@ -112,6 +112,11 @@ android:resource="@layout/keyguard_preview"/> + + 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 862882a62..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 @@ -135,7 +135,7 @@ + android:src="@drawable/ic_call_and_share"/> + xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/contact_tile" + class="com.android.dialer.app.list.PhoneFavoriteSquareTileView" + android:paddingBottom="@dimen/contact_tile_divider_width" + android:paddingEnd="@dimen/contact_tile_divider_width"> - - + android:focusable="true" + android:nextFocusRight="@+id/contact_tile_secondary_button"> + + - + android:layout_height="match_parent" + android:orientation="vertical"> + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="6"/> + - - + android:layout_alignParentBottom="true" + android:paddingBottom="@dimen/contact_tile_text_bottom_padding" + android:paddingStart="@dimen/contact_tile_text_side_padding" + android:paddingEnd="@dimen/contact_tile_text_side_padding" + android:orientation="vertical"> + + + + + - - - + android:textSize="11sp"/> + android:id="@+id/contact_tile_push_state" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@drawable/item_background_material_dark" + android:importantForAccessibility="no"/> + + + + - + 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 903fbcae9..c02512d80 100644 --- a/java/com/android/dialer/app/res/layout/search_edittext.xml +++ b/java/com/android/dialer/app/res/layout/search_edittext.xml @@ -10,12 +10,14 @@ android:layout_marginRight="@dimen/search_margin_horizontal" android:background="@drawable/rounded_corner" android:elevation="@dimen/search_box_elevation" + android:theme="@style/DialtactsSearchBarThemeOverlay" android:orientation="horizontal"> diff --git a/java/com/android/dialer/app/res/values-af/strings.xml b/java/com/android/dialer/app/res/values-af/strings.xml index 0245a2d1d..2cd688023 100644 --- a/java/com/android/dialer/app/res/values-af/strings.xml +++ b/java/com/android/dialer/app/res/values-af/strings.xml @@ -199,6 +199,8 @@ "Oproepe" "Oproepblokkering" "Stemboodskap" + + "Oproepblokkering is tydelik af" "Oproepblokkering is gedeaktiveer omdat jy die afgelope 48 uur nooddienste van hierdie foon af gekontak het. Dit sal outomaties heraktiveer word sodra die 48-uurtydperk verstryk." "Voer nommers in" 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 befa4c45c..760099d26 100644 --- a/java/com/android/dialer/app/res/values-am/strings.xml +++ b/java/com/android/dialer/app/res/values-am/strings.xml @@ -200,6 +200,8 @@ "ጥሪዎች" "ጥሪን ማገድ" "የድምፅ መልእክት" + + "ጥሪን ማገድ ለጊዜው ተሰናክሏል" "ባለፉት 48 ሰዓቶች ውስጥ ከዚህ ስልክ ሆነው የአስቸኳይ አደጋ አገልግሎቶችን ስላነጋገሩ ጥሪን ማገድ ተሰናክሏል። አንዴ የ48 ሰዓቱ ጊዜ ካለፈ በኋላ በራስ-ሰር ዳግም ይነቃል።" "ቁጥሮችን አስመጣ" 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 961e4833e..6e387b490 100644 --- a/java/com/android/dialer/app/res/values-ar/strings.xml +++ b/java/com/android/dialer/app/res/values-ar/strings.xml @@ -207,6 +207,8 @@ "المكالمات" "حظر المكالمات" "البريد الصوتي" + + "حظر المكالمات معطّل مؤقتًا" "تم تعطيل حظر المكالمات لأنك اتصلت بخدمات الطوارئ خلال 48 ساعة ماضية. وستتم إعادة تمكينه تلقائيًا بعد انتهاء هذه الفترة التي تبلغ 48 ساعة." "استيراد الأرقام" 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 78440fd24..9522764aa 100644 --- a/java/com/android/dialer/app/res/values-az/strings.xml +++ b/java/com/android/dialer/app/res/values-az/strings.xml @@ -200,6 +200,8 @@ "Zənglər" "Zəng blok edilir" "Səsli e-məktub" + + "Çağrının blok edilməsi müvəqqəti olaraq deaktiv edilib" "Son 48 saat ərzində bu telefondan təcili yardım xidmətləri ilə əlaqə saxladığınız üçün Çağrı Bloklanması deaktiv edildi. 48 saatlıq müddət başa çatdıqda avtomatik olaraq yenidən aktiv ediləcək." "Nömrələri import edin" 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 ddb311266..c046d94aa 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 @@ -202,6 +202,8 @@ "Pozivi" "Blokiranje poziva" "Govorna pošta" + + "Blokiranje poziva je privremeno isključeno" "Blokiranje poziva je onemogućeno zato što ste kontaktirali službe za pomoć u hitnim slučajevima sa ovog telefona u poslednjih 48 sati. Automatski će biti ponovo omogućeno kada istekne period od 48 sati." "Uvezi brojeve" 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 54d7d8384..552e6ac17 100644 --- a/java/com/android/dialer/app/res/values-be/strings.xml +++ b/java/com/android/dialer/app/res/values-be/strings.xml @@ -204,6 +204,8 @@ "Выклікі" "Блакіраванне выклікаў" "Галасавая пошта" + + "Блакіроўка выклікаў часова адключана" "Блакіроўка выклікаў будзе адключана, таму што вы выклікалі экстранныя службы з гэтага тэлефона на працягу апошніх 48 гадзін. Яна будзе аўтаматычна адноўлена пасля заканчэння перыяду ў 48 гадзін." "Імпартаваць нумары" 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 0fb06c165..277cb63a7 100644 --- a/java/com/android/dialer/app/res/values-bg/strings.xml +++ b/java/com/android/dialer/app/res/values-bg/strings.xml @@ -199,6 +199,8 @@ "Обаждания" "Блокиране на обажданията" "Гласова поща" + + "Блокир. на обажданията е временно изкл." "Блокирането на обажданията е деактивирано, защото в рамките на последните 48 часа сте се свързали със спешните служби от този телефон. То автоматично ще бъде активирано отново, когато периодът от 48 часа изтече." "Импортиране на номерата" 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 45787cc0f..0a5569234 100644 --- a/java/com/android/dialer/app/res/values-bn/strings.xml +++ b/java/com/android/dialer/app/res/values-bn/strings.xml @@ -200,6 +200,8 @@ "কল" "কল অবরোধ করা" "ভয়েসমেল" + + "কল অবরোধ সাময়িকভাবে বন্ধ রয়েছে" "কল অবরোধ অক্ষম করা হয়েছে কারণ আপনি গত ২৮ ঘন্টার মধ্যে এই ফোন থেকে জরুরি পরিষেবায় যোগাযোগ করেছেন। ২৮ ঘন্টার সময়সীমা পেরিয়ে গেলেই এটি স্বয়ংক্রিয়ভাবে আবার সক্ষম হবে।" "নম্বরগুলি আমদানি করুন" 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 8c19cb719..834d29609 100644 --- a/java/com/android/dialer/app/res/values-bs/strings.xml +++ b/java/com/android/dialer/app/res/values-bs/strings.xml @@ -202,6 +202,8 @@ "Pozivi" "Blokiranje poziva" "Govorna pošta" + + "Blokiranje poziva je privremeno isključeno" "Blokiranje poziva je onemogućeno jer ste kontaktirali hitnu službu s ovog telefona u proteklih 48 sati. Automatski će se ponovo omogućiti kada istekne 48 sati." "Uvezi brojeve" 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 a333e5389..6afd86b6b 100644 --- a/java/com/android/dialer/app/res/values-ca/strings.xml +++ b/java/com/android/dialer/app/res/values-ca/strings.xml @@ -200,6 +200,8 @@ "Trucades" "Bloqueig de trucades" "Bústia de veu" + + "Bloqueig de trucades desactivat tempor." "El bloqueig de trucades s\'ha desactivat perquè has contactat amb els serveis d\'emergència des d\'aquest telèfon durant les últimes 48 hores. Es tornarà a activar automàticament una vegada transcorregut el període de 48 hores." "Importa els números" 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 cc71441da..97f43319c 100644 --- a/java/com/android/dialer/app/res/values-cs/strings.xml +++ b/java/com/android/dialer/app/res/values-cs/strings.xml @@ -204,6 +204,8 @@ "Volání" "Blokování hovorů" "Hlasová schránka" + + "Blokování hovorů je dočasně vypnuto" "Protože jste z tohoto telefonu během posledních 48 hodin volali na tísňovou linku, bylo blokování hovorů vypnuto. Po uplynutí 48 hodin se automaticky znovu zapne." "Importovat čísla" 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 5315bee5e..7f162b9db 100644 --- a/java/com/android/dialer/app/res/values-da/strings.xml +++ b/java/com/android/dialer/app/res/values-da/strings.xml @@ -200,6 +200,8 @@ "Opkald" "Opkaldsblokering" "Telefonsvarer" + + "Opkaldsblokering er midlertidigt slået fra" "Opkaldsblokering er blevet deaktiveret, da du inden for de sidste 48 timer har kontaktet en alarmcentral. Blokeringen aktiveres automatisk igen, når perioden på 48 timer er udløbet." "Importér numre" 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 a50a8cd93..eaa798694 100644 --- a/java/com/android/dialer/app/res/values-de/strings.xml +++ b/java/com/android/dialer/app/res/values-de/strings.xml @@ -202,6 +202,8 @@ "Anrufe" "Anrufblockierung" "Mailbox" + + "Anrufblockierung vorübergehend aus" "Die Anrufblockierung wurde deaktiviert, weil du innerhalb der letzten 48 Stunden mit diesem Telefon den Notruf gewählt hast. Nach Ablauf dieser 48-Stunden-Frist wird die Blockierung automatisch wieder aktiviert." "Nummern importieren" 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 9978eac96..6996817d8 100644 --- a/java/com/android/dialer/app/res/values-el/strings.xml +++ b/java/com/android/dialer/app/res/values-el/strings.xml @@ -200,6 +200,8 @@ "Κλήσεις" "Φραγή κλήσεων" "Αυτόματος τηλεφωνητής" + + "Προσωρινά απενεργοποιημένη φραγή κλήσεων" "Η φραγή κλήσεων έχει απενεργοποιηθεί προσωρινά επειδή επικοινωνήσατε με τις υπηρεσίες έκτακτης ανάγκης από αυτό το τηλέφωνο μέσα στις τελευταίες 48 ώρες. Θα ενεργοποιηθεί ξανά αυτόματα μόλις λήξει η περίοδος των 48 ωρών." "Εισαγωγή αριθμών" 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 6525bb672..967c74158 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 @@ -200,6 +200,8 @@ "Calls" "Call blocking" "Voicemail" + + "Call blocking temporarily off" "Call blocking has been disabled because you contacted emergency services from this phone within the last 48 hours. It will be automatically re-enabled once the 48 hour period expires." "Import numbers" 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 6525bb672..967c74158 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 @@ -200,6 +200,8 @@ "Calls" "Call blocking" "Voicemail" + + "Call blocking temporarily off" "Call blocking has been disabled because you contacted emergency services from this phone within the last 48 hours. It will be automatically re-enabled once the 48 hour period expires." "Import numbers" 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 6525bb672..967c74158 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 @@ -200,6 +200,8 @@ "Calls" "Call blocking" "Voicemail" + + "Call blocking temporarily off" "Call blocking has been disabled because you contacted emergency services from this phone within the last 48 hours. It will be automatically re-enabled once the 48 hour period expires." "Import numbers" 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 d86c50b46..4a39f3418 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 @@ -200,6 +200,8 @@ "Llamadas" "Bloqueo de llamadas" "Buzón de voz" + + "Bloqueo de llamadas desactivado temporalmente" "Se inhabilitó el bloqueo de llamadas porque te comunicaste con servicios de emergencia en las últimas 48 horas desde este teléfono. Se volverá a habilitar de forma automática una vez que venza el período de 48 horas." "Importar números" 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 3c68a3b99..f3ebe5d9b 100644 --- a/java/com/android/dialer/app/res/values-es/strings.xml +++ b/java/com/android/dialer/app/res/values-es/strings.xml @@ -199,6 +199,8 @@ "Llamadas" "Bloqueo de llamadas" "Buzón de voz" + + "Bloqueo de llamadas desactivado temporalmente" "Se ha inhabilitado el bloqueo de llamadas porque te has puesto en contacto con los servicios de emergencia desde este teléfono en las últimas 48 horas. Se volverá a habilitar automáticamente cuando finalice este periodo de tiempo." "Importar números" 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 071f4eab4..e880e3d5e 100644 --- a/java/com/android/dialer/app/res/values-et/strings.xml +++ b/java/com/android/dialer/app/res/values-et/strings.xml @@ -200,6 +200,8 @@ "Kõned" "Kõnede blokeerimine" "Kõnepost" + + "Kõnede blokeerimine on ajutiselt väljas" "Kõnede blokeerimine on keelatud, kuna võtsite sellelt telefonilt viimase 48 tunni jooksul ühendust hädaabiteenustega. See lubatakse 48 tunni möödumisel automaatselt uuesti." "Impordi numbrid" 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 236850ab3..079e5c75b 100644 --- a/java/com/android/dialer/app/res/values-eu/strings.xml +++ b/java/com/android/dialer/app/res/values-eu/strings.xml @@ -200,6 +200,8 @@ "Deiak" "Deien blokeoa" "Erantzungailua" + + "Deien blokeoa aldi baterako desgaituta" "Deiak blokeatzeko aukera desgaitu egin da, azken 48 orduetan larrialdi-zerbitzuekin harremanetan jarri zarelako telefono honetatik. Berriro gaituko da 48 orduko epea igaro ondoren." "Inportatu zenbakiak" 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 d76253f79..67f58a04e 100644 --- a/java/com/android/dialer/app/res/values-fa/strings.xml +++ b/java/com/android/dialer/app/res/values-fa/strings.xml @@ -202,6 +202,8 @@ "تماس‌ها" "مسدود کردن تماس" "پست صوتی" + + "انسداد تماس موقتاً خاموش است" "چون در ۴۸ ساعت گذشته با این تلفن با سرویس‌های اضطراری تماس گرفتید، انسداد تماس غیرفعال شده است. پس از گذشت ۴۸ ساعت، این قابلیت دوباره فعال می‌شود." "وارد کردن شماره‌ها" 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 e247e4845..417305b69 100644 --- a/java/com/android/dialer/app/res/values-fi/strings.xml +++ b/java/com/android/dialer/app/res/values-fi/strings.xml @@ -199,6 +199,8 @@ "Puhelut" "Puhelujen esto" "Vastaaja" + + "Puheluesto väliaikaisesti pois käytöstä" "Puheluiden estäminen on poistettu käytöstä, koska olet ottanut yhteyttä hätäpalveluihin tästä puhelimesta viimeisen 48 tunnin aikana. Esto otetaan automaattisesti uudelleen käyttöön, kun puhelusta on kulunut 48 tuntia." "Tuo numerot" 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 33eae2b43..0429a767f 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 @@ -199,6 +199,8 @@ "Appels" "Blocage des appels" "Messagerie vocale" + + "Blocage appels désactivé temporairement" "Le blocage des appels a été désactivé, car vous avez communiqué avec les services d\'urgence à partir de ce téléphone au cours des dernières 48 heures. Le blocage sera réactivé automatiquement après 48 heures." "Importer les numéros" 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 e9bb8dd78..933acc130 100644 --- a/java/com/android/dialer/app/res/values-fr/strings.xml +++ b/java/com/android/dialer/app/res/values-fr/strings.xml @@ -199,6 +199,8 @@ "Appels" "Blocage des appels" "Messagerie vocale" + + "Blocage appels désactivé temporairement" "Le blocage des appels a été désactivé, car vous avez contacté les services d\'urgence à l\'aide de ce téléphone au cours des dernières 48 heures. Le blocage sera réactivé automatiquement après 48 heures." "Importer les numéros" 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 41eacac16..df162bffd 100644 --- a/java/com/android/dialer/app/res/values-gl/strings.xml +++ b/java/com/android/dialer/app/res/values-gl/strings.xml @@ -200,6 +200,8 @@ "Chamadas" "Bloqueo de chamadas" "Correo de voz" + + "O bloqueo de chamadas desactivouse temporalmente" "O bloqueo de chamadas desactivouse porque contactaches cos servizos de emerxencias desde este teléfono nas últimas 48 horas. Volverase activar automaticamente unha vez que pase o período de 48 horas." "Importar números" 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 1b7b28a11..ad5cd0776 100644 --- a/java/com/android/dialer/app/res/values-gu/strings.xml +++ b/java/com/android/dialer/app/res/values-gu/strings.xml @@ -200,6 +200,8 @@ "કૉલ્સ" "કૉલ અવરોધ" "વૉઇસમેઇલ" + + "કૉલ અવરોધિત કરવાનું અસ્થાયીરૂપે બંધ છે" "કૉલ અવરોધિત કરવાનું અક્ષમ કરવામાં આવ્યું છે કારણ કે તમે આ ફોનમાંથી છેલ્લા 48 કલાકમાં કટોકટીની સેવાઓનો સંપર્ક કર્યો હતો. એકવાર 48 કલાકનો સમયગાળો સમાપ્ત થાય, પછી તે આપમેળે ફરીથી સક્ષમ કરવામાં આવશે." "નંબર્સ આયાત કરો" 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 cc8b287dc..320baa559 100644 --- a/java/com/android/dialer/app/res/values-hi/strings.xml +++ b/java/com/android/dialer/app/res/values-hi/strings.xml @@ -200,6 +200,8 @@ "कॉल" "कॉल अवरुद्ध करें" "वॉइसमेल" + + "कॉल अवरुद्ध करना अस्‍थायी रूप से बंद है" "कॉल अवरुद्ध किए जाने को अक्षम कर दिया गया है क्योंकि पिछले 48 घंटों में आपने इस फ़ोन से आपातकालीन सेवाओं से संपर्क किया है. 48 घंटे की अवधि बीत जाने पर यह अपने आप फिर से सक्षम हो जाएगी." "नंबर आयात करें" 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 4b12e83d7..ee2df5495 100644 --- a/java/com/android/dialer/app/res/values-hr/strings.xml +++ b/java/com/android/dialer/app/res/values-hr/strings.xml @@ -204,6 +204,8 @@ "Pozivi" "Blokiranje poziva" "Govorna pošta" + + "Blokiranje poziva privremeno isključeno" "Blokiranje poziva onemogućeno je jer ste kontaktirali hitne službe s ovog telefona u posljednjih 48 sati. Automatski će se ponovo omogućiti kada prođe 48 sati." "Uvoz brojeva" 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 7b529c205..9660b0c47 100644 --- a/java/com/android/dialer/app/res/values-hu/strings.xml +++ b/java/com/android/dialer/app/res/values-hu/strings.xml @@ -202,6 +202,8 @@ "Hívások" "Hívásletiltás" "Hangposta" + + "Hívástiltás átmenetileg felfüggesztve" "Felfüggesztettük a hívások tiltását, mert az elmúlt 48 órában tárcsázta a segélyhívót erről a telefonról. A funkciót automatikusan újból engedélyezzük 48 óra elteltével." "Számok importálása" 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 b7b9cd34f..58a8e9a35 100644 --- a/java/com/android/dialer/app/res/values-hy/strings.xml +++ b/java/com/android/dialer/app/res/values-hy/strings.xml @@ -199,6 +199,8 @@ "Զանգեր" "Զանգերի արգելափակում" "Ձայնային փոստ" + + "Զանգերի արգելափակումը կասեցվել է" "Զանգերի արգելափակումը կասեցվել է, քանի որ վերջին 48 ժամվա ընթացքում դուք այս հեռախոսից զանգել եք արտակարգ իրավիճակների ծառայություններին: 48 ժամ տևողությամբ ժամանակահատվածի ավարտից հետո այն ավտոմատ կերպով կվերամիացվի:" "Ներմուծել համարները" 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 75b1edbe2..3b9fcbeca 100644 --- a/java/com/android/dialer/app/res/values-in/strings.xml +++ b/java/com/android/dialer/app/res/values-in/strings.xml @@ -202,6 +202,8 @@ "Panggilan telepon" "Pemblokiran panggilan telepon" "Pesan Suara" + + "Blokir panggilan dinonaktifkan sementara" "Pemblokiran panggilan telepon telah dinonaktifkan karena Anda menghubungi layanan darurat dari telepon ini dalam 48 jam terakhir. Akan diaktifkan kembali secara otomatis setelah masa 48 jam berakhir." "Impor nomor" 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 b905ba886..e08471203 100644 --- a/java/com/android/dialer/app/res/values-is/strings.xml +++ b/java/com/android/dialer/app/res/values-is/strings.xml @@ -200,6 +200,8 @@ "Símtöl" "Lokað fyrir símtöl" "Talhólf" + + "Tímabundið slökkt á lokun fyrir símtöl" "Lokun fyrir símtöl hefur verið gerð óvirk vegna þess að þú hafðir samband við neyðarþjónustu úr þessum síma á undanförnum tveimur sólarhringum. Lokunin verður aftur virk að þessum tveimur sólarhringum liðnum." "Flytja inn númer" 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 322386fb9..341d49771 100644 --- a/java/com/android/dialer/app/res/values-it/strings.xml +++ b/java/com/android/dialer/app/res/values-it/strings.xml @@ -200,6 +200,8 @@ "Chiamate" "Blocco delle chiamate" "Messaggi vocali" + + "Blocco chiamate temporaneam. disattivato" "Il blocco chiamate è stato disattivato perché hai contattato servizi di emergenza da questo telefono nelle ultime 48 ore. Verrà riattivato automaticamente una volta trascorso il periodo di 48 ore." "Importa numeri" 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 d3966b446..9b61af74b 100644 --- a/java/com/android/dialer/app/res/values-iw/strings.xml +++ b/java/com/android/dialer/app/res/values-iw/strings.xml @@ -203,6 +203,8 @@ "שיחות" "חסימת שיחות" "דואר קולי" + + "חסימת השיחות מושבתת באופן זמני" "חסימת השיחות הושבתה מפני שיצרת קשר מטלפון זה עם שירותי חירום במהלך 48 השעות האחרונות. הפונקציה תופעל מחדש באופן אוטומטי בתום 48 השעות." "יבא מספרים" 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 147f572f7..22cfd4831 100644 --- a/java/com/android/dialer/app/res/values-ja/strings.xml +++ b/java/com/android/dialer/app/res/values-ja/strings.xml @@ -199,6 +199,8 @@ "通話" "着信のブロック" "ボイスメール" + + "着信のブロックは一時的にOFFです" "このスマートフォンから緊急通報番号への発信が過去48時間以内に行われているため、着信のブロックは無効になっています。48時間経過すると、着信のブロックは自動的に有効になります。" "番号をインポート" 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 4d573831e..06bc726a6 100644 --- a/java/com/android/dialer/app/res/values-ka/strings.xml +++ b/java/com/android/dialer/app/res/values-ka/strings.xml @@ -202,6 +202,8 @@ "ზარები" "ზარების დაბლოკვა" "ხმოვანი ფოსტა" + + "ზარების დაბლოკვა დროებით გამოირთო" "ზარების დაბლოკვა გაითიშა, რადგან ბოლო 48 საათში ამ ტელეფონიდან საგანგებო სამსახურებს დაუკავშირდით. 48 საათის გასვლის შემდეგ ის ავტომატურად ჩაირთვება." "ნომრების იმპორტი" 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 62397bbb9..409217a77 100644 --- a/java/com/android/dialer/app/res/values-kk/strings.xml +++ b/java/com/android/dialer/app/res/values-kk/strings.xml @@ -200,6 +200,8 @@ "Қоңыраулар" "Қоңырауларға тыйым салу" "Дауыстық хабар" + + "Қоңырауларға тыйым салу уақытша өшірулі" "Қоңырауларға тыйым салу өшірілді, өйткені сіз соңғы 48 сағат ішінде осы телефоннан төтенше қызметтерге хабарластыңыз. Ол 48 сағаттық кезең өткеннен кейін автоматты түрде қайта қосылады." "Нөмірлерді импорттау" 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 27dbf97c9..7ebe85d5b 100644 --- a/java/com/android/dialer/app/res/values-km/strings.xml +++ b/java/com/android/dialer/app/res/values-km/strings.xml @@ -199,6 +199,8 @@ "ការហៅ" "ការរារាំងការហៅ" "សារ​ជា​សំឡេង" + + "ការរារាំងការហៅត្រូវបានបិទជាបណ្តោះអាសន្ន" "ការរារាំងការហៅត្រូវបានបិទដំណើរការ ដោយសារតែអ្នកបានទាក់ទងទៅសេវាអាសន្នចេញពីទូរស័ព្ទនេះក្នុងចន្លោះពេល 48 ម៉ោងកន្លងមកនេះ។ វានឹងបើកដំណើរការឡើងវិញ បន្ទាប់ពីរយៈពេល 48 ម៉ោងផុតកំណត់។" "នាំចូលលេខ" 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 19e11e90f..3e70c8819 100644 --- a/java/com/android/dialer/app/res/values-kn/strings.xml +++ b/java/com/android/dialer/app/res/values-kn/strings.xml @@ -200,6 +200,8 @@ "ಕರೆಗಳು" "ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ" "ಧ್ವನಿಮೇಲ್" + + "ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ ತಾತ್ಕಾಲಿಕ ಆಫ್ ಮಾಡಲಾಗಿದೆ" "ನೀವು ಕಳೆದ 48 ಗಂಟೆಗಳಲ್ಲಿ ಈ ಫೋನ್‌ನಿಂದ ತುರ್ತು ಸೇವೆಗಳಿಗೆ ಸಂಪರ್ಕಿಸಿರುವ ಕಾರಣದಿಂದ ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಒಮ್ಮೆ 48 ಗಂಟೆಗಳ ಅವಧಿಯು ಮುಕ್ತಾಯಗೊಂಡ ನಂತರ ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದು." "ಸಂಖ್ಯೆಗಳನ್ನು ಆಮದು ಮಾಡಿ" 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 d28760c6f..0f6abdf59 100644 --- a/java/com/android/dialer/app/res/values-ko/strings.xml +++ b/java/com/android/dialer/app/res/values-ko/strings.xml @@ -200,6 +200,8 @@ "통화" "통화 차단" "음성사서함" + + "통화 차단 기능이 일시적으로 중지됨" "지난 48시간 이내에 이 휴대전화를 사용해 응급 서비스에 연락했으므로 통화 차단 기능이 중지되었습니다. 48시간이 지나면 통화 차단 기능이 자동으로 다시 사용 설정됩니다." "번호 가져오기" 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 85789978d..4a2ccf3f7 100644 --- a/java/com/android/dialer/app/res/values-ky/strings.xml +++ b/java/com/android/dialer/app/res/values-ky/strings.xml @@ -202,6 +202,8 @@ "Чалуулар" "Чалууларды бөгөттөө" "Үн почтасы" + + "Чалууну бөгөттөө убактылуу өчүрүлгөн" "Акыркы 48 саат ичинде бул телефондон өзгөчө кырдаал кызматына байланышкандыктан чалууну бөгөттөө өчүрүлдү. 48 сааттык мөөнөтү аяктагандан кийин ал автоматтык түрдө кайра иштетилет." "Номерлерди импорттоо" 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 a433847f9..315534639 100644 --- a/java/com/android/dialer/app/res/values-lo/strings.xml +++ b/java/com/android/dialer/app/res/values-lo/strings.xml @@ -200,6 +200,8 @@ "​ການ​ໂທ" "ການບ​ລັອກ​ສາຍ​ໂທ" "ຂໍ້ຄວາມສຽງ" + + "ການບ​ລັອກ​ສາຍ​ໂທ​ປິດ​ຊົ່ວ​ຄາວ" "ການບ​ລັອກ​ສາຍ​ໂທ​ຖືກ​ປິດ​ໃຊ້​ງານ​ແລ້ວ ເພາະ​ວ່າ​ທ່ານ​ໄດ້​ຕິດ​ຕໍ່​ຫາ​ຝ່າຍ​ບໍ​ລິ​ການ​ສຸກ​ເສີນ​ຈາກ​ໂທ​ລະ​ສັບ​ນີ້​ພາຍ​ໃນ 48 ຊົ່ວ​ໂມງ​ສຸດ​ທ້າຍ. ມັນ​ຈະ​ຖືກ​ເປີດ​ໃຊ້​ງານ​ອີກ​ໂດຍ​ອັດ​ຕະ​ໂນ​ມັດ ເມື່ອ​ໝົດ​ໄລ​ຍະ 48 ຊົ່ວ​ໂມງ​ໄປ​ແລ້ວ." "ນຳ​ຕົວ​ເລກ​ເຂົ້າ" 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 c4feacf32..6ac7e4d2b 100644 --- a/java/com/android/dialer/app/res/values-lt/strings.xml +++ b/java/com/android/dialer/app/res/values-lt/strings.xml @@ -204,6 +204,8 @@ "Skambučiai" "Skambučių blokavimas" "Balso paštas" + + "Skamb. blokavimo funkcija laikinai išj." "Skambučių blokavimo funkcija buvo išjungta, nes iš šio telefono buvote susisiekę su pagalbos tarnybomis per pastarąsias 48 val. Ši funkcija bus automatiškai įgalinta iš naujo, kai 48 val. laikotarpis pasibaigs." "Importuoti numerius" 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 440e2d4d1..df51e60a4 100644 --- a/java/com/android/dialer/app/res/values-lv/strings.xml +++ b/java/com/android/dialer/app/res/values-lv/strings.xml @@ -202,6 +202,8 @@ "Zvani" "Zvanu bloķēšana" "Balss pasts" + + "Zvanu bloķēšana ir īslaicīgi izslēgta" "Zvanu bloķēšana ir atspējota, jo pēdējo 48 stundu laikā jūs sazinājāties ar ārkārtas palīdzības dienestiem, izmantojot šo tālruni. Zvanu bloķēšana tiks automātiski iespējota, tiklīdz beigsies 48 stundu periods." "Importēt numurus" 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 c179bb631..1086e34fb 100644 --- a/java/com/android/dialer/app/res/values-mk/strings.xml +++ b/java/com/android/dialer/app/res/values-mk/strings.xml @@ -200,6 +200,8 @@ "Повици" "Блокирање повик" "Говорна пошта" + + "Блокирањето повик е привремено исклучено" "Блокирањето повици е исклучено бидејќи ја контактиравте службата за итни случаи од телефонов во изминатите 48 часа. Повторно ќе се овозможи автоматски откако ќе истече периодот од 48 часа." "Увези броеви" 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 a642334b5..7a43a2dfd 100644 --- a/java/com/android/dialer/app/res/values-ml/strings.xml +++ b/java/com/android/dialer/app/res/values-ml/strings.xml @@ -200,6 +200,8 @@ "കോളുകൾ" "കോൾ ബ്ലോക്കുചെയ്യൽ" "വോയ്സ് മെയില്‍" + + "കോൾ ബ്ലോക്കുചെയ്യൽ താൽക്കാലികമായി ഓഫാണ്" "കഴിഞ്ഞ 48 മണിക്കൂറിനുള്ളിൽ നിങ്ങൾ ഈ ഫോണിൽ നിന്ന് അടിയന്തിര സേവനങ്ങളുമായി ബന്ധപ്പെട്ടതിനാൽ കോൾ ബ്ലോക്കുചെയ്യൽ പ്രവർത്തനരഹിതമാക്കി. 48 മണിക്കൂർ സമയപരിധി കഴിഞ്ഞയുടൻ ഇത് സ്വയമേവ പ്രവർത്തനക്ഷമമാക്കപ്പെടും." "നമ്പറുകൾ ഇമ്പോർട്ടുചെയ്യുക" 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 12f0d41cc..0dda88e18 100644 --- a/java/com/android/dialer/app/res/values-mn/strings.xml +++ b/java/com/android/dialer/app/res/values-mn/strings.xml @@ -199,6 +199,8 @@ "Дуудлага" "Дуудлага блоклох" "Дуут шуудан" + + "Дуудлага блоклох тохиргоог түр хугацаагаар унтраасан" "Та сүүлийн 48 цагийн дотор энэ утсаар тусламжийн дуудлага хийсэн тул дуудлага блоклох тохиргоог идэвхгүй болгосон. Энэ тохиргоо нь 48 цагийн хугацаа дуусахад автоматаар идэвхэжнэ." "Импортын тоо" 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 feda81603..505dae72c 100644 --- a/java/com/android/dialer/app/res/values-mr/strings.xml +++ b/java/com/android/dialer/app/res/values-mr/strings.xml @@ -200,6 +200,8 @@ "कॉल" "कॉल अवरोधित करणे" "व्हॉइसमेल" + + "कॉल अवरोधित करणे तात्पुरते बंद" "आपण मागील 48 तासात या फोनवरून आणीबाणी सेवांशी संपर्क साधला असल्याने कॉल अवरोधित करणे अक्षम केले गेले आहे. एकदा 48 तासांचा कालावधी कालबाह्य झाला की ते स्वयंचलितपणे पुन्हा सक्षम केले जाईल." "नंबर अायात करा" 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 f4c9ac29f..74d9b051a 100644 --- a/java/com/android/dialer/app/res/values-ms/strings.xml +++ b/java/com/android/dialer/app/res/values-ms/strings.xml @@ -202,6 +202,8 @@ "Panggilan" "Sekatan panggilan" "Mel suara" + + "Sekatan panggilan dimatikan sementara" "Sekatan panggilan telah dilumpuhkan kerana anda menghubungi perkhidmatan kecemasan daripada telefon ini dalam masa 48 jam yang lalu. Ciri ini akan didayakan semula secara automatik apabila tempoh 48 jam berakhir." "Import nombor" 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 16b286fd4..88f5bd394 100644 --- a/java/com/android/dialer/app/res/values-my/strings.xml +++ b/java/com/android/dialer/app/res/values-my/strings.xml @@ -200,6 +200,8 @@ "ခေါ်ဆိုမှုများ" "ခေါ်ဆိုမှု ပိတ်ဆို့ခြင်း" "အသံမေးလ်" + + "ခေါ်ဆိုမှုပိတ်ဆို့ခြင်း ယာယီပိတ်ထားသည်" "သင်သည် လွန်ခဲ့သည့် ၄၈ နာရီအတွင်း ဤဖုန်းဖြင့် အရေးပေါ်ဌာနကိုဖုန်း ခေါ်ဆိုခဲ့သောကြောင့် ခေါ်ဆိုမှုပိတ်ဆို့ခြင်းကို ဖြုတ်ထားသည်။ ၄၈ နာရီကျော်လွန်သည်နှင့် ၎င်းကိုအလိုအလျောက် ပြန်ဖွင့်ပေးပါမည်။" "နံပါတ်များ သွင်းရန်" 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 4d97dc23a..7a8528e2e 100644 --- a/java/com/android/dialer/app/res/values-nb/strings.xml +++ b/java/com/android/dialer/app/res/values-nb/strings.xml @@ -199,6 +199,8 @@ "Anrop" "Anropsblokkering" "Talepost" + + "Blokkering av anrop er midlertidig slått av" "Blokkering av anrop er slått av fordi du kontaktet nødtjenester fra denne telefonen i løpet av de siste 48 timene. Funksjonen blir automatisk slått på igjen når perioden på 48 timer er utløpt." "Importér numre" 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 169c0111a..8595062d3 100644 --- a/java/com/android/dialer/app/res/values-ne/strings.xml +++ b/java/com/android/dialer/app/res/values-ne/strings.xml @@ -199,6 +199,8 @@ "कलहरू" "कल रोक्दै" "भ्वाइस मेल" + + "कल अवरुद्ध अस्थायी रुपमा निष्क्रिय" "कल अवरुद्ध अस्थायी रुपमा असक्षम गरिएको छ किनभने तपाईँले अन्तिम ४८ घन्टा भित्र यस फोनबाट आपत्कालीन सेवाहरू सम्पर्क गर्नुभयो। एकपटक ४८ घन्टा अवधि समाप्त भएपछि यो स्वचालित रूपले पुनः सक्रिय हुनेछ।" "नम्बरहरू आयात गर्नुहोस्" 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 3eddbb7e2..54d784b91 100644 --- a/java/com/android/dialer/app/res/values-nl/strings.xml +++ b/java/com/android/dialer/app/res/values-nl/strings.xml @@ -200,6 +200,8 @@ "Oproepen" "Oproepen blokkeren" "Voicemail" + + "Oproepblokkering tijdelijk uitgeschakeld" "Oproepblokkering is uitgeschakeld omdat je in de afgelopen 48 uur contact met de noodhulpdiensten hebt opgenomen via deze telefoon. De functie wordt automatisch weer ingeschakeld nadat de periode van 48 uur is verstreken." "Nummers importeren" 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 4d97dc23a..7a8528e2e 100644 --- a/java/com/android/dialer/app/res/values-no/strings.xml +++ b/java/com/android/dialer/app/res/values-no/strings.xml @@ -199,6 +199,8 @@ "Anrop" "Anropsblokkering" "Talepost" + + "Blokkering av anrop er midlertidig slått av" "Blokkering av anrop er slått av fordi du kontaktet nødtjenester fra denne telefonen i løpet av de siste 48 timene. Funksjonen blir automatisk slått på igjen når perioden på 48 timer er utløpt." "Importér numre" 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 c8a39f6ae..880eecccd 100644 --- a/java/com/android/dialer/app/res/values-pa/strings.xml +++ b/java/com/android/dialer/app/res/values-pa/strings.xml @@ -200,6 +200,8 @@ "ਕਾਲਾਂ" "ਕਾਲ ਬਲੌਕ ਕਰਨਾ" "ਵੌਇਸਮੇਲ" + + "ਕਾਲ ਬਲੌਕਿੰਗ ਆਰਜ਼ੀ ਤੌਰ ਤੇ ਬੰਦ ਹੈ" "ਕਾਲ ਬਲੌਕਿੰਗ ਅਸਮਰੱਥ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ ਕਿਉਂਕਿ ਤੁਸੀਂ ਇਸ ਫੋਨ ਦੁਆਰਾ ਪਿਛਲੇ 48 ਘੰਟਿਆਂ ਤੋਂ ਐਮਰਜੈਂਸੀ ਸੇਵਾਵਾਂ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਹੋਇਆ ਹੈ। ਇਹ 48 ਘੰਟਿਆਂ ਦਾ ਸਮਾਂ ਪੂਰਾ ਹੋਣ ਤੇੋਂ ਬਾਅਦ ਆਟੋਮੈਟਿਕਲੀ ਮੁੜ-ਸਮਰੱਥ ਹੋ ਜਾਵੇਗੀ।" "ਆਯਾਤ ਨੰਬਰ" 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 452854064..b36d09628 100644 --- a/java/com/android/dialer/app/res/values-pl/strings.xml +++ b/java/com/android/dialer/app/res/values-pl/strings.xml @@ -204,6 +204,8 @@ "Połączenia" "Blokowanie połączeń" "Poczta głosowa" + + "Blokada połączeń tymczasowo wyłączona" "Blokada połączeń została wyłączona, ponieważ w ciągu ostatnich 48 godzin dzwoniono z tego telefonu na numer alarmowy. Blokada zostanie automatycznie przywrócona po upływie 48 godzin." "Zaimportuj numery" 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 845442a71..9e0eab854 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 @@ -200,6 +200,8 @@ "Chamadas" "Bloqueio de chamadas" "Correio de voz" + + "Bloqueio de chamadas temporiamente desativado" "O bloqueio de chamadas foi desativado porque você entrou em contato com serviços de emergência usando este telefone nas últimas 48 horas. Ele será reativado automaticamente depois de um período de 48 horas." "Importar números" 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 95451bc9d..669d66065 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 @@ -200,6 +200,8 @@ "Chamadas" "Bloqueio de chamadas" "Correio de voz" + + "Bloqueio de chamadas tempor. desativado" "O bloqueio de chamadas foi desativado porque contactou os serviços de emergência a partir deste telemóvel nas últimas 48 horas. O bloqueio será automaticamente reativado assim que expirar o período de 48 horas." "Importar números" 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 845442a71..9e0eab854 100644 --- a/java/com/android/dialer/app/res/values-pt/strings.xml +++ b/java/com/android/dialer/app/res/values-pt/strings.xml @@ -200,6 +200,8 @@ "Chamadas" "Bloqueio de chamadas" "Correio de voz" + + "Bloqueio de chamadas temporiamente desativado" "O bloqueio de chamadas foi desativado porque você entrou em contato com serviços de emergência usando este telefone nas últimas 48 horas. Ele será reativado automaticamente depois de um período de 48 horas." "Importar números" 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 36987fe3e..007199d3a 100644 --- a/java/com/android/dialer/app/res/values-ro/strings.xml +++ b/java/com/android/dialer/app/res/values-ro/strings.xml @@ -202,6 +202,8 @@ "Apeluri" "Blocarea apelurilor" "Mesagerie vocală" + + "Blocarea apelurilor e dezactivată temporar" "Blocarea apelurilor a fost dezactivată, deoarece ați contactat serviciile de urgență de pe acest telefon în ultimele 48 de ore. Funcția va fi reactivată automat după ce perioada de 48 de ore va expira." "Importați numere" 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 69031b14f..6744592e8 100644 --- a/java/com/android/dialer/app/res/values-ru/strings.xml +++ b/java/com/android/dialer/app/res/values-ru/strings.xml @@ -204,6 +204,8 @@ "Вызовы" "Блокировка вызовов" "Голосовая почта" + + "Блокировка вызовов временно отключена" "Блокировка вызовов отключена, поскольку вы недавно набирали номер экстренной службы. Когда с момента звонка пройдет 48 часов, эта функция включится автоматически." "Импортировать номера" 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 45ee7d961..4340c0edf 100644 --- a/java/com/android/dialer/app/res/values-si/strings.xml +++ b/java/com/android/dialer/app/res/values-si/strings.xml @@ -200,6 +200,8 @@ "ඇමතුම්" "ඇමතුම් අවහිර කිරීම" "හඬ තැපෑල" + + "ඇමතුම් අවහිර කිරීම තාවකාලිකව අක්‍රියයි" "ඔබ පසුගිය පැය 48 ඇතුළත මෙම දුරකථනයෙන් හදිසි අවස්ථා සේවා ඇමතූ බැව්න් ඇමතුම් අවහිර කිරීම අබල කර ඇත. පැය 48ක කාල සීමාව ඉකුත් වූ විට එය ස්වයංක්‍රියව යළි සබල කෙරේ." "අංක ආයාත කරන්න" 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 9774a4180..25b8d74c5 100644 --- a/java/com/android/dialer/app/res/values-sk/strings.xml +++ b/java/com/android/dialer/app/res/values-sk/strings.xml @@ -204,6 +204,8 @@ "Hovory" "Blokovanie hovorov" "Hlasová schránka" + + "Blokovanie hovorov je dočasne vypnuté" "Pretože ste z tohto telefónu počas posledných 48 hodín volali na tiesňovú linku, blokovanie hovorov bolo vypnuté. Po uplynutí 48 hodín sa automaticky znova zapne." "Importovať čísla" 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 80898e58d..d5a22d5be 100644 --- a/java/com/android/dialer/app/res/values-sl/strings.xml +++ b/java/com/android/dialer/app/res/values-sl/strings.xml @@ -204,6 +204,8 @@ "Klici" "Blokiranje klicev" "Odzivnik" + + "Blokiranje klicev je začasno izklopljeno" "Blokiranje klicev je onemogočeno, ker ste se v zadnjih 48 urah s tem telefonom obrnili na nujno pomoč. Ko 48-urno obdobje poteče, bo blokiranje klicev samodejno znova omogočeno." "Uvoz številk" 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 ea757a873..cfa84436f 100644 --- a/java/com/android/dialer/app/res/values-sq/strings.xml +++ b/java/com/android/dialer/app/res/values-sq/strings.xml @@ -202,6 +202,8 @@ "Telefonatat" "Bllokimi i telefonatave" "Posta zanore" + + "Bllokimi i telefonatave është përkohësisht joaktiv" "Bllokimi i telefonatave është çaktivizuar sepse kontaktove me shërbimet e urgjencës nga ky telefon brenda 48 orëve të fundit. Ai do të riaktivizohet automatikisht pas skadimit të periudhës prej 48 orë." "Importo numrat" 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 610f230f7..d8222da95 100644 --- a/java/com/android/dialer/app/res/values-sr/strings.xml +++ b/java/com/android/dialer/app/res/values-sr/strings.xml @@ -202,6 +202,8 @@ "Позиви" "Блокирање позива" "Говорна пошта" + + "Блокирање позива је привремено искључено" "Блокирање позива је онемогућено зато што сте контактирали службе за помоћ у хитним случајевима са овог телефона у последњих 48 сати. Аутоматски ће бити поново омогућено када истекне период од 48 сати." "Увези бројеве" 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 c29568ba3..47b215136 100644 --- a/java/com/android/dialer/app/res/values-sv/strings.xml +++ b/java/com/android/dialer/app/res/values-sv/strings.xml @@ -200,6 +200,8 @@ "Samtal" "Samtalsblockering" "Röstbrevlåda" + + "Blockeringen har inaktiverats tillfälligt" "Samtalsblockering har inaktiverats eftersom du ringde ett larmnummer från den här mobilen under de senaste 48 timmarna. Blockeringen aktiveras igen när 48 timmar har gått." "Importera nummer" 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 11f5664d0..1516b9a9c 100644 --- a/java/com/android/dialer/app/res/values-sw/strings.xml +++ b/java/com/android/dialer/app/res/values-sw/strings.xml @@ -202,6 +202,8 @@ "Simu zilizopigwa" "Kuzuia simu" "Ujumbe wa sauti" + + "Kuzuia simu kumezimwa kwa muda" "Kipengele cha kuzuia simu kimezimwa kwa sababu uliwasiliana na huduma za dharura kwenye simu hii ndani ya saa 48 zilizopita. Kipengele hiki kitawashwa kiotomatiki baada ya kipindi cha saa 48 kumalizika." "Leta nambari" 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 795a4e7cb..5a80a2b4a 100644 --- a/java/com/android/dialer/app/res/values-ta/strings.xml +++ b/java/com/android/dialer/app/res/values-ta/strings.xml @@ -200,6 +200,8 @@ "அழைப்புகள்" "அழைப்புத் தடுப்பு" "குரலஞ்சல்" + + "அழைப்புத் தடுப்பு அம்சம் தற்காலிகமாக முடக்கப்பட்டுள்ளது" "கடந்த 48 மணிநேரத்தில், இந்த ஃபோனிலிருந்து அவசர அழைப்பு எண்ணைத் தொடர்புகொண்டதால் அழைப்புத் தடுப்பு அம்சம் முடக்கப்பட்டுள்ளது. 48 மணிநேரம் கழித்து, இந்த அம்சம் தானாகவே மீண்டும் இயக்கப்படும்." "எண்களை இறக்கு" 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 531e20618..aea962527 100644 --- a/java/com/android/dialer/app/res/values-te/strings.xml +++ b/java/com/android/dialer/app/res/values-te/strings.xml @@ -200,6 +200,8 @@ "కాల్‌లు" "కాల్ బ్లాక్ చేయడం" "వాయిస్ మెయిల్" + + "కాల్ బ్లాకింగ్ తాత్కాలికంగా ఆఫ్ అయ్యింది" "మీరు గత 48 గంటల వ్యవధిలో ఈ ఫోన్ నుండి అత్యవసర సేవలను సంప్రదించినందున కాల్ బ్లాకింగ్ నిలిపివేయబడింది. 48 గంటల వ్యవధి ముగిసిన తర్వాత ఇది స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది." "నంబర్‌లను దిగుమతి చేయి" 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 0433a6eb4..cecf217a1 100644 --- a/java/com/android/dialer/app/res/values-th/strings.xml +++ b/java/com/android/dialer/app/res/values-th/strings.xml @@ -200,6 +200,8 @@ "การโทร" "การบล็อกสายเรียกเข้า" "ข้อความเสียง" + + "การบล็อกสายเรียกเข้าปิดชั่วคราว" "ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง" "นำเข้าหมายเลข" 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 6eb1723ff..d7408cb01 100644 --- a/java/com/android/dialer/app/res/values-tl/strings.xml +++ b/java/com/android/dialer/app/res/values-tl/strings.xml @@ -200,6 +200,8 @@ "Mga Tawag" "Pagba-block ng tawag" "Voicemail" + + "Pansamantalang na-off ang call blocking" "Na-disable ang pagba-block ng tawag dahil nakipag-ugnayan ka sa mga pang-emergency na serbisyo mula sa teleponong ito sa nakalipas na 48 oras. Awtomatiko itong muling i-enable kapag nag-expire na ang 48 oras." "I-import ang mga numero" 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 751286b30..3c92206df 100644 --- a/java/com/android/dialer/app/res/values-tr/strings.xml +++ b/java/com/android/dialer/app/res/values-tr/strings.xml @@ -202,6 +202,8 @@ "Çağrılar" "Çağrı engelleme" "Sesli mesaj" + + "Çağrı engelleme geçici olarak kapalı" "Son 48 saat içinde bu telefondan acil servislerle iletişimde bulunduğunuz için çağrı engelleme modu devre dışı bırakıldı. 48 saatlik süre dolduktan sonra çağrı engelleme modu otomatik olarak tekrar etkinleştirilecektir." "Numaraları içe aktar" 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 0da2ea9f2..5a1dfcc59 100644 --- a/java/com/android/dialer/app/res/values-uk/strings.xml +++ b/java/com/android/dialer/app/res/values-uk/strings.xml @@ -204,6 +204,8 @@ "Дзвінки" "Блокування викликів" "Голосова пошта" + + "Блокування дзвінків тимчасово вимкнено" "Блокування дзвінків вимкнено, оскільки ви зверталися з цього телефона в екстрені служби протягом останніх 48 годин. Ця функція автоматично ввімкнеться, коли мине 48 годин." "Імпортувати номери" 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 748e2f210..eec7db062 100644 --- a/java/com/android/dialer/app/res/values-ur/strings.xml +++ b/java/com/android/dialer/app/res/values-ur/strings.xml @@ -202,6 +202,8 @@ "کالز" "کال مسدود کرنا" "صوتی میل" + + "کال مسدود کرنا عارضی طور پر آف ہے" "کال مسدود کرنا غیر فعال کر دیا گیا ہے کیونکہ آپ نے پچھلے 48 گھنٹوں میں اس فون سے ہنگامی سروسز کے ساتھ رابطہ کیا تھا۔ جب 48 گھنٹے کا دورانیہ ختم ہوگا تو یہ خودکار طور پر دوبارہ فعال ہو جائے گا۔" "نمبرز درآمد کریں" 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 a13da4389..2a2b7afba 100644 --- a/java/com/android/dialer/app/res/values-uz/strings.xml +++ b/java/com/android/dialer/app/res/values-uz/strings.xml @@ -202,6 +202,8 @@ "Chaqiruvlar" "Qo‘ng‘iroqlarni bloklash" "Ovozli pochta" + + "Qo‘ng‘iroqlarni bloklash o‘chirilgan" "Oxirgi 48 soat ichida ushbu telefon orqali favqulodda xizmatlar bilan bog‘lanilganligi uchun qo‘ng‘iroqlarni bloklash o‘chirib qo‘yildi. 48 soatlik muddat tugagandan so‘ng bu avtomatik qayta yoqiladi." "Raqamlarni import qilish" 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 a95e0683c..9def34a1e 100644 --- a/java/com/android/dialer/app/res/values-vi/strings.xml +++ b/java/com/android/dialer/app/res/values-vi/strings.xml @@ -200,6 +200,8 @@ "Cuộc gọi" "Chặn cuộc gọi" "Thư thoại" + + "Tạm thời tắt chặn cuộc gọi" "Tính năng chặn cuộc gọi đã bị tắt vì bạn đã liên hệ với dịch vụ khẩn cấp từ điện thoại này trong vòng 48 giờ qua. Tính năng này sẽ được bật lại tự động sau khi khoảng thời gian 48 giờ kết thúc." "Nhập số" 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 6a12a0711..c1b802979 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 @@ -200,6 +200,8 @@ "通话" "来电屏蔽" "语音邮件" + + "来电拦截功能已暂时关闭" "来电拦截功能已停用,因为您在过去 48 小时内使用该手机拨打了紧急服务电话。系统会在 48 小时的期限结束后自动重新启用该功能。" "导入号码" 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 12e50fb09..95b72f2b5 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 @@ -199,6 +199,8 @@ "通話" "來電封鎖" "留言" + + "暫時關閉來電封鎖功能" "您在過去 48 小時內曾經使用此手機聯絡緊急服務,因此來電封鎖功能已停用。系統會在 48 小時期限結束後自動重新啟用功能。" "匯入號碼" 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 83d093e55..c846980c1 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 @@ -202,6 +202,8 @@ "通話" "來電封鎖" "語音留言" + + "來電封鎖功能已暫時關閉" "由於您曾在過去 48 小時內使用這支手機撥打緊急服務電話,因此來電封鎖功能已停用。此功能停用達 48 小時後,將由系統自動重新啟用。" "匯入電話號碼" 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 840d16877..07aa68d24 100644 --- a/java/com/android/dialer/app/res/values-zu/strings.xml +++ b/java/com/android/dialer/app/res/values-zu/strings.xml @@ -200,6 +200,8 @@ "Amakholi" "Ukuvimbela ikholi" "Ivoyisimeyili" + + "Ukuvimbela ikholi kuvalwe isikhashana" "Ukuvimbela ikholi kukhutshaziwe ngoba uxhumane nabosizo oluphuthumayo kusukela kule foni phakathi kwamahora angu-48 wokugcina. Kuzophinda kunikwe amandla ngokuzenzakalela uma sokuphele isikhathi samahora angu-48." "Ngenisa izinombolo" diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml index a4e443dca..174bbe17a 100644 --- a/java/com/android/dialer/app/res/values/strings.xml +++ b/java/com/android/dialer/app/res/values/strings.xml @@ -764,6 +764,9 @@ Voicemail + + Select SIM for voicemail settings + diff --git a/java/com/android/dialer/app/res/values/styles.xml b/java/com/android/dialer/app/res/values/styles.xml index 3b2df96f2..7adf7ca2c 100644 --- a/java/com/android/dialer/app/res/values/styles.xml +++ b/java/com/android/dialer/app/res/values/styles.xml @@ -142,6 +142,8 @@ 0dp +