summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.mk25
-rw-r--r--AndroidManifest.xml63
-rw-r--r--proguard.flags7
-rw-r--r--res/drawable-hdpi/ab_stacked_opaque_dark_holo.9.pngbin225 -> 0 bytes
-rw-r--r--res/drawable-hdpi/divider.9.pngbin118 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_ab_dialer_holo_light.pngbin1696 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_block_24dp.pngbin0 -> 478 bytes
-rw-r--r--res/drawable-hdpi/ic_call_log_blue.pngbin1734 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_cancel_holo_light.pngbin393 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_content_copy_24dp.pngbin0 -> 203 bytes
-rw-r--r--res/drawable-hdpi/ic_fav_undo_dk.pngbin1644 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_all_contacts_dk.pngbin1778 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_menu_history_dk.pngbin1629 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_mic_grey600.pngbin0 -> 377 bytes
-rw-r--r--res/drawable-hdpi/ic_more_horiz_24dp.pngbin134 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_not_interested_googblue_24dp.pngbin0 -> 565 bytes
-rw-r--r--res/drawable-hdpi/ic_phone_24dp.pngbin0 -> 347 bytes
-rw-r--r--res/drawable-hdpi/ic_report_24dp.pngbin0 -> 240 bytes
-rw-r--r--res/drawable-hdpi/ic_report_problem_24dp.pngbin306 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_unblock.pngbin0 -> 1049 bytes
-rw-r--r--res/drawable-hdpi/ic_vm_bt_dk.pngbin1703 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_vm_phone_broadcast_dk.pngbin1365 -> 0 bytes
-rw-r--r--res/drawable-hdpi/ic_voice_search.pngbin1249 -> 0 bytes
-rw-r--r--res/drawable-hdpi/list_selector_disabled_holo_dark.9.pngbin189 -> 0 bytes
-rw-r--r--res/drawable-hdpi/rounded_corner_bg.9.pngbin333 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-hdpi/ic_call_incoming_holo_dark.pngbin598 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-hdpi/ic_call_missed_holo_dark.pngbin529 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-hdpi/ic_call_outgoing_holo_dark.pngbin602 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-mdpi/ic_call_incoming_holo_dark.pngbin399 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-mdpi/ic_call_missed_holo_dark.pngbin351 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-mdpi/ic_call_outgoing_holo_dark.pngbin370 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-xhdpi/ic_call_incoming_holo_dark.pngbin766 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-xhdpi/ic_call_missed_holo_dark.pngbin672 -> 0 bytes
-rw-r--r--res/drawable-ldrtl-xhdpi/ic_call_outgoing_holo_dark.pngbin816 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ab_stacked_opaque_dark_holo.9.pngbin177 -> 0 bytes
-rw-r--r--res/drawable-mdpi/divider.9.pngbin118 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_block_24dp.pngbin0 -> 335 bytes
-rw-r--r--res/drawable-mdpi/ic_call_log_blue.pngbin1141 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_cancel_holo_light.pngbin312 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_content_copy_24dp.pngbin0 -> 134 bytes
-rw-r--r--res/drawable-mdpi/ic_fav_undo_dk.pngbin1384 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_all_contacts_dk.pngbin1225 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_dialpad_dk.pngbin1088 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_dialpad_lt.pngbin986 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_history_dk.pngbin1111 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_mic_grey600.pngbin0 -> 252 bytes
-rw-r--r--res/drawable-mdpi/ic_more_horiz_24dp.pngbin109 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_not_interested_googblue_24dp.pngbin0 -> 377 bytes
-rw-r--r--res/drawable-mdpi/ic_phone_24dp.pngbin0 -> 262 bytes
-rw-r--r--res/drawable-mdpi/ic_report_24dp.pngbin0 -> 174 bytes
-rw-r--r--res/drawable-mdpi/ic_report_problem_24dp.pngbin236 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_unblock.pngbin0 -> 746 bytes
-rw-r--r--res/drawable-mdpi/ic_vm_bt_dk.pngbin1169 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_vm_phone_broadcast_dk.pngbin1030 -> 0 bytes
-rw-r--r--res/drawable-mdpi/ic_voice_search.pngbin912 -> 0 bytes
-rw-r--r--res/drawable-mdpi/list_selector_disabled_holo_dark.9.pngbin172 -> 0 bytes
-rw-r--r--res/drawable-mdpi/rounded_corner_bg.9.pngbin205 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ab_stacked_opaque_dark_holo.9.pngbin236 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/divider.9.pngbin118 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_block_24dp.pngbin0 -> 665 bytes
-rw-r--r--res/drawable-xhdpi/ic_call_log_blue.pngbin2386 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_cancel_holo_light.pngbin1477 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_content_copy_24dp.pngbin0 -> 188 bytes
-rw-r--r--res/drawable-xhdpi/ic_fav_undo_dk.pngbin1935 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_all_contacts_dk.pngbin2396 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_dialpad_dk.pngbin1957 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_dialpad_lt.pngbin1607 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_history_dk.pngbin2299 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_mic_grey600.pngbin0 -> 454 bytes
-rw-r--r--res/drawable-xhdpi/ic_more_horiz_24dp.pngbin161 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_not_interested_googblue_24dp.pngbin0 -> 755 bytes
-rw-r--r--res/drawable-xhdpi/ic_phone_24dp.pngbin0 -> 439 bytes
-rw-r--r--res/drawable-xhdpi/ic_report_24dp.pngbin0 -> 272 bytes
-rw-r--r--res/drawable-xhdpi/ic_report_problem_24dp.pngbin364 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_unblock.pngbin0 -> 1356 bytes
-rw-r--r--res/drawable-xhdpi/ic_vm_bt_dk.pngbin2283 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_vm_phone_broadcast_dk.pngbin1787 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/ic_voice_search.pngbin1572 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/list_selector_disabled_holo_dark.9.pngbin190 -> 0 bytes
-rw-r--r--res/drawable-xhdpi/rounded_corner_bg.9.pngbin427 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ab_stacked_opaque_dark_holo.9.pngbin1143 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/divider.9.pngbin118 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_block_24dp.pngbin0 -> 973 bytes
-rw-r--r--res/drawable-xxhdpi/ic_call_log_blue.pngbin2967 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_cancel_holo_light.pngbin1637 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_content_copy_24dp.pngbin0 -> 266 bytes
-rw-r--r--res/drawable-xxhdpi/ic_fav_undo_dk.pngbin2090 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_menu_all_contacts_dk.pngbin3002 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_menu_dialpad_dk.pngbin2044 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_menu_dialpad_lt.pngbin1302 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_menu_history_dk.pngbin2996 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_mic_grey600.pngbin0 -> 631 bytes
-rw-r--r--res/drawable-xxhdpi/ic_more_horiz_24dp.pngbin213 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_not_interested_googblue_24dp.pngbin0 -> 1112 bytes
-rw-r--r--res/drawable-xxhdpi/ic_phone_24dp.pngbin0 -> 619 bytes
-rw-r--r--res/drawable-xxhdpi/ic_report_24dp.pngbin0 -> 340 bytes
-rw-r--r--res/drawable-xxhdpi/ic_report_problem_24dp.pngbin473 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_unblock.pngbin0 -> 1990 bytes
-rw-r--r--res/drawable-xxhdpi/ic_vm_bt_dk.pngbin2913 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_vm_phone_broadcast_dk.pngbin2166 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/ic_voice_search.pngbin2075 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/list_selector_disabled_holo_dark.9.pngbin1137 -> 0 bytes
-rw-r--r--res/drawable-xxhdpi/rounded_corner_bg.9.pngbin1307 -> 0 bytes
-rw-r--r--res/drawable-xxxhdpi/empty_speeddial.pngbin14741 -> 0 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_block_24dp.pngbin0 -> 1295 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_content_copy_24dp.pngbin0 -> 329 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_mic_grey600.pngbin0 -> 853 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_more_horiz_24dp.pngbin267 -> 0 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_not_interested_googblue_24dp.pngbin0 -> 1458 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_phone_24dp.pngbin0 -> 837 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_report_24dp.pngbin0 -> 450 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_report_problem_24dp.pngbin590 -> 0 bytes
-rw-r--r--res/drawable-xxxhdpi/ic_unblock.pngbin0 -> 1389 bytes
-rw-r--r--res/drawable/blocked_contact.xml (renamed from res/drawable/tab_speed_dial.xml)21
-rw-r--r--res/drawable/ic_call_detail_block.xml (renamed from res/menu/call_details_cab.xml)14
-rw-r--r--res/drawable/ic_call_detail_content_copy.xml20
-rw-r--r--res/drawable/ic_call_detail_edit.xml20
-rw-r--r--res/drawable/ic_call_detail_report.xml20
-rw-r--r--res/drawable/ic_call_detail_unblock.xml20
-rw-r--r--res/drawable/ic_voicemail_seek_handle_disabled.xml (renamed from res/drawable/tab_voicemail.xml)19
-rw-r--r--res/drawable/tab_contacts.xml30
-rw-r--r--res/drawable/tab_recents.xml30
-rw-r--r--res/layout/blocked_number_footer.xml37
-rw-r--r--res/layout/blocked_number_fragment.xml (renamed from res/layout/show_call_history_list_item.xml)23
-rw-r--r--res/layout/blocked_number_header.xml172
-rw-r--r--res/layout/blocked_number_item.xml72
-rw-r--r--res/layout/blocked_numbers_activity.xml (renamed from res/layout/call_details_voicemail_header.xml)23
-rw-r--r--res/layout/call_detail.xml82
-rw-r--r--res/layout/call_detail_footer.xml56
-rw-r--r--res/layout/call_detail_header.xml89
-rw-r--r--res/layout/call_detail_history_header.xml30
-rw-r--r--res/layout/call_detail_history_item.xml4
-rw-r--r--res/layout/call_log_fragment.xml4
-rw-r--r--res/layout/call_log_list_item.xml43
-rw-r--r--res/layout/call_log_list_item_actions.xml24
-rw-r--r--res/layout/dialtacts_activity.xml8
-rw-r--r--res/layout/search_edittext.xml14
-rw-r--r--res/layout/view_numbers_to_import_fragment.xml56
-rw-r--r--res/layout/voicemail_playback_layout.xml10
-rw-r--r--res/layout/voicemail_promo_card.xml10
-rw-r--r--res/menu/call_details_options.xml34
-rw-r--r--res/menu/call_log_options.xml2
-rw-r--r--res/values-af/strings.xml121
-rw-r--r--res/values-am/strings.xml121
-rw-r--r--res/values-ar/strings.xml125
-rw-r--r--res/values-az-rAZ/strings.xml220
-rw-r--r--res/values-b+sr+Latn/strings.xml250
-rw-r--r--res/values-bg/strings.xml123
-rw-r--r--res/values-bn-rBD/strings.xml121
-rw-r--r--res/values-ca/strings.xml143
-rw-r--r--res/values-cs/strings.xml133
-rw-r--r--res/values-da/strings.xml133
-rw-r--r--res/values-de/strings.xml129
-rw-r--r--res/values-el/strings.xml129
-rw-r--r--res/values-en-rAU/strings.xml121
-rw-r--r--res/values-en-rGB/strings.xml121
-rw-r--r--res/values-en-rIN/strings.xml121
-rw-r--r--res/values-es-rUS/strings.xml131
-rw-r--r--res/values-es/strings.xml127
-rw-r--r--res/values-et-rEE/strings.xml121
-rw-r--r--res/values-eu-rES/strings.xml121
-rw-r--r--res/values-fa/strings.xml129
-rw-r--r--res/values-fi/strings.xml123
-rw-r--r--res/values-fr-rCA/strings.xml121
-rw-r--r--res/values-fr/strings.xml123
-rw-r--r--res/values-gl-rES/strings.xml121
-rw-r--r--res/values-gu-rIN/strings.xml133
-rw-r--r--res/values-hi/strings.xml121
-rw-r--r--res/values-hr/strings.xml122
-rw-r--r--res/values-hu/strings.xml123
-rw-r--r--res/values-hy-rAM/strings.xml121
-rw-r--r--res/values-in/strings.xml121
-rw-r--r--res/values-is-rIS/strings.xml121
-rw-r--r--res/values-it/strings.xml129
-rw-r--r--res/values-iw/strings.xml125
-rw-r--r--res/values-ja/strings.xml125
-rw-r--r--res/values-ka-rGE/strings.xml121
-rw-r--r--res/values-kk-rKZ/strings.xml129
-rw-r--r--res/values-km-rKH/strings.xml121
-rw-r--r--res/values-kn-rIN/strings.xml133
-rw-r--r--res/values-ko/strings.xml121
-rw-r--r--res/values-ky-rKG/strings.xml124
-rw-r--r--res/values-lo-rLA/strings.xml121
-rw-r--r--res/values-lt/strings.xml123
-rw-r--r--res/values-lv/strings.xml126
-rw-r--r--res/values-mk-rMK/strings.xml121
-rw-r--r--res/values-ml-rIN/strings.xml137
-rw-r--r--res/values-mn-rMN/strings.xml121
-rw-r--r--res/values-mr-rIN/strings.xml123
-rw-r--r--res/values-ms-rMY/strings.xml127
-rw-r--r--res/values-my-rMM/strings.xml121
-rw-r--r--res/values-nb/strings.xml133
-rw-r--r--res/values-ne-rNP/strings.xml121
-rw-r--r--res/values-nl/strings.xml135
-rw-r--r--res/values-pa-rIN/strings.xml121
-rw-r--r--res/values-pl/strings.xml129
-rw-r--r--res/values-pt-rBR/strings.xml248
-rw-r--r--res/values-pt-rPT/strings.xml121
-rw-r--r--res/values-pt/strings.xml133
-rw-r--r--res/values-ro/strings.xml140
-rw-r--r--res/values-ru/strings.xml139
-rw-r--r--res/values-si-rLK/strings.xml121
-rw-r--r--res/values-sk/strings.xml135
-rw-r--r--res/values-sl/strings.xml125
-rw-r--r--res/values-sq-rAL/strings.xml133
-rw-r--r--res/values-sr/strings.xml126
-rw-r--r--res/values-sv/strings.xml123
-rw-r--r--res/values-sw/strings.xml121
-rw-r--r--res/values-ta-rIN/strings.xml127
-rw-r--r--res/values-te-rIN/strings.xml123
-rw-r--r--res/values-th/strings.xml123
-rw-r--r--res/values-tl/strings.xml129
-rw-r--r--res/values-tr/strings.xml123
-rw-r--r--res/values-uk/strings.xml135
-rw-r--r--res/values-ur-rPK/strings.xml121
-rw-r--r--res/values-uz-rUZ/strings.xml151
-rw-r--r--res/values-vi/strings.xml127
-rw-r--r--res/values-zh-rCN/strings.xml123
-rw-r--r--res/values-zh-rHK/strings.xml121
-rw-r--r--res/values-zh-rTW/strings.xml121
-rw-r--r--res/values-zu/strings.xml121
-rw-r--r--res/values/colors.xml39
-rw-r--r--res/values/dimens.xml47
-rw-r--r--res/values/ids.xml4
-rw-r--r--res/values/strings.xml301
-rw-r--r--res/values/styles.xml100
-rw-r--r--src-N/com/android/dialer/SdkSelectionUtils.java35
-rw-r--r--src-N/com/android/dialer/compat/UserManagerSdkCompat.java39
-rw-r--r--src-pre-N/com/android/dialer/SdkSelectionUtils.java35
-rw-r--r--src-pre-N/com/android/dialer/compat/UserManagerSdkCompat.java34
-rw-r--r--src/com/android/dialer/CallDetailActivity.java414
-rw-r--r--src/com/android/dialer/DialtactsActivity.java185
-rw-r--r--src/com/android/dialer/FloatingActionButtonBehavior.java47
-rw-r--r--src/com/android/dialer/PhoneCallDetails.java34
-rw-r--r--src/com/android/dialer/SpecialCharSequenceMgr.java62
-rw-r--r--src/com/android/dialer/TransactionSafeActivity.java65
-rw-r--r--src/com/android/dialer/calllog/CallDetailHistoryAdapter.java28
-rw-r--r--src/com/android/dialer/calllog/CallLogActivity.java37
-rw-r--r--src/com/android/dialer/calllog/CallLogAdapter.java340
-rw-r--r--src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java167
-rw-r--r--src/com/android/dialer/calllog/CallLogFragment.java152
-rw-r--r--src/com/android/dialer/calllog/CallLogGroupBuilder.java164
-rw-r--r--src/com/android/dialer/calllog/CallLogListItemHelper.java51
-rw-r--r--src/com/android/dialer/calllog/CallLogListItemViewHolder.java298
-rw-r--r--src/com/android/dialer/calllog/CallLogNotificationsHelper.java297
-rw-r--r--src/com/android/dialer/calllog/CallLogNotificationsService.java129
-rw-r--r--src/com/android/dialer/calllog/CallLogQuery.java41
-rw-r--r--src/com/android/dialer/calllog/CallLogQueryHandler.java56
-rw-r--r--src/com/android/dialer/calllog/CallTypeHelper.java35
-rw-r--r--src/com/android/dialer/calllog/CallTypeIconsView.java62
-rw-r--r--src/com/android/dialer/calllog/ContactInfo.java16
-rw-r--r--src/com/android/dialer/calllog/ContactInfoHelper.java207
-rw-r--r--src/com/android/dialer/calllog/DefaultVoicemailNotifier.java299
-rw-r--r--src/com/android/dialer/calllog/GroupingListAdapter.java362
-rw-r--r--src/com/android/dialer/calllog/IntentProvider.java21
-rw-r--r--src/com/android/dialer/calllog/MissedCallNotificationReceiver.java53
-rw-r--r--src/com/android/dialer/calllog/MissedCallNotifier.java271
-rw-r--r--src/com/android/dialer/calllog/PhoneAccountUtils.java45
-rw-r--r--src/com/android/dialer/calllog/PhoneCallDetailsHelper.java142
-rw-r--r--src/com/android/dialer/calllog/PhoneNumberDisplayUtil.java17
-rw-r--r--src/com/android/dialer/calllog/PhoneQuery.java19
-rw-r--r--src/com/android/dialer/calllog/PromoCardViewHolder.java42
-rw-r--r--src/com/android/dialer/calllog/ShowCallHistoryViewHolder.java46
-rw-r--r--src/com/android/dialer/calllog/VisualVoicemailCallLogFragment.java87
-rw-r--r--src/com/android/dialer/calllog/VoicemailQueryHandler.java3
-rw-r--r--src/com/android/dialer/calllog/calllogcache/CallLogCache.java96
-rw-r--r--src/com/android/dialer/calllog/calllogcache/CallLogCacheLollipop.java73
-rw-r--r--src/com/android/dialer/calllog/calllogcache/CallLogCacheLollipopMr1.java (renamed from src/com/android/dialer/calllog/TelecomCallLogCache.java)64
-rw-r--r--src/com/android/dialer/compat/CallAudioStateCompat.java331
-rw-r--r--src/com/android/dialer/compat/DialerCompatUtils.java31
-rw-r--r--src/com/android/dialer/compat/SettingsCompat.java47
-rw-r--r--src/com/android/dialer/compat/UserManagerCompat.java71
-rw-r--r--src/com/android/dialer/contactinfo/ContactInfoCache.java5
-rw-r--r--src/com/android/dialer/database/DialerDatabaseHelper.java275
-rw-r--r--src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java271
-rw-r--r--src/com/android/dialer/database/FilteredNumberContract.java163
-rw-r--r--src/com/android/dialer/database/FilteredNumberProvider.java211
-rw-r--r--src/com/android/dialer/dialpad/DialpadFragment.java116
-rw-r--r--src/com/android/dialer/dialpad/SmartDialCursorLoader.java1
-rw-r--r--src/com/android/dialer/dialpad/SmartDialNameMatcher.java5
-rw-r--r--src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java317
-rw-r--r--src/com/android/dialer/filterednumber/BlockedNumbersAdapter.java96
-rw-r--r--src/com/android/dialer/filterednumber/BlockedNumbersFragment.java218
-rw-r--r--src/com/android/dialer/filterednumber/BlockedNumbersSettingsActivity.java162
-rw-r--r--src/com/android/dialer/filterednumber/FilteredNumbersUtil.java363
-rw-r--r--src/com/android/dialer/filterednumber/NumbersAdapter.java137
-rw-r--r--src/com/android/dialer/filterednumber/ViewNumbersToImportAdapter.java57
-rw-r--r--src/com/android/dialer/filterednumber/ViewNumbersToImportFragment.java136
-rw-r--r--src/com/android/dialer/interactions/PhoneNumberInteraction.java114
-rw-r--r--src/com/android/dialer/list/AllContactsFragment.java17
-rw-r--r--src/com/android/dialer/list/BlockedListSearchAdapter.java90
-rw-r--r--src/com/android/dialer/list/BlockedListSearchFragment.java244
-rw-r--r--src/com/android/dialer/list/ContentChangedFilter.java40
-rw-r--r--src/com/android/dialer/list/DialerPhoneNumberListAdapter.java28
-rw-r--r--src/com/android/dialer/list/ListsFragment.java140
-rw-r--r--src/com/android/dialer/list/PhoneFavoriteSquareTileView.java15
-rw-r--r--src/com/android/dialer/list/PhoneFavoritesTileAdapter.java46
-rw-r--r--src/com/android/dialer/list/RegularSearchFragment.java69
-rw-r--r--src/com/android/dialer/list/RegularSearchListAdapter.java40
-rw-r--r--src/com/android/dialer/list/SearchFragment.java38
-rw-r--r--src/com/android/dialer/list/SmartDialSearchFragment.java16
-rw-r--r--src/com/android/dialer/list/SpeedDialFragment.java24
-rw-r--r--src/com/android/dialer/logging/InteractionEvent.java76
-rw-r--r--src/com/android/dialer/logging/Logger.java85
-rw-r--r--src/com/android/dialer/logging/ScreenEvent.java172
-rw-r--r--src/com/android/dialer/service/SpamButtonRenderer.java23
-rw-r--r--src/com/android/dialer/settings/DefaultRingtonePreference.java5
-rw-r--r--src/com/android/dialer/settings/DialerSettingsActivity.java115
-rw-r--r--src/com/android/dialer/settings/SoundSettingsFragment.java29
-rw-r--r--src/com/android/dialer/util/AppCompatConstants.java32
-rw-r--r--src/com/android/dialer/util/DialerUtils.java26
-rw-r--r--src/com/android/dialer/util/IntentUtil.java136
-rw-r--r--src/com/android/dialer/util/MoreStrings.java43
-rw-r--r--src/com/android/dialer/util/PhoneNumberUtil.java53
-rw-r--r--src/com/android/dialer/util/TelecomUtil.java124
-rw-r--r--src/com/android/dialer/voicemail/VisualVoicemailEnabledChecker.java98
-rw-r--r--src/com/android/dialer/voicemail/VoicemailAudioManager.java202
-rw-r--r--src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java104
-rw-r--r--src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java244
-rw-r--r--src/com/android/dialer/voicemail/WiredHeadsetManager.java88
-rw-r--r--src/com/android/dialer/widget/ActionBarController.java17
-rw-r--r--src/com/android/dialer/widget/EmptyContentView.java3
-rw-r--r--src/com/android/dialer/widget/SearchEditTextLayout.java1
-rw-r--r--src/com/android/dialerbind/ObjectFactory.java29
-rw-r--r--tests/Android.mk7
-rw-r--r--tests/AndroidManifest.xml6
-rw-r--r--tests/res/layout/fill_call_log_test.xml20
-rw-r--r--tests/res/values/donottranslate_strings.xml1
-rw-r--r--tests/src-N/com/android/dialer/SdkSelectionUtilsTest.java35
-rw-r--r--tests/src-pre-N/com/android/dialer/SdkSelectionUtilsTest.java35
-rw-r--r--tests/src/com/android/dialer/CallDetailActivityTest.java62
-rw-r--r--tests/src/com/android/dialer/DialerLaunchPerformance.java3
-rw-r--r--tests/src/com/android/dialer/calllog/CallLogAdapterTest.java683
-rw-r--r--tests/src/com/android/dialer/calllog/CallLogFragmentTest.java658
-rw-r--r--tests/src/com/android/dialer/calllog/CallLogGroupBuilderTest.java217
-rw-r--r--tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java120
-rw-r--r--tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java19
-rw-r--r--tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java131
-rw-r--r--tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java190
-rw-r--r--tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java145
-rw-r--r--tests/src/com/android/dialer/calllog/calllogcache/TestTelecomCallLogCache.java (renamed from tests/src/com/android/dialer/calllog/TestTelecomCallLogCache.java)26
-rw-r--r--tests/src/com/android/dialer/compat/UserManagerCompatTest.java44
-rw-r--r--tests/src/com/android/dialer/database/DatabaseTestUtils.java81
-rw-r--r--tests/src/com/android/dialer/database/DialerDatabaseHelperTest.java154
-rw-r--r--tests/src/com/android/dialer/database/FilteredNumberProviderTest.java232
-rw-r--r--tests/src/com/android/dialer/database/SmartDialPrefixTest.java78
-rw-r--r--tests/src/com/android/dialer/dialpad/DialpadFragmentInstrumentationTest.java121
-rw-r--r--tests/src/com/android/dialer/dialpad/DialpadFragmentTest.java26
-rw-r--r--tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java110
-rw-r--r--tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java24
-rw-r--r--tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java250
-rw-r--r--tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java162
-rw-r--r--tests/src/com/android/dialer/voicemail/VoicemailPlaybackTest.java81
353 files changed, 19385 insertions, 6505 deletions
diff --git a/Android.mk b/Android.mk
index 1440fcc3f..20f39445e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -7,6 +7,12 @@ incallui_dir := ../InCallUI
contacts_common_dir := ../ContactsCommon
phone_common_dir := ../PhoneCommon
+ifeq ($(TARGET_BUILD_APPS),)
+support_library_root_dir := frameworks/support
+else
+support_library_root_dir := prebuilts/sdk/current/support
+endif
+
src_dirs := src \
$(incallui_dir)/src \
$(contacts_common_dir)/src \
@@ -17,26 +23,37 @@ res_dirs := res \
$(contacts_common_dir)/res \
$(phone_common_dir)/res
+src_dirs += \
+ src-N \
+ $(incallui_dir)/src-N \
+ $(contacts_common_dir)/src-N \
+ $(phone_common_dir)/src-N
+
LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dirs)) \
- frameworks/support/v7/cardview/res frameworks/support/v7/recyclerview/res
+ $(support_library_root_dir)/v7/cardview/res \
+ $(support_library_root_dir)/v7/recyclerview/res \
+ $(support_library_root_dir)/v7/appcompat/res \
+ $(support_library_root_dir)/design/res
LOCAL_AAPT_FLAGS := \
--auto-add-overlay \
+ --extra-packages android.support.v7.appcompat \
--extra-packages android.support.v7.cardview \
--extra-packages android.support.v7.recyclerview \
+ --extra-packages android.support.design \
--extra-packages com.android.incallui \
--extra-packages com.android.contacts.common \
--extra-packages com.android.phone.common
-LOCAL_JAVA_LIBRARIES := telephony-common
LOCAL_STATIC_JAVA_LIBRARIES := \
android-common \
android-support-v13 \
android-support-v4 \
+ android-support-v7-appcompat \
android-support-v7-cardview \
android-support-v7-recyclerview \
- com.android.services.telephony.common \
+ android-support-design \
com.android.vcard \
guava \
libphonenumber
@@ -49,7 +66,7 @@ LOCAL_PROGUARD_FLAG_FILES := proguard.flags $(incallui_dir)/proguard.flags
# Uncomment the following line to build against the current SDK
# This is required for building an unbundled app.
-LOCAL_SDK_VERSION := current
+LOCAL_SDK_VERSION := system_current
include $(BUILD_PACKAGE)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4055b4441..7d7092df3 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -17,14 +17,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.dialer"
coreApp="true"
- android:versionCode="20210"
- android:versionName="2.21">
+ android:versionCode="20401"
+ android:versionName="2.04.01">
<uses-sdk
android:minSdkVersion="23"
android:targetSdkVersion="23" />
-
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
@@ -68,7 +67,9 @@
android:hardwareAccelerated="true"
android:supportsRtl="true"
android:backupAgent='com.android.dialer.DialerBackupAgent'
- android:usesCleartextTraffic="false">
+ android:usesCleartextTraffic="false"
+ android:forceDeviceEncrypted="true"
+ android:encryptionAware="true">
<meta-data android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIBXgtCEKQ6W0PXVnW-ZVia2KmlV2AxsTw3GjAeQ" />
@@ -82,8 +83,9 @@
android:launchMode="singleTask"
android:clearTaskOnLaunch="true"
android:icon="@mipmap/ic_launcher_phone"
- android:enabled="@*android:bool/config_voice_capable"
- android:windowSoftInputMode="stateAlwaysHidden|adjustNothing">
+ android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"
+ android:resizeableActivity="true"
+ >
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
@@ -132,7 +134,7 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.TAB" />
</intent-filter>
- <intent-filter android:label="@string/recentCallsIconLabel">
+ <intent-filter android:label="@string/callHistoryIconLabel">
<action android:name="com.android.phone.action.RECENT_CALLS" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.TAB" />
@@ -143,10 +145,17 @@
</activity>
<activity android:name="com.android.dialer.settings.DialerSettingsActivity"
- android:label="@string/dialer_settings_label"
- android:parentActivityName="com.android.dialer.DialtactsActivity"
- android:theme="@style/SettingsStyle"
- android:exported="false">
+ android:label="@string/dialer_settings_label"
+ android:parentActivityName="com.android.dialer.DialtactsActivity"
+ android:theme="@style/SettingsStyle"
+ android:exported="false">
+ </activity>
+
+ <activity android:name="com.android.dialer.filterednumber.BlockedNumbersSettingsActivity"
+ android:label="@string/manage_blocked_numbers_label"
+ android:parentActivityName="com.android.dialer.settings.DialerSettingsActivity"
+ android:theme="@style/ManageBlockedNumbersStyle"
+ android:exported="false">
</activity>
<activity android:name="com.android.dialer.calllog.CallLogActivity"
@@ -156,11 +165,9 @@
</activity>
<activity android:name="com.android.dialer.CallDetailActivity"
- android:label="@string/callDetailTitle"
- android:theme="@style/CallDetailActivityTheme"
- android:icon="@mipmap/ic_launcher_phone"
- android:parentActivityName="com.android.dialer.calllog.CallLogActivity"
- >
+ android:label="@string/callDetailTitle"
+ android:theme="@style/CallDetailActivityTheme"
+ android:icon="@mipmap/ic_launcher_phone">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
@@ -243,8 +250,7 @@
android:exported="false"/>
<!-- end vCard related -->
- <receiver android:name=".calllog.CallLogReceiver"
- android:enabled="@*android:bool/config_voice_capable">
+ <receiver android:name=".calllog.CallLogReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_VOICEMAIL" />
<data
@@ -269,6 +275,12 @@
android:exported="false"
/>
+ <receiver android:name=".calllog.MissedCallNotificationReceiver">
+ <intent-filter>
+ <action android:name="android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION" />
+ </intent-filter>
+ </receiver>
+
<!-- Service to update a contact -->
<service
android:name=".contact.ContactUpdateService"
@@ -292,7 +304,8 @@
android:launchMode="singleInstance"
android:configChanges="keyboardHidden"
android:exported="false"
- android:screenOrientation="nosensor" >
+ android:screenOrientation="nosensor"
+ android:encryptionAware="true" >
</activity>
<!-- BroadcastReceiver for receiving Intents from Notification mechanism. -->
@@ -300,11 +313,21 @@
android:exported="false" />
<service android:name="com.android.incallui.InCallServiceImpl"
- android:permission="android.permission.BIND_INCALL_SERVICE" >
+ android:permission="android.permission.BIND_INCALL_SERVICE"
+ android:encryptionAware="true" >
<meta-data android:name="android.telecom.IN_CALL_SERVICE_UI" android:value="true" />
+ <meta-data android:name="android.telecom.IN_CALL_SERVICE_RINGING"
+ android:value="false"/>
<intent-filter>
<action android:name="android.telecom.InCallService"/>
</intent-filter>
</service>
+
+ <provider
+ android:name=".database.FilteredNumberProvider"
+ android:authorities="com.android.dialer.database.filterednumberprovider"
+ android:exported="false"
+ android:multiprocess="false"
+ />
</application>
</manifest>
diff --git a/proguard.flags b/proguard.flags
index 38d4050de..6eed9983d 100644
--- a/proguard.flags
+++ b/proguard.flags
@@ -5,6 +5,8 @@
public void *(android.view.MenuItem);
}
+-keep class com.android.contacts.common.** { *;}
+
# Any class or method annotated with NeededForTesting or NeededForReflection.
-keep @com.android.contacts.common.testing.NeededForTesting class *
-keepclassmembers class * {
@@ -12,4 +14,9 @@
@com.android.dialer.NeededForReflection *;
}
+# For design libraries
+-keep public class * extends android.support.design.widget.CoordinatorLayout$Behavior {
+ public <init>(android.content.Context, android.util.AttributeSet);
+}
+
-verbose
diff --git a/res/drawable-hdpi/ab_stacked_opaque_dark_holo.9.png b/res/drawable-hdpi/ab_stacked_opaque_dark_holo.9.png
deleted file mode 100644
index 23320ea16..000000000
--- a/res/drawable-hdpi/ab_stacked_opaque_dark_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/divider.9.png b/res/drawable-hdpi/divider.9.png
deleted file mode 100644
index 88e5d91af..000000000
--- a/res/drawable-hdpi/divider.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_ab_dialer_holo_light.png b/res/drawable-hdpi/ic_ab_dialer_holo_light.png
deleted file mode 100644
index 7e3457661..000000000
--- a/res/drawable-hdpi/ic_ab_dialer_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_block_24dp.png b/res/drawable-hdpi/ic_block_24dp.png
new file mode 100644
index 000000000..2ccc89d24
--- /dev/null
+++ b/res/drawable-hdpi/ic_block_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_call_log_blue.png b/res/drawable-hdpi/ic_call_log_blue.png
deleted file mode 100644
index 92af15f7b..000000000
--- a/res/drawable-hdpi/ic_call_log_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_cancel_holo_light.png b/res/drawable-hdpi/ic_cancel_holo_light.png
deleted file mode 100644
index d8cacb44a..000000000
--- a/res/drawable-hdpi/ic_cancel_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_content_copy_24dp.png b/res/drawable-hdpi/ic_content_copy_24dp.png
new file mode 100644
index 000000000..70eb07378
--- /dev/null
+++ b/res/drawable-hdpi/ic_content_copy_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_fav_undo_dk.png b/res/drawable-hdpi/ic_fav_undo_dk.png
deleted file mode 100644
index 8c1b45125..000000000
--- a/res/drawable-hdpi/ic_fav_undo_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_all_contacts_dk.png b/res/drawable-hdpi/ic_menu_all_contacts_dk.png
deleted file mode 100644
index 88ba4f16a..000000000
--- a/res/drawable-hdpi/ic_menu_all_contacts_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_menu_history_dk.png b/res/drawable-hdpi/ic_menu_history_dk.png
deleted file mode 100644
index b64122f14..000000000
--- a/res/drawable-hdpi/ic_menu_history_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_mic_grey600.png b/res/drawable-hdpi/ic_mic_grey600.png
new file mode 100644
index 000000000..4b67cf71a
--- /dev/null
+++ b/res/drawable-hdpi/ic_mic_grey600.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_more_horiz_24dp.png b/res/drawable-hdpi/ic_more_horiz_24dp.png
deleted file mode 100644
index ebfcb6f54..000000000
--- a/res/drawable-hdpi/ic_more_horiz_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_not_interested_googblue_24dp.png b/res/drawable-hdpi/ic_not_interested_googblue_24dp.png
new file mode 100644
index 000000000..26a26f911
--- /dev/null
+++ b/res/drawable-hdpi/ic_not_interested_googblue_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_phone_24dp.png b/res/drawable-hdpi/ic_phone_24dp.png
new file mode 100644
index 000000000..b27dfba06
--- /dev/null
+++ b/res/drawable-hdpi/ic_phone_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_report_24dp.png b/res/drawable-hdpi/ic_report_24dp.png
new file mode 100644
index 000000000..dc0c995c1
--- /dev/null
+++ b/res/drawable-hdpi/ic_report_24dp.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_report_problem_24dp.png b/res/drawable-hdpi/ic_report_problem_24dp.png
deleted file mode 100644
index cebb1c207..000000000
--- a/res/drawable-hdpi/ic_report_problem_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_unblock.png b/res/drawable-hdpi/ic_unblock.png
new file mode 100644
index 000000000..03643b20d
--- /dev/null
+++ b/res/drawable-hdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_vm_bt_dk.png b/res/drawable-hdpi/ic_vm_bt_dk.png
deleted file mode 100644
index 2a4f4f618..000000000
--- a/res/drawable-hdpi/ic_vm_bt_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_vm_phone_broadcast_dk.png b/res/drawable-hdpi/ic_vm_phone_broadcast_dk.png
deleted file mode 100644
index 1e0b2ae6d..000000000
--- a/res/drawable-hdpi/ic_vm_phone_broadcast_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/ic_voice_search.png b/res/drawable-hdpi/ic_voice_search.png
deleted file mode 100644
index 9631d3e3d..000000000
--- a/res/drawable-hdpi/ic_voice_search.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/list_selector_disabled_holo_dark.9.png b/res/drawable-hdpi/list_selector_disabled_holo_dark.9.png
deleted file mode 100644
index f6fd30dcd..000000000
--- a/res/drawable-hdpi/list_selector_disabled_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-hdpi/rounded_corner_bg.9.png b/res/drawable-hdpi/rounded_corner_bg.9.png
deleted file mode 100644
index b5f50de3c..000000000
--- a/res/drawable-hdpi/rounded_corner_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_call_incoming_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_call_incoming_holo_dark.png
deleted file mode 100644
index 3b3fb46ef..000000000
--- a/res/drawable-ldrtl-hdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_call_missed_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_call_missed_holo_dark.png
deleted file mode 100644
index 844f351ed..000000000
--- a/res/drawable-ldrtl-hdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-hdpi/ic_call_outgoing_holo_dark.png b/res/drawable-ldrtl-hdpi/ic_call_outgoing_holo_dark.png
deleted file mode 100644
index 786198661..000000000
--- a/res/drawable-ldrtl-hdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_call_incoming_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_call_incoming_holo_dark.png
deleted file mode 100644
index b48e0d6f3..000000000
--- a/res/drawable-ldrtl-mdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_call_missed_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_call_missed_holo_dark.png
deleted file mode 100644
index 86bae1075..000000000
--- a/res/drawable-ldrtl-mdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-mdpi/ic_call_outgoing_holo_dark.png b/res/drawable-ldrtl-mdpi/ic_call_outgoing_holo_dark.png
deleted file mode 100644
index 1429593bf..000000000
--- a/res/drawable-ldrtl-mdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_call_incoming_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_call_incoming_holo_dark.png
deleted file mode 100644
index dfb179237..000000000
--- a/res/drawable-ldrtl-xhdpi/ic_call_incoming_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_call_missed_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_call_missed_holo_dark.png
deleted file mode 100644
index a1236ed16..000000000
--- a/res/drawable-ldrtl-xhdpi/ic_call_missed_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-ldrtl-xhdpi/ic_call_outgoing_holo_dark.png b/res/drawable-ldrtl-xhdpi/ic_call_outgoing_holo_dark.png
deleted file mode 100644
index ec0e1d0ef..000000000
--- a/res/drawable-ldrtl-xhdpi/ic_call_outgoing_holo_dark.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ab_stacked_opaque_dark_holo.9.png b/res/drawable-mdpi/ab_stacked_opaque_dark_holo.9.png
deleted file mode 100644
index 3e912f511..000000000
--- a/res/drawable-mdpi/ab_stacked_opaque_dark_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/divider.9.png b/res/drawable-mdpi/divider.9.png
deleted file mode 100644
index 88e5d91af..000000000
--- a/res/drawable-mdpi/divider.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_block_24dp.png b/res/drawable-mdpi/ic_block_24dp.png
new file mode 100644
index 000000000..ec1b33f0e
--- /dev/null
+++ b/res/drawable-mdpi/ic_block_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_call_log_blue.png b/res/drawable-mdpi/ic_call_log_blue.png
deleted file mode 100644
index b9209adca..000000000
--- a/res/drawable-mdpi/ic_call_log_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_cancel_holo_light.png b/res/drawable-mdpi/ic_cancel_holo_light.png
deleted file mode 100644
index 56705c333..000000000
--- a/res/drawable-mdpi/ic_cancel_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_content_copy_24dp.png b/res/drawable-mdpi/ic_content_copy_24dp.png
new file mode 100644
index 000000000..80c069557
--- /dev/null
+++ b/res/drawable-mdpi/ic_content_copy_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_fav_undo_dk.png b/res/drawable-mdpi/ic_fav_undo_dk.png
deleted file mode 100644
index 9655590a7..000000000
--- a/res/drawable-mdpi/ic_fav_undo_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_all_contacts_dk.png b/res/drawable-mdpi/ic_menu_all_contacts_dk.png
deleted file mode 100644
index 03af9c4bd..000000000
--- a/res/drawable-mdpi/ic_menu_all_contacts_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_dialpad_dk.png b/res/drawable-mdpi/ic_menu_dialpad_dk.png
deleted file mode 100644
index a7dcd24bf..000000000
--- a/res/drawable-mdpi/ic_menu_dialpad_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_dialpad_lt.png b/res/drawable-mdpi/ic_menu_dialpad_lt.png
deleted file mode 100644
index 14674ed05..000000000
--- a/res/drawable-mdpi/ic_menu_dialpad_lt.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_history_dk.png b/res/drawable-mdpi/ic_menu_history_dk.png
deleted file mode 100644
index 2203f3a62..000000000
--- a/res/drawable-mdpi/ic_menu_history_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_mic_grey600.png b/res/drawable-mdpi/ic_mic_grey600.png
new file mode 100644
index 000000000..2310c734a
--- /dev/null
+++ b/res/drawable-mdpi/ic_mic_grey600.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_more_horiz_24dp.png b/res/drawable-mdpi/ic_more_horiz_24dp.png
deleted file mode 100644
index 8c0be8ad6..000000000
--- a/res/drawable-mdpi/ic_more_horiz_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_not_interested_googblue_24dp.png b/res/drawable-mdpi/ic_not_interested_googblue_24dp.png
new file mode 100644
index 000000000..d7d5c588f
--- /dev/null
+++ b/res/drawable-mdpi/ic_not_interested_googblue_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_phone_24dp.png b/res/drawable-mdpi/ic_phone_24dp.png
new file mode 100644
index 000000000..c1766b854
--- /dev/null
+++ b/res/drawable-mdpi/ic_phone_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_report_24dp.png b/res/drawable-mdpi/ic_report_24dp.png
new file mode 100644
index 000000000..70b82d6c1
--- /dev/null
+++ b/res/drawable-mdpi/ic_report_24dp.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_report_problem_24dp.png b/res/drawable-mdpi/ic_report_problem_24dp.png
deleted file mode 100644
index 04365b98a..000000000
--- a/res/drawable-mdpi/ic_report_problem_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_unblock.png b/res/drawable-mdpi/ic_unblock.png
new file mode 100644
index 000000000..d80fb2f5c
--- /dev/null
+++ b/res/drawable-mdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_vm_bt_dk.png b/res/drawable-mdpi/ic_vm_bt_dk.png
deleted file mode 100644
index 3ae87b95d..000000000
--- a/res/drawable-mdpi/ic_vm_bt_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_vm_phone_broadcast_dk.png b/res/drawable-mdpi/ic_vm_phone_broadcast_dk.png
deleted file mode 100644
index ed1d34d97..000000000
--- a/res/drawable-mdpi/ic_vm_phone_broadcast_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/ic_voice_search.png b/res/drawable-mdpi/ic_voice_search.png
deleted file mode 100644
index af58538d9..000000000
--- a/res/drawable-mdpi/ic_voice_search.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/list_selector_disabled_holo_dark.9.png b/res/drawable-mdpi/list_selector_disabled_holo_dark.9.png
deleted file mode 100644
index 92da2f0dd..000000000
--- a/res/drawable-mdpi/list_selector_disabled_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-mdpi/rounded_corner_bg.9.png b/res/drawable-mdpi/rounded_corner_bg.9.png
deleted file mode 100644
index e43b3efd4..000000000
--- a/res/drawable-mdpi/rounded_corner_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ab_stacked_opaque_dark_holo.9.png b/res/drawable-xhdpi/ab_stacked_opaque_dark_holo.9.png
deleted file mode 100644
index 71e4c239e..000000000
--- a/res/drawable-xhdpi/ab_stacked_opaque_dark_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/divider.9.png b/res/drawable-xhdpi/divider.9.png
deleted file mode 100644
index 88e5d91af..000000000
--- a/res/drawable-xhdpi/divider.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_block_24dp.png b/res/drawable-xhdpi/ic_block_24dp.png
new file mode 100644
index 000000000..7aba97b65
--- /dev/null
+++ b/res/drawable-xhdpi/ic_block_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_call_log_blue.png b/res/drawable-xhdpi/ic_call_log_blue.png
deleted file mode 100644
index 9d92573b0..000000000
--- a/res/drawable-xhdpi/ic_call_log_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_cancel_holo_light.png b/res/drawable-xhdpi/ic_cancel_holo_light.png
deleted file mode 100644
index 630f3fd4c..000000000
--- a/res/drawable-xhdpi/ic_cancel_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_content_copy_24dp.png b/res/drawable-xhdpi/ic_content_copy_24dp.png
new file mode 100644
index 000000000..537fd4e8b
--- /dev/null
+++ b/res/drawable-xhdpi/ic_content_copy_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_fav_undo_dk.png b/res/drawable-xhdpi/ic_fav_undo_dk.png
deleted file mode 100644
index 4e1b65138..000000000
--- a/res/drawable-xhdpi/ic_fav_undo_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_all_contacts_dk.png b/res/drawable-xhdpi/ic_menu_all_contacts_dk.png
deleted file mode 100644
index 11bd615e0..000000000
--- a/res/drawable-xhdpi/ic_menu_all_contacts_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_dialpad_dk.png b/res/drawable-xhdpi/ic_menu_dialpad_dk.png
deleted file mode 100644
index bd8085978..000000000
--- a/res/drawable-xhdpi/ic_menu_dialpad_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_dialpad_lt.png b/res/drawable-xhdpi/ic_menu_dialpad_lt.png
deleted file mode 100644
index 345cf1a0b..000000000
--- a/res/drawable-xhdpi/ic_menu_dialpad_lt.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_history_dk.png b/res/drawable-xhdpi/ic_menu_history_dk.png
deleted file mode 100644
index 25b28e5cb..000000000
--- a/res/drawable-xhdpi/ic_menu_history_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_mic_grey600.png b/res/drawable-xhdpi/ic_mic_grey600.png
new file mode 100644
index 000000000..a9a83b329
--- /dev/null
+++ b/res/drawable-xhdpi/ic_mic_grey600.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_more_horiz_24dp.png b/res/drawable-xhdpi/ic_more_horiz_24dp.png
deleted file mode 100644
index dbb87ca91..000000000
--- a/res/drawable-xhdpi/ic_more_horiz_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_not_interested_googblue_24dp.png b/res/drawable-xhdpi/ic_not_interested_googblue_24dp.png
new file mode 100644
index 000000000..3e6ec071b
--- /dev/null
+++ b/res/drawable-xhdpi/ic_not_interested_googblue_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_phone_24dp.png b/res/drawable-xhdpi/ic_phone_24dp.png
new file mode 100644
index 000000000..83167f4cd
--- /dev/null
+++ b/res/drawable-xhdpi/ic_phone_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_report_24dp.png b/res/drawable-xhdpi/ic_report_24dp.png
new file mode 100644
index 000000000..18e7764ab
--- /dev/null
+++ b/res/drawable-xhdpi/ic_report_24dp.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_report_problem_24dp.png b/res/drawable-xhdpi/ic_report_problem_24dp.png
deleted file mode 100644
index a43fa3c27..000000000
--- a/res/drawable-xhdpi/ic_report_problem_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_unblock.png b/res/drawable-xhdpi/ic_unblock.png
new file mode 100644
index 000000000..f7dfa21ac
--- /dev/null
+++ b/res/drawable-xhdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_vm_bt_dk.png b/res/drawable-xhdpi/ic_vm_bt_dk.png
deleted file mode 100644
index dc35a5594..000000000
--- a/res/drawable-xhdpi/ic_vm_bt_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_vm_phone_broadcast_dk.png b/res/drawable-xhdpi/ic_vm_phone_broadcast_dk.png
deleted file mode 100644
index ca52cb1ae..000000000
--- a/res/drawable-xhdpi/ic_vm_phone_broadcast_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/ic_voice_search.png b/res/drawable-xhdpi/ic_voice_search.png
deleted file mode 100644
index 6e5d8115b..000000000
--- a/res/drawable-xhdpi/ic_voice_search.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/list_selector_disabled_holo_dark.9.png b/res/drawable-xhdpi/list_selector_disabled_holo_dark.9.png
deleted file mode 100644
index 88726b691..000000000
--- a/res/drawable-xhdpi/list_selector_disabled_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xhdpi/rounded_corner_bg.9.png b/res/drawable-xhdpi/rounded_corner_bg.9.png
deleted file mode 100644
index ebfe89791..000000000
--- a/res/drawable-xhdpi/rounded_corner_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ab_stacked_opaque_dark_holo.9.png b/res/drawable-xxhdpi/ab_stacked_opaque_dark_holo.9.png
deleted file mode 100644
index 59e1bae0c..000000000
--- a/res/drawable-xxhdpi/ab_stacked_opaque_dark_holo.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/divider.9.png b/res/drawable-xxhdpi/divider.9.png
deleted file mode 100644
index 88e5d91af..000000000
--- a/res/drawable-xxhdpi/divider.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_block_24dp.png b/res/drawable-xxhdpi/ic_block_24dp.png
new file mode 100644
index 000000000..fddfa54b8
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_block_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_call_log_blue.png b/res/drawable-xxhdpi/ic_call_log_blue.png
deleted file mode 100644
index 0a55a7572..000000000
--- a/res/drawable-xxhdpi/ic_call_log_blue.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_cancel_holo_light.png b/res/drawable-xxhdpi/ic_cancel_holo_light.png
deleted file mode 100644
index c2f5b5e1c..000000000
--- a/res/drawable-xxhdpi/ic_cancel_holo_light.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_content_copy_24dp.png b/res/drawable-xxhdpi/ic_content_copy_24dp.png
new file mode 100644
index 000000000..9dff893e7
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_content_copy_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_fav_undo_dk.png b/res/drawable-xxhdpi/ic_fav_undo_dk.png
deleted file mode 100644
index 4b7dfc4cc..000000000
--- a/res/drawable-xxhdpi/ic_fav_undo_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_all_contacts_dk.png b/res/drawable-xxhdpi/ic_menu_all_contacts_dk.png
deleted file mode 100644
index ae4037e90..000000000
--- a/res/drawable-xxhdpi/ic_menu_all_contacts_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_dialpad_dk.png b/res/drawable-xxhdpi/ic_menu_dialpad_dk.png
deleted file mode 100644
index 09cc2f8bf..000000000
--- a/res/drawable-xxhdpi/ic_menu_dialpad_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_dialpad_lt.png b/res/drawable-xxhdpi/ic_menu_dialpad_lt.png
deleted file mode 100644
index 45c1ab203..000000000
--- a/res/drawable-xxhdpi/ic_menu_dialpad_lt.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_menu_history_dk.png b/res/drawable-xxhdpi/ic_menu_history_dk.png
deleted file mode 100644
index 366470544..000000000
--- a/res/drawable-xxhdpi/ic_menu_history_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_mic_grey600.png b/res/drawable-xxhdpi/ic_mic_grey600.png
new file mode 100644
index 000000000..07128dd82
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_mic_grey600.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_more_horiz_24dp.png b/res/drawable-xxhdpi/ic_more_horiz_24dp.png
deleted file mode 100644
index 2036a9c2c..000000000
--- a/res/drawable-xxhdpi/ic_more_horiz_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_not_interested_googblue_24dp.png b/res/drawable-xxhdpi/ic_not_interested_googblue_24dp.png
new file mode 100644
index 000000000..7c256b5d7
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_not_interested_googblue_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_phone_24dp.png b/res/drawable-xxhdpi/ic_phone_24dp.png
new file mode 100644
index 000000000..8fff728bb
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_phone_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_report_24dp.png b/res/drawable-xxhdpi/ic_report_24dp.png
new file mode 100644
index 000000000..aed766804
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_report_24dp.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_report_problem_24dp.png b/res/drawable-xxhdpi/ic_report_problem_24dp.png
deleted file mode 100644
index 807b9fa18..000000000
--- a/res/drawable-xxhdpi/ic_report_problem_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_unblock.png b/res/drawable-xxhdpi/ic_unblock.png
new file mode 100644
index 000000000..828a4879f
--- /dev/null
+++ b/res/drawable-xxhdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_bt_dk.png b/res/drawable-xxhdpi/ic_vm_bt_dk.png
deleted file mode 100644
index 0cb69bdb3..000000000
--- a/res/drawable-xxhdpi/ic_vm_bt_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_vm_phone_broadcast_dk.png b/res/drawable-xxhdpi/ic_vm_phone_broadcast_dk.png
deleted file mode 100644
index ee12670ac..000000000
--- a/res/drawable-xxhdpi/ic_vm_phone_broadcast_dk.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/ic_voice_search.png b/res/drawable-xxhdpi/ic_voice_search.png
deleted file mode 100644
index 4e72f6947..000000000
--- a/res/drawable-xxhdpi/ic_voice_search.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/list_selector_disabled_holo_dark.9.png b/res/drawable-xxhdpi/list_selector_disabled_holo_dark.9.png
deleted file mode 100644
index 26234b1e3..000000000
--- a/res/drawable-xxhdpi/list_selector_disabled_holo_dark.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxhdpi/rounded_corner_bg.9.png b/res/drawable-xxhdpi/rounded_corner_bg.9.png
deleted file mode 100644
index 0a99cdb26..000000000
--- a/res/drawable-xxhdpi/rounded_corner_bg.9.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/empty_speeddial.png b/res/drawable-xxxhdpi/empty_speeddial.png
deleted file mode 100644
index dc7f8aeed..000000000
--- a/res/drawable-xxxhdpi/empty_speeddial.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_block_24dp.png b/res/drawable-xxxhdpi/ic_block_24dp.png
new file mode 100644
index 000000000..0378d1bed
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_block_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_content_copy_24dp.png b/res/drawable-xxxhdpi/ic_content_copy_24dp.png
new file mode 100644
index 000000000..4ddee9ef0
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_content_copy_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_mic_grey600.png b/res/drawable-xxxhdpi/ic_mic_grey600.png
new file mode 100644
index 000000000..b7403ff22
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_mic_grey600.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_more_horiz_24dp.png b/res/drawable-xxxhdpi/ic_more_horiz_24dp.png
deleted file mode 100644
index 535f0874e..000000000
--- a/res/drawable-xxxhdpi/ic_more_horiz_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_not_interested_googblue_24dp.png b/res/drawable-xxxhdpi/ic_not_interested_googblue_24dp.png
new file mode 100644
index 000000000..6591ed485
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_not_interested_googblue_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_phone_24dp.png b/res/drawable-xxxhdpi/ic_phone_24dp.png
new file mode 100644
index 000000000..30d141db5
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_phone_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_report_24dp.png b/res/drawable-xxxhdpi/ic_report_24dp.png
new file mode 100644
index 000000000..855e59015
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_report_24dp.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_report_problem_24dp.png b/res/drawable-xxxhdpi/ic_report_problem_24dp.png
deleted file mode 100644
index 8683a2ea9..000000000
--- a/res/drawable-xxxhdpi/ic_report_problem_24dp.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-xxxhdpi/ic_unblock.png b/res/drawable-xxxhdpi/ic_unblock.png
new file mode 100644
index 000000000..99a1842a2
--- /dev/null
+++ b/res/drawable-xxxhdpi/ic_unblock.png
Binary files differ
diff --git a/res/drawable/tab_speed_dial.xml b/res/drawable/blocked_contact.xml
index c9c4820b3..2e7343710 100644
--- a/res/drawable/tab_speed_dial.xml
+++ b/res/drawable/blocked_contact.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
+
<!--
- ~ Copyright (C) 2014 The Android Open Source Project
+ ~ Copyright (C) 2015 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
@@ -15,16 +16,18 @@
~ limitations under the License
-->
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/tab_ripple_color">
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
- <bitmap android:src="@drawable/ic_grade_24dp"
- android:gravity="center" />
+ <shape android:shape="oval">
+ <solid android:color="@color/blocked_contact_background" />
+ <size android:width="24dp" android:height="24dp" />
+ </shape>
</item>
- <item android:id="@android:id/mask">
- <color android:color="@android:color/white" />
- </item>
+ <item android:drawable="@drawable/ic_block_24dp"
+ android:width="18dp"
+ android:height="18dp"
+ android:gravity="center" />
-</ripple>
+</layer-list>
diff --git a/res/menu/call_details_cab.xml b/res/drawable/ic_call_detail_block.xml
index 7de675ff1..9ec8e03f5 100644
--- a/res/menu/call_details_cab.xml
+++ b/res/drawable/ic_call_detail_block.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 The Android Open Source Project
+<!--
+ Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -13,10 +14,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item
- android:id="@+id/copy_phone_number"
- android:icon="?android:attr/actionModeCopyDrawable"
- android:title="@string/menu_copy"
- />
-</menu>
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_block_24dp"
+ android:tint="@color/call_detail_footer_icon_tint" />
diff --git a/res/drawable/ic_call_detail_content_copy.xml b/res/drawable/ic_call_detail_content_copy.xml
new file mode 100644
index 000000000..dd604dff7
--- /dev/null
+++ b/res/drawable/ic_call_detail_content_copy.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_content_copy_24dp"
+ android:tint="@color/call_detail_footer_icon_tint" />
diff --git a/res/drawable/ic_call_detail_edit.xml b/res/drawable/ic_call_detail_edit.xml
new file mode 100644
index 000000000..e5ad3e59e
--- /dev/null
+++ b/res/drawable/ic_call_detail_edit.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_create_24dp"
+ android:tint="@color/call_detail_footer_icon_tint" />
diff --git a/res/drawable/ic_call_detail_report.xml b/res/drawable/ic_call_detail_report.xml
new file mode 100644
index 000000000..201ac4cb6
--- /dev/null
+++ b/res/drawable/ic_call_detail_report.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_report_24dp"
+ android:tint="@color/call_detail_footer_icon_tint" />
diff --git a/res/drawable/ic_call_detail_unblock.xml b/res/drawable/ic_call_detail_unblock.xml
new file mode 100644
index 000000000..ba5378b10
--- /dev/null
+++ b/res/drawable/ic_call_detail_unblock.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_unblock"
+ android:tint="@color/call_detail_footer_icon_tint" />
diff --git a/res/drawable/tab_voicemail.xml b/res/drawable/ic_voicemail_seek_handle_disabled.xml
index 568891b01..126280801 100644
--- a/res/drawable/tab_voicemail.xml
+++ b/res/drawable/ic_voicemail_seek_handle_disabled.xml
@@ -14,17 +14,8 @@
~ See the License for the specific language governing permissions and
~ limitations under the License
-->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/tab_ripple_color">
-
- <item>
- <bitmap android:src="@drawable/ic_voicemail_24dp"
- android:gravity="center" />
- </item>
-
- <item android:id="@android:id/mask">
- <color android:color="@android:color/white" />
- </item>
-
-</ripple>
+<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+ android:src="@drawable/ic_handle"
+ android:autoMirrored="true"
+ android:tint="@color/voicemail_icon_disabled_tint" >
+</bitmap> \ No newline at end of file
diff --git a/res/drawable/tab_contacts.xml b/res/drawable/tab_contacts.xml
deleted file mode 100644
index ed3f86b9b..000000000
--- a/res/drawable/tab_contacts.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2014 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/tab_ripple_color">
-
- <item>
- <bitmap android:src="@drawable/ic_people_24dp"
- android:gravity="center" />
- </item>
-
- <item android:id="@android:id/mask">
- <color android:color="@android:color/white" />
- </item>
-
-</ripple>
diff --git a/res/drawable/tab_recents.xml b/res/drawable/tab_recents.xml
deleted file mode 100644
index b1a531840..000000000
--- a/res/drawable/tab_recents.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- ~ Copyright (C) 2014 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License
- -->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
- android:color="@color/tab_ripple_color">
-
- <item>
- <bitmap android:src="@drawable/ic_schedule_24dp"
- android:gravity="center" />
- </item>
-
- <item android:id="@android:id/mask">
- <color android:color="@android:color/white" />
- </item>
-
-</ripple>
diff --git a/res/layout/blocked_number_footer.xml b/res/layout/blocked_number_footer.xml
new file mode 100644
index 000000000..17425c840
--- /dev/null
+++ b/res/layout/blocked_number_footer.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:focusable="false">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="@dimen/blocked_number_container_padding"
+ android:background="@android:color/white"
+ android:focusable="true">
+
+ <TextView android:id="@+id/blocked_number_footer_textview"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="@color/blocked_number_secondary_text_color"
+ android:textSize="@dimen/blocked_number_settings_description_text_size"
+ android:text="@string/block_number_footer_message_vvm"/>
+ </LinearLayout>
+</LinearLayout>
diff --git a/res/layout/show_call_history_list_item.xml b/res/layout/blocked_number_fragment.xml
index 1264894a9..4bc20857e 100644
--- a/res/layout/show_call_history_list_item.xml
+++ b/res/layout/blocked_number_fragment.xml
@@ -13,18 +13,17 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/blocked_number_fragment"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:background="@color/blocked_number_background">
-<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
- style="@style/CallLogCardStyle"
- android:layout_height="40dp"
- android:clickable="true"
- android:foreground="?android:attr/selectableItemBackground">
-
- <TextView
- android:layout_width="wrap_content"
+ <ListView android:id="@id/android:list"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- android:text="@string/show_call_history" />
-
-</android.support.v7.widget.CardView>
+ android:divider="@null"
+ android:headerDividersEnabled="false" />
+</LinearLayout>
diff --git a/res/layout/blocked_number_header.xml b/res/layout/blocked_number_header.xml
new file mode 100644
index 000000000..0af942943
--- /dev/null
+++ b/res/layout/blocked_number_header.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:card_view="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:focusable="false"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:id="@+id/blocked_numbers_disabled_for_emergency"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="27dp"
+ android:paddingBottom="29dp"
+ android:paddingStart="@dimen/blocked_number_container_padding"
+ android:paddingEnd="44dp"
+ android:background="@color/blocked_number_disabled_emergency_background_color"
+ android:focusable="true"
+ android:orientation="vertical"
+ android:visibility="gone">
+
+ <TextView
+ style="@style/BlockedNumbersDescriptionTextStyle"
+ android:textStyle="bold"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/blocked_numbers_disabled_emergency_header_label"/>
+
+ <TextView
+ style="@style/BlockedNumbersDescriptionTextStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/blocked_numbers_disabled_emergency_desc"/>
+
+ </LinearLayout>
+
+ <android.support.v7.widget.CardView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ card_view:cardCornerRadius="0dp">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@android:color/white"
+ android:focusable="true"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/textView"
+ style="@android:style/TextAppearance.Material.Subhead"
+ android:layout_width="wrap_content"
+ android:layout_height="48dp"
+ android:paddingStart="@dimen/blocked_number_container_padding"
+ android:gravity="center_vertical"
+ android:text="@string/block_list"
+ android:textColor="@color/blocked_number_header_color"/>
+
+ <RelativeLayout
+ android:id="@+id/import_settings"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:visibility="gone">
+
+ <TextView
+ android:id="@+id/import_description"
+ style="@style/BlockedNumbersDescriptionTextStyle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="11dp"
+ android:paddingBottom="27dp"
+ android:paddingStart="@dimen/blocked_number_container_padding"
+ android:paddingEnd="@dimen/blocked_number_container_padding"
+ android:text="@string/blocked_call_settings_import_description"
+ android:textColor="@color/secondary_text_color"
+ android:textSize="@dimen/blocked_number_settings_description_text_size"/>
+
+ <Button
+ android:id="@+id/import_button"
+ style="@style/DialerFlatButtonStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="@dimen/blocked_number_container_padding"
+ android:layout_alignParentEnd="true"
+ android:layout_below="@id/import_description"
+ android:text="@string/blocked_call_settings_import_button"/>
+
+ <Button
+ android:id="@+id/view_numbers_button"
+ style="@style/DialerFlatButtonStyle"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="8dp"
+ android:layout_below="@id/import_description"
+ android:layout_toStartOf="@id/import_button"
+ android:text="@string/blocked_call_settings_view_numbers_button"/>
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:layout_marginTop="8dp"
+ android:layout_below="@id/import_button"
+ android:background="@color/divider_line_color"/>
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:id="@+id/add_number_linear_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/blocked_number_add_top_margin"
+ android:paddingBottom="@dimen/blocked_number_add_bottom_margin"
+ android:paddingStart="@dimen/blocked_number_horizontal_margin"
+ android:background="?android:attr/selectableItemBackground"
+ android:baselineAligned="false"
+ android:clickable="true"
+ android:contentDescription="@string/addBlockedNumber"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/add_number_icon"
+ android:layout_width="@dimen/contact_photo_size"
+ android:layout_height="@dimen/contact_photo_size"
+ android:importantForAccessibility="no"/>
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:layout_marginStart="@dimen/blocked_number_horizontal_margin"
+ android:gravity="center_vertical"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/add_number_textview"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:includeFontPadding="false"
+ android:text="@string/addBlockedNumber"
+ android:textColor="@color/blocked_number_primary_text_color"
+ android:textSize="@dimen/blocked_number_primary_text_size"/>
+ </LinearLayout>
+
+ </LinearLayout>
+
+ <View
+ android:id="@+id/blocked_number_list_divider"
+ android:layout_width="match_parent"
+ android:layout_height="1dp"
+ android:layout_marginStart="72dp"
+ android:background="@color/divider_line_color"/>
+
+ </LinearLayout>
+
+ </android.support.v7.widget.CardView>
+
+</LinearLayout>
diff --git a/res/layout/blocked_number_item.xml b/res/layout/blocked_number_item.xml
new file mode 100644
index 000000000..a4997f257
--- /dev/null
+++ b/res/layout/blocked_number_item.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/caller_information"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/blocked_number_horizontal_margin"
+ android:baselineAligned="false"
+ android:orientation="horizontal"
+ android:focusable="true"
+ android:gravity="center_vertical"
+ android:background="@android:color/white">
+
+ <QuickContactBadge
+ android:id="@+id/quick_contact_photo"
+ android:layout_width="@dimen/contact_photo_size"
+ android:layout_height="@dimen/contact_photo_size"
+ android:focusable="true"
+ android:layout_marginTop="@dimen/blocked_number_top_margin"
+ android:layout_marginBottom="@dimen/blocked_number_bottom_margin"/>
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:gravity="center_vertical"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:layout_marginStart="@dimen/blocked_number_horizontal_margin">
+
+ <TextView
+ android:id="@+id/caller_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/blocked_number_primary_text_color"
+ android:textSize="@dimen/blocked_number_primary_text_size"
+ android:includeFontPadding="false"
+ android:singleLine="true"/>
+
+ <TextView
+ android:id="@+id/caller_number"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/blocked_number_secondary_text_color"
+ android:textSize="@dimen/blocked_number_settings_description_text_size"
+ android:singleLine="true" />
+ </LinearLayout>
+
+ <ImageView
+ android:id="@+id/delete_button"
+ android:layout_width="@dimen/blocked_number_delete_icon_size"
+ android:layout_height="@dimen/blocked_number_delete_icon_size"
+ android:layout_marginEnd="24dp"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:src="@drawable/ic_remove"
+ android:scaleType="center"
+ android:tint="@color/blocked_number_icon_tint"
+ android:contentDescription="@string/description_blocked_number_list_delete" />
+
+</LinearLayout>
diff --git a/res/layout/call_details_voicemail_header.xml b/res/layout/blocked_numbers_activity.xml
index e3640faf4..d28eaf879 100644
--- a/res/layout/call_details_voicemail_header.xml
+++ b/res/layout/blocked_numbers_activity.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
+<!-- Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -13,19 +13,10 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
-
- <LinearLayout
- android:id="@+id/voicemail_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:paddingBottom="@dimen/call_detail_button_spacing"
- android:visibility="gone">
- <!-- The voicemail fragment will be put here. -->
- </LinearLayout>
-</LinearLayout>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/blocked_numbers_activity_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/action_bar_height">
+</FrameLayout>
diff --git a/res/layout/call_detail.xml b/res/layout/call_detail.xml
index fde1de5c1..7d9124888 100644
--- a/res/layout/call_detail.xml
+++ b/res/layout/call_detail.xml
@@ -13,90 +13,12 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/call_detail"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical"
- android:layout_alignParentStart="true"
- android:layout_alignParentTop="true"
android:background="@color/background_dialer_call_log" >
- <!-- Caller information "card" -->
- <LinearLayout
- android:id="@+id/caller_information"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingStart="@dimen/call_detail_horizontal_margin"
- android:paddingTop="@dimen/call_detail_top_margin"
- android:paddingBottom="@dimen/call_detail_bottom_margin"
- android:baselineAligned="false"
- android:orientation="horizontal"
- android:translationZ="@dimen/call_detail_translation_z"
- android:focusable="true"
- android:background="@color/background_dialer_white" >
-
- <QuickContactBadge
- android:id="@+id/quick_contact_photo"
- android:layout_width="@dimen/contact_photo_size"
- android:layout_height="@dimen/contact_photo_size"
- android:layout_alignParentStart="true"
- android:layout_gravity="top"
- android:layout_marginTop="3dp"
- android:focusable="true" />
-
- <LinearLayout
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:orientation="vertical"
- android:gravity="center_vertical"
- android:layout_marginStart="@dimen/call_detail_horizontal_margin">
-
- <TextView
- android:id="@+id/caller_name"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="?attr/call_log_primary_text_color"
- android:textSize="@dimen/call_log_primary_text_size"
- android:includeFontPadding="false"
- android:layout_marginBottom="5dp"
- android:singleLine="true" />
-
- <TextView
- android:id="@+id/caller_number"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size"
- android:layout_marginBottom="1dp"
- android:singleLine="true" />
-
- <TextView
- android:id="@+id/phone_account_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size"
- android:singleLine="true"
- android:visibility="gone" />
-
- </LinearLayout>
-
- <ImageView
- android:id="@+id/call_back_button"
- android:layout_width="@dimen/call_log_list_item_primary_action_dimen"
- android:layout_height="@dimen/call_log_list_item_primary_action_dimen"
- android:layout_marginEnd="16dp"
- android:background="?android:attr/selectableItemBackgroundBorderless"
- android:src="@drawable/ic_call_24dp"
- android:scaleType="center"
- android:tint="@color/call_log_list_item_primary_action_icon_tint"
- android:contentDescription="@string/description_call_log_call_action"
- android:visibility="gone" />
-
- </LinearLayout>
-
<!--
The list view is under everything.
It contains a first header element which is hidden under the controls UI.
@@ -107,4 +29,4 @@
android:layout_width="match_parent"
android:layout_height="fill_parent" />
-</LinearLayout>
+</FrameLayout>
diff --git a/res/layout/call_detail_footer.xml b/res/layout/call_detail_footer.xml
new file mode 100644
index 000000000..6ee76e62e
--- /dev/null
+++ b/res/layout/call_detail_footer.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <View
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/divider_line_thickness"
+ android:background="@color/call_log_action_divider" />
+
+ <TextView android:id="@+id/call_detail_action_block"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/action_block_number"
+ android:drawableStart="@drawable/ic_call_detail_block"
+ style="@style/CallDetailActionItemStyle" />
+
+ <TextView android:id="@+id/call_detail_action_copy"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/action_copy_number_text"
+ android:drawableStart="@drawable/ic_call_detail_content_copy"
+ style="@style/CallDetailActionItemStyle" />
+
+ <TextView android:id="@+id/call_detail_action_edit_before_call"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/action_edit_number_before_call"
+ android:drawableStart="@drawable/ic_call_detail_edit"
+ android:visibility="gone"
+ style="@style/CallDetailActionItemStyle" />
+
+ <TextView android:id="@+id/call_detail_action_report"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/action_report_number"
+ android:drawableStart="@drawable/ic_call_detail_report"
+ android:visibility="gone"
+ style="@style/CallDetailActionItemStyle" />
+
+</LinearLayout>
diff --git a/res/layout/call_detail_header.xml b/res/layout/call_detail_header.xml
new file mode 100644
index 000000000..6eceb80ee
--- /dev/null
+++ b/res/layout/call_detail_header.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/caller_information"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="@dimen/call_detail_horizontal_margin"
+ android:paddingTop="@dimen/call_detail_top_margin"
+ android:paddingBottom="@dimen/call_detail_bottom_margin"
+ android:baselineAligned="false"
+ android:orientation="horizontal"
+ android:elevation="@dimen/call_detail_elevation"
+ android:focusable="true"
+ android:background="@color/background_dialer_white" >
+
+ <QuickContactBadge
+ android:id="@+id/quick_contact_photo"
+ android:layout_width="@dimen/contact_photo_size"
+ android:layout_height="@dimen/contact_photo_size"
+ android:layout_alignParentStart="true"
+ android:layout_gravity="top"
+ android:layout_marginTop="3dp"
+ android:focusable="true" />
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:orientation="vertical"
+ android:gravity="center_vertical"
+ android:layout_marginStart="@dimen/call_detail_horizontal_margin">
+
+ <TextView
+ android:id="@+id/caller_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="?attr/call_log_primary_text_color"
+ android:textSize="@dimen/call_log_primary_text_size"
+ android:includeFontPadding="false"
+ android:layout_marginTop="2dp"
+ android:layout_marginBottom="3dp"
+ android:singleLine="true" />
+
+ <TextView
+ android:id="@+id/caller_number"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="?attr/call_log_secondary_text_color"
+ android:textSize="@dimen/call_log_detail_text_size"
+ android:layout_marginBottom="1dp"
+ android:singleLine="true" />
+
+ <TextView
+ android:id="@+id/phone_account_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="?attr/call_log_secondary_text_color"
+ android:textSize="@dimen/call_log_detail_text_size"
+ android:singleLine="true"
+ android:visibility="gone" />
+
+ </LinearLayout>
+
+ <ImageView
+ android:id="@+id/call_back_button"
+ android:layout_width="@dimen/call_log_list_item_primary_action_dimen"
+ android:layout_height="@dimen/call_log_list_item_primary_action_dimen"
+ android:layout_marginEnd="16dp"
+ android:background="?android:attr/selectableItemBackgroundBorderless"
+ android:src="@drawable/ic_call_24dp"
+ android:scaleType="center"
+ android:tint="@color/call_log_list_item_primary_action_icon_tint"
+ android:contentDescription="@string/description_call_log_call_action"
+ android:visibility="gone" />
+
+</LinearLayout>
diff --git a/res/layout/call_detail_history_header.xml b/res/layout/call_detail_history_header.xml
deleted file mode 100644
index def1fd805..000000000
--- a/res/layout/call_detail_history_header.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<TextView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:ex="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="@dimen/call_detail_header_top_margin"
- android:paddingBottom="@dimen/call_detail_header_bottom_margin"
- android:paddingStart="@dimen/call_detail_horizontal_margin"
- android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size"
- android:fontFamily="sans-serif-medium"
- android:singleLine="true"
- android:text="@string/call_detail_list_header"
- />
diff --git a/res/layout/call_detail_history_item.xml b/res/layout/call_detail_history_item.xml
index cbe844234..10d9605a1 100644
--- a/res/layout/call_detail_history_item.xml
+++ b/res/layout/call_detail_history_item.xml
@@ -46,11 +46,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size" />
+ android:textSize="@dimen/call_log_detail_text_size" />
<TextView
android:id="@+id/duration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size" />
+ android:textSize="@dimen/call_log_detail_text_size" />
</LinearLayout>
diff --git a/res/layout/call_log_fragment.xml b/res/layout/call_log_fragment.xml
index f69c5139f..aad7d8e77 100644
--- a/res/layout/call_log_fragment.xml
+++ b/res/layout/call_log_fragment.xml
@@ -24,8 +24,10 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_dialer_call_log"
+ android:clipToPadding="false"
android:paddingStart="@dimen/call_log_horizontal_margin"
- android:paddingEnd="@dimen/call_log_horizontal_margin" />
+ android:paddingEnd="@dimen/call_log_horizontal_margin"
+ android:paddingBottom="@dimen/floating_action_button_list_bottom_padding" />
<com.android.dialer.widget.EmptyContentView
android:id="@+id/empty_list_view"
diff --git a/res/layout/call_log_list_item.xml b/res/layout/call_log_list_item.xml
index ec512b67f..469e72ae5 100644
--- a/res/layout/call_log_list_item.xml
+++ b/res/layout/call_log_list_item.xml
@@ -30,8 +30,8 @@
android:layout_marginStart="@dimen/call_log_start_margin"
android:layout_marginEnd="@dimen/call_log_outer_margin"
android:fontFamily="sans-serif-medium"
- android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size"
+ android:textColor="@color/call_log_day_group_heading_color"
+ android:textSize="@dimen/call_log_day_group_heading_size"
android:paddingTop="@dimen/call_log_day_group_padding_top"
android:paddingBottom="@dimen/call_log_day_group_padding_bottom" />
@@ -83,21 +83,10 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/call_log_name_margin_bottom"
android:layout_marginEnd="@dimen/call_log_icon_margin"
- android:textColor="?attr/call_log_primary_text_color"
+ android:textColor="@color/call_log_primary_color"
android:textSize="@dimen/call_log_primary_text_size"
android:singleLine="true" />
- <TextView
- android:id="@+id/voicemail_transcription"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginEnd="@dimen/call_log_icon_margin"
- android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size"
- android:singleLine="true"
- android:ellipsize="marquee"
- android:visibility="gone" />
-
<LinearLayout
android:id="@+id/call_type"
android:layout_width="wrap_content"
@@ -112,14 +101,22 @@
android:layout_marginEnd="@dimen/call_log_icon_margin"
android:layout_gravity="center_vertical" />
+ <ImageView android:id="@+id/work_profile_icon"
+ android:src="@drawable/ic_work_profile"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="@dimen/call_log_icon_margin"
+ android:scaleType="center"
+ android:visibility="gone" />
+
<TextView
android:id="@+id/call_location_and_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/call_log_icon_margin"
android:layout_gravity="center_vertical"
- android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size"
+ android:textColor="@color/call_log_detail_color"
+ android:textSize="@dimen/call_log_detail_text_size"
android:singleLine="true" />
</LinearLayout>
@@ -130,10 +127,22 @@
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/call_log_icon_margin"
android:textColor="?attr/call_log_secondary_text_color"
- android:textSize="@dimen/call_log_secondary_text_size"
+ android:textSize="@dimen/call_log_detail_text_size"
android:visibility="gone"
android:singleLine="true" />
+ <TextView
+ android:id="@+id/voicemail_transcription"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/call_log_icon_margin"
+ android:textColor="@color/call_log_voicemail_transcript_color"
+ android:textSize="@dimen/call_log_voicemail_transcription_text_size"
+ android:ellipsize="marquee"
+ android:visibility="gone"
+ android:singleLine="false"
+ android:maxLines="10"/>
+
</LinearLayout>
<ImageView
diff --git a/res/layout/call_log_list_item_actions.xml b/res/layout/call_log_list_item_actions.xml
index 16a712bcd..63385eef5 100644
--- a/res/layout/call_log_list_item_actions.xml
+++ b/res/layout/call_log_list_item_actions.xml
@@ -35,16 +35,27 @@
<LinearLayout
android:id="@+id/call_action"
+ android:paddingTop="@dimen/call_log_actions_top_padding"
style="@style/CallLogActionStyle">
<ImageView
style="@style/CallLogActionIconStyle"
android:src="@drawable/ic_call_24dp" />
- <TextView
- android:id="@+id/call_action_text"
- style="@style/CallLogActionTextStyle"
- android:text="@string/description_call_log_call_action" />
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:gravity="center_vertical">
+ <TextView
+ android:id="@+id/call_action_text"
+ style="@style/CallLogActionTextStyle"
+ android:text="@string/description_call_log_call_action" />
+
+ <TextView
+ android:id="@+id/call_type_or_location_text"
+ style="@style/CallLogActionSupportTextStyle"/>
+ </LinearLayout>
</LinearLayout>
@@ -118,6 +129,11 @@
</LinearLayout>
+ <ViewStub
+ android:id="@+id/spam_actions_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+
<LinearLayout
android:id="@+id/details_action"
style="@style/CallLogActionStyle">
diff --git a/res/layout/dialtacts_activity.xml b/res/layout/dialtacts_activity.xml
index 0f1f2bbdb..782d4f310 100644
--- a/res/layout/dialtacts_activity.xml
+++ b/res/layout/dialtacts_activity.xml
@@ -13,8 +13,9 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<FrameLayout
+<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/dialtacts_mainlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -43,7 +44,8 @@
android:layout_width="@dimen/floating_action_button_width"
android:layout_height="@dimen/floating_action_button_height"
android:layout_marginBottom="@dimen/floating_action_button_margin_bottom"
- android:layout_gravity="center_horizontal|bottom">
+ android:layout_gravity="center_horizontal|bottom"
+ app:layout_behavior="com.android.dialer.FloatingActionButtonBehavior">
<ImageButton
android:id="@+id/floating_action_button"
@@ -68,4 +70,4 @@
android:importantForAccessibility="no" />
</FrameLayout>
-</FrameLayout>
+</android.support.design.widget.CoordinatorLayout>
diff --git a/res/layout/search_edittext.xml b/res/layout/search_edittext.xml
index 61406a197..8eda6960c 100644
--- a/res/layout/search_edittext.xml
+++ b/res/layout/search_edittext.xml
@@ -17,7 +17,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="@dimen/search_box_left_padding"
- android:paddingEnd="@dimen/search_box_right_padding"
android:gravity="center_vertical"
android:orientation="horizontal">
@@ -25,8 +24,8 @@
android:id="@+id/search_magnifying_glass"
android:layout_height="@dimen/search_box_icon_size"
android:layout_width="@dimen/search_box_icon_size"
- android:layout_margin="@dimen/search_box_icon_margin"
android:padding="@dimen/search_box_search_icon_padding"
+ android:scaleType="center"
android:src="@drawable/ic_ab_search"
android:importantForAccessibility="no"
android:tint="@color/searchbox_icon_tint" />
@@ -45,10 +44,10 @@
<ImageView
android:id="@+id/voice_search_button"
- android:layout_height="@dimen/search_box_icon_size"
android:layout_width="@dimen/search_box_icon_size"
- android:layout_margin="@dimen/search_box_icon_margin"
- android:src="@drawable/ic_voice_search"
+ android:layout_height="match_parent"
+ android:src="@drawable/ic_mic_grey600"
+ android:scaleType="center"
android:clickable="true"
android:contentDescription="@string/description_start_voice_search"
android:background="?android:attr/selectableItemBackgroundBorderless"
@@ -57,8 +56,9 @@
<ImageButton
android:id="@+id/dialtacts_options_menu_button"
android:layout_width="@dimen/search_box_icon_size"
- android:layout_height="@dimen/search_box_icon_size"
- android:layout_margin="@dimen/search_box_icon_margin"
+ android:layout_height="match_parent"
+ android:paddingEnd="@dimen/search_box_right_padding"
+ android:scaleType="center"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_overflow_menu"
android:contentDescription="@string/action_menu_overflow_description"
diff --git a/res/layout/view_numbers_to_import_fragment.xml b/res/layout/view_numbers_to_import_fragment.xml
new file mode 100644
index 000000000..1836f8dbd
--- /dev/null
+++ b/res/layout/view_numbers_to_import_fragment.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:card_view="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:background="@color/blocked_number_background">
+
+ <ListView android:id="@id/android:list"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:divider="@null"
+ android:headerDividersEnabled="false" />
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom"
+ android:paddingTop="8dp"
+ android:paddingBottom="8dp"
+ android:background="@android:color/white">
+
+ <Button android:id="@+id/import_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentEnd="true"
+ android:layout_marginEnd="@dimen/blocked_number_container_padding"
+ android:text="@string/blocked_call_settings_import_button"
+ style="@style/DialerFlatButtonStyle" />
+
+ <Button android:id="@+id/cancel_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/import_description"
+ android:layout_toLeftOf="@id/import_button"
+ android:text="@android:string/cancel"
+ style="@style/DialerFlatButtonStyle" />
+
+ </RelativeLayout>
+
+</LinearLayout>
diff --git a/res/layout/voicemail_playback_layout.xml b/res/layout/voicemail_playback_layout.xml
index 56865fcd6..bb7fe342a 100644
--- a/res/layout/voicemail_playback_layout.xml
+++ b/res/layout/voicemail_playback_layout.xml
@@ -41,7 +41,8 @@
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="14sp"
- android:paddingTop="@dimen/voicemail_playback_top_padding" />
+ android:paddingTop="@dimen/voicemail_playback_top_padding"
+ android:importantForAccessibility="no" />
<LinearLayout
android:layout_width="0dp"
@@ -71,7 +72,7 @@
<ImageButton android:id="@+id/playback_speakerphone"
style="@style/VoicemailPlaybackLayoutButtonStyle"
- android:src="@drawable/ic_speakerphone_on"
+ android:src="@drawable/ic_volume_down_24dp"
android:tint="@color/voicemail_icon_tint"
android:contentDescription="@string/description_playback_speakerphone" />
@@ -94,7 +95,7 @@
style="@style/VoicemailPlaybackLayoutButtonStyle"
android:src="@drawable/ic_delete_24dp"
android:tint="@color/voicemail_icon_tint"
- android:contentDescription="@string/recentCalls_trashVoicemail" />
+ android:contentDescription="@string/call_log_trash_voicemail" />
</LinearLayout>
@@ -105,7 +106,8 @@
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="14sp"
- android:paddingTop="@dimen/voicemail_playback_top_padding" />
+ android:paddingTop="@dimen/voicemail_playback_top_padding"
+ android:importantForAccessibility="no" />
</LinearLayout>
diff --git a/res/layout/voicemail_promo_card.xml b/res/layout/voicemail_promo_card.xml
index 103fa30b3..ba4ac59a7 100644
--- a/res/layout/voicemail_promo_card.xml
+++ b/res/layout/voicemail_promo_card.xml
@@ -57,7 +57,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/background_dialer_white"
- android:textSize="@dimen/call_log_secondary_text_size"
+ android:textSize="@dimen/call_log_detail_text_size"
android:text="@string/visual_voicemail_text"
android:lineSpacingExtra="@dimen/promo_card_line_spacing"
android:singleLine="false"/>
@@ -79,20 +79,20 @@
android:gravity="end">
<TextView
- android:id="@+id/settings_action"
+ android:id="@+id/secondary_action"
style="@style/PromoCardActionStyle"
android:background="?android:attr/selectableItemBackground"
android:text="@string/visual_voicemail_settings"
android:nextFocusLeft="@+id/promo_card"
- android:nextFocusRight="@+id/ok_action"
+ android:nextFocusRight="@+id/primary_action"
android:paddingEnd="@dimen/promo_card_action_between_padding"/>
<TextView
- android:id="@+id/ok_action"
+ android:id="@+id/primary_action"
style="@style/PromoCardActionStyle"
android:background="?android:attr/selectableItemBackground"
android:text="@android:string/ok"
- android:nextFocusLeft="@+id/settings_action"
+ android:nextFocusLeft="@+id/secondary_action"
android:nextFocusRight="@+id/promo_card"/>
</LinearLayout>
</LinearLayout>
diff --git a/res/menu/call_details_options.xml b/res/menu/call_details_options.xml
deleted file mode 100644
index f08b4facd..000000000
--- a/res/menu/call_details_options.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
-
- <item android:id="@+id/menu_trash"
- android:icon="@drawable/ic_delete_24dp"
- android:showAsAction="ifRoom"
- android:title="@string/recentCalls_trashVoicemail" />
-
- <item android:id="@+id/menu_remove_from_call_log"
- android:icon="@drawable/ic_delete_24dp"
- android:showAsAction="ifRoom"
- android:title="@string/recentCalls_removeFromRecentList" />
-
- <item android:id="@+id/menu_edit_number_before_call"
- android:title="@string/recentCalls_editNumberBeforeCall" />
-
- <item android:id="@+id/menu_report"
- android:title="@string/call_detail_menu_report" />
-
-</menu>
diff --git a/res/menu/call_log_options.xml b/res/menu/call_log_options.xml
index 50b1cad5b..da38d864d 100644
--- a/res/menu/call_log_options.xml
+++ b/res/menu/call_log_options.xml
@@ -16,7 +16,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/delete_all"
- android:title="@string/recentCalls_deleteAll"
+ android:title="@string/call_log_delete_all"
android:showAsAction="never"
android:orderInCategory="1"/>
</menu>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 6750979f6..4ff924a3b 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Beller"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Foon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Foon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Foonbelblad"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Foon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Oproepgeskiedenis"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Bel <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Redigeer nommer voor oproep"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Voeg by kontakte"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Vee uit oproepgeskiedenis"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Vee oproepgeskiedenis uit"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Vee stemboodskap uit"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Deel stemboodskap"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Geen oproepe nie"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Oproepgeskiedenis"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Gee foutiewe nommer aan"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopieer nommer"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopieer transkripsie"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokkeer nommer"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> is geblokkeer"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Deblokkeer nommer"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> is gedeblokkeer"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ONTDOEN"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Vee uit"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Wysig nommer voor oproep"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Vee oproepgeskiedenis uit"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Vee stemboodskap uit"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Stemboodskap is uitgevee"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ONTDOEN"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vee oproepgeskiedenis uit?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Dit sal alle oproepe uit jou geskiedenis vee"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Vee tans oproepgeskiedenis uit …"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nuwe stemboodskap van <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Kon nie stemboodskap speel nie"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buffering…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Laai tans stemboodskap …"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Kon nie stemboodskap laai nie"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Slegs oproepe met stemboodskappe"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Slegs inkomende oproepe"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Slegs uitgaande oproepe"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Slegs gemisde oproepe"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visuele stemboodskapdiens"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Kyk en luister na jou stemboodskapdiens sonder dat jy \'n nommer hoef te bel. Dataheffings kan van toepassing wees."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Instellings"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Stemboodskapopdaterings is nie beskikbaar nie"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nuwe stemboodskap wag. Kan nie nou laai nie."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Stel jou stemboodskapdiens op"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Oudio is nie beskikbaar nie"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Stel op"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Bel stemboodskap"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Stadigste spoed"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Stadige spoed"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normale spoed"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Vinnige spoed"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Vinnigste spoed"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>)<xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Kies nommer"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Kies nommer"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Oproepgeskiedenis"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Meer opsies"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"belblad"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopieer"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Wys slegs uitgaande"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Wys slegs inkomende"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Wys slegs misgeloop"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Uitgaande video-oproep"</string>
<string name="type_missed_video" msgid="954396897034220545">"Gemiste video-oproep"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Stemboodskap"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Afgekeurde oproep"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Geblokkeerde oproep"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Inkomende oproepe"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Speel stemboodskap"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Bekyk kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Bel <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Kontakbesonderhede van <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nuwe stemboodskap."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> oproepe."</string>
<string name="description_video_call" msgid="2933838090743214204">"Video-oproep."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Stuur SMS aan <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Stemboodskap"</string>
<string name="private_num" msgid="6374339738119166953">"Private nommer"</string>
<string name="payphone" msgid="7726415831153618726">"Betaalfoon"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Kan nie hierdie nommer bel nie"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Om stemboodskapdiens op te stel, gaan na Kieslys &gt; Instellings."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Om stemboodskapdiens te bel, skakel eers vliegtuigmodus af."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Stemsoektog is nie beskikbaar nie"</string>
<string name="call_not_available" msgid="8941576511946492225">"Kan nie \'n foonoproep maak nie want die Foon-program is gedeaktiveer."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Geen program daarvoor op hierdie toestel nie"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Voer \'n naam of foonnommer in"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Geen oproepe nie"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Geen onlangse stemboodskappe nie"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Deursoek kontakte"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Gee nommer of soek in kontakte"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Jou oproepgeskiedenis is leeg"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Maak \'n oproep"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Jy het geen gemiste oproepe nie."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Jou stemboodskapdiens se inkassie is leeg."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Wys net gunstelinge"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Geskiedenis"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Oproepgeskiedenis"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alles"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Gemis"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Stemboodskap"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokkeer <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Oproepe van hierdie nommer af sal geblokkeer word en stemboodskappe sal outomaties uitgevee word."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Oproepe van hierdie nommer af sal geblokkeer word, maar die beller sal dalk steeds vir jou stemboodskappe kan los."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKKEER"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Deblokkeer <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Hierdie nommer sal nie meer geblokkeer word om jou te bel nie."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKKEER"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Spoedbel"</string>
- <string name="tab_recents" msgid="929949073851377206">"Onlangse kontakte"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Oproepgeskiedenis"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontakte"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Stemboodskap"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Verwyder uit gunstelinge"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Ontdoen"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Skep nuwe kontak"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Voeg by bestaande kontak"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Voeg by \'n kontak"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Stuur SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Maak video-oproep"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Bekyk volledige oproepgeskiedenis"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokkeer nommer"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nuwe gemiste oproepe"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Met spoedbel raak jy een keer om gunstelinge en nommers wat jy gereeld gebruik, te bel"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Geen kontakte nie"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Daar is nog niemand op jou spoedbel nie"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Voeg \'n gunsteling by"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Jy het nog nie enige kontakte nie"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Voeg \'n kontak by"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Raak prent om al die nommers te sien of raak en hou om te herorganiseer"</string>
<string name="remove_contact" msgid="1080555335283662961">"Verwyder"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLE KONTAKTE"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Video-oproep"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LUISTER"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Bekyk besonderhede"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Stuur \'n boodskap"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Oproepbesonderhede"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Bel <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Oproep gemis vanaf <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Oproep geantwoord vanaf <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Ongeleeste stempos vanaf <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Stempos vanaf <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Oproep na <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"op <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Bel"</string>
<string name="description_call_action" msgid="4000549004089776147">"Bel <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Video-oproep na <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Maak video-oproep na <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Luister na stemboodskap vanaf <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Speel stemboodskap vanaf <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Laat wag stemboodskap vanaf <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Vee stemboodskap vanaf <xliff:g id="NAMEORNUMBER">^1</xliff:g> uit"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nuwe stemboodskappe</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nuwe stemboodskap</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Skep kontak vir <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Voeg <xliff:g id="NAMEORNUMBER">^1</xliff:g> by \'n bestaande kontak"</string>
<string name="description_details_action" msgid="2433827152749491785">"Oproepbesonderhede vir <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Uit oproepgeskiedenis gevee"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Gee aan"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Vandag"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Gister"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Ouer"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Vinnige antwoorde"</string>
<string name="call_settings_label" msgid="313434211353070209">"Oproepe"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Oproepblokkering"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Oproepblokkering is tydelik af"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Voer nommers in"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Jy het sommige bellers vroeër gemerk om outomaties via ander programme na stemboodskapdiens gestuur te word."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Bekyk nommers"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Voer in"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Kon nie invoer nie"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokkeer nommer"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Voeg nommer by"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Oproepe van hierdie nommers af sal geblokkeer word en stemboodskappe sal outomaties uitgevee word."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Oproepe van hierdie nommers af sal geblokkeer word, maar die bellers sal dalk steeds vir jou stemboodskappe kan los."</string>
+ <string name="block_list" msgid="7760188925338078011">"Geblokkeerde nommers"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is ongeldig."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is reeds geblokkeer."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Oproepblokkering is vir 48 uur gedeaktiveer"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Gedeaktiveer omdat \'n noodoproep gemaak is."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Oproeprekeninge"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Skakel aan"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Stel toestemmings"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Skakel die kontaktetoestemming aan om spoedbel te aktiveer."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Skakel die foontoestemming aan om jou oproeprekord te sien."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Skakel die kontaktetoestemming aan om jou kontakte te sien."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Skakel die foontoestemming aan om na jou stemboodskapdiens te gaan."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Skakel die Kontakte-toestemmings aan om jou kontakte te deursoek."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Skakel die foontoestemming aan om \'n oproep te maak."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Foonprogram het nie toestemming om stelselinstellings te stel nie."</string>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 44eb7259c..6d1c6d439 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"ደዋይ"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ስልክ"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ስልክ"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"የስልክ መደወያ ሰሌዳ"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ስልክ"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"የጥሪ ታሪክ"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"ጥሪ <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ከመደወል በፊት ቁጥር አርትዕ"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"ወደ ዕውቂያዎች አክል"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"ከጥሪ ታሪክ ሰርዝ"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"የጥሪ ታሪክን አጽዳ"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"የድምፅ መልዕክት ሰርዝ"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"የድምፅ መልዕክት አጋራ"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"ምንም ጥሪዎች የሉም"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"የጥሪ ታሪክ"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"ትክክለኛ ያልሆነ ቁጥርን ሪፓርት አድርግ"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"ቁጥር ቅዳ"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ወደ ጽሑፍ የተገለበጠውን ቅዳ"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"ቁጥርን አግድ"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ታግዷል"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"ቁጥርን አታግድ"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"የ<xliff:g id="NUMBER">%1$s</xliff:g> እገዳ ተነስቷል"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ቀልብስ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"ሰርዝ"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"ከመደወል በፊት ቁጥር አርትዕ"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"የጥሪ ታሪክን አጽዳ"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"የድምፅ መልዕክት ሰርዝ"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"የድምጽ ፖስታ ተፈልጎ ተገኝቷል"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ቀልብስ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"የጥሪ ታሪክ ይጽዳ?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"ይሄ ሁሉንም ጥሪዎች ከታሪክዎ ይሰርዛቸዋል"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"የጥሪ ታሪክን በማጽዳት ላይ…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>፤<xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ከ<xliff:g id="CALLER">%1$s</xliff:g> አዲስ የድምፅመልዕክት"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"የድምጽ መልዕክትን ማጫወት አልተቻለም"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"በማቋት ላይ…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"የድምጽ መልዕክትን በመጫን ላይ…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"የድምጽ መልዕክትን መጫን አልተቻለም"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"የድምጽ መልዕክት ያላቸው ጥሪዎች ብቻ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"ገቢ ጥሪዎች ብቻ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"ወጪ ጥሪዎች ብቻ"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"ያመለጡ ጥሪዎች ብቻ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"የሚታይ የድምጽ መልዕክት"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"ቁጥር ሳይደውሉ የእርስዎን የድምጽ መልዕክት ይመልከቱና ያድምጡ። የውሂብ ክፍያዎች ተግባራዊ ይሆኑ ይሆናል።"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"ቅንብሮች"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"የድምጽ መልዕክት ዝማኔ አይገኝም"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"አዲስ የድምጽ መልዕክት በመጠበቅ ላይ። አሁን መጫን አይቻልም።"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"የእርስዎን ድምጽ መልዕክት ያዋቅሩ"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ተሰሚ አይገኝም"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"አዘጋጅ"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"የድምፅመልዕክት ደውል"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"በጣም ቀርፋፋ ፍጥነት"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ቀርፋፋ ፍጥነት"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"መደበኛ ፍጥነት"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"ፈጣን ፍጥነት"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"በጣም ፈጣን ፍጥነት"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"ቁጥር ምረጥ"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"ቁጥር ምረጥ"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"የስልክ ጥሪ ታሪክ"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ተጨማሪ አማራጮች"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"የመደወያ ሰሌዳ"</string>
- <string name="menu_copy" msgid="6108677035381940698">"ቅዳ"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"ወጪዎቹን ብቻ አሳይ"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"ገቢዎቹን ብቻ አሳይ"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"ያመለጡትን ብቻ አሳይ"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"ወጪ የቪዲዮ ጥሪ"</string>
<string name="type_missed_video" msgid="954396897034220545">"ያመለጠ የቪዲዮ ጥሪ"</string>
<string name="type_voicemail" msgid="5153139450668549908">"የድምፅ መልዕክት"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"ያልተነሳ ጥሪ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"የታገደ ጥሪ"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ገቢ ጥሪዎች"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"የድምፅ መልዕክት አጫውት"</string>
<string name="description_view_contact" msgid="5205669345700598415">"ዕውቂያ <xliff:g id="NAME">%1$s</xliff:g> ዕይ"</string>
<string name="description_call" msgid="3443678121983852666">"ጥሪ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"የ<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> እውቂያ ዝርዝሮች"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"አዲስ የድምጽ መልዕክት።"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ጥሪዎች።"</string>
<string name="description_video_call" msgid="2933838090743214204">"የቪዲዮ ጥሪ።"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"ኤስኤምኤስ ለ<xliff:g id="NAME">%1$s</xliff:g> ላክ"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"የድምፅ መልዕክት"</string>
<string name="private_num" msgid="6374339738119166953">"የግል ቁጥር"</string>
<string name="payphone" msgid="7726415831153618726">"የሕዝብ ስልክ"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> ሰከንድ"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> ደቂቃ <xliff:g id="SECONDS">%s</xliff:g> ሴከ"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ላይ"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ይህን ቁጥር መደወል አልተቻለም"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ድምጽ መልዕክትን ለማደራጀት ወደ ምናሌ &gt; ቅንብሮች ሂድ::"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"የድምጽ መልዕክት ጥሪ ለማድረግ፣ በመጀመሪያ የአውሮፕላን ሁነታን አጥፋ።"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"የድምጽ ፍለጋ አይገኝም"</string>
<string name="call_not_available" msgid="8941576511946492225">"የስልክ መተግበሪያው ስለተሰናከለ የስልክ ጥሪ ማድረግ አይቻልም።"</string>
<string name="activity_not_available" msgid="2287665636817987623">"ለዚያ የሚሆን መተግበሪያ በዚህ መሣሪያ ላይ የለም"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"ስም ወይም ስልክ ቁጥር ያስገቡ"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"ምንም ጥሪዎች የሉም"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"ምንም የቅርብ ጊዜ የድምጽ መልዕክቶች የሉም"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"እውቂያዎችን ይፈልጉ"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"ቁጥር ያክሉ ወይም እውቂያዎችን ይፈልጉ"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"የእርስዎ የጥሪ ታሪክ ባዶ ነው"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"ደውል"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"ምንም ያመለጡዎት ጥሪዎች የሉዎትም።"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"የእርስዎ የድምጽ መልዕክት ገቢ መልዕክት ባዶ ነው።"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"ተወዳጆችን ብቻ አሳይ"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ታሪክ"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"የጥሪ ታሪክ"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"ሁሉም"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"ያመለጡ"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"የድምፅ መልዕክት"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> ይታገድ?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ከዚህ ቁጥር የሚመጡ ጥሪዎች ይታገዳሉ፣ እና የድምጽ መልዕክቶች በራስ-ሰር ይሰረዛሉ።"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ከዚህ ቁጥር የሚመጡ ጥሪዎች ይታገዳሉ፣ ነገር ግን ደዋዩ አሁንም የድምጽ መልዕክቶችን ሊተዉልዎ ይችላል።"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"አግድ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"የ<xliff:g id="NUMBER">%1$s</xliff:g> እግድ ይነሳ?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"ይህ ቁጥር ከአሁን በኋላ ወደ እርስዎ ከመደወል አይታገድም።"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"እገዳ አንሳ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"ፈጣን ደውል"</string>
- <string name="tab_recents" msgid="929949073851377206">"የቅርብ ጊዜዎቹ"</string>
+ <string name="tab_history" msgid="2563144697322434940">"የጥሪ ታሪክ"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"ዕውቂያዎች"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"የድምፅ መልዕክት"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"ከተወዳጆች ውስጥ ተወግዷል።"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"ቀልብስ"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"ለ<xliff:g id="NUMBER">%s</xliff:g> ደውል"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"አዲስ እውቂያ ይፍጠሩ"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"ወደ ነባር እውቂያ አክል"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"ወደ እውቂያ አክል"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"ኤስኤምኤስ ላክ"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"የቪዲዮ ጥሪ አድርግ"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"ሙሉ የጥሪ ታሪኮችን ይመልከቱ"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"ቁጥርን አግድ"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> አዲስ ያልተመለሱ ጥሪዎች"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"ፈጣን ደውል ለተወዳጆች እና አብዛኛው ጊዜ ለሚደውሏቸውን ቁጥሮች የሆነ የአንዴ ነካ መደወል ነው"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"ምንም እውቂያዎች የሉም"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"በፈጥኖ መደወያ ላይ ገና ማንም የለዎትም"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"ተወዳጅ አክል"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"ገና ምንም እውቂያዎች የሉዎትም"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"ዕውቂያ አክል"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"ሁሉንም ቁጥሮች ለማየት ምስል ይንኩ ወይም ዳግም ለመደርደር ነክተው ይያዙት"</string>
<string name="remove_contact" msgid="1080555335283662961">"አስወግድ"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ሁሉም እውቂያዎች"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"የቪዲዮ ጥሪ"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"አዳምጥ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"ዝርዝሮችን አሳይ"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"መልእክት ላክ"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"የጥሪ ዝርዝሮች"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ይደውሉ"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"ከ<xliff:g id="NAMEORNUMBER">^1</xliff:g>፣ <xliff:g id="TYPEORLOCATION">^2</xliff:g>፣ <xliff:g id="TIMEOFCALL">^3</xliff:g>፣ <xliff:g id="PHONEACCOUNT">^4</xliff:g> ያመለጠ ጥሪ።"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"ከ<xliff:g id="NAMEORNUMBER">^1</xliff:g>፣ <xliff:g id="TYPEORLOCATION">^2</xliff:g>፣ <xliff:g id="TIMEOFCALL">^3</xliff:g>፣ <xliff:g id="PHONEACCOUNT">^4</xliff:g> መልስ የተሰጠው ጥሪ።"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"ያልተነበበ የድምጽ ፖስታ ከ<xliff:g id="NAMEORNUMBER">^1</xliff:g>፣ <xliff:g id="TYPEORLOCATION">^2</xliff:g>፣ <xliff:g id="TIMEOFCALL">^3</xliff:g>፣ <xliff:g id="PHONEACCOUNT">^4</xliff:g>።"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"የድምጽ ፖስታ ከ<xliff:g id="NAMEORNUMBER">^1</xliff:g>፣ <xliff:g id="TYPEORLOCATION">^2</xliff:g>፣ <xliff:g id="TIMEOFCALL">^3</xliff:g>፣ <xliff:g id="PHONEACCOUNT">^4</xliff:g>።"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"ወደ <xliff:g id="NAMEORNUMBER">^1</xliff:g>፣ <xliff:g id="TYPEORLOCATION">^2</xliff:g>፣ <xliff:g id="TIMEOFCALL">^3</xliff:g>፣ <xliff:g id="PHONEACCOUNT">^4</xliff:g> ደውል።"</string>
<string name="description_phone_account" msgid="1767072759541443861">"በ<xliff:g id="PHONEACCOUNT">^1</xliff:g> ላይ"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"ደውል"</string>
<string name="description_call_action" msgid="4000549004089776147">"ወደ <xliff:g id="NAMEORNUMBER">^1</xliff:g> ይደውሉ"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"የቪዲዮ ጥሪ ወደ <xliff:g id="NAMEORNUMBER">^1</xliff:g>።"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"ቪዲዮ ጥሪ <xliff:g id="NAMEORNUMBER">^1</xliff:g>።"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"የ<xliff:g id="NAMEORNUMBER">^1</xliff:g>ን የድምጽ መልዕክት ያዳምጡ"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"የድምጽ መልዕክት ያጫውቱ ከ<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"የድምጽ መልዕክት ለአፍታ ያቁሙ ከ<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"የድምጽ መልዕክት ይሰርዙ ከ<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> አዲስ የድምጽ መልዕክቶች</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> አዲስ የድምጽ መልዕክቶች</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"ለ<xliff:g id="NAMEORNUMBER">^1</xliff:g> እውቂያ ፍጠር"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>ን ወደ አሁን ያለ እውቂያ አክል"</string>
<string name="description_details_action" msgid="2433827152749491785">"የ<xliff:g id="NAMEORNUMBER">^1</xliff:g> የጥሪ ዝርዝሮች"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"ከጥሪ ታሪክ ተሰርዟል"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"ሪፖርት"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ዛሬ"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"ትላንት"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"የቆየ"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"ፈጣን ምላሾች"</string>
<string name="call_settings_label" msgid="313434211353070209">"ጥሪዎች"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"ጥሪን ማገድ"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ጥሪን ማገድ ለጊዜው ተሰናክሏል"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ባለፉት 48 ሰዓቶች ውስጥ ከዚህ ስልክ ሆነው የአስቸኳይ አደጋ አገልግሎቶችን ስላነጋገሩ ጥሪን ማገድ ተሰናክሏል። አንዴ የ48 ሰዓቱ ጊዜ ካለፈ በኋላ በራስ-ሰር ዳግም ይነቃል።"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ቁጥሮችን አስመጣ"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"ከዚህ ቀደም አንዳንድ ደዋዮች በሌሎች መተግበሪያዎች በኩል በራስ-ሰር ወደ የድምፅ መልዕክት እንዲላኩ ምልክት አድርገባቸው ነበር።"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ቁጥሮችን ይመልከቱ"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"አስመጣ"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ማስመጣት አልተሳካም"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ቁጥርን አታግድ"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"ቁጥር አክል"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ከእነዚህ ቁትሮች የሚመጡ ጥሪዎች ይታገዳሉ፣ እና የድምጽ መልዕክቶች በራስ-ሰር ይሰረዛሉ።"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ከእነዚህ ቁትሮች የሚመጡ ጥሪዎች ይታገዳሉ፣ ነገር ግን አሁንም የድምጽ መልዕክቶችን ሊተዉልዎ ይችላሉ።"</string>
+ <string name="block_list" msgid="7760188925338078011">"የታገዱ ቁጥሮች"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ልክ ያልኾነ ነው።"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ቀድሞውኑ ታግዷል።"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"የጥሪ እገዳ ለ48 ሰዓቶች ተሰናክሏል።"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"የአስቸኳይ አደጋ ጥሪ ስለተደረገ ተሰናክሏል።"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"የመደወያ መለያዎች"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"አብራ"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"ፍቃዶችን አዋቅር"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"ፈጥኖ መደወያን ለማንቃት የእውቂያዎች ፍቃዱን ያብሩ።"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"የጥሪ ምዝግብ ማስታወአሽዎን ለማየት የስልክ ፍቃዱን ያብሩ።"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"የእርስዎን እውቂያዎች ለማየት የእውቂያዎች ፍቃዱን ያብሩ።"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"የድምፅ መልዕክትዎን ለመድረስ የስልክ ፍቃዱን ያብሩ።"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"የእርስዎን እውቂያዎች ለመከታተል የእውቂያዎች ፍቃዶችን ያብሩ።"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"ስልክ ለመደወል የስልክ ፍቃዱን ያብሩ።"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"የስልክ መተግበሪያ ወደ የስርዓት ቅንብሮች የመጻፍ ፍቃድ የለውም።"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 8146b9f97..b1bf5c366 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"الهاتف"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"الهاتف"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"لوحة اتصال الهاتف"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"الهاتف"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"سجل المكالمات"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"الاتصال بـ <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"تعديل الرقم قبل الاتصال"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"إضافة إلى جهات الاتصال"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"حذف من سجل المكالمات"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"محو سجل المكالمات"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"حذف بريد صوتي"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"مشاركة البريد الصوتي"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"لا توجد مكالمات"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"سجل المكالمات"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"الإبلاغ عن رقم غير دقيق"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"نسخ الرقم"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"نسخ الكتابة الصوتية"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"حظر الرقم"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"تم حظر <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"إلغاء حظر الرقم"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"تم إلغاء حظر <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"تراجع"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"حذف"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"تعديل الرقم قبل الاتصال"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"محو سجل المكالمات"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"حذف رسالة البريد الصوتي"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"تم حذف الرسالة الصوتية"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"تراجع"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"هل تريد محو سجل المكالمات؟"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"سيؤدي ذلك إلى حذف جميع المكالمات من السجل"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"جارٍ محو سجل المكالمات…"</string>
@@ -44,24 +51,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>، <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"بريد صوتي جديد من <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"تعذر تشغيل البريد الصوتي"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"جارٍ التخزين مؤقتًا..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"جارٍ تحميل البريد الصوتي…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"تعذر تحميل البريد الصوتي"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"المكالمات التي تشتمل على بريد صوتي فقط"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"المكالمات الواردة فقط"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"المكالمات الصادرة فقط"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"المكالمات الفائتة فقط"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"بريد صوتي مرئي"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"يمكنك الاطلاع على بريدك الصوتي والاستماع إليه، بدون الاضطرار إلى الاتصال برقم. ويمكن أن يتم فرض رسوم للبيانات."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"الإعدادات"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"تحديثات البريد الصوتي غير متاحة"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"ليس هناك بريد صوتي قيد الانتظار. لا يمكن التحميل في الوقت الحالي."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"إعداد البريد الصوتي"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"الصوت غير متاح"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"إعداد"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"اتصال ببريد صوتي..."</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"أبطأ سرعة"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"سرعة بطيئة"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"سرعة عادية"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"سرعة عالية"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"أعلى سرعة"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"اختيار رقم"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"اختيار رقم"</string>
@@ -77,7 +81,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"سجل المكالمات"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"مزيد من الخيارات"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"لوحة الطلب"</string>
- <string name="menu_copy" msgid="6108677035381940698">"نسخ"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"عرض الصادر فقط"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"عرض الوارد فقط"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"عرض الفائت فقط"</string>
@@ -100,12 +103,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"مكالمة فيديو صادرة"</string>
<string name="type_missed_video" msgid="954396897034220545">"مكالمة فيديو فائتة"</string>
<string name="type_voicemail" msgid="5153139450668549908">"البريد الصوتي"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"مكالمة مرفوضة"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"مكالمة محظورة"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"المكالمات الواردة"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"تشغيل البريد الصوتي"</string>
<string name="description_view_contact" msgid="5205669345700598415">"عرض جهة الاتصال <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"الاتصال بـ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"تفاصيل جهة الاتصال بـ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"بريد صوتي جديد"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> من المكالمات."</string>
<string name="description_video_call" msgid="2933838090743214204">"مكالمة فيديو."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"‏إرسال رسالة قصيرة SMS إلى <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -116,7 +120,11 @@
<string name="voicemail" msgid="3851469869202611441">"البريد الصوتي"</string>
<string name="private_num" msgid="6374339738119166953">"رقم خاص"</string>
<string name="payphone" msgid="7726415831153618726">"هاتف يعمل بالعملة"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> دقيقة <xliff:g id="SECONDS">%s</xliff:g> ثانية"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> في <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"لا يمكن الاتصال بهذا الرقم"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"‏لإعداد البريد الصوتي، انتقل إلى القائمة &gt; الإعدادات."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"للاتصال بالبريد الصوتي، يجب أولاً إيقاف وضع الطائرة."</string>
@@ -129,45 +137,72 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"البحث الصوتي غير متاح"</string>
<string name="call_not_available" msgid="8941576511946492225">"يتعذر إجراء مكالمة هاتفية نظرًا لأنه تم تعطيل تطبيق الهاتف."</string>
<string name="activity_not_available" msgid="2287665636817987623">"لا يوجد تطبيق لإجراء ذلك على هذا الجهاز"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"أدخل اسمًا أو رقم هاتف"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"لا توجد مكالمات"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"ليست هناك رسائل بريد صوتي حديثة"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"البحث في قائمة جهات الاتصال"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"إضافة رقم أو البحث في جهات الاتصال"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"سجل مكالماتك فارغ"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"إجراء مكالمة"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"ليست لديك أية مكالمات لم يتم الرد عليها."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"مجلد بريدك الوارد الصوتي فارغ."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"عرض المفضلة فقط"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"السجل"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"سجل المكالمات"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"الكل"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"فائتة"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"البريد الصوتي"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"هل تريد حظر الرقم <xliff:g id="NUMBER">%1$s</xliff:g>؟"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"سيتم حظر المكالمات الواردة من هذا الرقم كما سيتم تلقائيًا حذف الرسائل الصوتية."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"سيتم حظر المكالمات من هذا الرقم، إلا أنه سيظل بإمكان المتصل ترك رسائل صوتية."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"حظر"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"هل تريد إزالة حظر <xliff:g id="NUMBER">%1$s</xliff:g>؟"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"لن يتم حظر اتصال هذا الرقم بك بعد الآن."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"إلغاء الحظر"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"اتصال سريع"</string>
- <string name="tab_recents" msgid="929949073851377206">"الحديثة"</string>
+ <string name="tab_history" msgid="2563144697322434940">"سجل المكالمات"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"جهات الاتصال"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"البريد الصوتي"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"تمت إزالة جهة الاتصال من المفضلة"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"تراجع"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"الاتصال بالرقم <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"إنشاء جهة اتصال جديدة"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"إضافة إلى جهة الاتصال الحالية"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"إضافة إلى جهة اتصال"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"‏إرسال رسالة قصيرة SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"إجراء مكالمة فيديو"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"عرض سجل المكالمات بالكامل"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"حظر الرقم"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> من المكالمات الجديدة الفائتة"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"إن الاتصال السريع هو اتصال بلمسة واحدة للأرقام المفضلة لديك والتي تتصل بها بكثرة"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"لا توجد جهات اتصال"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"لم تتم إضافة أية جهة اتصال إلى قائمة الاتصال السريع حتى الآن"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"إضافة مفضلة"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"ليست لديك أية جهات اتصال حتى الآن"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"إضافة جهة اتصال"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"المس الصورة للاطلاع على جميع الأرقام أو المس مع الاستمرار لإعادة الترتيب"</string>
<string name="remove_contact" msgid="1080555335283662961">"إزالة"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"جميع جهات الاتصال"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"مكالمة فيديو"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"استماع"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"عرض التفاصيل"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"إرسال رسالة"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"تفاصيل المكالمة"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"الاتصال بـ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"مكالمة لم يرد عليها من <xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"تم الرد على مكالمة من <xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"البريد الصوتي غير المقروء من <xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"البريد الصوتي من <xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"اتصال بـ <xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"من <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"اتصال"</string>
<string name="description_call_action" msgid="4000549004089776147">"الاتصال بـ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"مكالمة فيديو مع <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"إجراء مكالمة فيديو مع <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"استماع إلى بريد صوتي من <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"تشغيل البريد الصوتي من <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"إيقاف البريد الصوتي من <xliff:g id="NAMEORNUMBER">^1</xliff:g> مؤقتًا"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"حذف البريد الصوتي من <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="zero">ليست هناك أية رسائل صوتية جديدة (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="two">رسالتان صوتيتان جديدتان (<xliff:g id="COUNT_1">%d</xliff:g>)</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> رسائل صوتية</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> رسالة صوتية</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> من الرسائل الصوتية</item>
+ <item quantity="one">رسالة صوتية جديدة (<xliff:g id="COUNT_0">%d</xliff:g>)</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"إنشاء جهة اتصال لـ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"إضافة <xliff:g id="NAMEORNUMBER">^1</xliff:g> إلى جهة اتصال حالية"</string>
<string name="description_details_action" msgid="2433827152749491785">"تفاصيل الاتصال لـ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"تم الحذف من سجل المكالمات"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"الإبلاغ"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"اليوم"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"أمس"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"أقدم"</string>
@@ -191,5 +226,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"الردود السريعة"</string>
<string name="call_settings_label" msgid="313434211353070209">"المكالمات"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"حظر المكالمات"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"حظر المكالمات معطّل مؤقتًا"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"تم تعطيل حظر المكالمات لأنك اتصلت بخدمات الطوارئ خلال 48 ساعة ماضية. وستتم إعادة تمكينه تلقائيًا بعد انتهاء هذه الفترة التي تبلغ 48 ساعة."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"استيراد الأرقام"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"سبق لك تعيين بعض المتصلين على الإرسال تلقائيًا للبريد الصوتي عبر التطبيقات الأخرى."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"عرض الأرقام"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"استيراد"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"أخفق الاستيراد"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"إلغاء حظر الرقم"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"إضافة رقم"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"سيتم حظر المكالمات من هذه الأرقام وسيتم حذف الرسائل الصوتية تلقائيًا."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"سيتم حظر المكالمات من هذه الأرقام، إلا أنه قد يظل بإمكانك ترك رسائلك الصوتية."</string>
+ <string name="block_list" msgid="7760188925338078011">"الأرقام المحظورة"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> غير صالح."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"تم حظر <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"تم تعطيل حظر المكالمات لمدة 48 ساعة."</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"تم التعطيل نظرًا لإجراء مكالمة طوارئ."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"حسابات الاتصال"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"تشغيل"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"تعيين الأذونات"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"لتمكين الاتصال السريع، شغِّل إذن جهات الاتصال."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"للاطلاع على سجل المكالمات، شغِّل إذن الهاتف."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"للاطلاع على جهات الاتصال، شغِّل إذن جهات الاتصال."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"للوصول إلى البريد الصوتي، شغِّل إذن الهاتف."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"للبحث عن جهات الاتصال، عليك تشغيل أذونات جهات الاتصال."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"لإجراء مكالمة، شغِّل إذن الهاتف."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ليس لدى تطبيق الهاتف إذن لتعديل إعدادات النظام."</string>
</resources>
diff --git a/res/values-az-rAZ/strings.xml b/res/values-az-rAZ/strings.xml
index 4b5ef9b2e..7bb4c7333 100644
--- a/res/values-az-rAZ/strings.xml
+++ b/res/values-az-rAZ/strings.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
+<!--
~ Copyright (C) 2012 The Android Open Source Project
~
~ Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,59 +17,66 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Nömrə yığan"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
+ <string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefon Yığım Pedi"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="1419116422359067949">"Zəng jurnalı"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Zəng <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Zəng etmədən öncə nömrəyə düzəliş edin"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Kontaktlara əlavə edin"</string>
- <string name="recentCalls_removeFromRecentList" msgid="401662244636511330">"Zəng jurnalından silin"</string>
- <string name="recentCalls_deleteAll" msgid="6352364392762163704">"Zəng jurnalını təmizləyin"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Səsli məktubu silin"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Səsli məktubu paylaşın"</string>
- <string name="recentCalls_empty" msgid="247053222448663107">"Zəng jurnalı boşdur."</string>
- <string name="clearCallLogConfirmation_title" msgid="6427524640461816332">"Zəng jurnalı silinsin?"</string>
- <string name="clearCallLogConfirmation" msgid="5043563133171583152">"Bütün zəng qeydləriniz silinəcək."</string>
- <string name="clearCallLogProgress_title" msgid="8365943000154295771">"Zəng jurnalı silinir..."</string>
- <plurals name="notification_voicemail_title">
- <item quantity="one" msgid="1746619685488504230">"Səsli məktub"</item>
- <item quantity="other" msgid="5513481419205061254">"<xliff:g id="COUNT">%1$d</xliff:g> Səsli məktub"</item>
- </plurals>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Zəng tarixçəsi"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Qeyri-dəqiq sayı bildirin"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Nömrəni kopyalayın"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Transkripsiyanı kopyalayın"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Nömrəni blok edin"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blok edilib"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Nömrəni blokdan çıxarın"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> blokdan çıxarılıb"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"LƏĞV EDİN"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Silin"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Zəng etmədən öncə nömrəyə düzəliş edin"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Zəng tarixçəsini təmizləyin"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Səsli məktubu silin"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Səsli məktub silindi"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"GERİ ALIN"</string>
+ <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Zəng tarixçəsi təmizlənsin?"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Bu, tarixçənizdən bütün zəngləri siləcəkdir"</string>
+ <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Zəng tarixçəsi silinir…"</string>
+ <plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
+ <item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> Səsli poçt </item>
+ <item quantity="one">Səsli poçt</item>
+ </plurals>
<string name="notification_action_voicemail_play" msgid="6113133136977996863">"Oxudun"</string>
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> adlı şəxsdən yeni səsli məktub"</string>
- <string name="voicemail_playback_error" msgid="1811242131549854624">"Səsli məktub oxudula bilmədi."</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buferlənir..."</string>
- <string name="voicemail_fetching_content" msgid="877911315738258780">"Səsli məktub əldə edilir..."</string>
- <string name="voicemail_fetching_timout" msgid="6691792377574905201">"Səsli məktub əldə edilə bilmədi."</string>
+ <string name="voicemail_playback_error" msgid="3356071912353297599">"Səsli poçtu səsləndirmək mümkün deyil"</string>
+ <string name="voicemail_fetching_content" msgid="1287895365599580842">"Səsli poçt yüklənir…"</string>
+ <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Səsli poçtu yükləmək mümkün olmadı"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Yalnız səsli məktublu zənglər"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Yalnız daxil olan zənglər"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Yalnız gedən zənglər"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Yalnız buraxılmış zənglər"</string>
- <string name="voicemail_status_voicemail_not_available" msgid="3021980206152528883">"Səsli poçt serverinə birləşmək olmur."</string>
- <string name="voicemail_status_messages_waiting" msgid="7113421459602803605">"Səsli poçt serveri ilə bağlantı yaratmaq olmur. Yeni səsli poçtlar gözlənilir."</string>
- <string name="voicemail_status_configure_voicemail" msgid="3738537770636895689">"Səsli poçtunuzu quraşdırın."</string>
- <string name="voicemail_status_audio_not_available" msgid="3369618334553341626">"Audio əlçatımlı deyil."</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizual Səsli Mesaj"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Nömrə yığmağa ehtiyac olmadan səsli mesaja baxın və dinləyin. Data xərci tutula bilər."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Ayarlar"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Səsli poçt yeniləmələri mövcud deyil"</string>
+ <string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Yeni səsli poçt gözləyir. İndi yükləmək mümkün deyil."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Səsli poçtunuzu qurun"</string>
+ <string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio mövcud deyil"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Quraşdırın"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Səsli poçta zəng edin"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Ən alçaq sürət"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Zəif sürət"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal sürət"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Yüksək sürət"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Ən yüksək sürət"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Nömrə seçin"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Nömrə seçin"</string>
<string name="make_primary" msgid="5829291915305113983">"Bu seçimi yadda saxla"</string>
- <string name="description_voicemail_button" msgid="3402506823655455591">"Səsli məktub"</string>
<string name="description_search_button" msgid="3660807558587384889">"axtarış"</string>
<string name="description_dial_button" msgid="1274091017188142646">"nömrə yığın"</string>
- <string name="description_delete_button" msgid="6263102114033407382">"backspace"</string>
<string name="description_digits_edittext" msgid="8760207516497016437">"yığmaq üçün nömrə"</string>
+ <string name="description_playback_start_stop" msgid="5060732345522492292">"Oxudun və ya dayandırın"</string>
+ <string name="description_playback_speakerphone" msgid="6008323900245707504">"Spikerfonu aktiv və ya deaktiv edin"</string>
+ <string name="description_playback_seek" msgid="4509404274968530055">"Oxutma pozisiyası axtarın"</string>
+ <string name="description_rate_decrease" msgid="3161652589401708284">"Oxutma reytinqini azaldın"</string>
+ <string name="description_rate_increase" msgid="6324606574127052385">"Oxutma reytinqini artırın"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Çağrı Tarixçəsi"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Daha çox seçim"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"nömrə yığımı paneli"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopyalayın"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Yalnız gedəni göstərin"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Yalnız gələni göstərin"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Yalnız buraxılmışı göstərin"</string>
@@ -77,32 +84,44 @@
<string name="menu_show_all_calls" msgid="7560347482073345885">"Bütün zəngləri göstərin"</string>
<string name="add_2sec_pause" msgid="9214012315201040129">"2 saniyəlik pauza əlavə edin"</string>
<string name="add_wait" msgid="3360818652790319634">"Gözləmə əlavə edin"</string>
+ <string name="dialer_settings_label" msgid="4305043242594150479">"Ayarlar"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Yeni kontakt"</string>
<string name="menu_allContacts" msgid="6948308384034051670">"Bütün kontaktlar"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Zəng detalları"</string>
- <string name="toast_call_detail_error" msgid="7200975244804730096">"Sorğu göndərilmiş zəng üçün detallar oxuna bilmədi."</string>
+ <string name="toast_call_detail_error" msgid="6947041258280380832">"Təfərrüatlar mövcud deyil"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Toxunma ton klaviaturasını istifadə edin"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Davam edən zəngə qayıdın"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Zəng əlavə edin"</string>
<string name="type_incoming" msgid="6502076603836088532">"Gələn zəng"</string>
<string name="type_outgoing" msgid="343108709599392641">"Gedən zəng"</string>
<string name="type_missed" msgid="2720502601640509542">"Buraxılmış zəng"</string>
+ <string name="type_incoming_video" msgid="82323391702796181">"Gələn video zəng"</string>
+ <string name="type_outgoing_video" msgid="2858140021680755266">"Gedən video zəng"</string>
+ <string name="type_missed_video" msgid="954396897034220545">"Buraxılmış video zəng"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Səsli poçt"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Rədd edilmiş çağrı"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blok edilmiş çağrı"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Gələn zənglər"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Səsli məktubu oxudun"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> adlı kontakta baxın"</string>
<string name="description_call" msgid="3443678121983852666">"Zəng edin: <xliff:g id="NAME">%1$s</xliff:g>"</string>
- <string name="description_send_text_message" msgid="7803126439934046891">"<xliff:g id="NAME">%1$s</xliff:g> mesaj göndər"</string>
+ <string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> üçün kontakt detalları"</string>
+ <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> zəng."</string>
+ <string name="description_video_call" msgid="2933838090743214204">"Video çağrı."</string>
+ <string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> adlı şəxsə SMS göndər"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Eşidilməmiş səsli mesaj"</string>
<string name="description_start_voice_search" msgid="520539488194946012">"Səs axtarışına başlayın"</string>
<string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> zəng edin"</string>
<string name="unknown" msgid="740067747858270469">"Naməlum"</string>
<string name="voicemail" msgid="3851469869202611441">"Səsli poçt"</string>
<string name="private_num" msgid="6374339738119166953">"Şəxsi nömrə"</string>
- <string name="payphone" msgid="4864313342828942922">"Telefon ödənişi"</string>
- <string name="dialerKeyboardHintText" msgid="5401660096579787344">"Nömrə yığmaq üçün klaviaturadan istifadə ediin"</string>
- <string name="callDetailsDurationFormat" msgid="8157706382818184268">"<xliff:g id="MINUTES">%s</xliff:g> dəqiqə <xliff:g id="SECONDS">%s</xliff:g> saniyə"</string>
- <string name="dialog_phone_call_prohibited_message" msgid="6554711866586660441">"Zəng edilmədi"</string>
+ <string name="payphone" msgid="7726415831153618726">"Taksofon"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> san"</string>
+ <string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> dəq <xliff:g id="SECONDS">%s</xliff:g> san"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> tarixində <xliff:g id="TIME">%2$s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Bu nömrəyə zəng etmək mümkün deyil"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Səsli poçtu ayarlamaq üçün Menyu, sonra isə &gt; Ayarlara daxil olun."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Səsli poçta zəng etmək üçün Təyyarə rejimini söndürün."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"Yüklənir…"</string>
@@ -110,17 +129,120 @@
<string name="meid" msgid="6210568493746275750">"MEID"</string>
<string name="simContacts_emptyLoading" msgid="6700035985448642408">"SIM kartdan yüklənir..."</string>
<string name="simContacts_title" msgid="27341688347689769">"SIM kart kontaktları"</string>
- <string name="add_contact_not_available" msgid="1419207765446461366">"Bu özəlliyi istifadə etmək üçün Adamlar tətbiqinə yenidən icazə verin."</string>
- <!-- no translation found for dialer_hint_find_contact (8798845521253672403) -->
- <skip />
+ <string name="add_contact_not_available" msgid="5547311613368004859">"Əlaqələr proqramı mövcud deyil"</string>
+ <string name="voice_search_not_available" msgid="2977719040254285301">"Səsli axtarış mövcud deyil"</string>
+ <string name="call_not_available" msgid="8941576511946492225">"Telefon tətbiqi deaktiv edildiyinə görə telefon zəngi etmək mümkün deyil."</string>
+ <string name="activity_not_available" msgid="2287665636817987623">"Bu cihazda onun üçün heç bir proqram yoxdur"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Kontakt axtarın"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Nömrə əlavə edin və ya kontaktlarda axtarın"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Zəng tarixçəniz boşdur"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zəng edin"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Buraxılmış heç bir zənginiz yoxdur."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Səsli poçt qutunuz boşdur."</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Yalnız seçilmişləri göstər"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Zəng Tarixçəsi"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Bütün"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Buraxılmış"</string>
- <string name="recentMissed_empty" msgid="5427113551557296665">"Buraxılmış zəng yoxdur"</string>
- <string name="recentVoicemails_empty" msgid="5163114119598014048">"Səsli məktub yoxdur."</string>
- <string name="show_favorites_only" msgid="5520072531022614595">"Yalnız seçilmişləri göstər"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Tarixçə"</string>
- <!-- no translation found for favorite_hidden (5011234945140912047) -->
- <skip />
+ <string name="call_log_voicemail_title" msgid="940422274047025948">"Səsli poçt"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> nömrəsi blok edilsin?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Bu nömrədən zənglər blok ediləcək və səsli məktublar avtomatik silinəcək."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Bu nömrədən zənglər bağlanacaq, amma zəng edən səsli zəng qoya bilər."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOK"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> nömrəsi blokdan çıxarılsın?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Bu nömrə Sizə zəng etməyə qarşı artıq blok ediləcək."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"BLOKDAN ÇIXARIN"</string>
+ <string name="tab_speed_dial" msgid="7552166276545648893">"Sürətli nömrə yığımı"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Zəng Tarixçəsi"</string>
+ <string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktlar"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Səsli poçt"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Seçilmişlərdən silindi"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Geri qaytar"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> nömrəsinə zəng edin"</string>
+ <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Yeni kontakt yaradın"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Kontakta əlavə edin"</string>
+ <string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS göndərin"</string>
+ <string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Video zəng edin"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Nömrəni blok edin"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> yeni buraxılmış zəng"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Hələ sürətli zəng siyahınızda hec kim yoxdur"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Sevimlilərə əlavə edin"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Hələ heç bir kontaktınız yoxdur"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Kontakt əlavə edin"</string>
+ <string name="contact_tooltip" msgid="2019777545923635266">"Bütün nömrələri görmək üçün təsvirə toxunun və ya yenidən qaydaya salmaq üçün toxunun və saxlayın"</string>
+ <string name="remove_contact" msgid="1080555335283662961">"Yığışdır"</string>
+ <string name="call_log_action_video_call" msgid="7724301709041128296">"Video zəng"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Mesaj göndərin"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Zəng detalları"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> nömrəsinə zəng edin"</string>
+ <string name="description_incoming_missed_call" msgid="2381085098795943627">"Buraxılmış zənglər: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_incoming_answered_call" msgid="7117665748428816544">"Zəngləri cavablandırıb: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> hesabına gələn oxunmamış səsli mesaj."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> hesabına gələn səsli mesaj."</string>
+ <string name="description_outgoing_call" msgid="6386364390619734734">"Zəng et: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_phone_account" msgid="1767072759541443861">"Zəngdədir: <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
+ <string name="description_call_log_call_action" msgid="3682561657090693134">"Çağrı"</string>
+ <string name="description_call_action" msgid="4000549004089776147">"Çağrı <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> video zəng edin."</string>
+ <string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> tərəfdən səsli mesajı dinləyin"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> nömrəsindən gələn səsli mesajı oxudun"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> nömrəsindən gələn səsli mesajı durdurun"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> nömrəsindən gələn səsli mesajı silin"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> yeni səsli mesaj</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> yeni səsli mesaj</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> üçün kontakt yaradın"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Mövcud kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g> əlavə edin"</string>
+ <string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> üçün detalları çağırın"</string>
+ <string name="toast_entry_removed" msgid="8010830299576311534">"Zəng tarixçəsindən silindi"</string>
+ <string name="call_log_header_today" msgid="3225248682434212981">"Bu gün"</string>
+ <string name="call_log_header_yesterday" msgid="9139172458834033092">"Dünən"</string>
+ <string name="call_log_header_other" msgid="5769921959940709084">"Keçmi"</string>
+ <string name="call_detail_list_header" msgid="3752717059699600861">"Zənglər siyahısı"</string>
+ <string name="voicemail_speaker_on" msgid="209154030283487068">"Dinamiki aktiv et."</string>
+ <string name="voicemail_speaker_off" msgid="7390530056413093958">"Dinamiki deaktiv et."</string>
+ <string name="voicemail_play_faster" msgid="3444751008615323006">"Daha sürətlə oxut."</string>
+ <string name="voicemail_play_slower" msgid="4544796503902818832">"Daha yavaş oxut."</string>
+ <string name="voicemail_play_start_pause" msgid="3687447935787768983">"Oxunuşu başlat və ya durdur"</string>
+ <string name="list_delimeter" msgid="4571593167738725100">", "</string>
+ <string name="display_options_title" msgid="7812852361055667468">"Ekran seçimləri"</string>
+ <string name="sounds_and_vibration_title" msgid="1692290115642160845">"Səslər və vibrasiya"</string>
+ <string name="accessibility_settings_title" msgid="6068141142874046249">"Giriş imkanı"</string>
+ <string name="ringtone_title" msgid="760362035635084653">"Telefon zəng səsi"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Həmçinin zənglər üçün vibrasiya olsun"</string>
+ <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Yığım tonları"</string>
+ <string name="dtmf_tone_length_title" msgid="8581125689808919460">"Yığım paneli ton uzunluğu"</string>
+ <string-array name="dtmf_tone_length_entries">
+ <item msgid="1036113889050195575">"Normal"</item>
+ <item msgid="6177579030803486015">"Uzun"</item>
+ </string-array>
+ <string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Qısa cavablar"</string>
+ <string name="call_settings_label" msgid="313434211353070209">"Zənglər"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Zəng blok edilir"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Çağrının blok edilməsi müvəqqəti olaraq deaktiv edilib"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Nömrələri import edin"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Əvvəlcədən qeyd etdiyiniz bəzi zəng edənlər digər tətbiqlərin vasiyəsilə avtomatik olaraq səsli mesaja yönləndiriləcək."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Rəqəmlərə baxın"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"İmport"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import alınmadı"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Nömrəni blokdan çıxarın"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Nömrə əlavə edin"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Bu nömrələrdən zənglər blok ediləcək və səsli məktublar avtomatik silinəcək."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Bu nömrələrdən zənglər blok ediləcək, amma yenə də səsli məktub qoya bilərsiniz."</string>
+ <string name="block_list" msgid="7760188925338078011">"Bloklanmış nömrələr"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> yanlışdır."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> artıq bloklanıb."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Çağrının bloklanması 48 saatlıq deaktiv edildi"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Təcili zəng olduğu üçün deaktiv edildi."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"Hesabların çağrılması"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktiv edin"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"İcazələri quraşdırın"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Sürətli yığımı aktivləşdirmək üçün, Kontakt icazələrini aktivləşdirin."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Çağrı jurnalınızı görmək üçün Telefon icazəsini aktivləşdirin."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Kontaktlarınızı görmək üçün Kontakt icazəsini aktivləşdirin."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Səsli poçta daxil olmaq üçün, Telefon icazəsini aktivləşdirin."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Kontaktlarınızı axtarmaq üçün, Kontakt icazələrini aktiv edin."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Zəng etmək üçün, Telefon icazəsini aktivləşdirin."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefon tətbiqinin sistem ayarlarına yazmaq icazəsi yoxdur."</string>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 000000000..33e2f1617
--- /dev/null
+++ b/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2012 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
+ <string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Numerička tastatura telefona"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Istorija poziva"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Prijavi netačan broj"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopiraj broj"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiraj transkripciju"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokiraj broj"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> je blokiran"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Deblokiraj broj"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> je deblokiran"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"OPOZOVI"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Izbriši"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Izmeni broj pre poziva"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Obriši istoriju poziva"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Izbriši govornu poruku"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Gov. pošta je izbrisana"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"OPOZOVI"</string>
+ <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Želite da obrišete istoriju poziva?"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ovo će izbrisati sve pozive iz istorije"</string>
+ <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Briše se istorija poziva…"</string>
+ <plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
+ <item quantity="one"> <xliff:g id="COUNT">%1$d</xliff:g> govorna poruka </item>
+ <item quantity="few"> <xliff:g id="COUNT">%1$d</xliff:g> govorne poruke </item>
+ <item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> govornih poruka </item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Pusti"</string>
+ <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
+ <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova govorna poruka od <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="3356071912353297599">"Puštanje govorne pošte nije uspelo"</string>
+ <string name="voicemail_fetching_content" msgid="1287895365599580842">"Govorna pošta se učitava…"</string>
+ <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Učitavanje govorne pošte nije uspelo"</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"Samo pozivi sa govornom poštom"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"Samo dolazni pozivi"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Samo odlazni pozivi"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Samo propušteni pozivi"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizuelna govorna pošta"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Pregledajte i slušajte govornu poštu bez pozivanja broja. Možda će biti naplaćeni troškovi za prenos podataka."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Podešavanja"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Ažuriranja govorne pošte nisu dostupna"</string>
+ <string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Imate novu govornu poštu. Trenutno ne može da se učita."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Podesite govornu poštu"</string>
+ <string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio nije dostupan"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Podesi"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Zovi govornu poštu"</string>
+ <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
+ <string name="sms_disambig_title" msgid="5846266399240630846">"Izbor broja"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Izbor broja"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Zapamti ovaj izbor"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"pretraži"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"biranje"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"broj za biranje"</string>
+ <string name="description_playback_start_stop" msgid="5060732345522492292">"Pokretanje ili zaustavljanje reprodukcije"</string>
+ <string name="description_playback_speakerphone" msgid="6008323900245707504">"Uključivanje ili isključivanje spikerfona"</string>
+ <string name="description_playback_seek" msgid="4509404274968530055">"Traženje pozicije u reprodukciji"</string>
+ <string name="description_rate_decrease" msgid="3161652589401708284">"Smanjivanje brzine reprodukcije"</string>
+ <string name="description_rate_increase" msgid="6324606574127052385">"Povećavanje brzine reprodukcije"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Istorija poziva"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Još opcija"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"numerička tastatura"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Prikaži samo odlazne"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Prikaži samo dolazne"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Prikaži samo propuštene"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Prikaži samo govorne poruke"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Prikaži sve pozive"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Dodaj pauzu od 2 sekunde"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Dodaj čekanje"</string>
+ <string name="dialer_settings_label" msgid="4305043242594150479">"Podešavanja"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Novi kontakt"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Svi kontakti"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Detalji poziva"</string>
+ <string name="toast_call_detail_error" msgid="6947041258280380832">"Detalji nisu dostupni"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Upotrebite brojčanik za tonsko biranje"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Vrati se na poziv koji je u toku"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Dodaj poziv"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Dolazni poziv"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Odlazni poziv"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Propušten poziv"</string>
+ <string name="type_incoming_video" msgid="82323391702796181">"Dolazni video poziv"</string>
+ <string name="type_outgoing_video" msgid="2858140021680755266">"Odlazni video poziv"</string>
+ <string name="type_missed_video" msgid="954396897034220545">"Propušten video poziv"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Govorna pošta"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Odbijen poziv"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokiran poziv"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Dolazni pozivi"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Puštanje govorne pošte"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"Prikaži kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"Pozovi korisnika <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_contact_details" msgid="51229793651342809">"Detalji o kontaktu za <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> poziva."</string>
+ <string name="description_video_call" msgid="2933838090743214204">"Video poziv."</string>
+ <string name="description_send_text_message" msgid="3118485319691414221">"Slanje SMS-a za <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nepreslušana govorna pošta"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Pokretanje glasovne pretrage"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Pozovi <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"Nepoznato"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Govorna pošta"</string>
+ <string name="private_num" msgid="6374339738119166953">"Privatan broj"</string>
+ <string name="payphone" msgid="7726415831153618726">"Telefonska govornica"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Nije moguće pozvati ovaj broj"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Da biste podesili govornu poštu, idite u Meni &gt; Podešavanja."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Da biste pozvali govornu poštu, prvo isključite režim aviona."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Učitava se…"</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Učitava se sa SIM kartice…"</string>
+ <string name="simContacts_title" msgid="27341688347689769">"Kontakti na SIM kartici"</string>
+ <string name="add_contact_not_available" msgid="5547311613368004859">"Nema dostupne aplikacije za kontakte"</string>
+ <string name="voice_search_not_available" msgid="2977719040254285301">"Glasovna pretraga nije dostupna"</string>
+ <string name="call_not_available" msgid="8941576511946492225">"Nije moguće uputiti telefonski poziv jer je aplikacija Telefon onemogućena."</string>
+ <string name="activity_not_available" msgid="2287665636817987623">"Na ovom uređaju nema aplikacija za to"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Pretražite kontakte"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Dodajte broj ili pretražite kontakte"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Istorija poziva je prazna"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Pozovi"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nemate nijedan propušten poziv."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Prijemno sanduče govorne pošte je prazno."</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Prikaži samo omiljene"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Istorija poziva"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Svi"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Propušteni"</string>
+ <string name="call_log_voicemail_title" msgid="940422274047025948">"Govorna pošta"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Želite li da blokirate <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Pozivi sa ovog broja će biti blokirani i poruke govorne pošte će se automatski brisati."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Pozivi sa ovog broja će biti blokirani, ali pozivalac i dalje može da vam ostavlja poruke govorne pošte."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKIRAJ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Želite li da deblokirate <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Deblokiraćemo ovaj broj i moći će da vam upućuje pozive."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKIRAJ"</string>
+ <string name="tab_speed_dial" msgid="7552166276545648893">"Brzo biranje"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Istorija poziva"</string>
+ <string name="tab_all_contacts" msgid="1410922767166533690">"Kontakti"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Govorna pošta"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Uklonjeno je iz omiljenih"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Opozovi"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Pozovi <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Napravi novi kontakt"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Dodaj u kontakt"</string>
+ <string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Pošalji SMS"</string>
+ <string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Uputi video poziv"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokiraj broj"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"Novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Nemate nijedan kontakt na brzom biranju"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Dodaj omiljen kontakt"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Još uvek nemate nijedan kontakt"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Dodaj kontakt"</string>
+ <string name="contact_tooltip" msgid="2019777545923635266">"Dodirnite sliku da biste videli sve brojeve ili dodirnite i zadržite da biste promenili raspored"</string>
+ <string name="remove_contact" msgid="1080555335283662961">"Ukloni"</string>
+ <string name="call_log_action_video_call" msgid="7724301709041128296">"Video poziv"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Pošalji poruku"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detalji poziva"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Pozovi <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_incoming_missed_call" msgid="2381085098795943627">"Propušteni poziv: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_incoming_answered_call" msgid="7117665748428816544">"Primljeni poziv: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Nepročitana govorna poruka od <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Govorna poruka od <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_outgoing_call" msgid="6386364390619734734">"Pozvali ste: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_phone_account" msgid="1767072759541443861">"na nalogu <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
+ <string name="description_call_log_call_action" msgid="3682561657090693134">"Pozovi"</string>
+ <string name="description_call_action" msgid="4000549004089776147">"Pozovi <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Uputite video poziv kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_voicemail_action" msgid="8054891873788903063">"Pusti govornu poštu od <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reprodukuj govornu poštu kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pauziraj govornu poštu kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Izbriši govornu poštu kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> nova poruka govorne pošte</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> nove poruke govorne pošte</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> novih poruka govorne pošte</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Napravite kontakt za <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Dodajte <xliff:g id="NAMEORNUMBER">^1</xliff:g> postojećem kontaktu"</string>
+ <string name="description_details_action" msgid="2433827152749491785">"Detalji poziva za <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="toast_entry_removed" msgid="8010830299576311534">"Izbrisano iz istorije poziva"</string>
+ <string name="call_log_header_today" msgid="3225248682434212981">"Danas"</string>
+ <string name="call_log_header_yesterday" msgid="9139172458834033092">"Juče"</string>
+ <string name="call_log_header_other" msgid="5769921959940709084">"Stariji"</string>
+ <string name="call_detail_list_header" msgid="3752717059699600861">"Lista poziva"</string>
+ <string name="voicemail_speaker_on" msgid="209154030283487068">"Uključite zvučnik."</string>
+ <string name="voicemail_speaker_off" msgid="7390530056413093958">"Isključite zvučnik."</string>
+ <string name="voicemail_play_faster" msgid="3444751008615323006">"Brža reprodukcija."</string>
+ <string name="voicemail_play_slower" msgid="4544796503902818832">"Sporija reprodukcija."</string>
+ <string name="voicemail_play_start_pause" msgid="3687447935787768983">"Započnite ili pauzirajte reprodukciju."</string>
+ <string name="list_delimeter" msgid="4571593167738725100">", "</string>
+ <string name="display_options_title" msgid="7812852361055667468">"Opcije prikaza"</string>
+ <string name="sounds_and_vibration_title" msgid="1692290115642160845">"Zvuci i vibracija"</string>
+ <string name="accessibility_settings_title" msgid="6068141142874046249">"Pristupačnost"</string>
+ <string name="ringtone_title" msgid="760362035635084653">"Zvuk zvona telefona"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibriraj i za pozive"</string>
+ <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Zvuci numeričke tastature"</string>
+ <string name="dtmf_tone_length_title" msgid="8581125689808919460">"Trajanje tonova numeričke tastature"</string>
+ <string-array name="dtmf_tone_length_entries">
+ <item msgid="1036113889050195575">"Normalno"</item>
+ <item msgid="6177579030803486015">"Dugačko"</item>
+ </string-array>
+ <string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Brzi odgovori"</string>
+ <string name="call_settings_label" msgid="313434211353070209">"Pozivi"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blokiranje poziva"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokiranje poziva je privremeno isključeno"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Uvezi brojeve"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Ranije ste označili neke pozivaoce koje automatski treba preusmeriti na govornu poštu preko drugih aplikacija."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Prikaži brojeve"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvezi"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz nije uspeo"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokiraj broj"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj broj"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Pozivi sa ovih brojeva će biti blokirani i poruke govorne pošte će se automatski brisati."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Pozivi sa ovih brojeva će biti blokirani, ali pozivaoci sa ovih brojeva će i dalje moći da vam ostavljaju poruke govorne pošte."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokirani brojevi"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> je nevažeći."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> je već blokiran."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokiranje poziva je onemogućeno na 48 sati"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Onemogućeno je zato što je upućen hitan poziv."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"Nalozi za pozivanje"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Uključi"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Podesi dozvole"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Da biste omogućili brzo biranje, uključite dozvolu za Kontakte."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Da biste videli evidenciju poziva, uključite dozvolu za Telefon."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Da biste videli kontakte, uključite dozvolu za Kontakte."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Da biste pristupili govornoj pošti, uključite dozvolu za Telefon."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Da biste pretražili kontakte, uključite dozvole za Kontakte."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Da biste uputili poziv, uključite dozvolu za Telefon."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacija Telefon nema dozvolu za upisivanje u sistemska podešavanja."</string>
+</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 217ee866c..546ea58e0 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Набиране"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Телефон"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Телефон"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Клавиатура за набиране"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Телефон"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"История на обажданията"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Обаждане на <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Редактиране на номер преди обаждане"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Добавяне към контакти"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Изтриване от историята на обажданията"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Изчистване на историята на обажданията"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Изтриване на гласова поща"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Споделяне на гласова поща"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Няма обаждания"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"История на обажданията"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Сигнал за неправилен номер"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Копиране на номера"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Копиране на преписа"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Блокиране на номера"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Блокирахте <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Отблокиране на номера"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Отблокирахте <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ОТМЯНА"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Изтриване"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Редактиране на номера преди обаждане"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Изчистване на историята на обажданията"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Изтриване на гласова поща"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Гл. поща е изтрита"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ОТМЯНА"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Да се изчисти ли историята на обажд.?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Така ще се изтрият всички обаждания от историята ви"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Историята на обажд. се изчиства…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Нова гласова поща от <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Гл. поща не можа да се възпроизведе"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Буферира се..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Гласовата поща се зарежда…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Гласовата поща не можа да се зареди"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Само обаждания с гласова поща"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Само входящи обаждания"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Само изходящи обаждания"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Само пропуснати обаждания"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Визуална гласова поща"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Преглеждайте и прослушвайте гласовата си поща, без да се налага да се обаждате на номер. Може да бъдете таксувани за данни."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Настройки"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Няма налични актуализации на гласовата поща"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Има нова гласова поща, която не може да се зареди в момента."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Настройте гласовата си поща"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Няма звук"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Настройка"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Чуйте гл. си поща"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Най-бавна скорост"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Бавна скорост"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Нормална скорост"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Бърза скорост"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Най-бърза скорост"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Избиране на номер"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Избиране на номер"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"История на обажданията"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Още опции"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"клавиатура за набиране"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Копиране"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Показване само на изходящите"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Показване само на входящите"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Показване само на пропуснатите"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Изходящо видеообаждане"</string>
<string name="type_missed_video" msgid="954396897034220545">"Пропуснато видеообаждане"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Гласова поща"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Отхвърлено обаждане"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Блокирано обаждане"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Вх. обаждания"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Пускане на гласовата поща"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Преглед на контактa <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Обаждане до <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Подробности за контакта за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Нова гласова поща."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> обаждания."</string>
<string name="description_video_call" msgid="2933838090743214204">"Видеообаждане."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Изпращане на SMS до <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Гласова поща"</string>
<string name="private_num" msgid="6374339738119166953">"Частен номер"</string>
<string name="payphone" msgid="7726415831153618726">"Обществен телефон"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Не можете да се обадите на този номер"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"За да настроите гласовата поща, отворете „Меню“ &gt; „Настройки“."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"За да чуете гласовата си поща, първо изключете самолетния режим."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Гласовото търсене не е налице"</string>
<string name="call_not_available" msgid="8941576511946492225">"Не може да се осъществи телефонно обаждане, защото приложението Телефон е деактивирано."</string>
<string name="activity_not_available" msgid="2287665636817987623">"На устройството няма приложение за това действие"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Въведете име или тел. номер"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Няма обаждания"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Няма скорошни съобщения в гласовата поща"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Търсене в контактите"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Доб. номер или потърс. контакт"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Историята на обажданията ви е празна"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Извършване на обаждане"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Нямате пропуснати обаждания."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Входящата ви гласова поща е празна."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Показване само на любимите"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"История"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"История на обажданията"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Всички"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропуснати"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Гл. поща"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Да се блокира ли <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Обажданията от този номер ще бъдат блокирани, а гласовите съобщения – автоматично изтривани."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Обажданията от този номер ще бъдат блокирани, но обаждащият се пак може да е в състояние да ви оставя гласови съобщения."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"БЛОКИРАНЕ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Да се отблокира ли <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Този номер вече няма да е блокиран за извършване на обаждания до вас."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ОТБЛОКИРАНЕ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Бързо набиране"</string>
- <string name="tab_recents" msgid="929949073851377206">"Скорошни"</string>
+ <string name="tab_history" msgid="2563144697322434940">"История на обажданията"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Контакти"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Гласова поща"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Премахнато от любимите"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Отмяна"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Обаждане на <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Създаване на нов контакт"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Добавяне към съществуващ контакт"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Добавяне към контакт"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Изпращане на SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Провеждане на видеообаждане"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Преглед на цялата история на обажданията"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Блокиране на номера"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуснати обаждания"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Чрез бързото набиране се свързвате с едно докосване с любими контакти и с номера, на които се обаждате често"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Няма контакти"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Още нямате контакти за бързо набиране"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Добавяне на любим контакт"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Още нямате контакти"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Добавяне на контакт"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Докоснете изображението, за да видите всички номера, или го натиснете и задръжте за пренареждане"</string>
<string name="remove_contact" msgid="1080555335283662961">"Премахване"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ВСИЧКИ КОНТАКТИ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Видеообаждане"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ПРОСЛУШВАНЕ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Преглед на подробностите"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Изпращане на съобщение"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Подробности за обаждането"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Обаждане до <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Пропуснато обаждане от <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Прието обаждане от <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Непрочетено гласово съобщение от <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Гласово съобщение от <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Обаждане до <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"на <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Обаждане"</string>
<string name="description_call_action" msgid="4000549004089776147">"Обаждане на <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Видеообаждане до <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Видеообаждане до <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Прослушване на гласовата поща от <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Пускане на гласовата поща от <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Поставяне на пауза на гласовата поща от <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Изтриване на гласовата поща от <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> нови гласови съобщения</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ново гласово съобщение</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Създаване на контакт за <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Добавяне на <xliff:g id="NAMEORNUMBER">^1</xliff:g> към съществуващ контакт"</string>
<string name="description_details_action" msgid="2433827152749491785">"Подробности за обаждането за <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Изтрито от историята на обажданията"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Подаване на сигнал"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Днес"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Вчера"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"По-стари"</string>
@@ -179,7 +210,7 @@
<string name="accessibility_settings_title" msgid="6068141142874046249">"Достъпност"</string>
<string name="ringtone_title" msgid="760362035635084653">"Мелодия на телефона"</string>
<string name="vibrate_on_ring_title" msgid="3362916460327555241">"Вибриране и при обаждания"</string>
- <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Клавиат. за набиране: Мелодии"</string>
+ <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Звук при набиране"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Продължителност на звука при набиране"</string>
<string-array name="dtmf_tone_length_entries">
<item msgid="1036113889050195575">"Нормално"</item>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Бързи отговори"</string>
<string name="call_settings_label" msgid="313434211353070209">"Обаждания"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Блокиране на обажданията"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокир. на обажданията е временно изкл."</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокирането на обажданията е деактивирано, защото в рамките на последните 48 часа сте се свързали със спешните служби от този телефон. То автоматично ще бъде активирано отново, когато периодът от 48 часа изтече."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Импортиране на номерата"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"По-рано означихте обажданията от някои контакти автоматично да се прехвърлят към гласова поща чрез други приложения."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Преглед на номерата"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортиране"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импортирането не бе успешно"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Отблокиране на номера"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Добавяне на номер"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Обажданията от тези номера ще бъдат блокирани, а гласовите съобщения – автоматично изтривани."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Обажданията от тези номера ще бъдат блокирани, но обаждащите се от тях пак може да са в състояние да ви оставят гласови съобщения."</string>
+ <string name="block_list" msgid="7760188925338078011">"Блокирани номера"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> е невалиден."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> вече е блокиран."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокирането на обажданията е деактивирано за 48 часа"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Деактивирано, тъй като бе извършено спешно обаждане."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Профили за обаждане"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Включване"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Задаване на разрешенията"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"За да активирате бързото набиране, включете разрешението за Контакти."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"За да видите списъка с обажданията си, включете разрешението за Телефон."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"За да видите контактите си, включете разрешението за Контакти."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"За да осъществите достъп до гласовата си поща, включете разрешението за Телефон."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"За да търсите в контактите си, включете разрешенията за тях."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"За да извършите обаждане, включете разрешението за Телефон."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Приложението Телефон няма разрешение да записва в системните настройки."</string>
</resources>
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index 64607649b..9de72a55c 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"ডায়ালার"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ফোন"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ফোন"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ফোন ডায়ালপ্যাড"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ফোন"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"কল ইতিহাস"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> কে কল করুন"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"কল করার আগে নম্বর সম্পাদনা করুন"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"পরিচিতিগুলিতে যোগ করুন"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"কল ইতিহাস থেকে মুছুন"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"কল ইতিহাস সাফ করুন"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ভয়েসমেল মুছুন"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ভয়েসমেল ভাগ করুন"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"কোনো কল নেই"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"পুরোনো কলের তালিকা"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"ভুল নম্বর প্রতিবেদন করুন"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"নম্বর প্রতিলিপি করুন"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ট্রান্সক্রিপশান প্রতিলিপি করুন"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"নম্বর অবরোধ করুন"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> অবরোধ করা হয়েছে"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"নম্বর অবরোধ মুক্ত করুন"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> অবরোধ মুক্ত করা হয়েছে"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"পূর্বাবস্থায় ফিরুন"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"মুছুন"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"কল করার আগে নম্বর সম্পাদনা করুন"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"পুরোনো কলের তালিকা সাফ করুন"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ভয়েসমেল মুছুন"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ভয়েসমেল মোছা হয়েছে"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"পূর্বাবস্থায় ফিরুন"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"কল ইতিহাস সাফ করবেন?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"এটি আপনার ইতিহাস থেকে সমস্ত কল মুছে দেবে"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"কল ইতিহাস সাফ করা হচ্ছে…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> এর থেকে নতুন ভয়েসমেল"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"ভয়েসমেল প্লে করা যায়নি"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"বাফারিং..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"ভয়েসমেল লোড করা হচ্ছে..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"ভয়েসমেল লোড করা যায়নি"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"কেবলমাত্র ভয়েসমেলের সাথে কলগুলি"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"কেবলমাত্র ইনকামিং কলগুলি"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"কেবলমাত্র আউটগোয়িং কলগুলি"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"কেবলমাত্র মিসড কলগুলি"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"ভিজ্যুয়াল ভয়েসমেল"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"কল করার একটি নম্বর ছাড়াই আপনার ভয়েসমেল দেখুন এবং শুনুন। ডেটা চার্জ প্রযোজ্য হতে পারে।"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"সেটিংস"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"ভয়েসমেলের আপডেটগুলি অনুপলব্ধ"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"নতুন ভয়েসমেল অপেক্ষা করছে৷ এখনই লোড করা যাবে না৷"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"আপনার ভয়েসমেল সেট আপ করুন"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"অডিও অনুপলব্ধ"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"সেট আপ"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ভয়েসমেলে কল করুন"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ধীরতম গতি"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ধীর গতি"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"স্বাভাবিক গতি"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"দ্রুত গতি"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"দ্রুততম গতি"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"নম্বর চয়ন করুন"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"নম্বর চয়ন করুন"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"কল ইতিহাস"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"আরো বিকল্প"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ডায়াল প্যাড"</string>
- <string name="menu_copy" msgid="6108677035381940698">"অনুলিপি করুন"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"কেবলমাত্র আউটগোয়িং দেখান"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"কেবলমাত্র ইনকামিং দেখান"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"কেবলমাত্র মিসড দেখান"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"আউটগোয়িং ভিডিও কল"</string>
<string name="type_missed_video" msgid="954396897034220545">"মিস করা ভিডিও কল"</string>
<string name="type_voicemail" msgid="5153139450668549908">"ভয়েসমেল"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"অস্বীকৃত কল"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"অবরুদ্ধ কল"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ইনকামিং কলগুলি"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"ভয়েসমেল প্লে করুন"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> পরিচিতি দেখুন"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> কে কল করুন"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> পরিচিতির বিশদ বিবরণ"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"নতুন ভয়েসমেল৷"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>টি কল৷"</string>
<string name="description_video_call" msgid="2933838090743214204">"ভিডিও কল।"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> কে SMS পাঠান"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"ভয়েসমেল"</string>
<string name="private_num" msgid="6374339738119166953">"ব্যক্তিগত নম্বর"</string>
<string name="payphone" msgid="7726415831153618726">"পে ফোন"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> মিনিট <xliff:g id="SECONDS">%s</xliff:g> সেকেন্ড"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> তারিখে <xliff:g id="TIME">%2$s</xliff:g>\'টায়"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"এই নম্বরে কল করতে পারবেন না"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ভয়েসমেল সেট আপ করতে, মেনু &gt; সেটিংস এ যান৷"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ভয়েসমেলে কল করতে, সবার আগে বিমানমোড বন্ধ করুন৷"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"ভয়েস অনুসন্ধান অনুপলব্ধ"</string>
<string name="call_not_available" msgid="8941576511946492225">"কোনো ফোন কল করা যাবে না কারণ ফোন অ্যাপ্লিকেশানটি অক্ষম করা হয়েছে৷"</string>
<string name="activity_not_available" msgid="2287665636817987623">"এর জন্য এই ডিভাইসে কোনো অ্যাপ্লিকেশান নেই"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"কোনো নাম বা ফোন নম্বর লিখুন"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"কোনো কল নেই"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"কোনো সাম্প্রতিক ভয়েসমেল নেই"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"পরিচিতিগুলি অনুসন্ধান করুন"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"সংখ্যা যোগ করুন বা পরিচিতিগুলি অনুসন্ধান করুন"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"আপনার পুরোনো কলের তালিকা খালি আছে"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"একটি কল করুন"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"আপনার কোনো মিসড কল নেই।"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"আপনার ভয়েসমেলের ইনবক্স খালি রয়েছে।"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"কেবলমাত্র পছন্দসইগুলি দেখান"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ইতিহাস"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"পুরোনো কলের তালিকা"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"সমস্ত"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"মিসড"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"ভয়েসমেল"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> অবরোধ করবেন?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"এই নম্বর থেকে আসা কলগুলি অবরোধ করা হবে এবং ভয়েসমেলগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে৷"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"এই নম্বর থেকে আসা কলগুলি অবরোধ করা হবে, কিন্তু কলার হয়ত এখনও আপনাকে ভয়েসমেলগুলি পাঠাতে পারবে৷"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"অবরোধ করুন"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> অবরোধ মুক্ত করবেন?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"আপনাকে কল করার জন্য এই নম্বরটি আর অবরুদ্ধ হিসাবে থাকবে না৷"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"অবরোধ মুক্ত করুন"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"দ্রুত ডায়াল"</string>
- <string name="tab_recents" msgid="929949073851377206">"সাম্প্রতিকগুলি"</string>
+ <string name="tab_history" msgid="2563144697322434940">"পুরোনো কলের তালিকা"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"পরিচিতিগুলি"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"ভয়েস মেল"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"পছন্দসই থেকে সরানো হয়েছে"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"পূর্বাবস্থায় ফিরুন"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> কে কল করুন"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"নতুন পরিচিতি তৈরি করুন"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"বিদ্যমান পরিচিতিতে যোগ করুন"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"একটি পরিচিতিতে যোগ করুন"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS পাঠান"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ভিডিও কল করুন"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"সম্পূর্ণ কল ইতিহাস দেখুন"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"নম্বর অবরোধ করুন"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g>টি নতুন মিসড কল"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"আপনি প্রায়শই কল করেন এমন পছন্দসই ব্যক্তি এবং নম্বরগুলির জন্য দ্রুত ডায়াল হল একবার-স্পর্শের মাধ্যমে ডায়াল করার ব্যবস্থা"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"কোনো পরিচিতি নেই"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"আপনার স্পীড ডায়ালে এখনও পর্যন্ত কেউ নেই"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"একটি পছন্দসই যোগ করুন"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"আপনার এখনও পর্যন্ত কোনো পরিচিতি নেই"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"একটি পরিচিতি যোগ করুন"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"সমস্ত নম্বর দেখতে চিত্রে স্পর্শ করুন বা রেকর্ড করতে ধরে রাখুন"</string>
<string name="remove_contact" msgid="1080555335283662961">"সরান"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"সকল পরিচিতি"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"ভিডিও কল"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"শুনুন"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"বিশদ বিবরণ দেখুন"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"একটি বার্তা পাঠান"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"কলের বিশদ বিবরণ"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর কল"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> থেকে মিস হওয়া কল৷"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> এর থেকে উত্তর দেওয়া কল৷"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> , <xliff:g id="TYPEORLOCATION">^2</xliff:g> , <xliff:g id="TIMEOFCALL">^3</xliff:g> , <xliff:g id="PHONEACCOUNT">^4</xliff:g> এর থেকে অপঠিত ভয়েসমেল৷"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> , <xliff:g id="TYPEORLOCATION">^2</xliff:g> , <xliff:g id="TIMEOFCALL">^3</xliff:g> , <xliff:g id="PHONEACCOUNT">^4</xliff:g> এর থেকে ভয়েসমেল৷"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> এ কল করুন৷"</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> এ"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"কল করুন"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর কল"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর জন্য ভিডিও কল৷"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-এ ভিডিও কল করুন।"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর থেকে আসা ভয়েসমেল শোনা হয়েছে"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর থেকে ভয়েসমেল প্লে করুন"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর থেকে ভয়েসমেলে বিরাম দিন"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর থেকে ভয়েসমেল মুছুন"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g>টি নতুন ভয়েসমেল</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>টি নতুন ভয়েসমেল</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর জন্য পরিচিতি তৈরি করুন"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"বিদ্যমান পরিচিতিতে <xliff:g id="NAMEORNUMBER">^1</xliff:g> যোগ করুন"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> এর কলের বিবরণ"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"কলের ইতিহাস থেকে মোছা হয়েছে"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"প্রতিবেদন করুন"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"আজ"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"গতকাল"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"পুরোনো"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"দ্রুত প্রতিক্রিয়াগুলি"</string>
<string name="call_settings_label" msgid="313434211353070209">"কল"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"কল অবরোধ করা"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"কল অবরোধ সাময়িকভাবে বন্ধ রয়েছে"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"কল অবরোধ অক্ষম করা হয়েছে কারণ আপনি গত ২৮ ঘন্টার মধ্যে এই ফোন থেকে জরুরি পরিষেবায় যোগাযোগ করেছেন। ২৮ ঘন্টার সময়সীমা পেরিয়ে গেলেই এটি স্বয়ংক্রিয়ভাবে পুনরায় সক্ষম হবে।"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"নম্বরগুলি আমদানি করুন"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"আপনি আগে থেকেই অন্য অ্যাপ্লিকেশানগুলির মাধ্যমে স্বয়ংক্রিয়ভাবে ভয়েস মেল পাঠানোর জন্য কিছু কলারকে চিহ্নিত করেছেন৷"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"নম্বরগুলি দেখুন"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"আমদানি করুন"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"আমদানি ব্যর্থ হয়েছে"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"নম্বর অবরোধ মুক্ত করুন"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"একটি নম্বর যোগ করুন"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"এই নম্বরগুলি থেকে আসা কলগুলি অবরোধ করা হবে এবং ভয়েসমেলগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে৷"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"এই নম্বরগুলি থেকে আসা কলগুলি অবরোধ করা হবে, কিন্তু তারা হয়ত এখনও আপনাকে ভয়েসমেলগুলি পাঠাতে পারবে৷"</string>
+ <string name="block_list" msgid="7760188925338078011">"অবরুদ্ধ নম্বরগুলি"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> অবৈধ৷"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ইতিমধ্যেই অববোধ করা রয়েছে৷"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"৪৮ ঘন্টার জন্য কল অবরোধ করা অক্ষম করা হয়েছে"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"কোনো জরুরি কল করার কারণে অক্ষম করা হয়েছে৷"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"কলিং অ্যাকাউন্টগুলি"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"চালু করুন"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"অনুমতিগুলি সেট করুন"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"স্পীড ডায়াল সক্ষম করতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"আপনার কল লগ দেখতে, ফোনের অনুমতি চালু করুন।"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"আপনার পরিচিতিগুলি দেখতে, পরিচিতিগুলির অনুমতি চালু করুন।"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"আপনার ভয়েসমেল অ্যাক্সেস করতে, ফোনের অনুমতি চালু করুন।"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"আপনার পরিচিতিগুলি অনুসন্ধান করতে, পরিচিতির অনুমতিগুলি চালু করুন।"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"একটি কল করতে, ফোনের অনুমতি চালু করুন।"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ফোনের অ্যাপ্লিকেশানকে সিস্টেম সেটিংসে লেখার অনুমতি দেওয়া হয়নি।"</string>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 57d64b5a7..349dbbb1a 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Telèfon"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telèfon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telèfon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Teclat del telèfon"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telèfon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historial de trucades"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Truca a <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edita el número abans de trucar"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Afegeix als contactes"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Suprimeix de l\'historial de trucades"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Esborra l\'historial de trucades"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Suprimeix missatge de veu"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Comparteix la bústia de veu"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"No hi ha cap trucada."</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historial de trucades"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Informa d\'un número incorrecte"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copia el número"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copia la transcripció"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloqueja el número"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"S\'ha bloquejat el número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Desbloqueja el número"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"S\'ha desbloquejat el número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"DESFÉS"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Suprimeix"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edita el número abans de trucar"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Esborra l\'historial de trucades"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Suprimeix la bústia de veu"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correu de veu suprimit"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESFÉS"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Esborrar l\'historial de trucades?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Amb aquesta acció se suprimiran totes les trucades de l\'historial."</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Se suprimiran totes les trucades de l\'historial."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Esborrant historial de trucades..."</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> bústies de veu </item>
@@ -39,25 +46,22 @@
<string name="notification_action_voicemail_play" msgid="6113133136977996863">"Reprodueix"</string>
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nou missatge de veu de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
- <string name="voicemail_playback_error" msgid="3356071912353297599">"Error en reproduir el correu de veu."</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"S\'està emmagatzemant a mem. intermèd.…"</string>
- <string name="voicemail_fetching_content" msgid="1287895365599580842">"S\'està carregant el correu de veu..."</string>
- <string name="voicemail_fetching_timout" msgid="3959428065511972176">"No s\'ha pogut carregar el correu de veu."</string>
+ <string name="voicemail_playback_error" msgid="3356071912353297599">"Error en reproduir el missatge de veu."</string>
+ <string name="voicemail_fetching_content" msgid="1287895365599580842">"S\'està carregant la bústia de veu..."</string>
+ <string name="voicemail_fetching_timout" msgid="3959428065511972176">"No s\'ha pogut carregar la bústia de veu."</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Només trucades amb bústia de veu"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Només trucades entrants"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Només trucades sortints"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Només trucades perdudes"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Bústia de veu visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Consulta i escolta els missatges de la bústia de veu sense haver de trucar a cap número de telèfon. És possible que s\'apliquin càrrecs de dades."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Configuració"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"No hi ha cap actualització de correu de veu disponible."</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Hi ha un correu de veu nou en espera. Ara no es pot carregar."</string>
- <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configura el correu de veu."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configura la bústia de veu."</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"L\'àudio no està disponible."</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configura"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Truca a bústia veu"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Velocitat mínima"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Velocitat baixa"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Velocitat normal"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Velocitat alta"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Velocitat màxima"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Tria d\'un número"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Tria d\'un número"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de trucades"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Més opcions"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclat"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copia"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostra només trucades sortints"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostra només trucades entrants"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Mostra només trucades perdudes"</string>
@@ -86,7 +89,7 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Tots els contactes"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detalls de la trucada"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Informació no disponible"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utilitza el teclat per tons"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utilitza el teclat de tons"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Torna a la trucada en curs"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Afegeix una trucada"</string>
<string name="type_incoming" msgid="6502076603836088532">"Trucada entrant"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Videotrucada sortint"</string>
<string name="type_missed_video" msgid="954396897034220545">"Videotrucada perduda"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Bústia de veu"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Trucada rebutjada"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Trucada bloquejada"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Trucades entrants"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Reprodueix el missatge de veu"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Visualitza el contacte <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Truca a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Dades de contacte de: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Correu de veu nou"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> trucades"</string>
<string name="description_video_call" msgid="2933838090743214204">"Videotrucada"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Envia un SMS a <xliff:g id="NAME">%1$s</xliff:g>."</string>
@@ -109,13 +113,17 @@
<string name="description_start_voice_search" msgid="520539488194946012">"Inicia la cerca per veu"</string>
<string name="menu_callNumber" msgid="997146291983360266">"Truca al <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Desconegut"</string>
- <string name="voicemail" msgid="3851469869202611441">"Correu de veu"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Bústia de veu"</string>
<string name="private_num" msgid="6374339738119166953">"Número privat"</string>
<string name="payphone" msgid="7726415831153618726">"Telèfon públic"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> a les <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"No es pot trucar a aquest número."</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Per configurar la bústia de veu, vés a Menú &gt; Configuració."</string>
- <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Per trucar al correu de veu, primer has de desactivar el mode d\'avió."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Per trucar a la bústia de veu, primer has de desactivar el mode d\'avió."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"S\'està carregant…"</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"La cerca per veu no està disponible."</string>
<string name="call_not_available" msgid="8941576511946492225">"No es pot fer una trucada telefònica perquè s\'ha desactivat l\'aplicació de telèfon."</string>
<string name="activity_not_available" msgid="2287665636817987623">"No hi ha cap aplicació per a això en aquest dispositiu."</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Escriu un nom o un telèfon"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"No hi ha cap trucada."</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"No hi ha cap correu de veu recent."</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Cerca contactes"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Afegeix núm. o cerca contactes"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"El teu historial de trucades està buit"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Fes una trucada"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"No tens cap trucada perduda."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La safata d\'entrada de la bústia de veu està buida."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostra només els preferits"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historial de trucades"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Totes"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdudes"</string>
- <string name="call_log_voicemail_title" msgid="940422274047025948">"Bústia veu"</string>
+ <string name="call_log_voicemail_title" msgid="940422274047025948">"Missatge de veu"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vols bloquejar el número <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Es bloquejaran les trucades d\'aquest número i els missatges de veu se suprimiran automàticament."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Es bloquejaran les trucades d\'aquest número, però és possible que continuïn deixant-te missatges de veu."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUEJA"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vols desbloquejar el número <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Les trucades d\'aquest número deixaran d\'estar bloquejades."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEJA"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Marcatge ràpid"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recents"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historial de trucades"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contactes"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Bústia de veu"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Eliminat dels preferits"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Desfés"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Truca al <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Crea un contacte nou"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Afegeix a un contacte existent"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Afegeix a un contacte"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Envia SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Fes una videotrucada"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Consulta tot l\'historial de trucades"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloqueja el número"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> trucades perdudes noves"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"El marcatge ràpid et permet trucar als teus contactes preferits i als números als quals truques més sovint amb un toc."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"No hi ha cap contacte."</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Encara no tens cap contacte al marcatge ràpid"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Afegeix un contacte preferit"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Encara no tens cap contacte"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Afegeix un contacte"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Toca la imatge per veure tots els números i toca-la i mantén-la premuda per reordenar-los."</string>
<string name="remove_contact" msgid="1080555335283662961">"Suprimeix"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TOTS ELS CONTACTES"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videotrucada"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ESCOLTA"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Mostra els detalls"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Envia un missatge"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detalls de la trucada"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Truca a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Trucada perduda de: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Trucada resposta de: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Missatge de veu no escoltat del contacte <xliff:g id="NAMEORNUMBER">^1</xliff:g>: <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Missatge de veu del contacte <xliff:g id="NAMEORNUMBER">^1</xliff:g>: <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Trucada a <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"a <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Truca"</string>
<string name="description_call_action" msgid="4000549004089776147">"Truca a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videotrucada a: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videotrucada amb <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Escolta el missatge a la bústia de veu de: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reprodueix el missatge de veu de: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Posa en pausa el missatge de veu de: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Suprimeix el missatge de veu de: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nous correus de veu</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nou correu de veu</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Crea un contacte per a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Afegeix <xliff:g id="NAMEORNUMBER">^1</xliff:g> a un contacte existent"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detalls de la trucada de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"S\'ha suprimit de l\'historial de trucades."</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Informa"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Avui"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Ahir"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Més antiga"</string>
@@ -178,7 +209,7 @@
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Sons i vibració"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Accessibilitat"</string>
<string name="ringtone_title" msgid="760362035635084653">"So de trucada"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibra també per a les trucades"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibra també en trucades"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tons del teclat"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Durada del to del teclat"</string>
<string-array name="dtmf_tone_length_entries">
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respostes ràpides"</string>
<string name="call_settings_label" msgid="313434211353070209">"Trucades"</string>
- <string name="phone_account_settings_label" msgid="5864322009841175294">"Comptes per a trucades"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Bloqueig de trucades"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueig de trucades desactivat tempor."</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importa els números"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Has indicat que les trucades d\'alguns contactes s\'enviïn automàticament a la bústia de veu mitjançant altres aplicacions."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Mostra els números"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importa"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error en la importació"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloqueja el número"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Afegeix un número"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Es bloquejaran les trucades d\'aquests números i els missatges de veu se suprimiran automàticament."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Es bloquejaran les trucades d\'aquests números, però és possible que continuïn deixant-te missatges de veu."</string>
+ <string name="block_list" msgid="7760188925338078011">"Números bloquejats"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> no és vàlid."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ja està bloquejat."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"El bloqueig de trucades s\'ha desactivat durant 48 hores"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"S\'ha desactivat perquè s\'ha fet una trucada d\'emergència."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"Comptes de trucades"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Activa"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Defineix els permisos"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Activa el permís Contactes per activar el marcatge ràpid."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Activa el permís Telèfon per veure el teu registre de trucades."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Activa el permís Contactes per veure els teus contactes."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Activa el permís Telèfon per accedir a la bústia de veu."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Per cercar els teus contactes, activa els permisos de Contactes."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Activa el permís Telèfon per fer una trucada."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"L\'aplicació Telèfon no té permís per escriure a la configuració del sistema."</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index ec4725117..b1b2386ff 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Vytáčení"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Číselník telefonu"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historie volání"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Volat kontakt <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Před voláním upravit číslo"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Přidat do kontaktů"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Smazat z historie volání"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Vymazat historii volání"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Smazat hlasovou zprávu"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Sdílet hlasovou schránku"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Žádná volání"</string>
- <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vymazat historii volání?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tímto z historie smažete všechna volání."</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historie volání"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Nahlásit nesprávné číslo"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopírovat číslo"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopírovat přepis"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokovat číslo"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> zablokováno"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Zrušit blokování čísla"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> odblokováno"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"VRÁTIT"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Smazat"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Před voláním upravit číslo"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Vymazat historii volání"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Smazat hlasovou zprávu"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Hlas. zpráva smazána"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"VRÁTIT"</string>
+ <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vymazat historii hovorů?"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tímto z historie smažete všechny hovory."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Mazání historie volání…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="few"> <xliff:g id="COUNT">%1$d</xliff:g> hlasové zprávy </item>
@@ -42,24 +49,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nová hlasová zpráva – <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Hlasovou schránku nelze přehrát."</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Ukládání do vyrovnávací paměti…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Načítání hlasové schránky…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Hlasovou schránku nelze načíst."</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Jen hovory s hlasovou schránkou"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Jen příchozí hovory"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Jen odchozí hovory"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Jen zmeškané hovory"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizuální hlasová schránka"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Dívejte se na hlasové zprávy a poslouchejte je, aniž byste někam museli volat. Mohou být účtovány poplatky za datový přenos."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Nastavení"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Aktualizace hlasové schránky nejsou k dispozici."</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Máte novou hlasovou zprávu. Aktuálně ji však nelze načíst."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Nastavte si hlasovou schránku."</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Zvuk není k dispozici."</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Nastavit"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Volat hlas. schránku"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Nejnižší rychlost"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Nízká rychlost"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Běžná rychlost"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Vysoká rychlost"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Nejvyšší rychlost"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Zvolte číslo"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Zvolte číslo"</string>
@@ -75,7 +79,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historie volání"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Více možností"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"číselník"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopírovat"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Zobrazit pouze odchozí"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Zobrazit pouze příchozí"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Zobrazit pouze zmeškané"</string>
@@ -98,23 +101,28 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Odchozí videohovor"</string>
<string name="type_missed_video" msgid="954396897034220545">"Zmeškaný videohovor"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Hlasová schránka"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Zamítnutý hovor"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokovaný hovor"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Příchozí volání"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Přehrát hlasovou schránku"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Zobrazit kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Volat kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Podrobnosti kontaktu pro <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nová hlasová zpráva"</string>
<string name="description_num_calls" msgid="1601505153694540074">"Počet hovorů: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>"</string>
<string name="description_video_call" msgid="2933838090743214204">"Videohovor"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Odeslat zprávu SMS kontaktu <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nevyslechnutá hlasová zpráva"</string>
<string name="description_start_voice_search" msgid="520539488194946012">"Spustit hlasové vyhledávání"</string>
- <string name="menu_callNumber" msgid="997146291983360266">"Zavolat na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Zavolat <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Neznámé"</string>
<string name="voicemail" msgid="3851469869202611441">"Hlasová schránka"</string>
<string name="private_num" msgid="6374339738119166953">"Soukromé číslo"</string>
<string name="payphone" msgid="7726415831153618726">"Telefonní automat"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> v <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Na toto číslo nelze volat."</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Chcete-li nastavit hlasovou schránku, přejděte do části Menu &gt; Nastavení."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Chcete-li volat hlasovou schránku, nejdříve vypněte režim Letadlo."</string>
@@ -127,45 +135,70 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Hlasové vyhledávání není k dispozici."</string>
<string name="call_not_available" msgid="8941576511946492225">"Telefonický hovor nelze uskutečnit, protože aplikace Telefon byla zakázána."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Pro tuto akci v zařízení nemáte žádnou aplikaci."</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Zadejte jméno nebo tel. číslo."</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Žádná volání"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Žádné nedávné hlasové zprávy"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Prohledat kontakty"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Přidejte číslo nebo vyhledejte kontakty"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Historie volání je prázdná"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zavolat"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nemáte žádné zmeškané hovory."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hlasová schránka je prázdná."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Zobrazit pouze oblíbené"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historie"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historie volání"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Všechny"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Zmeškané"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Schránka"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokovat číslo <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Volání z tohoto čísla budou zablokována. Hlasové zprávy budou automaticky smazány."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Volání z tohoto čísla budou zablokována, avšak volající vám bude moci zanechat hlasovou zprávu."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKOVAT"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Odblokovat číslo <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Příchozí hovory z tohoto čísla již nebudou blokovány."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ODBLOKOVAT"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Rychlá volba"</string>
- <string name="tab_recents" msgid="929949073851377206">"Poslední"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historie volání"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontakty"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Hlasová schránka"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Odebráno z oblíbených"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Vrátit zpět"</string>
- <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zavolat na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zavolat <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Vytvořit nový kontakt"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Přidat k existujícímu kontaktu"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Přidat ke kontaktu"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Odeslat SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Uskutečnit videohovor"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Zobrazení celé historie volání"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokovat číslo"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Nové zmeškané hovory: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Rychlá volba je vytáčení oblíbených kontaktů a často volaných čísel jedním klepnutím."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Žádné kontakty"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"V rychlém vytáčení zatím nemáte žádný kontakt."</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Přidat oblíbený kontakt"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Zatím nemáte žádné kontakty"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Přidat kontakt"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Klepnutím na obrázek zobrazíte všechna čísla. Klepnutím a podržením upravíte uspořádání."</string>
<string name="remove_contact" msgid="1080555335283662961">"Odstranit"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VŠECHNY KONTAKTY"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videohovor"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"POSLOUCHAT"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Zobrazit podrobnosti"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Odeslat zprávu"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Podrobnosti hovoru"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Volat kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Nepřijatý hovor: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Přijatý hovor: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Nepřečtená hlasová zpráva od <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Hlasová zpráva od <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Odchozí hovor: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"v účtu <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Volat"</string>
<string name="description_call_action" msgid="4000549004089776147">"Volat kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Odchozí videohovor s: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videohovor s kontaktem <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Poslech hlasové schránky od <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Přehrát hlasovou zprávu od kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pozastavit hlasovou zprávu od kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Smazat hlasovou zprávu od kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> nové zprávy v hlasové schránce</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> nové zprávy v hlasové schránce</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nových zpráv v hlasové schránce</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nová zpráva v hlasové schránce</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Pro záznam <xliff:g id="NAMEORNUMBER">^1</xliff:g> se vytvoří nový kontakt"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Záznam <xliff:g id="NAMEORNUMBER">^1</xliff:g> se přidá k existujícímu kontaktu"</string>
<string name="description_details_action" msgid="2433827152749491785">"Podrobnosti volání <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Smazáno z historie volání"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Nahlásit"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Dnes"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Včera"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Starší"</string>
@@ -178,7 +211,7 @@
<string name="list_delimeter" msgid="4571593167738725100">", "</string>
<string name="display_options_title" msgid="7812852361055667468">"Možnosti zobrazení"</string>
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Zvuky a vibrace"</string>
- <string name="accessibility_settings_title" msgid="6068141142874046249">"Usnadnění"</string>
+ <string name="accessibility_settings_title" msgid="6068141142874046249">"Přístupnost"</string>
<string name="ringtone_title" msgid="760362035635084653">"Vyzváněcí tón telefonu"</string>
<string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibrovat také u volání"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tóny číselníku"</string>
@@ -189,5 +222,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Rychlé odpovědi"</string>
<string name="call_settings_label" msgid="313434211353070209">"Volání"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blokování hovorů"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokování hovorů je dočasně vypnuto"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importovat čísla"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Pomocí dalších aplikací jste dříve některé volající označili k automatickému přesměrování do hlasové schránky."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Zobrazit čísla"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importovat"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import se nezdařil."</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zrušit blokování čísla"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Přidat číslo"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Volání z těchto čísel budou zablokována. Hlasové zprávy budou automaticky smazány."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Volání z těchto čísel budou zablokována, avšak volající vám budou moci zanechat hlasovou zprávu."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokovaná čísla"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je neplatné."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je již blokováno."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokování hovorů je vypnuto na 48 hodin"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Vypnuto z důvodu provedeného tísňového volání"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Účty pro volání"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Zapnout"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Nastavit oprávnění"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Chcete-li povolit rychlé vytáčení, aktivujte oprávnění Kontakty."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Chcete-li zobrazit seznam hovorů, aktivujte oprávnění Telefon."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Chcete-li zobrazit kontakty, aktivujte oprávnění Kontakty."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Chcete-li přejít do hlasové schránky, aktivujte oprávnění Telefon."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Chcete-li vyhledat kontakty, zapněte oprávnění Kontakty."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Chcete-li uskutečnit hovor, aktivujte oprávnění Telefon."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikace Telefon nemá oprávnění provádět zápis do nastavení systému."</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 2ea4e7644..0298023e0 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Opkald"</string>
- <string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
- <string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Opkaldshistorik"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Ring til <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Rediger nummer inden opkald"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Føj til kontakter"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Slet fra opkaldshistorik"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Ryd opkaldshistorik"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Slet telefonsvarerbesked"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Del telefonsvarerbesked"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Ingen opkald"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Opkald"</string>
+ <string name="launcherActivityLabel" msgid="1129729740601172692">"Opkald"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefontastatur"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Opkald"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Opkaldshistorik"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Rapportér et forkert nummer"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopiér nummeret"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiér transskriptionen"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloker nummeret"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> er blokeret"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Ophæv blokering af nummeret"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> er ikke blokeret"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"FORTRYD"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Slet"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Rediger nummeret før opkald"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Ryd opkaldshistorik"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Slet talemeddelelsen"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Talebeskeden blev slettet"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"FORTRYD"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vil du rydde opkaldshistorikken?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Dette vil slette alle opkald fra din historik"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Opkaldshistorik ryddes..."</string>
@@ -38,26 +45,23 @@
</plurals>
<string name="notification_action_voicemail_play" msgid="6113133136977996863">"Spil"</string>
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
- <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nye besked fra <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Ny besked fra <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Telefonsvarerbesked kan ikke afspilles"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Gemmer i buffer..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Telefonsvarerbesked indlæses..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Telefonsvarerbesked kan ikke indlæses"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Kun opkald med telefonsvarer"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Kun indgående opkald"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Kun udgående opkald"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Kun ubesvarede opkald"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visuel telefonsvarer"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Se og lyt til din telefonsvarer uden at skulle ringe til et nummer. Du kan blive opkrævet gebyr for dataforbrug."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Indstillinger"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Nye telefonsvarerbeskeder er ikke tilgængelige"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Ny telefonsvarerbesked venter. Den kan ikke indlæses lige nu."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Konfigurer din telefonsvarer"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Lyd er ikke tilgængelig"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Konfigurer"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Ring til tlfsvarer"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Laveste hastighed"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Lav hastighed"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal hastighed"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Høj hastighed"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Højeste hastighed"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Vælg nummer"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Vælg nummer"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Opkaldshistorik"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Flere valgmuligheder"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"tastatur"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopiér"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Vis kun udgående"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Vis kun indgående"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Vis kun ubesvarede"</string>
@@ -86,22 +89,23 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Alle kontaktpersoner"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Opkaldsinfo"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Detaljerne er ikke tilgængelige"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Brug touch-tone-tastatur"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Brug numerisk tastatur"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Vend tilbage til igangværende opkald"</string>
- <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Tilføj opk."</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Tilføj opkald"</string>
<string name="type_incoming" msgid="6502076603836088532">"Indgående opkald"</string>
<string name="type_outgoing" msgid="343108709599392641">"Udgående opkald"</string>
- <string name="type_missed" msgid="2720502601640509542">"Ubesvarede opkald"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Ubesvaret opkald"</string>
<string name="type_incoming_video" msgid="82323391702796181">"Indgående videoopkald"</string>
<string name="type_outgoing_video" msgid="2858140021680755266">"Udgående videoopkald"</string>
<string name="type_missed_video" msgid="954396897034220545">"Ubesvaret videoopkald"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Telefonsvarer"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Afvist opkald"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokeret opkald"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Indgående opkald"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Afspil telefonsvarerbesked"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Vis kontaktpersonen <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Kontaktoplysninger for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Ny talebesked."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> opkald."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videoopkald."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Send sms-besked til <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Telefonsvarer"</string>
<string name="private_num" msgid="6374339738119166953">"Privat nummer"</string>
<string name="payphone" msgid="7726415831153618726">"Mønttelefon"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Det er ikke muligt at ringe til dette nummer"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Hvis du vil konfigurere telefonsvareren, skal du gå til Menu &gt; Indstillinger."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Hvis du vil ringe til telefonsvareren, skal du først slå Flytilstand fra."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Talesøgning er ikke tilgængelig"</string>
<string name="call_not_available" msgid="8941576511946492225">"Det er ikke muligt at foretage et telefonopkald, fordi applikationen Telefon er deaktiveret."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Der findes Ingen app til det på denne enhed"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Indtast et navn eller telefonnummer"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Ingen opkald"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Ingen seneste telefonsvarerbeskeder"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Søg efter kontaktpersoner"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Tilføj nummer, eller søg i kontaktpersoner"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Din opkaldshistorik er tom"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Foretag et opkald"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Du har ingen ubesvarede opkald."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Indbakken for din telefonsvarer er tom."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Vis kun foretrukne"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historik"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Opkaldshistorik"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Ubesvarede"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Talebesked"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vil du blokere <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Opkald fra dette nummer blokeres, og beskeder i telefonsvareren slettes automatisk."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Opkald fra dette nummer bliver blokeret, men der kan muligvis stadig lægges beskeder i din telefonsvarer."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKER"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vil du fjerne blokeringen af <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Dette nummer blokeres ikke længere fra at ringe til dig."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"FJERN BLOKERING"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Hurtigopkald"</string>
- <string name="tab_recents" msgid="929949073851377206">"Seneste"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Opkaldshistorik"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktpersoner"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Telefonsvarer"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Fjernet fra foretrukne"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Fortryd"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring til <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Opret ny kontaktperson"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Føj til eksisterende kontaktperson"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Føj til en kontaktperson"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Send sms"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Foretag videoopkald"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Se komplet opkaldshistorik"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloker nummer"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nye ubesvarede opkald"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Med Hurtigopkald kan du ringe til dine foretrukne kontaktpersoner og numre, du ofte ringer til, med et enkelt tryk"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Ingen kontaktpersoner"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Der er endnu ingen kontaktpersoner i Hurtigopkald"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Angiv en kontaktperson som foretrukken"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Du har endnu ikke nogen kontaktpersoner"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Tilføj en kontaktperson"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Tryk på billedet for at se alle numre, eller tryk på billedet, og hold det nede for at omarrangere"</string>
<string name="remove_contact" msgid="1080555335283662961">"Fjern"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLE KONTAKTPERSONER"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videoopkald"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LYT"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Se info"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Send en sms-besked"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Opkaldsinfo"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Ring til <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Mistet opkald fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Besvaret opkald fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Ulæst talebesked fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Talebesked fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Ring til <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"på <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Ring op"</string>
<string name="description_call_action" msgid="4000549004089776147">"Ring til <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videoopkald til <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videoopkald <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Lyt til indtalt besked fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Afspil talemeddelelsen fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Sæt talemeddelelsen fra <xliff:g id="NAMEORNUMBER">^1</xliff:g> på pause"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Slet talemeddelelsen fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> nye talemeddelelser</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nye talemeddelelser</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Opret en kontaktperson for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Føj <xliff:g id="NAMEORNUMBER">^1</xliff:g> til en eksisterende kontaktperson"</string>
<string name="description_details_action" msgid="2433827152749491785">"Opkaldsoplysninger for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Slettet fra opkaldshistorik"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Rapportér"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"I dag"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"I går"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Ældre"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Hurtigt svar"</string>
<string name="call_settings_label" msgid="313434211353070209">"Opkald"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Opkaldsblokering"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Opkaldsblokering er midlertidigt slået fra"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importér numre"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Du har tidligere angivet, at nogle opkaldere automatisk skal sendes til telefonsvareren via andre apps."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Se numre"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importér"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importen mislykkedes"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Ophæv blokering af nummer"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Tilføj nummer"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Opkald fra disse numre blokeres, og beskeder i telefonsvareren slettes automatisk."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Opkald fra disse numre bliver blokeret, men der kan muligvis stadig lægges beskeder i din telefonsvarer."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokerede telefonnumre"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> er ugyldigt."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokeret."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Opkaldsblokering er blevet deaktiveret i 48 timer"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Deaktiveret, da du har foretaget et nødopkald."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Opkaldskonti"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktivér"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Angiv tilladelser"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Slå tilladelsen Kontaktpersoner til for at aktivere hurtigopkald."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Slå tilladelsen Telefon til for at se din opkaldsliste."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Slå tilladelsen Kontaktpersoner til for at se dine kontaktpersoner."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Slå tilladelsen Telefon til for at få adgang til din telefonsvarer,"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Hvis du vil søge i dine kontaktpersoner, skal du slå tilladelserne Kontaktpersoner til."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Slå tilladelsen Telefon til for at foretage et opkald."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Opkaldsappen har ikke tilladelse til at ændre systemindstillinger."</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 69891daba..a39bdbc0f 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Wähltasten verwenden"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Anrufliste"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> anrufen"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Nr. vor Anruf bearbeiten"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Zu Kontakten hinzufügen"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Von Anrufliste löschen"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Anrufliste löschen"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Mailbox-Nachricht löschen"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Mailbox-Nachricht teilen"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Keine Anrufe"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Anrufliste"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Falsche Nummer melden"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Nummer kopieren"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Transkription kopieren"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Nummer blockieren"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blockiert"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Blockierung der Nummer aufheben"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Blockierung von <xliff:g id="NUMBER">%1$s</xliff:g> aufgehoben"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"Rückgängig"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Löschen"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Nummer vor Anruf bearbeiten"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Anrufliste löschen"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Mailbox-Nachricht löschen"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mailbox gelöscht"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"Rückgängig"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Anrufliste löschen?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Alle Anrufe werden aus Ihrem Verlauf gelöscht."</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Alle Anrufe werden aus deinem Verlauf gelöscht."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Anrufliste wird gelöscht…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> Mailbox-Nachrichten </item>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Neue Mailbox-Nachricht von <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Mailbox-Nachricht-Wiedergabe nicht möglich"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Pufferung ..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Mailbox-Nachricht wird geladen…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Laden der Mailbox-Nachricht nicht möglich"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Nur Mailbox-Anrufe"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Nur eingehende Anrufe"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Nur ausgehende Anrufe"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Nur entgangene Anrufe"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visuelle Mailbox"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Du kannst deine Mailbox-Nachrichten einsehen und abhören, ohne eine Nummer anrufen zu müssen. Es können Datengebühren anfallen."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Einstellungen"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Keine Mailbox-Aktualisierungen verfügbar"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Neue Mailbox-Nachricht wartet. Laden momentan nicht möglich."</string>
- <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Richten Sie Ihre Mailbox ein."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Richte deine Mailbox ein."</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio nicht verfügbar"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Einrichten"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Mailbox anrufen"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Geringste Geschwindigkeit"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Geringe Geschwindigkeit"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normale Geschwindigkeit"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Hohe Geschwindigkeit"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Höchste Geschwindigkeit"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Nummer auswählen"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Nummer auswählen"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Anrufliste"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Mehr Optionen"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"Wähltasten"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopieren"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Nur ausgehende Anrufe anzeigen"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Nur eingehende Anrufe anzeigen"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Nur entgangene Anrufe anzeigen"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Ausgehender Videoanruf"</string>
<string name="type_missed_video" msgid="954396897034220545">"Entgangener Videoanruf"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Mailbox"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Abgelehnter Anruf"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blockierter Anruf"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Eingehende Anrufe"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Mailbox abhören"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Kontakt <xliff:g id="NAME">%1$s</xliff:g> anzeigen"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> anrufen"</string>
<string name="description_contact_details" msgid="51229793651342809">"Kontaktdetails für <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Neue Mailbox-Nachricht"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> Anrufe"</string>
<string name="description_video_call" msgid="2933838090743214204">"Videoanruf"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"SMS an <xliff:g id="NAME">%1$s</xliff:g> senden"</string>
@@ -112,10 +116,14 @@
<string name="voicemail" msgid="3851469869202611441">"Mailbox"</string>
<string name="private_num" msgid="6374339738119166953">"Private Nummer"</string>
<string name="payphone" msgid="7726415831153618726">"Münztelefon"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> um <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Diese Nummer kann nicht angerufen werden."</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Konfigurieren Sie Ihre Mailbox unter \"Menü\" &gt; \"Einstellungen\"."</string>
- <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Deaktivieren Sie zunächst den Flugmodus, um die Mailbox anzurufen."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Konfiguriere deine Mailbox unter \"Menü\" &gt; \"Einstellungen\"."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Deaktiviere zunächst den Flugmodus, um die Mailbox anzurufen."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"Wird geladen…"</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Sprachsuche nicht verfügbar"</string>
<string name="call_not_available" msgid="8941576511946492225">"Es kann kein Anruf getätigt werden, da die App \"Telefon\" deaktiviert wurde."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Keine entsprechende App auf diesem Gerät"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Namen/Telefonnummer eingeben"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Keine Anrufe"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Keine neuen Mailbox-Nachrichten"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"In Kontakten suchen"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Nummer hinzufügen oder in Kontakten suchen"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Deine Anrufliste ist leer."</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Anrufen"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Keine verpassten Anrufe"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Dein Mailbox-Posteingang ist leer."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Nur Favoriten anzeigen"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Verlauf"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Anrufliste"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Entgangen"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Mailbox-Nachrichten"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> blockieren?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Anrufe von dieser Nummer werden blockiert und Mailbox-Nachrichten automatisch gelöscht."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Anrufe von dieser Nummer werden blockiert. Der Anrufer hat aber unter Umständen weiterhin die Möglichkeit, dir Mailbox-Nachrichten zu hinterlassen."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOCKIEREN"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Blockierung von <xliff:g id="NUMBER">%1$s</xliff:g> aufheben?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Anrufe von dieser Nummer werden nicht mehr blockiert."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"BLOCKIERUNG AUFHEBEN"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Schnellauswahl"</string>
- <string name="tab_recents" msgid="929949073851377206">"Neueste"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Anrufliste"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontakte"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Mailbox"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Aus Favoriten entfernt"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Rückgängig machen"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> wählen"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Neuen Kontakt erstellen"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Zu vorhandenem Kontakt hinzufügen"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Zu Kontakt hinzufügen"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS senden"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Videoanruf starten"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Gesamte Anrufliste ansehen"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Nummer blockieren"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> neue verpasste Anrufe"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Schnellauswahl bedeutet Rufaufbau mit einer Berührung für Favoriten und häufig angerufene Nummern."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Keine Kontakte"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Du hast noch für niemanden eine Kurzwahl festgelegt."</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Favoriten hinzufügen"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Du hast noch keine Kontakte."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Kontakt hinzufügen"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Bild berühren, um alle Nummern zu sehen, oder Bild berühren und halten, um sie neu anzuordnen"</string>
<string name="remove_contact" msgid="1080555335283662961">"Entfernen"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"Alle Kontakte"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videoanruf"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"Anhören"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Details ansehen"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"SMS senden"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Anrufdetails"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> anrufen"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Anruf von <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> verpasst"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Anruf von <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> angenommen"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Ungelesene Mailbox-Nachricht von <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Mailbox-Nachricht von <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Ausgehender Anruf an <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_phone_account" msgid="1767072759541443861">"mit <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Anrufen"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> anrufen"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videoanruf an <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> über Videoanruf anrufen"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Mailboxnachricht von <xliff:g id="NAMEORNUMBER">^1</xliff:g> anhören"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Mailbox-Nachricht von <xliff:g id="NAMEORNUMBER">^1</xliff:g> abhören"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Mailbox-Nachricht von <xliff:g id="NAMEORNUMBER">^1</xliff:g> pausieren"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Mailbox-Nachricht von <xliff:g id="NAMEORNUMBER">^1</xliff:g> löschen"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> neue Mailboxnachrichten</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> neue Mailboxnachricht</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Kontakt für <xliff:g id="NAMEORNUMBER">^1</xliff:g> erstellen"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> zu vorhandenem Kontakt hinzufügen"</string>
<string name="description_details_action" msgid="2433827152749491785">"Anrufdetails für <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Aus Anrufliste gelöscht"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Melden"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Heute"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Gestern"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Ältere"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Kurzantworten"</string>
<string name="call_settings_label" msgid="313434211353070209">"Anrufe"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Anrufblockierung"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Anrufblockierung vorübergehend aus"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Nummern importieren"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Du hast zuvor einige Anrufer markiert, die automatisch über andere Apps an die Mailbox gesendet werden."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Nummern anzeigen"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importieren"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import fehlgeschlagen"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Blockierung der Nummer aufheben"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Nummer hinzufügen"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Anrufe von diesen Nummern werden blockiert und Mailbox-Nachrichten automatisch gelöscht."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Anrufe von diesen Nummern werden blockiert. Die Anrufer haben aber unter Umständen weiterhin die Möglichkeit, dir Mailbox-Nachrichten zu hinterlassen."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blockierte Nummern"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ist ungültig."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ist bereits blockiert."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Anrufblockierung für 48 Stunden deaktiviert"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Deaktiviert, da ein Notruf getätigt wurde."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Anrufkonten"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktivieren"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Berechtigungen festlegen"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Aktiviere die Berechtigung \"Kontakte\", um die Kurzwahlfunktion zu verwenden."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Aktiviere die Berechtigung \"Telefon\", um dein Anrufprotokoll abzurufen."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Aktiviere die Berechtigung \"Kontakte\", um deine Kontakte abzurufen."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Aktiviere die Berechtigung \"Telefon\", um auf deine Mailbox zuzugreifen."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Aktiviere die Berechtigungen \"Kontakte\", um deine Kontakte zu suchen."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Aktiviere die Berechtigung \"Telefon\", um einen Anruf zu tätigen."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Die App \"Telefon\" ist nicht berechtigt, die Systemeinstellungen zu überschreiben."</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 221b98585..e945420ca 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Πρόγραμμα κλήσης"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Τηλέφωνο"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Τηλέφωνο"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Πληκτρολόγιο κλήσης τηλεφώνου"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Τηλέφωνο"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Ιστορικό κλήσεων"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Κλήση <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Επεξεργασία αριθμού πριν την κλήση"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Προσθήκη στις επαφές"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Διαγραφή από το ιστορικό κλήσεων"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Διαγραφή ιστορικού κλήσεων"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Διαγραφή αυτόματου τηλεφωνητή"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Κοινή χρήση αυτόμ. τηλεφωνητή"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Δεν υπάρχουν κλήσεις"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Ιστορικό κλήσεων"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Αναφορά ακατάλληλου αριθμού"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Αντιγραφή αριθμού"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Αντιγραφή μεταγραφής"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Αποκλεισμός αριθμού"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> αποκλείστηκε"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Κατάργηση αποκλεισμού αριθμού"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Ο αποκλεισμός του αριθμού <xliff:g id="NUMBER">%1$s</xliff:g> καταργήθηκε"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ΑΝΑΙΡΕΣΗ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Διαγραφή"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Επεξεργασία αριθμού πριν την κλήση"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Εκκαθάριση ιστορικού κλήσεων"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Διαγραφή αυτόματου τηλεφωνητή"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Μήν.αυτ. τηλ. διαγρ."</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ΑΝΑΙΡΕΣΗ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Διαγραφή ιστορικού κλήσεων;"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Αυτό θα διαγράψει όλες τις κλήσεις από το ιστορικό σας"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Διαγραφή ιστορικού κλήσεων…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Νέα μην. αυτ. τηλεφ. από <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Αδύνατη αναπαραγωγή φωνητικού μηνύματος"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Αποθ. στη πρ. μνήμη"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Φόρτωση φωνητικών μηνυμάτων…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Αδύνατη φόρτωση φωνητικών μηνυμάτων"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Μόνο κλήσεις με ηχητικά μηνύματα"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Μόνο εισερχόμενες κλήσεις"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Μόνο εξερχόμενες κλήσεις"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Μόνο αναπάντητες κλήσεις"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Οπτικός αυτόματος τηλεφωνητής"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Δείτε και ακούστε τα μηνύματα αυτόματου τηλεφωνητή, χωρίς να καλέσετε κάποιον αριθμό. Ενδέχεται να ισχύουν χρεώσεις δεδομένων."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Ρυθμίσεις"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Μη διαθέσιμες ενημερώσεις αυτόματου τηλεφωνητή"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Νέο φωνητικό μήνυμα σε αναμονή. Δεν είναι δυνατή η φόρτωση τώρα."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Ρύθμιση του αυτόματου τηλεφωνητή σας"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Δεν υπάρχει διαθέσιμος ήχος"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Ρύθμιση"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Κλήση αυτόμ. τηλεφ."</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Μικρότερη δυνατή ταχύτητα"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Χαμηλή ταχύτητα"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Κανονική ταχύτητα"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Μεγάλη ταχύτητα"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Μεγαλύτερη δυνατή ταχύτητα"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Επιλέξτε αριθμό"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Επιλέξτε αριθμό"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Ιστορικό κλήσεων"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Περισσότερες επιλογές"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"πληκτρολόγιο κλήσης"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Αντιγραφή"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Εμφάνιση μόνο εξερχόμενων"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Εμφάνιση μόνο εισερχόμενων"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Εμφάνιση μόνο αναπάντητων"</string>
@@ -96,23 +99,28 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Εξερχόμενη βιντεοκλήση"</string>
<string name="type_missed_video" msgid="954396897034220545">"Αναπάντητη βιντεοκλήση"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Αυτόματος τηλεφωνητής"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Απορριφθείσα κλήση"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Αποκλεισμένη κλήση"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Εισερχόμενες κλήσεις"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Αναπαραγωγή μηνύματος αυτόματου τηλεφωνητή"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Προβολή επαφής <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Κλήση του χρήστη <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Στοιχεία επικοινωνίας του <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Νέο μήνυμα στον αυτόματο τηλεφωνητή."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> κλήσεις."</string>
<string name="description_video_call" msgid="2933838090743214204">"Βιντεοκλήση."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Αποστολή SMS στο χρήστη <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Μηνύματα αυτόματου τηλεφωνητή που δεν έχετε ακούσει"</string>
<string name="description_start_voice_search" msgid="520539488194946012">"Έναρξη φωνητικής αναζήτησης"</string>
- <string name="menu_callNumber" msgid="997146291983360266">"Κλήση του αριθμού <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Κλήση <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Άγνωστος"</string>
<string name="voicemail" msgid="3851469869202611441">"Αυτόματος τηλεφωνητής"</string>
<string name="private_num" msgid="6374339738119166953">"Απόκρυψη"</string>
<string name="payphone" msgid="7726415831153618726">"Τηλέφωνο με χρέωση"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> λεπτά <xliff:g id="SECONDS">%s</xliff:g> δευτερόλεπτα"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> στις <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Δεν μπορείτε να καλέσετε αυτόν τον αριθμό"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Για τη r;yumish του αυτόματου τηλεφωνητή, μεταβείτε στο στοιχείο Μενού &gt; Ρυθμίσεις."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Για κλήση αυτόματου τηλεφωνητή, πρώτα απενεργοποιήστε τη λειτουργία πτήσης."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Η φωνητική αναζήτηση δεν είναι διαθέσιμη"</string>
<string name="call_not_available" msgid="8941576511946492225">"Δεν είναι δυνατή η πραγματοποίηση τηλεφωνικής κλήσης επειδή η εφαρμογή \"Τηλέφωνο\" έχει απενεργοποιηθεί."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Δεν υπάρχει εφαρμογή γι\' αυτήν την ενέργεια σε αυτήν τη συσκευή"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Εισαγάγετε όνομα ή τηλέφωνο"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Δεν υπάρχουν κλήσεις"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Δεν υπάρχουν πρόσφατα φωνητικά μηνύματα"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Αναζήτηση στις επαφές"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Προσθήκη αριθμού ή αναζήτηση επαφών"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Το ιστορικό κλήσεων είναι κενό"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Πραγματοποίηση κλήσης"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Δεν υπάρχουν αναπάντητες κλήσεις."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ο φάκελος εισερχομένων του αυτόματου τηλεφωνητή σας είναι κενός."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Εμφάνιση μόνο των αγαπημένων"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Ιστορικό"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Ιστορικό κλήσεων"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Όλα"</string>
- <string name="call_log_missed_title" msgid="4541142293870638971">"Αναπάντητη"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Αναπάντητες"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Φωνητικό μήνυμα"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Να αποκλειστεί ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g>;"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Οι μελλοντικές κλήσεις από αυτόν τον αριθμό θα αποκλείονται και τα μηνύματα στον αυτόματο τηλεφωνητή θα διαγράφονται αυτόματα."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Οι κλήσεις από αυτόν τον αριθμό θα αποκλείονται, αλλά ο καλών ενδέχεται να μπορεί να αφήνει μηνύματα στον αυτόματο τηλεφωνητή."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ΑΠΟΚΛΕΙΣΜΟΣ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Να καταργηθεί ο αποκλεισμός του αριθμού <xliff:g id="NUMBER">%1$s</xliff:g>;"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Δεν θα αποκλείονται πλέον οι κλήσεις από αυτό τον αριθμό σε εσάς."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ΚΑΤΑΡΓΗΣΗ ΑΠΟΚΛΕΙΣΜΟΥ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Γρήγορη κλήση"</string>
- <string name="tab_recents" msgid="929949073851377206">"Πρόσφατα"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Ιστορικό κλήσεων"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Επαφές"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Αυτόματος τηλεφωνητής"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Καταργήθηκε από τα αγαπημένα"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Αναίρεση"</string>
- <string name="search_shortcut_call_number" msgid="7277194656832895870">"Κλήση του αριθμού <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Καλέστε το <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Δημιουργία νέας επαφής"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Προσθήκη σε υπάρχουσα επαφή"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Προσθήκη σε μια επαφή"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Αποστολή SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Πραγματοποίηση βιντεοκλήσης"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Προβολή πλήρους ιστορικού κλήσεων"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Αποκλεισμός αριθμού"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> νέες αναπάντητες κλήσεις"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Η ταχεία κλήση είναι κλήση που μπορείτε να πραγματοποιήσετε με ένα πλήκτρο για τους αγαπημένους σας αριθμούς που καλείτε συχνά"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Δεν υπάρχουν επαφές"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Δεν έχετε ορίσει ακόμη κάποια επαφή στις ταχείες κλήσεις"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Προσθέστε ένα αγαπημένο"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Δεν έχετε επαφές ακόμη"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Προσθήκη επαφής"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Πατήστε την εικόνα για να δείτε όλους τους αριθμούς ή αγγίξτε παρατεταμένα για αναδιάταξη"</string>
<string name="remove_contact" msgid="1080555335283662961">"Κατάργηση"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ΟΛΕΣ ΟΙ ΕΠΑΦΕΣ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Βιντεοκλήση"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ΑΚΡΟΑΣΗ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Προβολή λεπτομερειών"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Αποστολή μηνύματος"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Λεπτομέρειες κλήσης"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Κλήση <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Αναπάντητη κλήση από <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Ληφθείσα κλήση από <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Μη αναγνωσμένο μήνυμα αυτόματου τηλεφωνητή από <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Μήνυμα αυτόματου τηλεφωνητή από <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Κλήση προς <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"σε <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Κλήση"</string>
<string name="description_call_action" msgid="4000549004089776147">"Κλήση <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Βιντεοκλήση προς <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Βιντεοκλήση <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Ακρόαση μηνύματος αυτόματου τηλεφωνητή από το χρήστη <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Ακρόαση μηνύματος αυτόματου τηλεφωνητή από <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Παύση μηνύματος αυτόματου τηλεφωνητή από <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Διαγραφή μηνύματος αυτόματου τηλεφωνητή από <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> νέα φωνητικά μηνύματα</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> νέο φωνητικό μήνυμα</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Δημιουργία επαφής για <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Προσθήκη <xliff:g id="NAMEORNUMBER">^1</xliff:g> σε υπάρχουσα επαφή"</string>
<string name="description_details_action" msgid="2433827152749491785">"Λεπτομέρειες κλήσης για <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Διαγράφηκε από το ιστορικό κλήσεων"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Αναφορά"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Σήμερα"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Χθες"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Παλαιότερες"</string>
@@ -178,7 +209,7 @@
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Ήχοι και δόνηση"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Προσβασιμότητα"</string>
<string name="ringtone_title" msgid="760362035635084653">"Ήχος κλήσης τηλεφώνου"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Επίσης δόνηση για κλήσεις"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Και δόνηση στις κλήσεις"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Τόνοι πληκτρολογίου κλήσης"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Διάρκεια ήχου πληκτρολογίου κλήσης"</string>
<string-array name="dtmf_tone_length_entries">
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Γρήγορες απαντήσεις"</string>
<string name="call_settings_label" msgid="313434211353070209">"Κλήσεις"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Φραγή κλήσεων"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Προσωρινά απενεργοποιημένη φραγή κλήσεων"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Η φραγή κλήσεων έχει απενεργοποιηθεί προσωρινά επειδή επικοινωνήσατε με τις υπηρεσίες έκτακτης ανάγκης από αυτό το τηλέφωνο μέσα στις τελευταίες 48 ώρες. Θα ενεργοποιηθεί ξανά αυτόματα μόλις λήξει η περίοδος των 48 ωρών."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Εισαγωγή αριθμών"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Στο παρελθόν ρυθμίσατε ορισμένους καλούντες ώστε να αποστέλλονται αυτόματα στον τηλεφωνητή μέσω άλλων εφαρμογών."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Προβολή αριθμών"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Εισαγωγή"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Αποτυχία εισαγωγής"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Κατάργηση αποκλεισμού αριθμού"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Προσθήκη αριθμού"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Οι κλήσεις από αυτούς τους αριθμούς θα αποκλείονται και τα μηνύματα στον αυτόματο τηλεφωνητή θα διαγράφονται αυτόματα."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Οι κλήσεις από αυτούς τους αριθμούς θα αποκλείονται, αλλά ενδέχεται να λαμβάνετε από αυτούς μηνύματα στον αυτόματο τηλεφωνητή."</string>
+ <string name="block_list" msgid="7760188925338078011">"Αποκλεισμένοι αριθμοί"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> δεν είναι έγκυρος."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Ο αριθμός <xliff:g id="NUMBER">%1$s</xliff:g> αποκλείστηκε ήδη."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Η φραγή κλήσεων απενεργοποιήθηκε για 48 ώρες"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Απενεργοποιημένο επειδή πραγματοποιήθηκε κλήση έκτακτης ανάγκης."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Λογαριασμοί κλήσης"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Ενεργοποίηση"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Ορισμός αδειών"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Για να ενεργοποιήσετε την ταχεία κλήση, ενεργοποιήστε την άδεια επαφών."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Για να δείτε το αρχείο καταγραφής κλήσεών σας, ενεργοποιήστε την άδεια τηλεφώνου."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Για να δείτε τις επαφές σας, ενεργοποιήστε την άδεια επαφών."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Για να αποκτήσετε πρόσβαση στον τηλεφωνητή σας, ενεργοποιήστε την άδεια τηλεφώνου."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Για να κάνετε αναζήτηση στις επαφές σας, ενεργοποιήστε τις άδειες \"Επαφές\"."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Για να πραγματοποιήσετε μια κλήση, ενεργοποιήστε την άδεια τηλεφώνου."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Η εφαρμογή \"Τηλέφωνο\" δεν έχει άδεια εγγραφής στις ρυθμίσεις συστήματος."</string>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 671c82bf8..bea8b8a90 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialler"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telephone"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Phone"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Phone Dialpad"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Phone"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Call history"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Call <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edit number before call"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Add to contacts"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Delete from call history"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Clear call history"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Delete voicemail"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Share voicemail"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"No calls"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Call history"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Report inaccurate number"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copy number"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copy transcription"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Block number"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blocked"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Unblock number"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> unblocked"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"UNDO"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"delete"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit number before call"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Clear call history"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Delete voicemail"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Voicemail deleted"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"UNDO"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Clear call history?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"This will delete all calls from your history"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Clearing call history…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"New voicemail from <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Couldn\'t play voicemail"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buffering…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Loading voicemail…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Couldn\'t load voicemail"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Calls with voicemail only"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Incoming calls only"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Outgoing calls only"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Missed calls only"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visual voicemail"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"See and listen to your voicemail, without having to call a number. Data charges may apply."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Settings"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Voicemail updates not available"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"New voicemail waiting. Can\'t load right now."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Set up your voicemail"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio not available"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Set up"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Call voicemail"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Slowest speed"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Slow speed"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal speed"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Fast speed"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Fastest speed"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Choose number"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Choose number"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Call History"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"More options"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"dial pad"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copy"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Show outgoing only"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Show incoming only"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Show missed only"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Outgoing video call"</string>
<string name="type_missed_video" msgid="954396897034220545">"Missed video call"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Voicemail"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Declined call"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blocked call"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Incoming calls"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Play voicemail"</string>
<string name="description_view_contact" msgid="5205669345700598415">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Contact details for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"New voicemail."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> calls."</string>
<string name="description_video_call" msgid="2933838090743214204">"Video call."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Send SMS to <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
<string name="private_num" msgid="6374339738119166953">"Private number"</string>
<string name="payphone" msgid="7726415831153618726">"Payphone"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Can\'t call this number"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"To set up voicemail, go to Menu &gt; Settings."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"To call voicemail, first turn off Aeroplane mode."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Voice search not available"</string>
<string name="call_not_available" msgid="8941576511946492225">"Cannot make a phone call because the Phone application has been disabled."</string>
<string name="activity_not_available" msgid="2287665636817987623">"No app for that on this device"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Enter a name or phone number"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"No calls"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"No recent voicemails"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Search contacts"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Add number or search contacts"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Your call history is empty"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Make a call"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"You have no missed calls."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Your voicemail inbox is empty."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"History"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Call History"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Block <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Calls from this number will be blocked and voicemails will be automatically deleted."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Calls from this number will be blocked, but the caller may still be able to leave you voicemails."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOCK"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Unblock <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"This number will no longer be blocked from calling you."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"UNBLOCK"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Speed dial"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recents"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Call history"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Voicemail"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Removed from favourites"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Undo"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Create new contact"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Add to existing contact"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Add to a contact"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Send SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Make video call"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"View full call history"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Block number"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Speed dial is one‑touch dialing for favourites and numbers that you call often"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"No contacts"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"No one is on your speed dial yet"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Add a favourite"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"You don\'t have any contacts yet"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Add a contact"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Touch image to see all numbers or touch &amp; hold to reorder"</string>
<string name="remove_contact" msgid="1080555335283662961">"Remove"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALL CONTACTS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Video call"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LISTEN"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"view details"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Sending a message"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Call details"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Call <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Missed call from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Answered call from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Unread voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Call to <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"on <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Call"</string>
<string name="description_call_action" msgid="4000549004089776147">"Call <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Video call to <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Video call <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Listen to voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Play voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pause voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Delete voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> new voicemails</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> new voicemail</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Create contact for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Add <xliff:g id="NAMEORNUMBER">^1</xliff:g> to existing contact"</string>
<string name="description_details_action" msgid="2433827152749491785">"Call details for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Deleted from call history"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Report"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Today"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Yesterday"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Older"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Quick responses"</string>
<string name="call_settings_label" msgid="313434211353070209">"Calls"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Call blocking"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Call blocking temporarily off"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Import numbers"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"You previously marked some callers to be automatically sent to voicemail via other apps."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Calls from these numbers will be blocked and voicemails will be automatically deleted."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Calls from these numbers will be blocked, but they may still be able to leave you voicemails."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blocked numbers"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is invalid."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Call blocking disabled for 48 hours"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Disabled because an emergency call was made."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Calling accounts"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Turn on"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Set permissions"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"To enable speed dial, turn on the Contacts permission."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"To see your call log, turn on the Phone permission."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"To see your contacts, turn on the Contacts permission."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"To access your voicemail, turn on the Phone permission."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"To place a call, turn on the Phone permission."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Phone app does not have permission to write to system settings."</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 671c82bf8..bea8b8a90 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialler"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telephone"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Phone"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Phone Dialpad"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Phone"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Call history"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Call <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edit number before call"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Add to contacts"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Delete from call history"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Clear call history"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Delete voicemail"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Share voicemail"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"No calls"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Call history"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Report inaccurate number"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copy number"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copy transcription"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Block number"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blocked"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Unblock number"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> unblocked"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"UNDO"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"delete"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit number before call"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Clear call history"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Delete voicemail"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Voicemail deleted"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"UNDO"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Clear call history?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"This will delete all calls from your history"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Clearing call history…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"New voicemail from <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Couldn\'t play voicemail"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buffering…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Loading voicemail…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Couldn\'t load voicemail"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Calls with voicemail only"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Incoming calls only"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Outgoing calls only"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Missed calls only"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visual voicemail"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"See and listen to your voicemail, without having to call a number. Data charges may apply."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Settings"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Voicemail updates not available"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"New voicemail waiting. Can\'t load right now."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Set up your voicemail"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio not available"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Set up"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Call voicemail"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Slowest speed"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Slow speed"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal speed"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Fast speed"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Fastest speed"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Choose number"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Choose number"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Call History"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"More options"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"dial pad"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copy"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Show outgoing only"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Show incoming only"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Show missed only"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Outgoing video call"</string>
<string name="type_missed_video" msgid="954396897034220545">"Missed video call"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Voicemail"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Declined call"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blocked call"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Incoming calls"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Play voicemail"</string>
<string name="description_view_contact" msgid="5205669345700598415">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Contact details for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"New voicemail."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> calls."</string>
<string name="description_video_call" msgid="2933838090743214204">"Video call."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Send SMS to <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
<string name="private_num" msgid="6374339738119166953">"Private number"</string>
<string name="payphone" msgid="7726415831153618726">"Payphone"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Can\'t call this number"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"To set up voicemail, go to Menu &gt; Settings."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"To call voicemail, first turn off Aeroplane mode."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Voice search not available"</string>
<string name="call_not_available" msgid="8941576511946492225">"Cannot make a phone call because the Phone application has been disabled."</string>
<string name="activity_not_available" msgid="2287665636817987623">"No app for that on this device"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Enter a name or phone number"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"No calls"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"No recent voicemails"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Search contacts"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Add number or search contacts"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Your call history is empty"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Make a call"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"You have no missed calls."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Your voicemail inbox is empty."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"History"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Call History"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Block <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Calls from this number will be blocked and voicemails will be automatically deleted."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Calls from this number will be blocked, but the caller may still be able to leave you voicemails."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOCK"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Unblock <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"This number will no longer be blocked from calling you."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"UNBLOCK"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Speed dial"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recents"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Call history"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Voicemail"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Removed from favourites"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Undo"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Create new contact"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Add to existing contact"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Add to a contact"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Send SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Make video call"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"View full call history"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Block number"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Speed dial is one‑touch dialing for favourites and numbers that you call often"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"No contacts"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"No one is on your speed dial yet"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Add a favourite"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"You don\'t have any contacts yet"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Add a contact"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Touch image to see all numbers or touch &amp; hold to reorder"</string>
<string name="remove_contact" msgid="1080555335283662961">"Remove"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALL CONTACTS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Video call"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LISTEN"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"view details"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Sending a message"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Call details"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Call <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Missed call from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Answered call from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Unread voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Call to <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"on <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Call"</string>
<string name="description_call_action" msgid="4000549004089776147">"Call <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Video call to <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Video call <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Listen to voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Play voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pause voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Delete voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> new voicemails</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> new voicemail</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Create contact for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Add <xliff:g id="NAMEORNUMBER">^1</xliff:g> to existing contact"</string>
<string name="description_details_action" msgid="2433827152749491785">"Call details for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Deleted from call history"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Report"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Today"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Yesterday"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Older"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Quick responses"</string>
<string name="call_settings_label" msgid="313434211353070209">"Calls"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Call blocking"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Call blocking temporarily off"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Import numbers"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"You previously marked some callers to be automatically sent to voicemail via other apps."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Calls from these numbers will be blocked and voicemails will be automatically deleted."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Calls from these numbers will be blocked, but they may still be able to leave you voicemails."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blocked numbers"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is invalid."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Call blocking disabled for 48 hours"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Disabled because an emergency call was made."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Calling accounts"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Turn on"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Set permissions"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"To enable speed dial, turn on the Contacts permission."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"To see your call log, turn on the Phone permission."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"To see your contacts, turn on the Contacts permission."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"To access your voicemail, turn on the Phone permission."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"To place a call, turn on the Phone permission."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Phone app does not have permission to write to system settings."</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 671c82bf8..bea8b8a90 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialler"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telephone"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Phone"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Phone Dialpad"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Phone"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Call history"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Call <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edit number before call"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Add to contacts"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Delete from call history"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Clear call history"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Delete voicemail"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Share voicemail"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"No calls"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Call history"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Report inaccurate number"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copy number"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copy transcription"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Block number"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blocked"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Unblock number"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> unblocked"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"UNDO"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"delete"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit number before call"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Clear call history"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Delete voicemail"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Voicemail deleted"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"UNDO"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Clear call history?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"This will delete all calls from your history"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Clearing call history…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"New voicemail from <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Couldn\'t play voicemail"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buffering…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Loading voicemail…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Couldn\'t load voicemail"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Calls with voicemail only"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Incoming calls only"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Outgoing calls only"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Missed calls only"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visual voicemail"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"See and listen to your voicemail, without having to call a number. Data charges may apply."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Settings"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Voicemail updates not available"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"New voicemail waiting. Can\'t load right now."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Set up your voicemail"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio not available"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Set up"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Call voicemail"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Slowest speed"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Slow speed"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal speed"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Fast speed"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Fastest speed"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Choose number"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Choose number"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Call History"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"More options"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"dial pad"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copy"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Show outgoing only"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Show incoming only"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Show missed only"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Outgoing video call"</string>
<string name="type_missed_video" msgid="954396897034220545">"Missed video call"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Voicemail"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Declined call"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blocked call"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Incoming calls"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Play voicemail"</string>
<string name="description_view_contact" msgid="5205669345700598415">"View contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Call <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Contact details for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"New voicemail."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> calls."</string>
<string name="description_video_call" msgid="2933838090743214204">"Video call."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Send SMS to <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
<string name="private_num" msgid="6374339738119166953">"Private number"</string>
<string name="payphone" msgid="7726415831153618726">"Payphone"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> at <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Can\'t call this number"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"To set up voicemail, go to Menu &gt; Settings."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"To call voicemail, first turn off Aeroplane mode."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Voice search not available"</string>
<string name="call_not_available" msgid="8941576511946492225">"Cannot make a phone call because the Phone application has been disabled."</string>
<string name="activity_not_available" msgid="2287665636817987623">"No app for that on this device"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Enter a name or phone number"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"No calls"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"No recent voicemails"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Search contacts"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Add number or search contacts"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Your call history is empty"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Make a call"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"You have no missed calls."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Your voicemail inbox is empty."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Show favourites only"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"History"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Call History"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"All"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Missed"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Block <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Calls from this number will be blocked and voicemails will be automatically deleted."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Calls from this number will be blocked, but the caller may still be able to leave you voicemails."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOCK"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Unblock <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"This number will no longer be blocked from calling you."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"UNBLOCK"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Speed dial"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recents"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Call history"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Voicemail"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Removed from favourites"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Undo"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Call <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Create new contact"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Add to existing contact"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Add to a contact"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Send SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Make video call"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"View full call history"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Block number"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> new missed calls"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Speed dial is one‑touch dialing for favourites and numbers that you call often"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"No contacts"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"No one is on your speed dial yet"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Add a favourite"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"You don\'t have any contacts yet"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Add a contact"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Touch image to see all numbers or touch &amp; hold to reorder"</string>
<string name="remove_contact" msgid="1080555335283662961">"Remove"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALL CONTACTS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Video call"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LISTEN"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"view details"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Sending a message"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Call details"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Call <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Missed call from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Answered call from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Unread voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Call to <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"on <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Call"</string>
<string name="description_call_action" msgid="4000549004089776147">"Call <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Video call to <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Video call <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Listen to voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Play voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pause voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Delete voicemail from <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> new voicemails</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> new voicemail</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Create contact for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Add <xliff:g id="NAMEORNUMBER">^1</xliff:g> to existing contact"</string>
<string name="description_details_action" msgid="2433827152749491785">"Call details for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Deleted from call history"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Report"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Today"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Yesterday"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Older"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Quick responses"</string>
<string name="call_settings_label" msgid="313434211353070209">"Calls"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Call blocking"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Call blocking temporarily off"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Import numbers"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"You previously marked some callers to be automatically sent to voicemail via other apps."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"View Numbers"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import failed"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Unblock number"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Add number"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Calls from these numbers will be blocked and voicemails will be automatically deleted."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Calls from these numbers will be blocked, but they may still be able to leave you voicemails."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blocked numbers"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is invalid."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is already blocked."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Call blocking disabled for 48 hours"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Disabled because an emergency call was made."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Calling accounts"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Turn on"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Set permissions"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"To enable speed dial, turn on the Contacts permission."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"To see your call log, turn on the Phone permission."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"To see your contacts, turn on the Contacts permission."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"To access your voicemail, turn on the Phone permission."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"To search your contacts, turn on the Contacts permissions."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"To place a call, turn on the Phone permission."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Phone app does not have permission to write to system settings."</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 4c16170f1..58013791c 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Teléfono"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Teléfono"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Teléfono"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Teclado del teléfono"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Teléfono"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historial de llamadas"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Llamar a <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Editar número antes de llamar"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Agregar a contactos"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Eliminar del historial de llamadas"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Eliminar el historial de llamadas"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Eliminar mensaje de voz"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Compartir mensaje de voz"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"No hay llamadas."</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historial de llamadas"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Informar número incorrecto"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copiar número"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copiar transcripción"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloquear número"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> bloqueado"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Desbloquear número"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> desbloqueado"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"DESHACER"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Borrar"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de realizar llamada"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Eliminar el historial de llamadas"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Borrar buzón de voz"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Buzón de voz borrado"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESHACER"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"¿Eliminar el historial de llamadas?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Esta acción eliminará todas las llamadas del historial"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Se eliminarán todas las llamadas del historial."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Eliminando historial de llamadas…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> mensajes de voz </item>
@@ -40,27 +47,24 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nuevo mensaje de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Error al reproducir el buzón de voz"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Almacenando en el búfer"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Cargando buzón de voz…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Error al cargar el buzón de voz"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Solo llamadas con buzón de voz"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Solo llamadas entrantes"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Solo llamadas salientes"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Solo llamadas perdidas"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Buzón de voz visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Puedes ver y escuchar los buzones de voz sin tener que llamar a ningún número. Es posible que se apliquen cargos de datos."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Configuración"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"No hay notificaciones disponibles del buzón de voz."</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nuevo mensaje de buzón de voz en espera; no se puede cargar."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configurar el buzón de voz"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio no disponible"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurar"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Llamar buzón de voz"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Más lento"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Lento"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Rápido"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Más rápido"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
- <string name="sms_disambig_title" msgid="5846266399240630846">"Elije un número"</string>
- <string name="call_disambig_title" msgid="4392886850104795739">"Elije un número"</string>
+ <string name="sms_disambig_title" msgid="5846266399240630846">"Elige un número"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Elige un número"</string>
<string name="make_primary" msgid="5829291915305113983">"Recuerda esta opción"</string>
<string name="description_search_button" msgid="3660807558587384889">"búsqueda"</string>
<string name="description_dial_button" msgid="1274091017188142646">"marcar"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de llamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Más opciones"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar solo salientes"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar solo entrantes"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar solo perdidas"</string>
@@ -86,9 +89,9 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Todos los contactos"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detalles de llamada"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Detalles no disponibles"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usar teclado de tonos del teléfono"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usar teclado numérico"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Regresar a la llamada en curso"</string>
- <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Agreg. Llam."</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Agregar llamada"</string>
<string name="type_incoming" msgid="6502076603836088532">"Llamada entrante"</string>
<string name="type_outgoing" msgid="343108709599392641">"Llamada saliente"</string>
<string name="type_missed" msgid="2720502601640509542">"Llamada perdida"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Videollamada saliente"</string>
<string name="type_missed_video" msgid="954396897034220545">"Te perdiste una videollamada."</string>
<string name="type_voicemail" msgid="5153139450668549908">"Mensaje de voz"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Llamada rechazada"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Llamada bloqueada"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Llamadas entrantes"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Reproducir mensaje de voz"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Datos de contacto de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Buzón de voz nuevo"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> llamadas"</string>
<string name="description_video_call" msgid="2933838090743214204">"Videollamada"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Enviar SMS a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Correo de voz"</string>
<string name="private_num" msgid="6374339738119166953">"Número privado"</string>
<string name="payphone" msgid="7726415831153618726">"Teléfono público"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"El <xliff:g id="DATE">%1$s</xliff:g> a la hora <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"No se puede llamar a este número."</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Para configurar el buzón de voz, ve a a Menú &gt; Configuración."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Para escuchar los mensajes de tu buzón de voz, desactiva primero el modo avión."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Búsqueda por voz no disponible"</string>
<string name="call_not_available" msgid="8941576511946492225">"No se pueden realizar llamadas porque se inhabilitó la aplicación Teléfono."</string>
<string name="activity_not_available" msgid="2287665636817987623">"No hay una aplicación para esa acción en este dispositivo."</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Ingresa nombre o teléfono."</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"No hay llamadas."</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"No hay mensajes de buzón de voz recientes."</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Buscar contactos"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Agregar número o buscar contactos"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Tu historial de llamadas está vacío"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Hacer una llamada"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"No tienes llamadas perdidas"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La bandeja de entrada del buzón de voz está vacía."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar solo favoritos"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historial de llamadas"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Buzón voz"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"¿Deseas bloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Se bloquearán las llamadas que provengan de este número y se borrarán los mensajes del buzón de voz de forma automática."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Se bloquearán las llamadas que provengan de este número, pero es posible que la persona que llama pueda dejar mensajes en el buzón de voz."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"¿Deseas desbloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Ya no se bloquearán las llamadas de este número."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Marcado rápido"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recientes"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historial de llamadas"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contactos"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Buzón de voz"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Eliminado de favoritos"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Deshacer"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Llamar al <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Crear contacto nuevo"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Agregar a contacto existente"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Agregar a un contacto"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Enviar SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Realizar videollamada"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Ver historial de llamadas completo"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"El marcado rápido te permite llamar a tus contactos favoritos y a los números que llamas con más frecuencia con solo tocar la pantalla una vez."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"No hay contactos."</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Aún no tienes contactos en la opción de marcado rápido"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Agregar un favorito"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Aún no tienes contactos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Agregar un contacto"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Toca la imagen para ver todos los números o mantenla presionada para cambiar el orden."</string>
<string name="remove_contact" msgid="1080555335283662961">"Eliminar"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS LOS CONTACTOS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videollamada"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ESCUCHAR"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Ver detalles"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Enviar un mensaje"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detalles de la llamada"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Llamar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Llamada perdida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Llamada contestada de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Mensaje de voz no leído de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Mensaje de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Llamar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"en <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Llamar"</string>
<string name="description_call_action" msgid="4000549004089776147">"Llamar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videollamada a <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Realizar una videollamada a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Escuchar buzón de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reproducir buzón de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pausar buzón de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Borrar buzón de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> mensajes de voz nuevos</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> mensaje de voz nuevo</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Crear un contacto para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Agregar <xliff:g id="NAMEORNUMBER">^1</xliff:g> a un contacto existente"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detalles de llamada de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Se eliminó del historial de llamadas."</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Informar"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Hoy"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Ayer"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Antiguos"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respuestas rápidas"</string>
<string name="call_settings_label" msgid="313434211353070209">"Llamadas"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Bloqueo de llamadas"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueo de llamadas desactivado temporalmente"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Ya marcaste algunos emisores para que se envíen de forma automática al buzón de voz por medio de otras apps."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error al importar"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Agregar número"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Se bloquearán las llamadas que provengan de estos números y se borrarán los mensajes del buzón de voz de forma automática."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Se bloquearán las llamadas que provengan de estos números, pero es posible que se puedan dejar mensajes en el buzón de voz."</string>
+ <string name="block_list" msgid="7760188925338078011">"Números bloqueados"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> no es válido."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"El bloqueo de llamadas se inhabilitó durante 48 horas"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Se inhabilitó porque se realizó una llamada de emergencia."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Cuentas telefónicas"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Activar"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Configurar permisos"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Para habilitar el marcado rápido, activa el permiso Contactos."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Para ver el registro de llamadas, activa el permiso Teléfono."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Para ver los contactos, activa el permiso Contactos."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Para acceder al buzón de voz, activa el permiso Teléfono."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Para buscar contactos, activa el permiso Contactos."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Para realizar una llamada, activa el permiso Teléfono."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"La aplicación de teléfono no tiene permiso para modificar la configuración del sistema."</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 0218417cb..48967d02c 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Marcador"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Teléfono"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Teléfono"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Teclado del teléfono"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Teléfono"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historial de llamadas"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Llamar a <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Editar número antes de llamar"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Añadir a contactos"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Eliminar del historial de llamadas"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Borrar historial de llamadas"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Eliminar mensaje de voz"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Compartir mensaje de voz"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"No hay llamadas"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historial de llamadas"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Informar sobre número incorrecto"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copiar número"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copiar transcripción"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloquear número"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Se ha bloqueado el número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Desbloquear número"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Se ha desbloqueado el número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"DESHACER"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Eliminar"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de llamar"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Borrar historial de llamadas"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Eliminar mensaje de voz"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Buzón voz eliminado"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESHACER"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"¿Borrar historial de llamadas?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Se eliminarán todas las llamadas del historial"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Se eliminarán todas las llamadas del historial."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Borrando historial de llamadas…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> mensajes de voz </item>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nuevo mensaje de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Error al reproducir el buzón de voz"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Almacenando en búfer..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Cargando buzón de voz…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Error al cargar el buzón de voz"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Solo llamadas con mensajes de voz"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Solo llamadas entrantes"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Solo llamadas salientes"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Solo llamadas perdidas"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Buzón de voz visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Consulta y escucha tu buzón de voz sin tener que llamar a ningún número (se pueden aplicar cargos de datos)."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Ajustes"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Actualizaciones de buzón de voz no disponibles"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nuevo mensaje de voz en espera. No se puede cargar ahora."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configurar tu buzón de voz"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio no disponible"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurar"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Llamar a buzón de voz"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Más lenta"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Lenta"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Rápida"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Más rápida"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Elige un número"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Elige un número"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de llamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Más opciones"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar solo llamadas salientes"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar solo llamadas entrantes"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar solo llamadas perdidas"</string>
@@ -87,7 +90,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"Detalles de la llamada"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Detalles no disponibles"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usar teclado táctil"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Volver a la llamada en curso"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Volver a la llamada"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Añadir llamada"</string>
<string name="type_incoming" msgid="6502076603836088532">"Llamada entrante"</string>
<string name="type_outgoing" msgid="343108709599392641">"Llamada saliente"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Videollamada realizada"</string>
<string name="type_missed_video" msgid="954396897034220545">"Videollamada perdida"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Buzón de voz"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Llamada rechazada"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Llamada bloqueada"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Llamadas entrantes"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Reproducir mensaje de voz"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Llamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Información de contacto de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nuevo mensaje de voz."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> llamadas."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videollamada."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Enviar SMS a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Buzón de voz"</string>
<string name="private_num" msgid="6374339738119166953">"Número privado"</string>
<string name="payphone" msgid="7726415831153618726">"Teléfono público"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min y <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> a las <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"No se puede llamar a este número"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Para configurar el buzón de voz, toca la tecla de menú y, a continuación, toca Ajustes."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Para llamar al buzón de voz, debes desactivar el modo avión."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"La búsqueda por voz no está disponible"</string>
<string name="call_not_available" msgid="8941576511946492225">"No se puede hacer llamadas porque se ha inhabilitado la aplicación Teléfono."</string>
<string name="activity_not_available" msgid="2287665636817987623">"No hay aplicaciones para esa acción en este dispositivo"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Escribe un nombre o un teléfono"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"No hay llamadas"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"No hay mensajes de voz recientes"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Buscar contactos"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Añade número o busca contactos"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Tu historial de llamadas está vacío"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Hacer una llamada"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"No tienes llamadas perdidas."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La bandeja de entrada del buzón de voz está vacía."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar solo favoritos"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
- <string name="call_log_all_title" msgid="3566738938889333307">"Todo"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historial de llamadas"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Todas"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Mensaje de voz"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"¿Bloquear el número <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Se bloquearán las llamadas de este número y se eliminarán los mensajes del buzón de voz automáticamente."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Se bloquearán las llamadas de este número, pero la persona que llame puede seguir dejando mensajes en el buzón de voz."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"¿Desbloquear el número <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Las llamadas de este número ya no estarán bloqueadas."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Marcación rápida"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recientes"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historial de llamadas"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contactos"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Buzón de voz"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Eliminado de favoritos"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Deshacer"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Llamar a <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Crear nuevo contacto"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Añadir al contacto actual"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Añadir a un contacto"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Enviar SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Hacer videollamada"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Ver historial de llamadas completo"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> llamadas perdidas nuevas"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"La marcación rápida te permite llamar a tus contactos favoritos y a los números que llamas con más frecuencia con solo tocar la pantalla una vez"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"No hay contactos"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Aún no tienes contactos en la función de marcación rápida"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Añadir un favorito"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Aún no tienes contactos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Añadir un contacto"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Toca la imagen para ver todos los números o mantenla pulsada para cambiar el orden"</string>
<string name="remove_contact" msgid="1080555335283662961">"Eliminar"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS LOS CONTACTOS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videollamada"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ESCUCHAR"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Ver detalles"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Enviar un mensaje"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detalles de la llamada"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Llamar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Llamada perdida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Has respondido una llamada de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Mensaje de voz sin leer de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Mensaje de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Llamar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"en <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Llamar"</string>
<string name="description_call_action" msgid="4000549004089776147">"Llamar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videollamada a <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videollamada a <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Escuchar el buzón de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reproducir mensaje de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pausar mensaje de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Eliminar mensaje de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> mensajes de voz nuevos</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> mensaje de voz nuevo</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Crear contacto para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Añadir <xliff:g id="NAMEORNUMBER">^1</xliff:g> a un contacto"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detalles de llamada de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Eliminada del historial de llamadas"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Denunciar"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Hoy"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Ayer"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Más antiguo"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respuestas rápidas"</string>
<string name="call_settings_label" msgid="313434211353070209">"Llamadas"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Bloqueo de llamadas"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueo de llamadas desactivado temporalmente"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Anteriormente marcaste algunas llamadas para que se enviaran automáticamente al buzón de voz a través de otras aplicaciones."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Error al importar"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Añadir número"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Se bloquearán las llamadas de estos números y se eliminarán los mensajes del buzón de voz automáticamente."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Se bloquearán las llamadas de estos números, pero podrán seguir dejando mensajes en el buzón de voz."</string>
+ <string name="block_list" msgid="7760188925338078011">"Números bloqueados"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> no es válido."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ya está bloqueado."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bloqueo de llamadas inhabilitado durante 48 horas"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Inhabilitado porque has hecho una llamada de emergencia."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Cuentas de llamadas"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Activar"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Establecer permisos"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Para habilitar la marcación rápida, activa el permiso la aplicación Contactos."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Para ver el registro de llamadas, activa el permiso de la aplicación Teléfono."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Para ver tus contactos, activa el permiso de la aplicación Contactos."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Para acceder al buzón de voz, activa el permiso de la aplicación Teléfono."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Para poder buscar tus contactos, activa los permisos de contactos."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Para hacer una llamada, activa el permiso de la aplicación Teléfono."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"La aplicación Teléfono no tiene permiso para editar los ajustes del sistema."</string>
</resources>
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 347ef78f7..0819f0f21 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefoni valimisklahvistik"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Kõneajalugu"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Helista kasutajale <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Muuda enne helistamist numbrit"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Lisa kontaktidesse"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Kõneajaloost kustutamine"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Kõneajaloo kustutamine"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Kustuta kõnepost"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Jaga kõneposti"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Kõnesid pole"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Kõneajalugu"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Valest numbrist teavitamine"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopeeri number"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopeeri transkribeerimine"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokeeri number"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Number <xliff:g id="NUMBER">%1$s</xliff:g> on blokeeritud"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Deblokeeri number"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Number <xliff:g id="NUMBER">%1$s</xliff:g> on deblokeeritud"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"VÕTA TAG."</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Kustuta"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Muuda enne helistamist numbrit"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Kustuta kõneajalugu"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Kustuta kõnepost"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Kõnepost kustutati"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"VÕTA TAGASI"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Kas kustutada kõneajalugu?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"See kustutab ajaloost kõik kõned"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Kõneajaloo kustutamine ..."</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Uus kõnepostisõnum kasutajalt <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Kõneposti ei õnnestunud esitada"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Puhverdamine ..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Kõneposti laadimine ..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Kõneposti laadimine ebaõnnestus"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Ainult kõnepostiga kõned"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Ainult sissetulevad kõned"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Ainult väljuvad kõned"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Ainult vastamata kõned"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visuaalne kõnepost"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Vaadake ja kuulake oma kõnepostisõnumeid numbrile helistamata. Lisanduda võivad andmesidetasud."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Seaded"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Kõneposti värskendused ei ole saadaval"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Uus kõnepostiteade. Praegu ei saa seda laadida."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Kõneposti seadistamine"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Heli ei ole saadaval"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Seadistamine"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Helista kõneposti"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Aeglaseim kiirus"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Aeglane kiirus"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Tavaline kiirus"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Kiire kiirus"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Kiireim kiirus"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Valige number"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Valige number"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Kõneajalugu"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Rohkem valikuid"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"valimisklahvistik"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopeeri"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Kuva ainult väljuvad"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Kuva ainult sissetulevad"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Kuva ainult vastamata"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Väljaminev videokõne"</string>
<string name="type_missed_video" msgid="954396897034220545">"Vastamata videokõne"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Kõnepost"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Keeldutud kõne"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokeeritud kõne"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Sissetulevad kõned"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Esita kõnepostisõnum"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Kuva kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Helista: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Kontakti <xliff:g id="NAMEORNUMBER">%1$s</xliff:g> üksikasjad"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Uus kõnepost."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> kõnet."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videokõne."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"SMS-i saatmine kontaktile <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Kõnepost"</string>
<string name="private_num" msgid="6374339738119166953">"Varjatud number"</string>
<string name="payphone" msgid="7726415831153618726">"Telefoniautomaat"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> kell <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Sellele numbrile ei saa helistada"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Kõneposti seadistamiseks minge valikusse Menüü &gt; Seaded."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Kõneposti kuulamiseks lülitage lennurežiim välja."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Häälotsing ei ole saadaval"</string>
<string name="call_not_available" msgid="8941576511946492225">"Helistada ei saa, sest telefonirakendus on keelatud."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Seadmes pole selleks sobilikku rakendust"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Sisestage nimi või telefoninumber"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Kõnesid pole"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Ühtegi hiljutist kõneposti pole"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Otsige kontakte"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Lisage nr või otsige kontakte"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Teie kõneajalugu on tühi"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Helista"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Vastamata kõnesid pole."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Kõneposti postkast on tühi."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Kuva ainult lemmikud"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Ajalugu"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Kõneajalugu"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Kõik"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Vastamata"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Kõnepost"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Kas soovite blokeerida numbri <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Kõned sellelt numbrilt blokeeritakse ja kõnepostisõnumid kustutatakse automaatselt."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Kõned sellelt numbrilt blokeeritakse, kuid helistaja saab võib-olla siiski teile kõnepostisõnumeid jätta."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKEERI"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Kas soovite deblokeerida numbri <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Selle numbri jaoks pole teile helistamine enam blokeeritud."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKEERI"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Kiirvalimine"</string>
- <string name="tab_recents" msgid="929949073851377206">"Hiljutised"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Kõneajalugu"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktid"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Kõnepost"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Eemaldatud lemmikute hulgast"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Võta tagasi"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Helista <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Loo uus kontakt"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Lisa olemasolevale kontaktile"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Kontaktile lisamine"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS-i saatmine"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Videokõne tegemine"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Kogu kõneajaloo vaatamine"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokeeri number"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> uus/uut vastamata kõne(t)"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Kiirvalimiset kasutades saate ühe puudutusega helistada lemmiknumbritele ja sagedasti kasutatavatele numbritele"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Kontakte pole"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Te pole veel kedagi kiirvalimisse lisanud"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Lisa lemmik"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Teil pole veel kontakte"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Lisa kontakt"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Puudutage kujutist, et näha kõiki numbreid, või puudutage pikalt järjestuse muutmiseks"</string>
<string name="remove_contact" msgid="1080555335283662961">"Eemalda"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"KÕIK KONTAKTID"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videokõne"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"KUULA"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Vaadake üksikasju"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Saada sõnum"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Kõne üksikasjad"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Helistamine: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Vastamata kõne: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Vastati kõnele: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Lugemata kõnepost kasutajalt <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Kõnepost kasutajalt <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Kõne: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"kontol <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Helistamine"</string>
<string name="description_call_action" msgid="4000549004089776147">"Helistamine: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videokõne kontaktile <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videokõne kirjele <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Kontakti <xliff:g id="NAMEORNUMBER">^1</xliff:g> kõneposti kuulamine"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Kõnepostisõnumite esita kontaktilt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Kõnepostisõnumite peatamine kontaktilt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Kõnepostisõnumite kustutamine kontaktilt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> uut kõnepostisõnumit</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> uus kõnepostisõnum</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Kontakti loomine kirjele <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Kirje <xliff:g id="NAMEORNUMBER">^1</xliff:g> lisamine olemasolevale kontaktile"</string>
<string name="description_details_action" msgid="2433827152749491785">"Kontakti <xliff:g id="NAMEORNUMBER">^1</xliff:g> kõne üksikasjad"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Kustutatud kõneajaloost"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Teavita"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Täna"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Eile"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Vanem"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Kiirvastused"</string>
<string name="call_settings_label" msgid="313434211353070209">"Kõned"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Kõnede blokeerimine"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Kõnede blokeerimine on ajutiselt väljas"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Impordi numbrid"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Märkisite varem, et osad helistajad saadetaks muude rakenduste kaudu automaatselt kõneposti."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Vaata numbreid"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Impordi"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importimine ebaõnnestus"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Numbri deblokeerimine"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Lisa number"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Kõned nendelt numbritelt blokeeritakse ja kõnepostisõnumid kustutatakse automaatselt."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Kõned nendelt numbritelt blokeeritakse, kuid helistajad saavad võib-olla siiski teile kõnepostisõnumeid jätta."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokeeritud numbrid"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> on kehtetu."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> on juba blokeeritud."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Kõnede blokeerimine on 48 tunniks keelatud"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Keelatud, kuna tehti hädaabikõne."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Helistamiskontod"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Lülita sisse"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Määra load"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Kiirvalimise lubamiseks lülitage sisse kontaktiluba."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Kõnelogi vaatamiseks lülitage sisse telefoniluba."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Kontaktide vaatamiseks lülitage sisse kontaktiluba."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Kõnepostile juurdepääsemiseks lülitage sisse telefoniluba."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Kontaktide otsimiseks lülitage sisse kontaktiload."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Helistamiseks lülitage sisse telefoniluba."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefonirakendusel pole luba süsteemiseadetesse kirjutada."</string>
</resources>
diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml
index b9709cc35..96c6e13af 100644
--- a/res/values-eu-rES/strings.xml
+++ b/res/values-eu-rES/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Telefonoa"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefonoa"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Deitu"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefonoaren markagailua"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefonoa"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Deien historia"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Deitu <xliff:g id="NAME">%s</xliff:g> erabiltzaileari"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Editatu zenbakia deitu aurretik"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Gehitu kontaktuetan"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Ezabatu deien historiatik"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Garbitu deien historia"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ezabatu ahots-mezua"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Partekatu ahots-mezua"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Ez dago deirik"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Deien historia"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Jakinarazi zenbakia okerra dela"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopiatu zenbakia"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiatu transkripzioa"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokeatu zenbakia"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatuta"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Desblokeatu zenbakia"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> desblokeatuta"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"DESEGIN"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Ezabatu"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editatu zenbakia deitu aurretik"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Garbitu deien historia"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ezabatu ahots-mezua"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ahots-mezua ezabatzea"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESEGIN"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Deien historia garbitu nahi duzu?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Historiako dei guztiak ezabatuko dira"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Deien historia garbitzen…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> deitzailearen ahots-mezu berria"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Ezin izan dira erreproduzitu ahots-mezuak"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buferreratzen…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Erantzungailua kargatzen…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Ezin izan da kargatu erantzungailua"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Erantzungailuko deiak soilik"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Sarrerako deiak soilik"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Irteerako deiak soilik"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Dei galduak soilik"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Ikusizko erantzungailua"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Ikusi eta entzun erantzungailuko mezuak, inora deitu beharrik gabe. Agian datu-konexioaren kostuak ordaindu beharko dituzu."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Ezarpenak"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Ez dago erantzungailuaren berririk"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Ahots-mezu berri bat duzu zain. Une honetan ezin da kargatu."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Konfiguratu erantzungailua"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audioa ez dago erabilgarri"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Konfiguratu"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Deitu erantzungail."</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Abiadurarik txikiena"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Abiadura txikia"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Abiadura normala"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Abiadura handia"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Abiadurarik handiena"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Aukeratu zenbakia"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Aukeratu zenbakia"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Deien historia"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Aukera gehiago"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"markagailua"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopiatu"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Erakutsi irteerakoak soilik"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Erakutsi sarrerakoak soilik"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Erakutsi galduak soilik"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Irteerako bideo-deia"</string>
<string name="type_missed_video" msgid="954396897034220545">"Bideo-dei galdua"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Erantzungailua"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Baztertutako deia"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokeatutako deia"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Sarrerako deiak"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Erreproduzitu erantzungailuko ahots-mezuak"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Ikusi <xliff:g id="NAME">%1$s</xliff:g> kontaktua"</string>
<string name="description_call" msgid="3443678121983852666">"Deitu <xliff:g id="NAME">%1$s</xliff:g> erabiltzaileari"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> kontaktuaren xehetasunak"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Ahots-mezu berria erantzungailuan."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> dei."</string>
<string name="description_video_call" msgid="2933838090743214204">"Bideo-deia."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Bidali SMSa <xliff:g id="NAME">%1$s</xliff:g> kontaktuari"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Erantzungailua"</string>
<string name="private_num" msgid="6374339738119166953">"Zenbaki pribatua"</string>
<string name="payphone" msgid="7726415831153618726">"Telefono publikoa"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> (<xliff:g id="TIME">%2$s</xliff:g>)"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Ezin da zenbaki horretara deitu"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Erantzungailua konfiguratzeko, joan Menua &gt; Ezarpenak atalera."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Erantzungailua entzuteko, Hegaldi modua desaktibatu behar duzu."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Ahots bidezko bilaketa ez dago erabilgarri"</string>
<string name="call_not_available" msgid="8941576511946492225">"Ezin da telefono-deirik egin Telefonoa aplikazioa desgaitu egin delako."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Ez dago hori egin dezakeen aplikaziorik gailu honetan"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Idatzi izena edo telefono-zenbakia"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Ez dago deirik"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Ez dago duela gutxiko ahots-mezurik"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Bilatu kontaktuetan"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Gehitu zk. edo bilatu kontaktua"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Hutsik dago deien historia"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Deitu"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Ez duzu galdutako deirik."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hutsik dago erantzungailuaren sarrerako ontzia."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Erakutsi gogokoak soilik"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Deien historia"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Guztiak"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Galduak"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Erantzungailuko deiak"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatu nahi duzu?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Zenbaki honetatik jasotzen diren deiak blokeatu egingo dira, eta mezuak automatikoki ezabatuko dira erantzungailutik."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Zenbaki honetatik jasotzen diren deiak blokeatu egingo dira, baina deitzaileak mezuak utzi ahal izango dizkizu erantzungailuan."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKEATU"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> desblokeatu nahi duzu?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Aurrerantzean, zenbakia ez da blokeatuta egongo eta zuri deitzeko gai izango da."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOKEATU"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Markatze bizkorra"</string>
- <string name="tab_recents" msgid="929949073851377206">"Azkenak"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Deien historia"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktuak"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Erantzungailua"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Gogokoetatik kendu da"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Desegin"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Deitu <xliff:g id="NUMBER">%s</xliff:g> zenbakira"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Sortu kontaktua"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Gehitu lehendik dagoen kontaktu batean"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Gehitu kontaktuetan"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Bidali SMS mezua"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Egin bideo-deia"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Ikusi deien historia osoa"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokeatu zenbakia"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> dei galdu berri"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Markatze bizkorrak gehien erabiltzen dituzun zenbaki eta gogokoetara ukitze bakarrarekin deitzeko balio du"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Ez dago kontakturik"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Ez duzu inor markatze bizkorrean oraindik"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Gehitu gogokoak"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Ez duzu kontakturik oraindik"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Gehitu kontaktua"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Ukitu irudia zenbaki guztiak ikusteko, edo eduki ezazu ukituta berrantolatzeko"</string>
<string name="remove_contact" msgid="1080555335283662961">"Kendu"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"KONTAKTU GUZTIAK"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Bideo-deia"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ENTZUN"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Ikusi xehetasunak"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Bidali mezua"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Deiaren xehetasunak"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Deitu: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Galdutako deiaren xehetasunak: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Erantzundako deiaren xehetasunak: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Erantzungailuko mezua, irakurri gabe: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Erantzungailuko mezua: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Egindako deiaren xehetasunak: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> kontuan"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Deitu"</string>
<string name="description_call_action" msgid="4000549004089776147">"Deitu <xliff:g id="NAMEORNUMBER">^1</xliff:g> deitzaileari"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Bideo-deia egin da (<xliff:g id="NAMEORNUMBER">^1</xliff:g>)."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Egin bideo-deia (<xliff:g id="NAMEORNUMBER">^1</xliff:g>)."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Deitzaile honek erantzungailuan utzitako ahots-mezuak entzutea: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Erreproduzitu erantzungailuko <xliff:g id="NAMEORNUMBER">^1</xliff:g> deitzailearen mezua"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pausatu erantzungailuko <xliff:g id="NAMEORNUMBER">^1</xliff:g> deitzailearen mezua"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Ezabatu erantzungailuko <xliff:g id="NAMEORNUMBER">^1</xliff:g> deitzailearen mezua"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ahots-postako mezu berri</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ahots-postako mezu berri</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Sortu kontaktua (<xliff:g id="NAMEORNUMBER">^1</xliff:g>)"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Gehitu <xliff:g id="NAMEORNUMBER">^1</xliff:g> lehendik dagoen kontaktu batean"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> kontaktuaren xehetasunak"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Ezabatu deien historiatik"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Eman honen berri"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Gaur"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Atzo"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Zaharrak"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Erantzun bizkorrak"</string>
<string name="call_settings_label" msgid="313434211353070209">"Deiak"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Deien blokeoa"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Deien blokeoa aldi baterako desgaituta"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Deiak blokeatzeko aukera desgaitu egin da, azken 48 orduetan larrialdi-zerbitzuekin harremanetan jarri zarelako telefono honetatik. Berriro gaituko da 48 orduko epea igaro ondoren."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Inportatu zenbakiak"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Deitzaile batzuk beste aplikazio batzuen bidez erantzungailura automatikoki bidaltzea aukeratu duzu."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ikusi zenbakiak"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Inportatu"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ezin izan da inportatu"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desblokeatu zenbakia"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Gehitu zenbakia"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Zenbaki hauetatik jasotzen diren deiak blokeatu egingo dira, eta mezuak automatikoki ezabatuko dira erantzungailutik."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Zenbaki hauetatik jasotzen diren deiak blokeatu egingo dira, baina deitzaileek mezuak utzi ahal izango dizkizute erantzungailuan."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokeatutako zenbakiak"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> zenbakiak ez du balio."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> blokeatuta dago dagoeneko."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Deiak blokeatzeko aukera desgaituta egongo da 48 orduan"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desgaituta dago, larrialdi-dei bat egin delako."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Deiak egiteko kontuak"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktibatu"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Ezarri baimenak"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Markatze bizkorra gaitzeko, aktibatu Kontaktuak erabiltzeko baimena."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Deien erregistroa ikusteko, aktibatu Telefonoa erabiltzeko baimena."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Kontaktuak ikusteko, aktibatu Kontaktuak erabiltzeko baimena."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Erantzungailuan sartzeko, aktibatu Telefonoa erabiltzeko baimena."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Kontaktuak bilatzeko, aktibatu kontaktuak atzitzeko baimenak."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Deiak egiteko, aktibatu Telefonoa erabiltzeko baimena."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefonoaren aplikazioak ez du baimenik sistemaren ezarpenetan ezer idazteko."</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 2ee84dabc..524dc62d8 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"شماره‌گیر"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"تلفن"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"تلفن"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"صفحه شماره‌گیری تلفن"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"تلفن"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"سابقه تماس"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"تماس با <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ویرایش شماره قبل از تماس"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"افزودن به مخاطبین"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"حذف از سابقه تماس"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"پاک کردن سابقه تماس"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"حذف پست صوتی"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"اشتراک‌گذاری پست صوتی"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"هیچ تماسی وجود ندارد"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"سابقه تماس"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"گزارش شماره نادرست"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"کپی کردن شماره"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"کپی کردن آوانویسی"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"مسدود کردن شماره"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> مسدود شد"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"گشودن شماره"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> گشوده شد"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"واگرد"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"حذف"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"ویرایش شماره قبل از تماس"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"پاک کردن سابقه تماس"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"حذف پست صوتی"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"پست صوتی حذف شد"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"واگرد"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"سابقه تماس پاک شود؟"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"این کار همه تماس‌ها را از سابقه شما حذف می‌کند"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"در حال پاک کردن سابقه تماس..."</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>، <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"پست صوتی جدید از <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"پست صوتی پخش نشد"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"در حال بافر کردن؟؟؟"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"در حال بارگیری پست صوتی..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"پست صوتی بارگیری نشد"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"فقط تماس‌های دارای پست صوتی"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"فقط تماس‌های دریافتی"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"فقط تماس‌های خروجی"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"فقط تماس‌های بی‌پاسخ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"پست صوتی تصویری"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"بدون اینکه مجبور به گرفتن شماره‌ای باشید، پست صوتی را ببینید و به آن گوش دهید. ممکن است هزینه مصرف داده اعمال شود."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"تنظیمات"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"به‌روزرسانی‌های پست صوتی در دسترس نیستند"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"پست صوتی جدید در انتظار است. در حال حاضر نمی‌تواند بارگیری شود."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"پست صوتی‌تان را تنظیم کنید"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"صوت در دسترس نیست"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"راه‌اندازی"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"تماس با پست صوتی"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"کمترین سرعت"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"سرعت کم"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"سرعت عادی"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"سرعت زیاد"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"بیشترین سرعت"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"انتخاب شماره"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"انتخاب شماره"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"سابقه تماس"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"گزینه‌های بیشتر"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"صفحه شماره‌گیری"</string>
- <string name="menu_copy" msgid="6108677035381940698">"کپی"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"فقط نمایش خروجی"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"فقط نمایش ورودی"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"فقط نمایش بی‌پاسخ"</string>
@@ -87,7 +90,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"جزئیات تماس"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"جزئیات در دسترس نیست"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"استفاده از صفحه‌کلید لمسی"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"برگشت به تماس در حال انجام"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"برگشت به تماس درحال انجام"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"افزودن تماس"</string>
<string name="type_incoming" msgid="6502076603836088532">"تماس ورودی"</string>
<string name="type_outgoing" msgid="343108709599392641">"تماس خروجی"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"تماس ویدیویی خروجی"</string>
<string name="type_missed_video" msgid="954396897034220545">"تماس ویدیویی بی‌پاسخ"</string>
<string name="type_voicemail" msgid="5153139450668549908">"پست صوتی"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"تماس ردشده"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"تماس مسدودشده"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"تماس‌های ورودی"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"پخش پست صوتی"</string>
<string name="description_view_contact" msgid="5205669345700598415">"مشاهده مخاطب <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"تماس با <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"جزئیات تماس برای <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"پست صوتی جدید."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> تماس."</string>
<string name="description_video_call" msgid="2933838090743214204">"تماس ویدیویی."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"ارسال پیامک به <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"پست صوتی"</string>
<string name="private_num" msgid="6374339738119166953">"شماره خصوصی"</string>
<string name="payphone" msgid="7726415831153618726">"تلفن عمومی"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> دقیقه <xliff:g id="SECONDS">%s</xliff:g> ثانیه"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ساعت <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"تماس با این شماره ممکن نیست"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"‏برای راه‌اندازی پست صوتی به منو &gt; تنظیمات بروید."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"برای تماس با پست صوتی، ابتدا حالت هواپیما را غیرفعال کنید."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"جستجوی شفاهی در دسترس نیست"</string>
<string name="call_not_available" msgid="8941576511946492225">"برقراری تماس تلفنی ممکن نیست، زیرا برنامه تلفن غیرفعال شده است."</string>
<string name="activity_not_available" msgid="2287665636817987623">"هیچ برنامه‌ای برای انجام این کار در این دستگاه نصب نیست"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"نام یا شماره تلفنی وارد کنید"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"هیچ تماسی وجود ندارد"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"هیچ پست صوتی اخیری وجود ندارد"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"جستجوی مخاطبین"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"افزودن شماره یا جستجوی مخاطب"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"سابقه تماستان خالی است"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"برقراری تماس تلفنی"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"تماس از دست رفته‌ای ندارید."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"صندوق پست صوتی‌تان خالی است."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"فقط نمایش موارد دلخواه"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"سابقه"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"سابقه تماس"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"همه موارد"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"بی‌پاسخ"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"پست صوتی"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> مسدود شود؟"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"تماس‌‌ها از این شماره مسدود می‌شود و پست‌‌های صوتی به‌طور خودکار حذف می‌شود."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"تماس‌ها از این شماره مسدود می‌شود، اما ممکن است تماس‌گیرنده همچنان بتواند برایتان پست صوتی بگذارد."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"مسدود کردن"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> گشوده شود؟"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"این شماره دیگر برای تماس با شما محدودیتی نخواهد داشت."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"گشودن"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"شماره‌گیری سریع"</string>
- <string name="tab_recents" msgid="929949073851377206">"موارد اخیر"</string>
+ <string name="tab_history" msgid="2563144697322434940">"سابقه تماس"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"مخاطبین"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"پست صوتی"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"از موارد دلخواه حذف شد"</string>
- <string name="favorite_hidden_undo" msgid="2508998611039406474">"لغو"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"واگرد"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"تماس با <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"ایجاد مخاطب جدید"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"افزودن به مخاطب موجود"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"افزودن به مخاطب"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"ارسال پیامک"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"برقراری تماس ویدیویی"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"مشاهده سابقه تماس به صورت کامل"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"مسدود کردن شماره"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> تماس‌ بی‌پاسخ جدید"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"شماره‌گیری سریع، شماره‌گیری تک لمسی برای مخاطبین برگزیده و شماره‌هایی است که اغلب با آنها تماس می‌گیرید"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"هیچ مخاطبی موجود نیست"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"هنوز کسی در فهرست شماره‌گیری سریع شما نیست"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"افزودن مورد دلخواه"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"هنوز هیچ مخاطبی ندارید"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"افزودن مخاطب"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"برای مشاهده همه شماره‌ها، تصویر را لمس کنید یا برای ترتیب مجدد لمس کنید و نگه دارید"</string>
<string name="remove_contact" msgid="1080555335283662961">"حذف"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"همه مخاطبین"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"تماس ویدیویی"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"گوش دادن"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"مشاهده جزئیات"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"ارسال پیام"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"جزئیات تماس"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"تماس با <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"تماس از دست رفته از <xliff:g id="NAMEORNUMBER">^1</xliff:g>، ‏<xliff:g id="TYPEORLOCATION">^2</xliff:g>، ‏<xliff:g id="TIMEOFCALL">^3</xliff:g>، ‏<xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"تماس پاسخ داده شده از <xliff:g id="NAMEORNUMBER">^1</xliff:g>، ‏<xliff:g id="TYPEORLOCATION">^2</xliff:g>، ‏<xliff:g id="TIMEOFCALL">^3</xliff:g>، ‏<xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"پست صوتی خوانده نشده از <xliff:g id="NAMEORNUMBER">^1</xliff:g>،‏ <xliff:g id="TYPEORLOCATION">^2</xliff:g>،‏ <xliff:g id="TIMEOFCALL">^3</xliff:g>،‏ <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"پست صوتی از <xliff:g id="NAMEORNUMBER">^1</xliff:g>،‏ <xliff:g id="TYPEORLOCATION">^2</xliff:g>،‏ <xliff:g id="TIMEOFCALL">^3</xliff:g>،‏ <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"تماس با <xliff:g id="NAMEORNUMBER">^1</xliff:g>، ‏<xliff:g id="TYPEORLOCATION">^2</xliff:g>، ‏<xliff:g id="TIMEOFCALL">^3</xliff:g>، ‏<xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"در <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"تماس"</string>
<string name="description_call_action" msgid="4000549004089776147">"تماس با <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"تماس ویدیویی با <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"تماس ویدیویی با <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"گوش دادن به پست صوتی از <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"پخش پست صوتی از <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"مکث پست صوتی از <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"حذف پست صوتی از <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one">‏<xliff:g id="COUNT_1">%d</xliff:g> پست صوتی جدید</item>
+ <item quantity="other">‏<xliff:g id="COUNT_1">%d</xliff:g> پست صوتی جدید</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"ایجاد مخاطب برای <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"افزودن <xliff:g id="NAMEORNUMBER">^1</xliff:g> به مخاطب موجود"</string>
<string name="description_details_action" msgid="2433827152749491785">"جزئیات تماس برای <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"از سابقه تماس حذف شد"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"گزارش"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"امروز"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"دیروز"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"قدیمی‌تر"</string>
@@ -172,7 +203,7 @@
<string name="voicemail_speaker_off" msgid="7390530056413093958">"خاموش کردن بلندگو."</string>
<string name="voicemail_play_faster" msgid="3444751008615323006">"پخش سریع‌تر"</string>
<string name="voicemail_play_slower" msgid="4544796503902818832">"پخش آهسته‌تر."</string>
- <string name="voicemail_play_start_pause" msgid="3687447935787768983">"شروع یا توقف موقت بازپخش."</string>
+ <string name="voicemail_play_start_pause" msgid="3687447935787768983">"شروع یا مکث بازپخش."</string>
<string name="list_delimeter" msgid="4571593167738725100">"، "</string>
<string name="display_options_title" msgid="7812852361055667468">"گزینه‌های نمایش"</string>
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"صدا و لرزش"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"پاسخ‌های سریع"</string>
<string name="call_settings_label" msgid="313434211353070209">"تماس‌ها"</string>
- <string name="phone_account_settings_label" msgid="5864322009841175294">"حساب‌های تماس اینترنتی"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"مسدود کردن تماس"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"انسداد تماس موقتاً خاموش است"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"چون در ۴۸ ساعت گذشته با این تلفن با سرویس‌های اضطراری تماس گرفتید، انسداد تماس غیرفعال شده است. پس از گذشت ۴۸ ساعت، این قابلیت دوباره فعال می‌شود."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"وارد کردن شماره‌ها"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"قبلاً ازطریق برنامه‌های دیگر، برخی از تماس‌گیرندگان را برای ارسال خودکار به پست صوتی علامت زده‌اید."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"مشاهده شماره‌ها"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"وارد کردن"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"وارد کردن انجام نشد"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"گشودن شماره"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"افزودن شماره"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"تماس‌‌ها از این شماره‌ها مسدود می‌شود و پست‌‌های صوتی به‌طور خودکار حذف می‌شود."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"تماس‌‌ها از این شماره‌ها مسدود می‌شود اما ممکن است همچنان بتوانند برای شما پست صوتی بگذارند."</string>
+ <string name="block_list" msgid="7760188925338078011">"شماره‌های مسدود شده"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> نامعتبر است."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> درحال‌حاضر مسدود شده است."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"مسدود کردن تماس برای ۴۸ ساعت غیرفعال شد"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"به علت برقرار شدن تماس اضطراری، غیرفعال شد."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"حساب‌های تماس"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"روشن کردن"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"تنظیم مجوزها"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"برای فعال کردن شماره‌گیری سریع، مجوز «مخاطبین» را روشن کنید."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"برای دیدن گزارش تماستان، مجوز «تلفن» را روشن کنید."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"برای دیدن مخاطبینتان، مجوز «مخاطبین» را روشن کنید."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"برای دسترسی به پست صوتی‌تان، مجوز «تلفن» را روشن کنید."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"برای جستجوی مخاطبینتان، مجوزهای مخاطبین را روشن کنید."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"برای برقراری تماس، مجوز «تلفن» را روشن کنید."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"برنامه تلفن اجازه نوشتن در تنظیمات سیستم را ندارد."</string>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 7ed42cf5d..2d2117fb8 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Puhelin"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Puhelin"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Puhelimen näppäimistö"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Puhelin"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Soittohistoria"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Soita: <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Muokkaa numeroa ennen puhelua"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Lisää yhteystietoihin"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Poista soittohistoriasta"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Tyhjennä soittohistoria"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Poista vastaajaviesti"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Jaa vastaajaviesti"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Ei puheluja"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Soittohistoria"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Ilmoita epätarkasta numerosta"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopioi numero"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopioi transkriptio"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Estä numero"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Numero <xliff:g id="NUMBER">%1$s</xliff:g> estetty"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Kumoa numeron esto"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Numeron <xliff:g id="NUMBER">%1$s</xliff:g> esto kumottu"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"KUMOA"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Poista"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Muokkaa numeroa ennen puhelua"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Tyhjennä soittohistoria"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Poista vastaajaviesti"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Viesti poistettiin."</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"KUMOA"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Tyhjennetäänkö soittohistoria?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Kaikki soittohistorian tiedot poistetaan"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Tyhjennetään soittohistoriaa…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Uusi vastaajaviesti: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Viestin toistaminen epäonnistui"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Puskuroidaan..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Ladataan puhelinvastaajaa…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Puhelinvastaajan lataaminen epäonnistui"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Vain vastaajaan menneet puhelut"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Vain saapuvat puhelut"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Vain soitetut puhelut"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Vain vastaamattomat puhelut"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visuaalinen puhelinvastaaja"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Voit tarkistaa ja kuunnella vastaajaviestit soittamatta palveluun. Tiedonsiirto voi olla maksullista."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Asetukset"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Puhelinvastaajan tiedot eivät ole käytettävissä"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Uusia viestejä vastaajassa. Lataus ei onnistu tällä hetkellä."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Määritä puhelinvastaajan asetukset"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Ääni ei ole käytettävissä"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Asetusten määritys"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Soita vastaajaan"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Hitain"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Hidas"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normaali nopeus"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Nopea"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Nopein"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Valitse numero"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Valitse numero"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Soittohistoria"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Lisää vaihtoehtoja"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"näppäimistö"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopioi"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Näytä vain soitetut"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Näytä vain saapuneet"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Näytä vain vastaamattomat"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Soitettava videopuhelu"</string>
<string name="type_missed_video" msgid="954396897034220545">"Vastaamaton videopuhelu"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Vastaaja"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Hylätty puhelu"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Estetty puhelu"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Saapuvat puhelut"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Toista vastaajaviesti"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Näytä yhteystieto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Soita: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Yhteystiedot: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Uusi ääniviesti."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> puhelua."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videopuhelu."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Lähetä tekstiviesti: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Vastaaja"</string>
<string name="private_num" msgid="6374339738119166953">"Yksityinen numero"</string>
<string name="payphone" msgid="7726415831153618726">"Maksupuhelin"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> klo <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Numeroon ei voi soittaa"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Määritä puhelinvastaajan asetukset kohdassa Valikko &gt; Asetukset."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Poista lentokonetila käytöstä ennen vastaajaan soittamista."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Puhehaku ei ole käytettävissä"</string>
<string name="call_not_available" msgid="8941576511946492225">"Puhelua ei voi soittaa, koska Puhelin-sovellus on poistettu käytöstä."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Laitteessa ei ole kyseiseen toimintoon tarvittavaa sovellusta"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Anna nimi tai puhelinnumero"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Ei puheluja"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Ei uusia viestejä vastaajassa"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Hae yhteystietoja"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Lisää numero tai hae yhteystiedoista"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Soittohistoriasi on tyhjä."</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Soita puhelu"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Sinulla ei ole vastaamattomia puheluita."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Puhelinvastaajasi postilaatikko on tyhjä."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Näytä vain suosikit"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Soittohistoria"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Kaikki"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Vastaamattomat"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Vastaaja"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Estetäänkö <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Tästä numerosta tulevat puhelut estetään, ja vastaajaviestit poistetaan automaattisesti."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Tästä numerosta tulevat puhelut estetään, mutta soittaja voi silti mahdollisesti jättää vastaajaviestejä."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ESTÄ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Kumotaanko numeron <xliff:g id="NUMBER">%1$s</xliff:g> esto?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Tätä numeroa ei enää estetä soittamasta sinulle."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"KUMOA ESTO"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Pikavalinta"</string>
- <string name="tab_recents" msgid="929949073851377206">"Viimeisimmät"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Soittohistoria"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Yhteystiedot"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Puhelinvastaaja"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Poistettu suosikeista"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Kumoa"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Soita <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Luo uudet yhteystiedot"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Lisää olemassa oleviin yhteystietoihin"</string>
+ <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Luo uusi yhteystieto"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Lisää yhteystietoihin"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Lähetä tekstiviesti"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Soita videopuhelu"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Näytä koko soittohistoria"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Estä numero"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> uutta vastaamatonta puhelua"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Pikavalinnan avulla voit soittaa yhdellä kosketuksella suosikeillesi ja muihin usein käyttämiisi numeroihin"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Ei yhteystietoja"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Pikavalinnassa ei ole vielä yhtään yhteystietoa."</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Lisää suosikki"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Sinulla ei ole yhteystietoja."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Lisää yhteystieto"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Katso kaikki numerot koskettamalla kuvaa tai järjestele tietoja koskettamalla kuvaa pitkään"</string>
<string name="remove_contact" msgid="1080555335283662961">"Poista"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"KAIKKI YHTEYSTIEDOT"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videopuhelu"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"KUUNTELE"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Näytä tiedot"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Lähetä viesti"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Puhelun tiedot"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Soita: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Vastaamaton puhelu soittajalta <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Vastattu puhelu soittajalta <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Lukematon vastaajaviesti: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Vastaajaviesti: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Soita vastaanottajalle <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Soita"</string>
<string name="description_call_action" msgid="4000549004089776147">"Soita: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videopuhelu: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Soita videopuhelu: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Kuuntele vastaajaviesti: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Toista vastaajaviesti lähettäjältä <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Keskeytä vastaajaviesti lähettäjältä <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Poista vastaajaviesti lähettäjältä <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> uutta vastaajaviestiä</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> uusi vastaajaviesti</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Luo kontakti: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Lisää <xliff:g id="NAMEORNUMBER">^1</xliff:g> olemassa olevaan kontaktiin."</string>
<string name="description_details_action" msgid="2433827152749491785">"Yhteystiedon <xliff:g id="NAMEORNUMBER">^1</xliff:g> puhelutiedot"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Poistettu soittohistoriasta"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Palaute"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Tänään"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Eilen"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Vanhempi"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Pikavastaukset"</string>
<string name="call_settings_label" msgid="313434211353070209">"Puhelut"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Puhelujen esto"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Puheluesto väliaikaisesti pois käytöstä"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Tuo numerot"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Valitsit aiemmin muilla sovelluksilla, että tiettyjen soittajien puhelut siirretään automaattisesti vastaajaan."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Näytä numerot"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Tuo"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Tuonti epäonnistui."</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Poista numeron esto"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Lisää numero"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Näistä numeroista tulevat puhelut estetään, ja vastaajaviestit poistetaan automaattisesti."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Näistä numeroista tulevat puhelut estetään, mutta soittajat voivat silti mahdollisesti jättää vastaajaviestejä."</string>
+ <string name="block_list" msgid="7760188925338078011">"Estetyt numerot"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> on virheellinen."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> on jo estetty."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Puhelujen esto poistettiin käytöstä 48 tunnin ajaksi"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Toiminto poistettiin käytöstä hätäpuhelun vuoksi."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Puhelutilit"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Ota käyttöön"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Määritä käyttöoikeudet"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Jos haluat käyttää pikavalintaa, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Jos haluat katsella puhelulokiasi, ota Puhelin-käyttöoikeus käyttöön."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Jos haluat katsella yhteystietojasi, ota Yhteystiedot-käyttöoikeus käyttöön."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Jos haluat käyttää puhelinvastaajaa, ota Puhelin-käyttöoikeus käyttöön."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Jos haluat hakea kontaktejasi, ota käyttöön kontaktien käyttöoikeudet."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Jos haluat soittaa puheluja, ota Puhelin-käyttöoikeus käyttöön."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Puhelinsovelluksella ei ole oikeutta muokata järjestelmän asetuksia."</string>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 11376f8f5..dbb64e3f4 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Appeler"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Téléphone"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Téléphone"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Clavier du téléphone"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Téléphone"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historique des appels"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Appeler <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Modifier le numéro avant de passer l\'appel"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Ajouter aux contacts"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Supprimer l\'historique des appels"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Effacer l\'historique d\'appels"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Supprimer le message vocal"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Partager le message vocal"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Aucun appel"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historique des appels"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Signaler un numéro incorrect"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copier le numéro"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copier la transcription"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloquer le numéro"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Le numéro « <xliff:g id="NUMBER">%1$s</xliff:g> » est bloqué"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Débloquer le numéro"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Le numéro « <xliff:g id="NUMBER">%1$s</xliff:g> » est débloqué"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ANNULER"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Supprimer"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Modifier le numéro avant l\'appel"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Effacer l\'historique des appels"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Supprimer le message vocal"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mess. vocal supprimé"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANNULER"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Effacer l\'historique des appels?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tous les appels seront supprimés de votre historique."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Suppression historique des appels…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nouveau message vocal de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Impossible de lire le message vocal"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Mise mémoire tampon"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Chargement du message vocal en cours…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Impossible de charger la messagerie vocale"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Seulement les appels avec message vocal"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Seulement les appels entrants"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Seulement les appels sortants"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Seulement les appels manqués"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Messagerie vocale visuelle"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Affichez et écoutez vos messages vocaux, sans devoir appeler un numéro. Des frais supplémentaires liés à la consommation de données peuvent s\'appliquer."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Paramètres"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Impossible de mettre à jour la messagerie vocale"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nouveau message vocal. Impossible de le charger pour le moment."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configurez votre messagerie vocale"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio non disponible"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurer"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Appeler mess. vocale"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Vitesse minimale"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Vitesse lente"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Vitesse normale"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Vitesse rapide"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Vitesse maximale"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Sélectionner un numéro"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Sélectionner un numéro"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historique des appels"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Plus d\'options"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"clavier numérique"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copier"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Afficher appels sortants uniq."</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Afficher appels entrants uniq."</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Afficher appels manqués uniq."</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Appel vidéo sortant"</string>
<string name="type_missed_video" msgid="954396897034220545">"Appel vidéo manqué"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Messagerie vocale"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Appel refusé"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Appel bloqué"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Appels entrants"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Écouter le message vocal"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Coordonnées de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nouveau message vocal."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> appels."</string>
<string name="description_video_call" msgid="2933838090743214204">"Appel vidéo."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Envoyer un texto à <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Messagerie vocale"</string>
<string name="private_num" msgid="6374339738119166953">"Numéro privé"</string>
<string name="payphone" msgid="7726415831153618726">"Cabine téléphonique"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Vous ne pouvez pas appeler ce numéro"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Pour configurer la messagerie vocale, accédez à Menu &gt; Paramètres."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Veuillez désactiver le mode Avion avant d\'appeler la messagerie vocale."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Recherche vocale non disponible"</string>
<string name="call_not_available" msgid="8941576511946492225">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Cette action ne peut être effectuée par aucune application sur cet appareil."</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Entrez nom ou numéro de tél."</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Aucun appel"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Aucun message vocal récent"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Rechercher des contacts"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Ajouter nº ou chercher contact"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Votre historique des appels est vide"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Faire un appel"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Vous n\'avez aucun appel manqué."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La boîte de réception de votre messagerie vocale est vide."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Afficher les contacts favoris uniquement"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historique"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historique des appels"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Mess. voc."</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloquer le numéro <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Les appels provenant de ce numéro seront bloqués et les messages vocaux seront automatiquement supprimés."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Les appels provenant de ce numéro seront bloqués, mais il se peut que l\'appelant puisse quand même vous laisser des messages vocaux."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUER"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Débloquer le numéro <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Les appels associés à ce numéro ne seront plus bloqués."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DÉBLOQUER"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Composition abrégée"</string>
- <string name="tab_recents" msgid="929949073851377206">"Récents"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historique des appels"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Messagerie vocale"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Supprimé des favoris"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Annuler"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Créer un contact"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Ajouter à un contact existant"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Ajouter à un contact"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Envoyer un texto"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Faire un appel vidéo"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Afficher tout l\'historique des appels"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquer le numéro"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nouveaux appels manqués"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"La numérotation abrégée vous permet d\'appeler vos contacts favoris et les numéros que vous appelez fréquemment d\'un simple toucher du doigt."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Aucun contact"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Aucun contact ne figure dans vos numéros de composition abrégée"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Ajouter un favori"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Vous n\'avez pas encore de contacts"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Ajouter un contact"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Touchez l\'image pour afficher tous les numéros, ou maintenez votre doigt sur l\'écran pour les réorganiser"</string>
<string name="remove_contact" msgid="1080555335283662961">"Supprimer"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TOUS LES CONTACTS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Appel vidéo"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ÉCOUTER"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Afficher les détails"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Envoyer un message"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Détails de l\'appel"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Appeler <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Appel manqué : <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Appel répondu : <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Message vocal non écouté de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Appel effectué : <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"sur <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Appeler"</string>
<string name="description_call_action" msgid="4000549004089776147">"Appeler <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Appel vidéo à <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Appel vidéo avec <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Écouter le message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Jouer le message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Interrompre le message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Supprimer le message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> nouveau message vocal</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nouveaux messages vocaux</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Créer un contact pour <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Ajouter <xliff:g id="NAMEORNUMBER">^1</xliff:g> à un contact existant"</string>
<string name="description_details_action" msgid="2433827152749491785">"Détails de l\'appel pour <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"L\'appel a bien été supprimé de l\'historique"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Rapport"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Aujourd\'hui"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Hier"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Plus anciens"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Réponses rapides"</string>
<string name="call_settings_label" msgid="313434211353070209">"Appels"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blocage des appels"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blocage appels désactivé temporairement"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importer les numéros"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Vous avez indiqué que certains appelants devaient automatiquement être renvoyés vers la messagerie vocale par d\'autres applications."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Afficher les numéros"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importer"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Échec de l\'importation"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Débloquer le numéro"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Ajouter un numéro"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Les appels provenant de ces numéros seront bloqués et les messages vocaux seront automatiquement supprimés."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Les appels provenant de ces numéros seront bloqués, mais il se peut que les appelants puissent quand même vous laisser des messages vocaux."</string>
+ <string name="block_list" msgid="7760188925338078011">"Numéros bloqués"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Le numéro <xliff:g id="NUMBER">%1$s</xliff:g> n\'est pas valide."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Le numéro <xliff:g id="NUMBER">%1$s</xliff:g> est déjà bloqué."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blocage des appels désactivé pendant 48 heures"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Désactivé, car un appel d\'urgence a été effectué"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Comptes d\'appel"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Activer"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Définir les autorisations"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Pour activer la composition abrégée, activez l\'autorisation Contacts."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Pour rechercher vos contacts et les lieux à proximité, activez les autorisations Contacts."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Pour faire un appel, activez l\'autorisation Téléphone."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"L\'application Téléphone n\'est pas autorisée à modifier les paramètres du système."</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 204f1ce15..95068f5db 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Appeler"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Téléphone"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Téléphone"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Clavier du téléphone"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Tél."</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historique des appels"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Appeler <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Modifier le numéro avant d\'effectuer l\'appel"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Ajouter aux contacts"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Supprimer de l\'historique des appels"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Supprimer l\'historique des appels"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Supprimer le message vocal"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Partager le message vocal"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Aucun appel"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historique des appels"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Signaler un numéro incorrect"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copier le numéro"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copier la transcription"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloquer le numéro"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est bloqué."</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Débloquer le numéro"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est débloqué."</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ANNULER"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Supprimer"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Modifier le numéro avant de passer l\'appel"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Supprimer l\'historique des appels"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Supprimer le message vocal"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mess. vocal supprimé"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANNULER"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Supprimer l\'historique des appels ?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tous les appels seront supprimés de votre historique."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Suppression historique des appels…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nouveau message vocal de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Impossible de lire le message vocal."</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Mise en mémoire tampon..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Chargement du message vocal en cours…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Impossible de charger le message vocal."</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Seulement les appels avec message vocal"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Seulement les appels entrants"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Seulement les appels sortants"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Seulement les appels manqués"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Messagerie vocale visuelle"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Affichez et écoutez vos messages vocaux, sans devoir appeler un numéro. Des frais supplémentaires liés à la consommation de données peuvent être facturés."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Paramètres"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Impossible de mettre à jour la messagerie vocale."</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nouveau message vocal. Impossible de le charger pour le moment."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configurer votre messagerie vocale"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio non disponible"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configuration"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Appeler mess. vocale"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Vitesse minimale"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"vitesse lente"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Vitesse normale"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Vitesse rapide"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Vitesse maximale"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Sélectionner un numéro"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Sélectionner un numéro"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historique des appels"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Plus d\'options"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"clavier numérique"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copier"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Afficher appels sortants uniq."</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Afficher appels entrants uniq."</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Afficher appels manqués uniq."</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Appel vidéo sortant"</string>
<string name="type_missed_video" msgid="954396897034220545">"Appel vidéo manqué"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Messagerie vocale"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Appel refusé"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Appel bloqué"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Appels entrants"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Écouter le message vocal"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Afficher le contact <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Appeler <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Coordonnées associées à <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nouveau message vocal"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> appels"</string>
<string name="description_video_call" msgid="2933838090743214204">"Appel vidéo"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Envoyer un SMS à <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Messagerie vocale"</string>
<string name="private_num" msgid="6374339738119166953">"Numéro privé"</string>
<string name="payphone" msgid="7726415831153618726">"Cabine téléphonique"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> secondes"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min et <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> à <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Impossible d\'appeler ce numéro."</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Pour configurer la messagerie vocale, accédez à Menu &gt; Paramètres."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Veuillez désactiver le mode Avion avant d\'appeler la messagerie vocale."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Recherche vocale non disponible"</string>
<string name="call_not_available" msgid="8941576511946492225">"Impossible d\'effectuer un appel téléphonique, car l\'application Téléphone a été désactivée."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Cette action ne peut être effectuée via aucune application sur cet appareil."</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Saisir nom ou numéro téléphone"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Aucun appel"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Aucun message vocal récent"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Rechercher dans vos contacts"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Ajouter num. ou rech. contacts"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Votre historique des appels est vide."</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Passer un appel"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Vous n\'avez aucun appel manqué."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La boîte de réception de la messagerie vocale est vide."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Afficher les contacts ajoutés aux favoris uniquement"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historique"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historique des appels"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Tous"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Manqués"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Mess. vocale"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloquer le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" ?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Les appels associés à ce numéro seront bloqués, et les messages vocaux seront automatiquement supprimés."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Les appels associés à ce numéro seront bloqués, mais l\'appelant pourra peut-être toujours vous laisser des messages vocaux."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUER"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Débloquer le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" ?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Les appels associés à ce numéro ne seront plus bloqués sur votre téléphone."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DÉBLOQUER"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Numérotation abrégée"</string>
- <string name="tab_recents" msgid="929949073851377206">"Récents"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historique des appels"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contacts"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Messagerie vocale"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Supprimé des favoris."</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Annuler"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Appeler le <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Créer un contact"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Ajouter à un contact"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Ajouter à un contact"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Envoyer un SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Passer un appel vidéo"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Afficher tout l\'historique des appels"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquer le numéro"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Nouveaux appels manqués : <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"La numérotation abrégée vous permet d\'appeler vos contacts favoris et les numéros que vous appelez fréquemment d\'une simple pression du doigt."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Aucun contact"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Vous n\'avez encore défini la numérotation abrégée pour aucun contact."</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Ajouter un favori"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Vous n\'avez pas encore de contacts."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Ajouter un contact"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Appuyer sur l\'image pour afficher tous les numéros, ou appuyer dessus de manière prolongée pour réorganiser ces derniers"</string>
<string name="remove_contact" msgid="1080555335283662961">"Supprimer"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TOUS LES CONTACTS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Appel vidéo"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ÉCOUTER"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Afficher les détails"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Envoyer un message"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Informations sur l\'appel"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Appeler <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Appel manqué <xliff:g id="TIMEOFCALL">^3</xliff:g> (appelant : <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>)"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Appel reçu <xliff:g id="TIMEOFCALL">^3</xliff:g> (appelant : <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>)"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Message vocal à écouter de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Appel émis <xliff:g id="TIMEOFCALL">^3</xliff:g> (destinataire : <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>)"</string>
<string name="description_phone_account" msgid="1767072759541443861">"sur <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Appeler"</string>
<string name="description_call_action" msgid="4000549004089776147">"Appeler <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Appel vidéo émis (destinataire : <xliff:g id="NAMEORNUMBER">^1</xliff:g>)"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Appel vidéo de \"<xliff:g id="NAMEORNUMBER">^1</xliff:g>\""</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Écouter le message vocal laissé par le numéro ou le contact \"<xliff:g id="NAMEORNUMBER">^1</xliff:g>\""</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Lire le message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Interrompre le message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Supprimer le message vocal de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> nouveau message vocal</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nouveaux messages vocaux</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Créer un contact pour \"<xliff:g id="NAMEORNUMBER">^1</xliff:g>\""</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Ajouter \"<xliff:g id="NAMEORNUMBER">^1</xliff:g>\" à un contact"</string>
<string name="description_details_action" msgid="2433827152749491785">"Informations sur l\'appel pour <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"L\'appel a bien été supprimé de l\'historique."</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Signaler"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Aujourd\'hui"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Hier"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Plus anciens"</string>
@@ -178,7 +209,7 @@
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Sons et vibreur"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Accessibilité"</string>
<string name="ringtone_title" msgid="760362035635084653">"Sonnerie du téléphone"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibreur aussi pour les appels"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibrer aussi pour les appels"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Son du clavier"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Durée de la tonalité du clavier"</string>
<string-array name="dtmf_tone_length_entries">
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Réponses rapides"</string>
<string name="call_settings_label" msgid="313434211353070209">"Appels"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blocage des appels"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blocage appels désactivé temporairement"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importer les numéros"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Vous avez indiqué que certains appelants devaient automatiquement être renvoyés vers la messagerie vocale via d\'autres applications."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Afficher les numéros"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importer"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Échec lors de l\'importation."</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Débloquer le numéro"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Ajouter un numéro"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Les appels associés à ces numéros seront bloqués, et les messages vocaux seront automatiquement supprimés."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Les appels associés à ces numéros seront bloqués, mais les appelants pourront peut-être toujours vous laisser des messages vocaux."</string>
+ <string name="block_list" msgid="7760188925338078011">"Numéros bloqués"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" n\'est pas valide."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Le numéro \"<xliff:g id="NUMBER">%1$s</xliff:g>\" est déjà bloqué."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blocage des appels désactivé pendant 48 heures"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Désactivé, car un appel d\'urgence a été effectué"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Comptes téléphoniques"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Activer"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Définir les autorisations"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Pour activer la numérotation abrégée, activez l\'autorisation Contacts."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Pour consulter votre journal d\'appels, activez l\'autorisation Téléphone."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Pour consulter vos contacts, activez l\'autorisation Contacts."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Pour accéder à votre messagerie vocale, activez l\'autorisation Téléphone."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Pour rechercher vos contacts, activez l\'autorisation Contacts."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Pour passer un appel, activez l\'autorisation Téléphone."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"L\'application Téléphone n\'est pas autorisée à modifier les paramètres du système."</string>
</resources>
diff --git a/res/values-gl-rES/strings.xml b/res/values-gl-rES/strings.xml
index 1199584b3..d4a5a2f64 100644
--- a/res/values-gl-rES/strings.xml
+++ b/res/values-gl-rES/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Marcador"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Teléfono"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Teléfono"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Teclado de marcación do teléfono"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Teléfono"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historial de chamadas"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Chamar a <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Editar número antes chamar"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Engadir a contactos"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Eliminar do historial de chamadas"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Borrar historial de chamadas"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Eliminar correo de voz"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Compartir correo de voz"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Non hai chamadas"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historial de chamadas"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Informar dun número incorrecto"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copiar número"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copiar transcrición"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloquear número"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Bloqueouse o <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Desbloquear número"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Desbloqueouse o <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"DESFACER"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Eliminar"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de chamar"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Borrar historial de chamadas"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Eliminar correo de voz"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correo voz eliminado"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESFACER"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Borrar o historial de chamadas?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Esta acción eliminará todas as chamadas do teu historial"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Borrando historial de chamadas…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Novo correo de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Non se puido reproducir o correo de voz"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Almacenando no búfer..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Cargando correo de voz…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Non se puido cargar o correo de voz"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Só chamadas con correo de voz"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Só chamadas entrantes"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Só chamadas saíntes"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Só chamadas perdidas"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Correo de voz visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Consulta e escoita o teu correo de voz sen ter que chamar a un número. É posible que se apliquen tarifas de datos."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Configuración"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Actualizacións de correo de voz non dispoñibles"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Novo correo de voz en espera. Non se pode cargar neste momento."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configura o teu correo de voz"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio non dispoñible"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurar"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Chamar correo de voz"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Velocidade máis lenta"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Velocidade lenta"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Velocidade normal"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Velocidade rápida"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Velocidade máis rápida"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Escoller número"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Escoller número"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historial de chamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Máis opcións"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado de marcación"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar só as saíntes"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar só as entrantes"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar só as perdidas"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Videochamada saínte"</string>
<string name="type_missed_video" msgid="954396897034220545">"Videochamada perdida"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Correo de voz"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Chamada rexeitada"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Chamada bloqueada"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Chamadas entrantes"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Reproducir correo de voz"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Ver contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Chamar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Detalles de contacto de <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Correo de voz novo"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> chamadas"</string>
<string name="description_video_call" msgid="2933838090743214204">"Videochamada"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Envía unha SMS a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Correo de voz"</string>
<string name="private_num" msgid="6374339738119166953">"Número privado"</string>
<string name="payphone" msgid="7726415831153618726">"Teléfono público"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ás <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Non é posible chamar a este número"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Para configurar o correo de voz, vai a Menú &gt; Configuración."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Para chamar ao correo de voz, primeiro desactiva o modo avión."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Busca de voz non dispoñible"</string>
<string name="call_not_available" msgid="8941576511946492225">"Non se pode facer unha chamada telefónica porque se desactivou a aplicación de teléfono."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Non hai ningunha aplicación para esa acción neste dispositivo"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Insire un nome/número teléfono"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Non hai chamadas"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Non hai correos de voz recentes"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Buscar contactos"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Engade número/busca contactos"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"O teu historial de chamadas está baleiro"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Facer unha chamada"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Non tes chamadas perdidas."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"A caixa de entrada do correo de voz está baleira."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar só os favoritos"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historial"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historial de chamadas"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Todos"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Correo de voz"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Queres bloquear o <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Bloquearanse as chamadas deste número e eliminaranse automaticamente os correos de voz."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Bloquearanse as chamadas deste número, pero é posible que o emisor da chamada aínda poida deixarche correos de voz."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Queres desbloquear o <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"As chamadas desde este número xa non estarán bloqueadas."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Marcación rápida"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recentes"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historial de chamadas"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contactos"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Correo de voz"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Eliminado dos favoritos"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Desfacer"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Chamar a <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Crear novo contacto"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Engadir a un contacto existente"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Engadir a un contacto"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Enviar SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Realizar unha videochamada"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Ver historial de chamadas completo"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> chamadas perdidas novas"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"A marcación rápida é unha marcación dun só toque para favoritos e números aos que chamas a miúdo"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Sen contactos"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Aínda non tes ningún contacto na marcación directa"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Engade un favorito para a marcación directa"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Aínda non tes contactos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Engade un contacto"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Toca a imaxe para ver todos os números ou mantena premida para reordenala"</string>
<string name="remove_contact" msgid="1080555335283662961">"Eliminar"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS OS CONTACTOS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videochamada"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ESCOITAR"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Ver detalles"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Enviar unha mensaxe"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detalles da chamada"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Chamar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Chamada perdida desde <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Chamada respondida desde <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Correo de voz non lido de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Correo de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Chamada a <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"en <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Chamar"</string>
<string name="description_call_action" msgid="4000549004089776147">"Chamar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videochamada a <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videochamada a <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Escoitar o correo de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reproducir correo de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pausar correo de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Eliminar correo de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> correos de voz novos</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> correo de voz novo</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Crear contacto para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Engadir <xliff:g id="NAMEORNUMBER">^1</xliff:g> ao contacto existente"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detalles da chamada para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Eliminouse do historial de chamadas"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Informar"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Hoxe"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Onte"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Anteriores"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respostas rápidas"</string>
<string name="call_settings_label" msgid="313434211353070209">"Chamadas"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Bloqueo de chamadas"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"O bloqueo de chamadas desactivouse temporalmente"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Previamente marcaches algúns emisores da chamada para que se envíen automaticamente ao correo de voz a través doutras aplicacións."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Produciuse un erro na importación"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Engadir número"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Bloquearanse as chamadas destes números e eliminaranse automaticamente os correos de voz."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Bloquearanse as chamadas destes números, pero é posible que aínda poidan deixarche correos de voz."</string>
+ <string name="block_list" msgid="7760188925338078011">"Números bloqueados"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"O <xliff:g id="NUMBER">%1$s</xliff:g> non e válido."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"O <xliff:g id="NUMBER">%1$s</xliff:g> xa está bloqueado."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Desactivouse o bloqueo de chamadas durante 48 horas"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desactivouse porque se realizou unha chamada de emerxencia."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Contas de chamadas"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Activar"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Establecer permisos"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Para activar a marcación rápida, activa o permiso de Contactos."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Para ver o teu rexistro de chamadas, activa o permiso de Teléfono."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Para ver os teus contactos, activa o permiso de Contactos."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Para acceder ao correo de voz, activa o permiso de Teléfono."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Para buscar os teus contactos, activa os permisos de Contactos."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Para facer unha chamada, activa o permiso de Teléfono."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"A aplicación Teléfono non ten permiso para modificar a configuración do sistema."</string>
</resources>
diff --git a/res/values-gu-rIN/strings.xml b/res/values-gu-rIN/strings.xml
index 7343f5914..134b18c32 100644
--- a/res/values-gu-rIN/strings.xml
+++ b/res/values-gu-rIN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ફોન"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ફોન"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ફોન ડાયલપેડ"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ફોન"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"કૉલ ઇતિહાસ"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> ને કૉલ કરો"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"કૉલ કરતાં પહેલાં નંબર સંપાદિત કરો"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"સંપર્કોમાં ઉમેરો"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"કૉલ ઇતિહાસમાંથી કાઢી નાખો"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"કૉલ ઇતિહાસ સાફ કરો"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"વૉઇસમેઇલ કાઢી નાખો"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"વૉઇસમેઇલ શેર કરો"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"કોઈ કૉલ્સ નથી"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"કૉલ ઇતિહાસ"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"અચોક્કસ નંબરની જાણ કરો"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"નંબર કૉપિ કરો"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ટ્રાંસ્ક્રિપ્શન કૉપિ કરો"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"નંબર અવરોધિત કરો"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> અવરોધિત કર્યો"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"નંબર અનાવરોધિત કરો"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> અનાવરોધિત કર્યો"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"પૂર્વવત્ કરો"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"કાઢી નાખો"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"કૉલ કરતાં પહેલાં નંબર સંપાદિત કરો"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"કૉલ ઇતિહાસ સાફ કરો"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"વૉઇસમેઇલ કાઢી નાખો"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"વૉઇસમેઇલ કાઢી નાખ્યો"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"પૂર્વવત્ કરો"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"કૉલ ઇતિહાસ સાફ કરીએ?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"આ તમારા ઇતિહાસમાંથી તમામ કૉલ્સ કાઢી નાખશે"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"કૉલ ઇતિહાસ સાફ કરી રહ્યાં છે…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> તરફથી નવો વૉઇસમેઇલ."</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"વૉઇસમેઇલ ચલાવી શકાઈ નથી"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"બફર કરી રહ્યું છે…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"વૉઇસમેઇલ લોડ કરી રહ્યું છે…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"વૉઇસમેઇલ લોડ કરી શકાઈ નથી"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"ફક્ત વૉઇસમેઇલ સાથેના કૉલ્સ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"ફક્ત ઇનકમિંગ કૉલ્સ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"ફક્ત આઉટગોઇંગ કૉલ્સ"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"ફક્ત છૂટી ગયેલ કૉલ્સ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"વિઝ્યુઅલ વૉઇસમેઇલ"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"કોઈ નંબર પર કૉલ કર્યા વગર તમારી વૉઇસમેઇલ જુઓ અને સાંભળો. ડેટા શુલ્ક લાગુ પડી શકે છે."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"સેટિંગ્સ"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"વૉઇસમેઇલ અપડેટ્સ ઉપલબ્ધ નથી"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"નવી વૉઇસમેઇલ રાહ જુએ છે. અત્યારે લોડ કરી શકતાં નથી."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"તમારા વૉઇસમેઇલને સેટ કરો"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ઑડિઓ ઉપલબ્ધ નથી"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"સેટ અપ"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"વૉઇસમેઇલ પર કૉલ કરો"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"સૌથી ધીમી ગતિ"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ધીમી ગતિ"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"સામાન્ય ગતિ"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"ઝડપી ગતિ"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"સૌથી ઝડપી ગતિ"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"નંબર પસંદ કરો"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"નંબર પસંદ કરો"</string>
@@ -73,12 +77,11 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"કૉલ ઇતિહાસ"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"વધુ વિકલ્પો"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ડાયલ પેડ"</string>
- <string name="menu_copy" msgid="6108677035381940698">"કૉપિ કરો"</string>
- <string name="menu_show_outgoing_only" msgid="1965570298133301970">"ફક્ત આઉટગોઇંગ દર્શાવો"</string>
- <string name="menu_show_incoming_only" msgid="7534206815238877417">"ફક્ત આવનારા દર્શાવો"</string>
- <string name="menu_show_missed_only" msgid="154473166059743996">"ફક્ત છૂટેલ દર્શાવો"</string>
- <string name="menu_show_voicemails_only" msgid="1898421289561435703">"ફક્ત વૉઇસમેઇલ્સ દર્શાવો"</string>
- <string name="menu_show_all_calls" msgid="7560347482073345885">"તમામ કૉલ્સ દર્શાવો"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"ફક્ત આઉટગોઇંગ બતાવો"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"ફક્ત આવનારા બતાવો"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"ફક્ત છૂટેલ બતાવો"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"ફક્ત વૉઇસમેઇલ્સ બતાવો"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"તમામ કૉલ્સ બતાવો"</string>
<string name="add_2sec_pause" msgid="9214012315201040129">"2-સંકડનો વિરામ ઉમેરો"</string>
<string name="add_wait" msgid="3360818652790319634">"પ્રતીક્ષા ઉમેરો"</string>
<string name="dialer_settings_label" msgid="4305043242594150479">"સેટિંગ્સ"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"આઉટગોઇંગ વિડિઓ કૉલ"</string>
<string name="type_missed_video" msgid="954396897034220545">"વિડિઓ કૉલ ચૂકી ગયાં"</string>
<string name="type_voicemail" msgid="5153139450668549908">"વૉઇસમેઇલ"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"નકારેલો કૉલ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"અવરોધિત કૉલ"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ઇનકમિંગ કૉલ્સ"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"વૉઇસમેઇલ ચલાવો"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> સંપર્ક જુઓ"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> ને કૉલ કરો"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> માટે સંપર્ક વિગતો"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"નવો વૉઇસમેઇલ."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> કૉલ્સ."</string>
<string name="description_video_call" msgid="2933838090743214204">"વિડિઓ કૉલ."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> ને SMS મોકલો"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"વૉઇસમેઇલ"</string>
<string name="private_num" msgid="6374339738119166953">"ખાનગી નંબર"</string>
<string name="payphone" msgid="7726415831153618726">"પેફોન"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> સેકંડ"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> મિ <xliff:g id="SECONDS">%s</xliff:g> સે"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> નાં રોજ <xliff:g id="TIME">%2$s</xliff:g> વાગ્યે"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"આ નંબર પર કૉલ કરી શકતાં નથી"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"વૉઇસમેઇલ સેટ કરવા માટે, મેનૂ &gt; સેટિંગ્સ પર જાઓ."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"વૉઇસમેઇલ પર કૉલ કરવા માટે, પહેલાં એરપ્લેન મોડને બંધ કરો."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"વૉઇસ શોધ ઉપલબ્ધ નથી"</string>
<string name="call_not_available" msgid="8941576511946492225">"ફોન કૉલ કરી શકાતો નથી કારણ કે ફોન એપ્લિકેશન અક્ષમ કરવામાં આવી છે."</string>
<string name="activity_not_available" msgid="2287665636817987623">"આ ઉપકરણ પર તે માટે કોઈ એપ્લિકેશન નથી"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"નામ અથવા ફોન નંબર દાખલ કરો"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"કોઈ કૉલ્સ નથી"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"કોઈ તાજેતરના વૉઇસમેઇલ્સ નથી"</string>
- <string name="show_favorites_only" msgid="5520072531022614595">"ફક્ત મનપસંદ દર્શાવો"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ઇતિહાસ"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"સંપર્કો શોધો"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"નંબર ઉમેરો અથવા સંપર્કો શોધો"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"તમારો કૉલ ઇતિહાસ ખાલી છે"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"એક કૉલ કરો"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"તમારી પાસે કોઇ છૂટેલાં કૉલ્સ નથી."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"તમારું વૉઇસમેઇલ ઇનબોક્સ ખાલી છે."</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"ફક્ત મનપસંદ બતાવો"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"કૉલ ઇતિહાસ"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"તમામ"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"છૂટેલ"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"વૉઇસમેઇલ"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> ને અવરોધિત કરીએ?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"આ નંબરથી આવનારા કૉલ્સ અવરોધિત કરવામાં આવશે અને વૉઇસમેઇલ્સ આપમેળે કાઢી નાખવામાં આવશે."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"આ નંબરથી આવનારા કૉલ્સ અવરોધિત કરવામાં આવશે, પરંતુ કૉલર હજી પણ તમારા માટે વૉઇસમેઇલ્સ મૂકવામાં સમર્થ હોઈ શકે છે."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"અવરોધિત કરો"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> ને અનાવરોધિત કરીએ?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"આ નંબરને હવે તમને કૉલ કરવાથી અવરોધિત કરવામાં આવશે નહીં."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"અનાવરોધિત કરો"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"સ્પીડ ડાયલ"</string>
- <string name="tab_recents" msgid="929949073851377206">"તાજેતરના"</string>
+ <string name="tab_history" msgid="2563144697322434940">"કૉલ ઇતિહાસ"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"સંપર્કો"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"વૉઇસમેઇલ"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"મનપસંદમાંથી દૂર કર્યું"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"પૂર્વવત્ કરો"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> ને કૉલ કરો"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"નવો સંપર્ક બનાવો"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"અસ્તિત્વમાંના સંપર્કમાં ઉમેરો"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"સંપર્કમાં ઉમેરો"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS મોકલો"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"વિડિઓ કૉલ કરો"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"પૂર્ણ કૉલ ઇતિહાસ જુઓ"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"નંબર અવરોધિત કરો"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> નવા છૂટેલા કૉલ્સ"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"સ્પીડ ડાયલ એ મનપસંદ અને તમે વારંવાર કૉલ કરો છો તે 1નંબર્સ માટે વન-ટચ ડાયલિંગ છે."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"સંપર્કો નથી"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"તમારા ઝડપી ડાયલ પર હજી સુધી કોઇ નથી"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"એક મનપસંદ ઉમેરો"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"તમે હજી સુધી કોઇપણ સંપર્કો ધરાવતાં નથી"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"સંપર્ક ઉમેરો"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"બધા નંબર્સ જોવા માટે છબી ટેપ કરો અથવા પુનઃક્રમાંકિત કરવા માટે પકડી રાખો"</string>
<string name="remove_contact" msgid="1080555335283662961">"દૂર કરો"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"તમામ સંપર્કો"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"વિડિઓ કૉલ"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"સાંભળો"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"વિગતો જુઓ"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"એક સંદેશ મોકલો"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"કૉલની વિગતો"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ને કૉલ કરો"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> નો છૂટેલ કૉલ"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> નો જવાબી કૉલ"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> તરફથી ન વાંચેલો વૉઇસમેઇલ"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> તરફથી વૉઇસમેઇલ"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> પર કૉલ."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> પર"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"કૉલ કરો"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ને કૉલ કરો"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> પર વિડિઓ કૉલ કરો."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ને વિડિઓ કૉલ કરો."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ના વૉઇસમેઇલને સાંભળો"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> માંથી વૉઇસમેઇલ ચલાવો"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> માંથી વૉઇસમેઇલ થોભાવો"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> માંથી વૉઇસમેઇલ કાઢી નાખો"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> નવી વૉઇસમેઇલ્સ</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> નવી વૉઇસમેઇલ્સ</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> માટે સંપર્ક બનાવો"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ને અસ્તિત્વમાંના સંપર્કમાં ઉમેરો"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> માટે કૉલ વિગતો"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"કૉલ ઇતિહાસમાંથી કાઢી નાખી"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"જાણ કરો"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"આજે"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"ગઈ કાલે"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"જૂનું"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"ઝડપી પ્રતિસાદ"</string>
<string name="call_settings_label" msgid="313434211353070209">"કૉલ્સ"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"કૉલ અવરોધ"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"કૉલ અવરોધિત કરવાનું અસ્થાયીરૂપે બંધ છે"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"કૉલ અવરોધિત કરવાનું અક્ષમ કરવામાં આવ્યું છે કારણ કે તમે આ ફોનમાંથી છેલ્લા 48 કલાકમાં કટોકટીની સેવાઓનો સંપર્ક કર્યો હતો. એકવાર 48 કલાકનો સમયગાળો સમાપ્ત થાય, પછી તે આપમેળે ફરીથી સક્ષમ કરવામાં આવશે."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"નંબર્સ આયાત કરો"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"તમે પહેલાં કેટલાક કૉલર્સને અન્ય ઍપ્લિકેશનો મારફતે વૉઇસમેઇલ પર આપમેળે મોકલવા માટે ચિહ્નિત કર્યા."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"સંખ્યા જુઓ"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"આયાત કરો"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"આયાત નિષ્ફળ થયું"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"નંબર અનાવરોધિત કરો"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"નંબર ઉમેરો"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"આ નંબરથી આવનારા કૉલ્સ અવરોધિત કરવામાં આવશે અને વૉઇસમેઇલ્સ આપમેળે કાઢી નાખવામાં આવશે."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"આ નંબરથી આવનારા કૉલ્સ અવરોધિત કરવામાં આવશે, પરંતુ તેઓ હજી પણ તમારા માટે વૉઇસમેઇલ્સ મૂકવામાં સમર્થ હોઈ શકે છે."</string>
+ <string name="block_list" msgid="7760188925338078011">"અવરોધિત નંબરો"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> અમાન્ય છે."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ને પહેલેથી અવરોધિત કરવામાં આવ્યો છે."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"કૉલ અવરોધિત કરવાનું 48 કલાક માટે અક્ષમ કરાયું"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"અક્ષમ કરાયું કારણ કે એક કટોકટીનો કૉલ કરવામાં આવ્યો હતો."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"કૉલિંગ એકાઉન્ટ્સ"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ચાલુ કરો"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"પરવાનગીઓ સેટ કરો"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"ઝડપી ડાયલ સક્ષમ કરવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"તમારો કૉલ લૉગ જોવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"તમારા સંપર્કો જોવા માટે, સંપર્કોની પરવાનગી ચાલુ કરો."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"તમારી વૉઇસમેઇલને ઍક્સેસ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"તમારા સંપર્કો શોધવા માટે, સંપર્કોની પરવાનગીઓ ચાલુ કરો."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"કૉલ કરવા માટે, ફોન પરવાનગી ચાલુ કરો."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ફોન એપ્લિકેશનને સિસ્ટમ સેટિંગ્સ પર લખવાની પરવાનગી નથી."</string>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index bb06e03b1..8426543f8 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"डायलर"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"फ़ोन"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"फ़ोन"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"फ़ोन डायलपैड"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"फ़ोन"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"कॉल इतिहास"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> को कॉल करें"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"कॉल करने से पहले नंबर संपादित करें"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"संपर्कों में जोड़ें"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"कॉल इतिहास से साफ़ करें"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"कॉल इतिहास साफ़ करें"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"वॉयस मेल हटाएं"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ध्‍वनिमेल साझा करें"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"कोई कॉल नहीं"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"कॉल इतिहास"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"गलत नंबर की रिपोर्ट करें"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"नंबर कॉपी करें"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ट्रांसक्रिप्शन को कॉपी करें"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"नंबर अवरुद्ध करें"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> अवरोधित किया गया"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"नंबर अनवरोधित करें"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> अनवरोधित किया गया"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"वापस लाएं"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"हटाएं"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"कॉल करने से पहले नंबर संपादित करें"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"कॉल इतिहास साफ़ करें"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"वॉइसमेल हटाएं"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"वॉइसमेल हटाया गया"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"वापस लाएं"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"कॉल इतिहास साफ़ करें?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"इससे आपके इतिहास से सभी कॉल हटा दिए जाएंगे"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"कॉल इतिहास साफ़ किया जा रहा है…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> की ओर से नया ध्‍वनिमेल"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"वॉइसमेल नहीं चलाया जा सका"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"बफ़र हो रहा है…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"वॉइसमेल लोड हो रहा है…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"वॉइसमेल लोड नहीं किया जा सका"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"केवल वॉयस मेल वाले कॉल"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"केवल इनकमिंग कॉल"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"केवल आउटगोइंग कॉल"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"केवल छूटे कॉल"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"विज़ुअल वॉइसमेल"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"किसी नंबर पर कॉल करने की आवश्‍यकता के बिना, अपना वॉइसमेल देखें और सुनें. डेटा शुल्‍क लागू हो सकते हैं."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"सेटिंग"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"वॉइसमेल अपडेट उपलब्‍ध नहीं हैं"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"नया वॉइसमेल प्रतीक्षा में है. इस समय लोड नहीं किया जा सकता."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"अपना वॉइसमेल सेट करें"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ऑडियो उपलब्‍ध नहीं है"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"सेट करें"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"वॉयस मेल कॉल करें"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"सबसे धीमी गति"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"धीमी गति"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"सामान्य गति"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"तेज़ गति"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"सबसे तेज़ गति"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"नंबर चुनें"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"नंबर चुनें"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"कॉल इतिहास"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"अधिक विकल्प"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"डायलपैड"</string>
- <string name="menu_copy" msgid="6108677035381940698">"प्रतिलिपि"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"केवल आउटगोइंग ही दिखाएं"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"केवल इनकमिंग ही दिखाएं"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"केवल छूटे हुए ही दिखाएं"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"जावक वीडियो कॉल"</string>
<string name="type_missed_video" msgid="954396897034220545">"छूटे वीडियो कॉल"</string>
<string name="type_voicemail" msgid="5153139450668549908">"वॉयस मेल"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"अस्वीकृत किया गया कॉल"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"अवरुद्ध किए गए कॉल"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"इनकमिंग कॉल"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"ध्‍वनिमेल चलाएं"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क देखें"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> को कॉल करें"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> का संपर्क विवरण"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"नया वॉयस मेल."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> कॉल."</string>
<string name="description_video_call" msgid="2933838090743214204">"वीडियो कॉल."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> को SMS भेजें"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"वॉयस मेल"</string>
<string name="private_num" msgid="6374339738119166953">"निजी नंबर"</string>
<string name="payphone" msgid="7726415831153618726">"पे-फ़ोन"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> सेकंड"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> मि. <xliff:g id="SECONDS">%s</xliff:g> से."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> को <xliff:g id="TIME">%2$s</xliff:g> बजे"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"इस नंबर पर कॉल नहीं किया जा सकता"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ध्‍वनिमेल सेट करने के लिए, मेनू &gt; सेटिंग पर जाएं."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ध्‍वनिमेल कॉल करने के लिए, पहले हवाई जहाज़ मोड बंद करें."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"बोलकर खोजना उपलब्‍ध नहीं है"</string>
<string name="call_not_available" msgid="8941576511946492225">"फ़ोन कॉल नहीं किया जा सकता क्योंकि फ़ोन ऐप्लिकेशन अक्षम कर दिया गया है."</string>
<string name="activity_not_available" msgid="2287665636817987623">"उसके लिए इस डिवाइस पर कोई एेप नहीं है"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"नाम या फ़ोन नंबर डालें"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"कोई कॉल नहीं"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"हाल ही का कोई वॉइसमेल नहीं"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"संपर्क खोजें"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"नंबर जोड़ें या संपर्क खोजें"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"आपका कॉल इतिहास खाली है"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"कॉल करें"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"आपके पास कोई भी छूटा हुआ कॉल नहीं है."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"आपका वॉइसमेल इनबाॅक्‍स खाली है."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"केवल पसंदीदा दिखाएं"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"इतिहास"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"कॉल इतिहास"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"सभी"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"छूटे हुए"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"वॉयस मेल"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> को अवरुद्ध करें?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"इस नंबर से आने वाले कॉल अवरुद्ध कर दिए जाएंगे और वॉइसमेल अपने आप हटा दिए जाएंगे."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"इस नंबर से आने वाले कॉल अवरुद्ध कर दिए जाएंगे, लेकिन कॉलर अब भी आपके लिए वॉइसमेल भेज सकेंगे."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"अवरुद्ध करें"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> को अनवरोधित करें?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"इस नंबर को अब आपको कॉल करने से अवरुद्ध नहीं किया जाएगा."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"अनवरोधित करें"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"स्पीड डायल"</string>
- <string name="tab_recents" msgid="929949073851377206">"हाल ही के"</string>
+ <string name="tab_history" msgid="2563144697322434940">"कॉल इतिहास"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"संपर्क"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"वॉइसमेल"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"पसंदीदा से निकाल दिया गया"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"वापस लाएं"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> पर कॉल करें"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"नया संपर्क बनाएं"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"मौजूदा संपर्क में जोड़ें"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"किसी संपर्क में जोड़ें"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS भेजें"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"वीडियो कॉल करें"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"पूर्ण काल ​​इतिहास देखें"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"नंबर अवरुद्ध करें"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> छूटे हुए नए कॉल"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"स्‍पीड डायल उन पसंदीदा लोगों और नंबरों के लिए एक-स्‍पर्श डायलिंग है जिन्‍हें आप अक्‍सर कॉल करते हैं"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"कोई संपर्क नहीं"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"आपके स्‍पीड डायल पर अभी तक कोई भी नहीं है"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"कोई पसंदीदा जोड़ें"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"आपके पास अभी कोई भी संपर्क नहीं है"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"कोई संपर्क जोड़ें"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"सभी नंबर देखने के लिए चित्र को स्‍पर्श करें या पुन: क्रमित करने के लिए स्‍पर्श करके रखें"</string>
<string name="remove_contact" msgid="1080555335283662961">"निकालें"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"सभी संपर्क"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"वीडियो कॉल"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"सुनें"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"विवरण देखें"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"संदेश भेजें"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"कॉल विवरण"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> को कॉल करें"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> से छूटा हुआ कॉल."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> से आए कॉल का उत्तर दिया गया."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> के अपठित वॉइसमेल."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> के वॉइसमेल."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> पर किया गया कॉल."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> पर"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"कॉल करें"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> को कॉल करें"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> को वीडियो कॉल."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> को वीडियो कॉल करें."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> की वॉयस मेल सुनें"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> का वॉइसमेल चलाएं"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> का वॉइसमेल रोकें"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> का वॉइसमेल हटाएं"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> नए वॉइसमेल</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> नए वॉइसमेल</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> के लिए संपर्क बनाएं"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> को मौजूदा संपर्क में जोड़ें"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> के कॉल विवरण"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"कॉल इतिहास से हटाएं"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"रिपोर्ट करें"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"आज"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"कल"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"पुराना"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"झटपट उत्तर"</string>
<string name="call_settings_label" msgid="313434211353070209">"कॉल"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"कॉल अवरुद्ध करें"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"कॉल अवरुद्ध करना अस्‍थायी रूप से बंद है"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"कॉल अवरुद्ध किए जाने को अक्षम कर दिया गया है क्योंकि पिछले 48 घंटों में आपने इस फ़ोन से आपातकालीन सेवाओं से संपर्क किया है. 48 घंटे की अवधि बीत जाने पर यह अपने आप फिर से सक्षम हो जाएगी."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"नंबर आयात करें"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"आपने पहले कुछ कॉलर को अपने आप अन्य ऐप्स के द्वारा वॉइसमेल भेजे जाने के लिए चिह्नित किया था."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नंबर देखें"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात करें"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात करना विफल रहा"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नंबर अनवरोधित करें"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"नंबर जोड़ें"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"इन नंबर से आने वाले कॉल अवरुद्ध कर दिए जाएंगे और वॉइसमेल अपने आप हटा दिए जाएंगे."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"इन नंबर से आने वाले कॉल अवरुद्ध कर दिए जाएंगे, लेकिन वे अब भी आपके लिए वॉइसमेल भेज सकेंगे."</string>
+ <string name="block_list" msgid="7760188925338078011">"अवरोधित नंबर"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> अमान्य है."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> पहले से अवरोधित है."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"कॉल अवरुद्ध करना 48 घंटे के लिए अक्षम कर दिया गया"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"आपातकालीन कॉल किए जाने के कारण अक्षम कर दिया गया."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"कॉलिंग खाते"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"चालू करें"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"अनुमतियां सेट करें"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"स्पीड डायल सक्षम करने के लिए, संपर्क अनुमति चालू करें."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"अपना कॉल लॉग देखने के लिए, फ़ोन अनुमति चालू करें."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"अपने संपर्क देखने के लिए, संपर्क अनुमति चालू करें."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"अपना वॉइसमेल ऐक्सेस करने के लिए, फ़ोन अनुमति चालू करें."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"अपने संपर्कों की खोज करने के लिए, संपर्क अनुमतियों को चालू करें."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"कॉल करने के लिए, फ़ोन अनुमति चालू करें."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"फ़ोन ऐप को सिस्टम सेटिंग में लिखने की अनुमति नहीं है."</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 9be2d8796..3f91a54e0 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Biranje"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Numerička tipkovnica telefona"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Povijest poziva"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Nazovi <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Uredi broj prije pozivanja"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Dodaj u kontakte"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Izbriši iz povijesti poziva"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Izbriši povijest poziva"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Brisanje govorne pošte"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Podijeli govornu poštu"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Nema poziva"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Povijest poziva"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Prijavi netočan broj"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopiraj broj"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiraj prijepis"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokiraj broj"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> blokiran"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Deblokiraj broj"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> deblokiran"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"PONIŠTI"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Izbriši"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Uredi broj prije pozivanja"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Izbriši povijest poziva"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Izbriši govornu poštu"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Gov. pošta izbrisana"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"PONIŠTI"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Želite li izbrisati povijest poziva?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Izbrisat će se svi pozivi iz vaše povijesti"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Brisanje povijesti poziva…"</string>
@@ -41,24 +48,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova govorna pošta od kontakta <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Nije moguće reproducirati govornu poštu"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Stavljanje u međuspremnik..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Učitavanje govorne pošte…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Govorna pošta nije učitana"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Samo pozivi s govornom poštom"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Samo dolazni pozivi"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Samo odlazni pozivi"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Samo propušteni pozivi"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizualna govorna pošta"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Pogledajte i poslušajte govornu poštu bez pozivanja broja. Možda se naplaćuje podatkovna usluga."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Postavke"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Ažuriranja govorne pošte nisu dostupna"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nova govorna pošta na čekanju. Učitavanje zasad nije moguće."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Postavite govornu poštu"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Zvuk nije dostupan"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Postavljanje"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Zovi govornu poštu"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Najsporije"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Sporo"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normalna brzina"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Brzo"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Najbrže"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Odaberite broj"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Odaberite broj"</string>
@@ -74,7 +78,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Povijest poziva"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Više opcija"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"površina za biranje brojeva"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopiranje"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Prikaži samo odlazne"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Prikaži samo dolazne"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Prikaži samo propuštene"</string>
@@ -97,12 +100,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Odlazni videopoziv"</string>
<string name="type_missed_video" msgid="954396897034220545">"Propušten videopoziv"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Govorna pošta"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Odbijeni poziv"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokirani poziv"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Dolazni pozivi"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Reprodukcija govorne pošte"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Prikaz kontakta <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Pozovi: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Pojedinosti o kontaktu <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nova govorna pošta."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Broj poziva: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videopoziv."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Slanje SMS-a kontaktu <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -113,7 +117,11 @@
<string name="voicemail" msgid="3851469869202611441">"Govorna pošta"</string>
<string name="private_num" msgid="6374339738119166953">"Privatni broj"</string>
<string name="payphone" msgid="7726415831153618726">"Javna telefonska govornica"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> u <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Nije moguće nazvati taj broj"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Da biste postavili govornu poštu, idite na Izbornik &gt; Postavke."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Da biste nazvali govornu poštu, najprije isključite način rada u zrakoplovu."</string>
@@ -126,45 +134,69 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Glasovno pretraživanje nije dostupno"</string>
<string name="call_not_available" msgid="8941576511946492225">"Telefoniranje nije moguće jer je aplikacija Telefon onemogućena."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Na ovom uređaju nema aplikacije za to"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Unesite ime ili tel. broj"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Nema poziva"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Nema nedavne govorne pošte"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Pretražite kontakte"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Dodaj broj ili potraži kontakt"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Vaša je povijest poziva prazna"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Uputite poziv"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nemate propuštene pozive."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Nemate pristiglih poruka govorne pošte."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Prikaži samo favorite"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Povijest"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Povijest poziva"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Sve"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Propušteni"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Gov. pošta"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Želite li blokirati <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Pozivi s tog broja blokirat će se, a govorna pošta automatski će se brisati."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Pozivi s tog broja blokirat će se, ali pozivatelj će vam moći ostavljati govornu poštu."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKIRAJ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Želite li deblokirati <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Pozivi koji su vam upućeni s tog broja više se neće blokirati."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOKIRAJ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Brzo biranje"</string>
- <string name="tab_recents" msgid="929949073851377206">"Najnoviji"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Povijest poziva"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontakti"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Govorna pošta"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Uklonjeno iz favorita"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Poništi"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Nazovi <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Izrada novog kontakta"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Dodavanje postojećem kontaktu"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Dodaj kontaktu"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Pošalji SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Uputite videopoziv"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Prikaz cijele povijesti poziva"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokiraj broj"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Broj novih propuštenih poziva: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Brzo biranje omogućuje vam da jednim dodirom birate favorite i brojeve koje često zovete"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Nema kontakata"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Još nemate nikog na brzom biranju"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Dodaj favorit"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Još nemate nijedan kontakt"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Dodajte kontakt"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Dodirnite sliku da biste vidjeli sve brojeve ili dodirnite i zadržite da biste promijenili raspored"</string>
<string name="remove_contact" msgid="1080555335283662961">"Ukloni"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"SVI KONTAKTI"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videopoziv"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"POSLUŠAJTE"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Prikaz pojedinosti"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Pošalji poruku"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Pojedinosti poziva"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Nazovi <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Propušten poziv: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Prihvaćen poziv: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Nepročitana govorna pošta kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Govorna pošta kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Poziv: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"na <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Poziv"</string>
<string name="description_call_action" msgid="4000549004089776147">"Pozovi <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videopoziv upućen kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videopoziv <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Slušanje govorne pošte kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reproduciranje govorne pošte od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pauziranje govorne pošte od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Brisanje govorne pošte od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> nova govorna pošta</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> nove govorne pošte</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> novih govornih pošta</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Izrada kontakta za <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Dodavanje kontakta <xliff:g id="NAMEORNUMBER">^1</xliff:g> postojećem kontaktu"</string>
<string name="description_details_action" msgid="2433827152749491785">"Pojedinosti o pozivu za kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Izbrisano iz povijesti poziva"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Prijavi"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Danas"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Jučer"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Stariji"</string>
@@ -188,5 +220,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Brzi odgovori"</string>
<string name="call_settings_label" msgid="313434211353070209">"Pozivi"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blokiranje poziva"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokiranje poziva privremeno isključeno"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Uvoz brojeva"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Ranije ste na drugim aplikacijama naveli da se neki pozivatelji automatski šalju na govornu poštu."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Prikaži brojeve"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvezi"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz nije uspio"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblokiranje broja"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj broj"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Pozivi s tih brojeva blokirat će se, a govorna pošta automatski će se brisati."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Pozivi s tih brojeva blokirat će se, ali pozivatelji će vam moći ostavljati govornu poštu."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokirani brojevi"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Broj <xliff:g id="NUMBER">%1$s</xliff:g> nije važeći."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Broj <xliff:g id="NUMBER">%1$s</xliff:g> već je blokiran."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokiranje poziva onemogućeno je na 48 sati"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Onemogućeno jer je upućen hitni poziv."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Pozivanje računa"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Uključi"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Postavi dopuštenja"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Da biste omogućili brzo biranje, uključite dopuštenje za kontakte."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Da biste vidjeli zapisnik poziva, uključite dopuštenje za telefon."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Da biste vidjeli svoje kontakte, uključite dopuštenje za kontakte."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Da biste pristupili govornoj pošti, uključite dopuštenje za telefon."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Da biste pretraživali kontakte, uključite dopuštenja za kontakte."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Da biste nazvali nekog, uključite dopuštenje za telefon."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacija Telefon nema dopuštenje za pisanje u postavke sustava."</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 8f1f24306..fe9abd74a 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Tárcsázó"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefon tárcsázója"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Híváslista"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> hívása"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Szám szerkesztése hívás előtt"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Hozzáadás a névjegyekhez"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Törlés a híváslistáról"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"A híváslista törlése"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Hangposta törlése"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Hangposta megosztása"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Nincsenek hívások"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Híváslista"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Pontatlan szám jelentése"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Szám másolása"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Átírás másolása"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Szám tiltása"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"A következő szám letiltva: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Szám tiltásának feloldása"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"A következő szám tiltása feloldva: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"VISSZAVONÁS"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Törlés"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Szám szerkesztése hívás előtt"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"A híváslista törlése"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Hangposta törlése"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Hangposta törölve"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"VISSZAVONÁS"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Törli a híváslistát?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ezzel törli az összes hívást az előzmények közül"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Híváslista törlése…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Új hangüzenet tőle: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Nem sikerült lejátszani a hangpostát"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Pufferelés…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Hangposta betöltése…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nem sikerült betölteni a hangpostát"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Csak hangpostahívások"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Csak bejövő hívások"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Csak kimenő hívások"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Csak nem fogadott hívások"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizuális hangpostaüzenet"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Telefonálás nélkül tekintheti meg és hallgathatja vissza hangpostafiókja tartalmát. A művelet adatforgalmi díjakkal járhat."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Beállítások"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Nem érhetők el hangpostafrissítések"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Új hangpostaüzenet várakozik; jelenleg nem lehet betölteni."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Állítsa be hangpostáját"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Nem áll rendelkezésre hang"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Beállítás"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Hangposta hívása"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Leglassabb"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Lassú"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normál sebesség"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Gyors"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Leggyorsabb"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Válassza ki a számot"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Válassza ki a számot"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Hívási előzmények"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"További beállítások"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"tárcsázó"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Másolás"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Csak a kimenők megjelenítése"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Csak a bejövők megjelenítése"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Csak a nem fogadottak"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Kimenő videohívás"</string>
<string name="type_missed_video" msgid="954396897034220545">"Nem fogadott videohívás"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Hangposta"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Elutasított hívás"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Letiltott hívás"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Bejövő hívások"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Hangposta lejátszása"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> névjegyének megtekintése"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> hívása"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> részletes adatai."</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Új hangpostaüzenet."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> hívás"</string>
<string name="description_video_call" msgid="2933838090743214204">"Videohívás."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"SMS küldése <xliff:g id="NAME">%1$s</xliff:g> részére"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Hangposta"</string>
<string name="private_num" msgid="6374339738119166953">"Magántelefonszám"</string>
<string name="payphone" msgid="7726415831153618726">"Nyilvános telefon"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> perc <xliff:g id="SECONDS">%s</xliff:g> másodperc"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Nem lehet felhívni ezt a számot"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"A hangposta beállításához válassza a Menü &gt; Beállítások pontot."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Hangposta hívásához kapcsolja ki a Repülőgép üzemmódot."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"A hangalapú keresés nem érhető el"</string>
<string name="call_not_available" msgid="8941576511946492225">"Nem lehet telefonhívást kezdeményezni, mert a Telefon alkalmazást letiltották."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Nincs megfelelő alkalmazás a művelethez ezen az eszközön"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Név vagy telefonszám megadása"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Nincsenek hívások"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Nincsen hangpostaüzenet a közelmúltból"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Névjegyek keresése"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Adjon meg egy számot, vagy keressen a névjegyek között"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"A híváslista üres"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Hívásindítás"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nincsenek nem fogadott hívások."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hangpostafiókjában nincsenek beérkezett üzenetek."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Csak kedvencek megjelenítése"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Előzmények"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Híváslista"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Összes"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Nem fogadott"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Hangposta"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Letiltja a következő számot: <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Az erről a számról érkező hívásokat a rendszer letiltja, továbbá automatikusan törli az onnan érkező hangpostaüzeneteket is."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Az erről a számról érkező hívásokat letiltja a rendszer, azonban a hívó fél továbbra is hagyhat hangpostaüzeneteket."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"LETILTÁS"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Feloldja a következő szám tiltását: <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Ez a szám többé nem lesz letiltva, így hívás érkezhet róla."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"TILTÁS FELOLDÁSA"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Gyorshívó"</string>
- <string name="tab_recents" msgid="929949073851377206">"Legutóbbiak"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Híváslista"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Címtár"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Hangposta"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Eltávolítva a kedvencek közül"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Visszavonás"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Hívás: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Új névjegy létrehozása"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Hozzáadás a meglévő névjegyhez"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Hozzáadás névjegyhez"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS küldése"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Videohívás kezdeményezése"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Teljes híváslista megtekintése"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Szám tiltása"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> új nem fogadott hívás"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"A gyorshívás egyérintéses tárcsázást jelent a kedvenc és gyakran hívott számokhoz"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Nincsenek névjegyek"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Még semelyik telefonszám sincs gyorshívón"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Kedvenc hozzáadása"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Még nem rendelkezik egyetlen névjeggyel sem"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Névjegy hozzáadása"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Érintse meg a képet az összes szám megjelenítéséhez, vagy tartsa nyomva az átrendezéshez"</string>
<string name="remove_contact" msgid="1080555335283662961">"Eltávolítás"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ÖSSZES NÉVJEGY"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videohívás"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"MEGHALLGATÁS"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Részletek megjelenítése"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Üzenet küldése"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Hívás adatai"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> hívása"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Elmulasztott hívás: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Fogadott hívás: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Olvasatlan hangpostaüzenet a következőtől: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Hangpostaüzenet a következőtől: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Kimenő hívás: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Telefonhívás"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> hívása"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Kimenő videohívás: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"A következő hívása videokapcsolattal: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> hangpostaüzenetének meghallgatása"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Hangposta lejátszása a következőnél: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Hangposta szüneteltetése a következőnél: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Hangposta törlése a következőnél: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> új hangpostaüzenet</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> új hangpostaüzenet</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Névjegy létrehozása a következőhöz: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"A(z) <xliff:g id="NAMEORNUMBER">^1</xliff:g> hozzáadása meglévő névjegyhez"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> – hívásrészletek"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Törölve a híváslistáról"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Jelentés"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Ma"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Tegnap"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Korábbi"</string>
@@ -178,7 +209,7 @@
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Hangok és rezgés"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Kisegítő lehetőségek"</string>
<string name="ringtone_title" msgid="760362035635084653">"Telefon csengőhangja"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Rezgés a hívásoknál is"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"A hívásoknál rezegjen is"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tárcsázó hangjai"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Tárcsázási hang hossza"</string>
<string-array name="dtmf_tone_length_entries">
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Gyors válaszok"</string>
<string name="call_settings_label" msgid="313434211353070209">"Hívások"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Hívásletiltás"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Hívástiltás átmenetileg felfüggesztve"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Számok importálása"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Más alkalmazásokban korábban beállította, hogy bizonyos személyeket automatikusan a hangpostafiókba irányítsa a rendszer, amikor felhívják Önt."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Számok megtekintése"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importálás"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Az importálás nem sikerült"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Szám tiltásának feloldása"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Szám hozzáadása"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Az ezekről a számokról érkező hívásokat a rendszer letiltja, továbbá automatikusan törli az onnan érkező hangpostaüzeneteket is."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Az ezekről a számokról érkező hívásokat letiltja a rendszer, azonban a hívó felek továbbra is hagyhatnak hangpostaüzeneteket."</string>
+ <string name="block_list" msgid="7760188925338078011">"Letiltott számok"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"A(z) <xliff:g id="NUMBER">%1$s</xliff:g> érvénytelen."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"A következő szám már le van tiltva: <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"A hívások tiltása funkció kikapcsolva 48 órára"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Letiltva vészhívás miatt."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Telefonos fiókok"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Engedélyezés"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Engedélyek beállítása"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Gyorshívás engedélyezéséhez kapcsolja be a Névjegyek engedélyt."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"A hívásnapló megtekintéséhez kapcsolja be a Telefon engedélyt."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"A névjegyek megtekintéséhez kapcsolja be a Névjegyek engedélyt."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"A hangposta eléréséhez kapcsolja be a Telefon engedélyt."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"A névjegyek kereséséhez adja meg a Névjegyek engedélyeket."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Hívásindításhoz kapcsolja be a Telefon engedélyt."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"A Telefon alkalmazásnak nincs engedélye szerkeszteni a rendszerbeállításokat."</string>
</resources>
diff --git a/res/values-hy-rAM/strings.xml b/res/values-hy-rAM/strings.xml
index 8325f363d..ced497746 100644
--- a/res/values-hy-rAM/strings.xml
+++ b/res/values-hy-rAM/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Համարհավաքիչ"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Հեռախոս"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Հեռախոս"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Հեռախոսի թվաշար"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Հեռախոս"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Զանգերի պատմություն"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Զանգել <xliff:g id="NAME">%s</xliff:g>-ին"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Խմբագրել համարը զանգելուց առաջ"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Ավելացնել կոնտակտներում"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Ջնջել զանգերի պատմությունից"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Մաքրել զանգերի պատմությունը"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ջնջել ձայնային փոստը"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Տարածել ձայնային փոստը"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Զանգեր չկան"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Զանգերի պատմությունը"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Հաղորդել սխալ համարի մասին"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Պատճենել համարը"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Պատճենել տառադարձությունը"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Արգելափակել համարը"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Արգելափակվել է <xliff:g id="NUMBER">%1$s</xliff:g> համար"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Արգելաբացել համարը"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Արգելաբացվել է <xliff:g id="NUMBER">%1$s</xliff:g> համար"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ՀԵՏԱՐԿԵԼ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Ջնջել"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Խմբագրել համարը զանգելուց առաջ"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Ջնջել զանգերի պատմությունը"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ջնջել ձայնային փոստը"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ձայնային փոստը ջնջվեց"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ՀԵՏԱՐԿԵԼ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Մաքրե՞լ զանգերի պատմությունը:"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Այս գործողությունը ամբողջովին կջնջի զանգերի պատմությունը"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Զանգերի պատմության մաքրում…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Նոր ձայնային փոստ <xliff:g id="CALLER">%1$s</xliff:g>-ից"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Հաղորդագրությունը չհաջողվեց նվագարկել"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Պահնակավորում..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Ձայնային հաղորդագրության բեռնում…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Հաղորդագրությունը չհաջողվեց բեռնել"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Միայն ձայնային փոստով զանգերը"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Միայն մուտքային զանգեր"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Միայն ելքային զանգերը"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Միայն բաց թողնված զանգերը"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Տեսողական ձայնային փոստ"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Դիտեք և ունկնդրեք ձեր ձայնային փոստի հաղորդագրությունները առանց զանգ կատարելու անհրաժեշտության: Տվյալների փոխանցման համար կարող են վճարներ գանձվել:"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Կարգավորումներ"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Ձայնային փոստի տվյալները չի հաջողվում բեռնել"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Նոր ձայնային հաղորդագրություն կա: Այս պահին հնարավոր չէ բեռնել:"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Կարգավորեք ձայնային փոստը"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Ձայնային տարբերակը հասանելի չէ"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Կարգավորել"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Միանալ ձայնային փոստին"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Ամենադանդաղ արագություն"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Դանդաղ արագություն"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Միջին արագություն"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Արագ"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Շատ արագ"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Ընտրել համարը"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Ընտրել համարը"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Զանգերի պատմությունը"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Այլ ընտրանքներ"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"թվաշար"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Պատճենել"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Ցույց տալ միայն ելքայինները"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Ցույց տալ միայն մուտքայինները"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Ցույց տալ միայն բաց թողնվածները"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Ելքային տեսազանգ"</string>
<string name="type_missed_video" msgid="954396897034220545">"Բաց թողնված տեսազանգ"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Ձայնային փոստ"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Մերժված զանգ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Արգելափակված զանգ"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Մուտքային զանգեր"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Նվագարկել ձայնային փոստը"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Դիտել <xliff:g id="NAME">%1$s</xliff:g> կոնտակտը"</string>
<string name="description_call" msgid="3443678121983852666">"Զանգել <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ի կոնտակտային տվյալները"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Նոր ձայնային հաղորդագրություն:"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> զանգ:"</string>
<string name="description_video_call" msgid="2933838090743214204">"Տեսազանգ"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Ուղարկել SMS <xliff:g id="NAME">%1$s</xliff:g>-ին"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Ձայնային փոստ"</string>
<string name="private_num" msgid="6374339738119166953">"Անձնական համարը"</string>
<string name="payphone" msgid="7726415831153618726">"Հանրային հեռախոս"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> վրկ"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> րոպե <xliff:g id="SECONDS">%s</xliff:g> վայրկյան"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>-ին, ժամը <xliff:g id="TIME">%2$s</xliff:g>-ին"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Հնարավոր չէ զանգահարել այս համարով"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Ձայնային փոստը կարգավորելու համար գնացեք Ցանկ &gt; Կարգավորումներ:"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Ձայնային փոստին զանգելու համար նախ անջատեք թռիչքային ռեժիմը:"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Ձայնային որոնումը հասանելի չէ"</string>
<string name="call_not_available" msgid="8941576511946492225">"Հնարավոր չէ զանգահարել, քանի որ Հեռախոս հավելվածն անջատված է:"</string>
<string name="activity_not_available" msgid="2287665636817987623">"Սարքի վրա համապատասխան հավելված չկա"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Մուտքագրեք անուն կամ համար"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Զանգեր չկան"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Վերջերս ստացված ձայնային հաղորդագրություններ չկան"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Որոնել կոնտակտներ"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Ավելացրեք համար/որոնեք կոնտակտներ"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Ձեր զանգերի պատմությունը դատարկ է"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Զանգահարել"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Բաց թողած զանգեր չունեք:"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ձայնային փոստի մուտքի արկղը դատարկ է:"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Ցույց տալ միայն ընտրյալները"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Պատմություն"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Զանգերի պատմությունը"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Բոլորը"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Բաց թողնված"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Ձայնափոստ"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Արգելափակե՞լ <xliff:g id="NUMBER">%1$s</xliff:g> համարը:"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Այս համարից զանգերը կարգելափակվեն, իսկ ձայնային փոստի հաղորդագրություններն ավտոմատ կերպով կջնջվեն:"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Այս համարից զանգերը կարգելափակվեն, սակայն զանգողը կկարողանա ձեզ համար ձայնային փոստի հաղորդագրություններ թողնել:"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ԱՐԳԵԼԱՓԱԿԵԼ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Արգելաբացե՞լ <xliff:g id="NUMBER">%1$s</xliff:g> համարը:"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Այս համարից զանգերն այլևս չեն արգելափակվի:"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ԱՐԳԵԼԱԲԱՑԵԼ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Արագ համարարկում"</string>
- <string name="tab_recents" msgid="929949073851377206">"Վերջինները"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Զանգերի պատմությունը"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Կոնտակտներ"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Ձայնային փոստ"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Հեռացված է ընտրյալներից"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Հետարկել"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Զանգել <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Ստեղծել նոր կոնտակտ"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Ավելացնել առկա կոնտակտին"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Ավելացնել կոնտակտին"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Ուղարկել SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Կատարել տեսազանգ"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Դիտել բոլոր զանգերի պատմությունը"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Արգելափակել համարը"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> նոր բաց թողնված զանգ"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Արագ համարարկումը մեկ հպումով համարի հավաքման եղանակ է՝ ձեր նախընտրած և հաճախակի հավաքվող համարների համար"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Կոտնակտներ չկան"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Արագ համարահավաքման ցանկը դատարկ է"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Ավելացնել ընտրանում"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Դեռ կոնտակտներ չունեք"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Ավելացնել կոնտակտ"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Բոլոր համարները տեսնելու համար հպեք պատկերին: Վերադասավորելու համար հպեք և պահեք:"</string>
<string name="remove_contact" msgid="1080555335283662961">"Հեռացնել"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ԲՈԼՈՐ ԿՈՆՏԱԿՏՆԵՐԸ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Տեսազանգ"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ԼՍԵԼ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Տեսնել մանրամասները"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Ուղարկել հաղորդագրություն"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Զանգի մանրամասները"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Զանգել <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ին"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Բաց է թողնվել զանգ <xliff:g id="NAMEORNUMBER">^1</xliff:g> կոնտակտից, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>:"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Ընդունվել է զանգ <xliff:g id="NAMEORNUMBER">^1</xliff:g> կոնտակտից, <xliff:g id="TYPEORLOCATION">^2</xliff:g> , <xliff:g id="TIMEOFCALL">^3</xliff:g> , <xliff:g id="PHONEACCOUNT">^4</xliff:g>:"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Չկարդացված ձայնային փոստի հաղորդագրություն <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ից, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>:"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Ձայնային փոստի հաղորդագրություն <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ից, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>:"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Զանգ <xliff:g id="NAMEORNUMBER">^1</xliff:g> կոնտակտին, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>:"</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Զանգել"</string>
<string name="description_call_action" msgid="4000549004089776147">"Զանգել <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ին"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Կատարված տեսազանգ՝ <xliff:g id="NAMEORNUMBER">^1</xliff:g>:"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Տեսազանգ <xliff:g id="NAMEORNUMBER">^1</xliff:g> կոնտակտին:"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Լսել ձայնային փոստը <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ից"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Նվագարկել <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ի ձայնային փոստի հաղորդագրությունները"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Դադարեցնել <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ից ձայնային փոստի հաղորդագրությունների ստացումը"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Ջնջել <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ի ձայնային փոստի հաղորդագրությունները"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> նոր ձայնային փոստ</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> նոր ձայնային փոստ</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Ավելացնել <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ը կոնտակտների ցանկին"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Ավելացնել <xliff:g id="NAMEORNUMBER">^1</xliff:g>-ը առկա կոնտակտին"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> զանգի մասին տվյալներ"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Ջնջվել է զանգերի պատմությունից"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Հաղորդել"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Այսօր"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Երեկ"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Ավելի հին"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Արագ պատասխաններ"</string>
<string name="call_settings_label" msgid="313434211353070209">"Զանգեր"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Զանգերի արգելափակում"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Զանգերի արգելափակումը կասեցվել է"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Զանգերի արգելափակումը կասեցվել է, քանի որ վերջին 48 ժամվա ընթացքում դուք այս հեռախոսից զանգել եք արտակարգ իրավիճակների ծառայություններին: 48 ժամ տևողությամբ ժամանակահատվածի ավարտից հետո այն ավտոմատ կերպով կվերամիացվի:"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Ներմուծել համարները"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Համաձայն ձեր նախկին կարգավորումների՝ որոշ զանգողների պետք է ինքնաշխատորեն ուղարկվի ձայնային փոստ այլ հավելվածների միջոցով:"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Կոնտակտների թիվը"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Ներմուծում"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ներմուծումը չհաջողվեց"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Արգելաբացել համարը"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Ավելացնել համար"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Այս համարներից զանգերը կարգելափակվեն, իսկ ձայնային փոստի հաղորդագրություններն ավտոմատ կերպով կջնջվեն:"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Այս համարներից զանգերը կարգելափակվեն, սակայն նրանք կկարողանան ձեզ համար ձայնային փոստի հաղորդագրություններ թողնել:"</string>
+ <string name="block_list" msgid="7760188925338078011">"Արգելափակված համարներ"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> համարը սխալ է:"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> համարն արդեն արգելափակված է:"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Զանգերի արգելափակումն անջատվել է 48 ժամով"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Անջատվել է, քանի որ կատարվել է արտակարգ իրավիճակների զանգ:"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Հաշիվներ զանգերի համար"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Միացնել"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Թույլտվությունների սահմանում"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Արագ համարահավաքը թույլատրելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Ձեր զանգերի մատյանը տեսնելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Ձեր կոնտակտները տեսնելու համար միացրեք Կոնտակտների թույլտվությունը:"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Ձայնային փոստն օգտագործելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Կոնտակտները որոնելու համար միացրեք Կոնտակտների թույլտվությունները:"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Զանգ կատարելու համար միացրեք Հեռախոսի թույլտվությունը:"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Հեռախոս հավելվածը համակարգի կարգավորումները գրելու թույլտվություն չունի:"</string>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 2d49c6e14..8344e933a 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Aplikasi Telepon"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telepon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telepon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Tombol Nomor Ponsel"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telepon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Riwayat panggilan"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Telepon <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edit nomor sebelum memanggil"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Tambahkan ke kontak"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Hapus dari riwayat panggilan"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Hapus riwayat panggilan"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Hapus pesan suara"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Bagikan kotak pesan"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Tidak ada panggilan telepon"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Riwayat panggilan"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Laporkan nomor yang tidak akurat"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Salin nomor"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Salin transkripsi"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokir nomor"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> diblokir"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Bebaskan nomor"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> dibebaskan"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"URUNGKAN"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Hapus"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit nomor sebelum memanggil"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Hapus riwayat panggilan"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Hapus pesan suara"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Pesan suara dihapus"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"URUNGKAN"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Hapus riwayat panggilan?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tindakan ini akan menghapus semua panggilan telepon dari riwayat"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Menghapus riwayat panggilan..."</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Pesan suara baru dari <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Tidak dapat memutar pesan suara"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Menyangga…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Memuat pesan suara..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Tidak dapat memuat pesan suara"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Hanya panggilan dengan pesan suara"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Hanya panggilan masuk"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Hanya panggilan keluar"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Hanya panggilan tak terjawab"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Pesan suara visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Lihat dan dengarkan pesan suara, tanpa harus menelepon si pengirim. Dapat dikenakan tagihan data."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Setelan"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Pembaruan pesan suara tidak tersedia"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Pesan suara baru sedang menunggu. Tidak dapat memuat sekarang."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Siapkan pesan suara"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio tidak tersedia"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Siapkan"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Telepon pesan suara"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Kecepatan paling rendah"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Kecepatan rendah"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Kecepatan normal"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Kecepatan tinggi"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Kecepatan tertinggi"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Pilih nomor"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Pilih nomor"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Riwayat Panggilan"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Opsi lainnya"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"tombol nomor"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Salin"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Tampilkan panggilan keluar"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Tampilkan panggilan masuk saja"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Tampilkan panggilan terlewat"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Video call keluar"</string>
<string name="type_missed_video" msgid="954396897034220545">"Video call tak terjawab"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Kotak Pesan"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Panggilan ditolak"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Panggilan diblokir"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Panggilan masuk"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Putar pesan suara"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Lihat kontak <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Telepon <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Detail kontak untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Pesan suara baru."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> panggilan."</string>
<string name="description_video_call" msgid="2933838090743214204">"Video call."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Kirim SMS ke <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Kotak Pesan"</string>
<string name="private_num" msgid="6374339738119166953">"Nomor pribadi"</string>
<string name="payphone" msgid="7726415831153618726">"Telepon Umum"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> mnt <xliff:g id="SECONDS">%s</xliff:g> dtk"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> pukul <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Tidak dapat menelepon nomor ini"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Untuk menyiapkan kotak pesan, buka Menu &gt; Setelan."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Untuk memanggil pesan suara, pertama-tama matikan mode Pesawat."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Penelusuran suara tidak tersedia"</string>
<string name="call_not_available" msgid="8941576511946492225">"Tidak dapat melakukan panggilan telepon karena aplikasi Telepon telah dinonaktifkan."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Tidak ada aplikasi untuk tindakan tersebut di perangkat ini"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Masukkan nama / nomor telepon"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Tidak ada panggilan telepon"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Tidak ada pesan suara terbaru"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Telusuri kontak"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Tambahkan nomor atau telusuri kontak"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Riwayat panggilan kosong"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Lakukan panggilan telepon"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Tidak ada panggilan yang tidak terjawab."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Kotak masuk pesan suara kosong."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Hanya tampilkan favorit"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Riwayat"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Riwayat Panggilan"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Tak Dijawab"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"PesanSuara"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokir <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Panggilan telepon dari nomor ini akan diblokir dan pesan suara akan dihapus secara otomatis."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Panggilan telepon dari nomor ini akan diblokir, tetapi penelepon mungkin masih dapat meninggalkan pesan suara."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKIR"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Bebaskan <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Nomor ini tidak akan diblokir lagi dan dapat menelepon Anda."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"BEBASKAN"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Panggilan cepat"</string>
- <string name="tab_recents" msgid="929949073851377206">"Terbaru"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Riwayat Panggilan"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontak"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Pesan suara"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Dihapus dari favorit"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Batalkan"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Telepon <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Buat kontak baru"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Tambahkan ke kontak yang ada"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Tambahkan ke kontak"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Kirim SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Lakukan video call"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Lihat riwayat panggilan telepon lengkap"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokir nomor"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> panggilan tidak terjawab baru"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Panggilan cepat adalah panggilan satu sentuhan untuk favorit dan nomor yang sering ditelepon"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Tidak ada kontak"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Daftar panggilan cepat masih kosong"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Tambahkan favorit"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Anda belum memiliki kontak"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Tambahkan kontak"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Sentuh foto untuk melihat semua nomor atau sentuh &amp; tahan untuk menyusun ulang"</string>
<string name="remove_contact" msgid="1080555335283662961">"Hapus"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"SEMUA KONTAK"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Panggilan video"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"DENGAR"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Lihat detail"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Kirim pesan"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detail panggilan"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Telepon <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Panggilan tak terjawab dari <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Panggilan terjawab dari <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Pesan suara yang belum dibaca dari <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Pesan suara dari <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Panggilan ke <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"di <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Telepon"</string>
<string name="description_call_action" msgid="4000549004089776147">"Telepon <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Video call ke <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Lakukan panggilan video ke <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Dengarkan kotak pesan dari <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Putar pesan suara dari <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Jeda pesan suara dari <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Hapus pesan suara dari <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> pesan suara baru</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> pesan suara baru</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Buat kontak untuk <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Tambahkan <xliff:g id="NAMEORNUMBER">^1</xliff:g> ke akun yang ada"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detail panggilan telepon untuk <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Dihapus dari riwayat panggilan"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Laporkan"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Hari ini"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Kemarin"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Lebih lama"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respons cepat"</string>
<string name="call_settings_label" msgid="313434211353070209">"Panggilan telepon"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Pemblokiran panggilan telepon"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokir panggilan dinonaktifkan sementara"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Impor nomor"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Anda sebelumnya menandai beberapa penelepon agar dialihkan secara otomatis ke pesan suara melalui aplikasi lain."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Lihat Nomor"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Impor"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Impor gagal"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Bebaskan nomor"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Tambahkan nomor"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Panggilan telepon dari nomor ini akan diblokir dan pesan suara akan dihapus secara otomatis."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Panggilan telepon dari nomor ini akan diblokir, tetapi penelepon mungkin masih dapat meninggalkan pesan suara."</string>
+ <string name="block_list" msgid="7760188925338078011">"Nomor yang diblokir"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> tidak valid."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah diblokir."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Pemblokiran panggilan dinonaktifkan selama 48 jam"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Dinonaktifkan karena panggilan darurat dilakukan."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Akun panggilan"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktifkan"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Setel izin"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Untuk mengaktifkan panggilan cepat, aktifkan izin Kontak."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Untuk melihat log panggilan, aktifkan izin Telepon."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Untuk melihat kontak, aktifkan izin Kontak."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Untuk mengakses pesan suara, aktifkan izin Telepon."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Untuk menelusuri kontak, aktifkan izin Kontak."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Untuk melakukan panggilan, aktifkan izin Telepon."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikasi telepon tidak memiliki izin untuk menulis ke setelan sistem."</string>
</resources>
diff --git a/res/values-is-rIS/strings.xml b/res/values-is-rIS/strings.xml
index 5cc1e646d..9b39a2010 100644
--- a/res/values-is-rIS/strings.xml
+++ b/res/values-is-rIS/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Símaforrit"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Sími"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Sími"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Takkaborð síma"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Sími"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Símtalaferill"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Hringja í <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Breyta númeri áður en hringt er"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Bæta við tengiliði"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Eyða af símtalaferli"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Hreinsa símtalaferil"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Eyða talhólfsskilaboðum"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Deila talhólfsskilaboðum"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Engin símtöl"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Símtalaferill"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Tilkynna rangt númer"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Afrita númer"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Afrita umritun"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Setja númer á bannlista"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Lokað fyrir <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Taka númer af bannlista"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> tekið af bannlista"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"AFTURKALLA"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Eyða"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Breyta númeri áður en hringt er"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Hreinsa símtalaferil"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Eyða talhólfsskilaboðum"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Talhólfi eytt"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"AFTURKALLA"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Hreinsa símtalaferil?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Þetta eyðir öllum símtölum af ferlinum"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Hreinsar símtalaferil…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Ný talhólfsskilaboð frá <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Ekki tókst að spila talhólfsskilaboð"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Setur í biðminni…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Hleður talhólfsskilaboð…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Ekki tókst að hlaða talhólfsskilaboð"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Símtöl með talhólfi eingöngu"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Móttekin símtöl eingöngu"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Hringd símtöl eingöngu"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Ósvöruð símtöl eingöngu"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Myndrænt talhólf"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Skoðaðu og hlustaðu á talhólfið þitt án þess að þurfa að hringja. Getur haft gagnakostnað í för með sér."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Stillingar"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Talhólfsuppfærslur ekki í boði"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Ný talhólfsskilaboð bíða. Ekki er hægt að hlaða þau eins og er."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Settu upp talhólfið þitt"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Hljóð er ekki í boði"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Uppsetning"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Hringja í talhólf"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Hægast"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Hægt"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Venjulegur hraði"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Hratt"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Hraðast"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Veldu símanúmer"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Veldu símanúmer"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Símtalaferill"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Fleiri valkostir"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"takkaborð"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Afrita"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Sýna hringd símtöl eingöngu"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Sýnir móttekin símtöl eingöngu"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Sýna ósvöruð símtöl eingöngu"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Myndsímtal hringt"</string>
<string name="type_missed_video" msgid="954396897034220545">"Ósvarað myndsímtal"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Talhólfsskilaboð"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Símtali hafnað"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Símtal á bannlista"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Móttekin símtöl"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Spila talhólfsskilaboð"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Skoða tengiliðinn <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Hringja í <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Tengiliðaupplýsingar um <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Ný talhólfsskilaboð."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> símtöl."</string>
<string name="description_video_call" msgid="2933838090743214204">"Myndsímtal"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Senda SMS til <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Talhólf"</string>
<string name="private_num" msgid="6374339738119166953">"Leyninúmer"</string>
<string name="payphone" msgid="7726415831153618726">"Símasjálfsali"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> mín. og <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Ekki er hægt að hringja í þetta númer"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Til að setja upp talhólf þarftu að opna valmyndina og velja Stillingar."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Til að hringja í talhólfið þarftu fyrst að slökkva á flugstillingu."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Raddleit er ekki í boði"</string>
<string name="call_not_available" msgid="8941576511946492225">"Ekki er hægt að hringja vegna þess að forritið Sími hefur verið gert óvirkt."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Ekkert forrit fyrir þetta er í tækinu"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Sláðu inn nafn eða símanúmer"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Engin símtöl"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Engin nýleg talhólfsskilaboð"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Leita að tengiliðum"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Bættu við númeri eða tengilið"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Símtalaferillinn er auður"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Hringja símtal"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Þú ert ekki með nein ósvöruð símtöl."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Talhólfið þitt er tómt."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Sýna aðeins uppáhaldstengiliði"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Ferill"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Símtalaferill"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Allt"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Ósvöruð"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Talhólf"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Setja <xliff:g id="NUMBER">%1$s</xliff:g> á bannlista?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Lokað verður fyrir símtöl frá þessu númeri og talhólfsskilaboðum sjálfkrafa eytt."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Lokað verður fyrir símtöl frá þessu númeri. Hugsanlegt er að sá sem hringir geti engu að síður sent þér talhólfsskilaboð."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"SETJA Á BANNLISTA"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Taka <xliff:g id="NUMBER">%1$s</xliff:g> af bannlista?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Ekki verður lengur lokað á símtöl úr þessu númeri."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"TAKA AF BANNLISTA"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Hraðval"</string>
- <string name="tab_recents" msgid="929949073851377206">"Nýlegt"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Símtalaferill"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Tengiliðir"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Talhólf"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Fjarlægður úr uppáhaldi"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Afturkalla"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Hringja í <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Búa til nýjan tengilið"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Bæta við fyrirliggjandi tengilið"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Bæta við tengilið"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Senda SMS-skilaboð"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Hringja myndsímtal"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Skoða símtalaferil í heild"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Setja númer á bannlista"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ný ósvöruð símtöl"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Með hraðvali geturðu hringt með einni snertingu í uppáhaldstengiliðina og númer sem þú hringir oft í"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Engir tengiliðir"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Þú ert ekki með neinn í hraðvali enn sem komið er"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Bæta uppáhaldi við"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Þú ert ekki með neina tengiliði enn sem komið er"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Bæta tengilið við"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Snertu myndina til að sjá öll númer eða haltu henni inni til að endurraða"</string>
<string name="remove_contact" msgid="1080555335283662961">"Fjarlægja"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLIR TENGILIÐIR"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Myndsímtal"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"HLUSTA"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Skoða upplýsingar"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Senda skilaboð"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Símtalsupplýsingar"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Hringja í <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Ósvarað símtal frá <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Svarað símtal frá <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Ólesin talhólfsskilaboð frá <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Talhólfsskilaboð frá <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Símtal til <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"í gegnum <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Hringja"</string>
<string name="description_call_action" msgid="4000549004089776147">"Hringja í <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Myndsímtal til <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Hringja myndsímtal í <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Hlusta á talhólfsskilaboð frá <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Spila talhólfsskilaboð sem <xliff:g id="NAMEORNUMBER">^1</xliff:g> sendi"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Gera hlé á talhólfsskilaboðum sem <xliff:g id="NAMEORNUMBER">^1</xliff:g> sendi"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Eyða talhólfsskilaboðum sem <xliff:g id="NAMEORNUMBER">^1</xliff:g> sendi"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ný talhólfsskilaboð</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ný talhólfsskilaboð</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Búa til tengilið fyrir <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Bæta <xliff:g id="NAMEORNUMBER">^1</xliff:g> við fyrirliggjandi tengilið"</string>
<string name="description_details_action" msgid="2433827152749491785">"Símtalsupplýsingar fyrir <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Eytt af símtalaferli"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Tilkynna"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Í dag"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Í gær"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Eldra"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Snarsvör"</string>
<string name="call_settings_label" msgid="313434211353070209">"Símtöl"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Lokað fyrir símtöl"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Tímabundið slökkt á lokun fyrir símtöl"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Flytja inn númer"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Þú merktir áður nokkra hringjendur þannig að þeir verði sjálfkrafa sendir í talhólfið í gegnum önnur forrit."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Skoða tölur"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Flytja inn"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Innflutningur mistókst"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Taka númer af bannlista"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Bæta númeri við"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Lokað verður fyrir símtöl frá þessum númerum og talhólfsskilaboðum sjálfkrafa eytt."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Lokað verður fyrir símtöl frá þessum númerum. Hugsanlegt er að þeir sem hringja geti engu að síður sent þér talhólfsskilaboð."</string>
+ <string name="block_list" msgid="7760188925338078011">"Númer á bannlista"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> er ógilt."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> er nú þegar á bannlista."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Slökkt á lokun símtala í 48 klukkustundir"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Óvirkt vegna þess að neyðarsímtal var hringt."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Símtalareikningar"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Kveikja"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Stilla heimildir"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Kveiktu á tengiliðaheimildinni til að gera hraðval virkt."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Kveiktu á heimild símaforritsins til að sjá símtalaskrána þína."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Kveiktu á tengiliðaheimildinni til að sjá tengiliðina þína."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Kveiktu á heimild símaforritsins til að fá aðgang að talhólfinu þínu."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Kveiktu á heimildunum fyrir tengiliði til að leita að tengiliðum."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Kveiktu á heimild símaforritsins til að hringja símtal."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Símaforritið hefur ekki heimild til að breyta kerfisstillingum."</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index cff42ca72..4bb1092fd 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefono"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefono"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Tastierino del telefono"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefono"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Cronologia chiamate"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Chiama <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Modifica prima di chiamare"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Aggiungi a contatti"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Elimina da cronologia chiamate"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Cancella cronologia chiamate"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Elimina messaggio vocale"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Condividi messaggio vocale"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Nessuna chiamata"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Cronologia chiamate"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Segnala numero sbagliato"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copia numero"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copia trascrizione"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blocca numero"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> bloccato"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Sblocca numero"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> sbloccato"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ANNULLA"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Elimina"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Modifica numero prima di effettuare la chiamata"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Cancella cronologia chiamate"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Elimina messaggi della segreteria"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mes vocali eliminati"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANNULLA"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Cancellare la cronologia chiamate?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Verranno eliminate tutte le chiamate dalla cronologia"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Cancellazione cronologia chiamate…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nuovo messaggio vocale da <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Impossibile riprodurre i messaggi vocali"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buffering..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Caricamento dei messaggi vocali…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Impossibile caricare i messaggi vocali"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Solo chiamate con segreteria"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Solo chiamate in arrivo"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Solo chiamate in uscita"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Solo chiamate perse"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Leggi la segreteria"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Leggi e ascolta i tuoi messaggi in segreteria senza chiamare alcun numero. Potrebbero essere applicate le tariffe previste per il traffico di dati."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Impostazioni"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Aggiornamenti della segreteria non disponibili"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nuovo messaggio vocale in attesa. Impossibile caricare al momento."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configura la segreteria"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio non disponibile"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Imposta"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Chiama segreteria"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Velocità più bassa"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Bassa velocità"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Velocità normale"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Alta velocità"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Massima velocità"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Scegli numero"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Scegli numero"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Cronologia chiamate"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Altre opzioni"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"tastierino"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copia"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostra solo in uscita"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostra solo in arrivo"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Mostra solo senza risposta"</string>
@@ -88,20 +91,21 @@
<string name="toast_call_detail_error" msgid="6947041258280380832">"Dettagli non disponibili"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usa tastierino per selezione a toni"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Torna alla chiamata in corso"</string>
- <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Aggiungi"</string>
- <string name="type_incoming" msgid="6502076603836088532">"Chiamata ricevuta"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Aggiungi chiamata"</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Chiamata in arrivo"</string>
<string name="type_outgoing" msgid="343108709599392641">"Chiamata effettuata"</string>
<string name="type_missed" msgid="2720502601640509542">"Chiamata persa"</string>
<string name="type_incoming_video" msgid="82323391702796181">"Videochiamata in arrivo"</string>
<string name="type_outgoing_video" msgid="2858140021680755266">"Videochiamata in uscita"</string>
<string name="type_missed_video" msgid="954396897034220545">"Videochiamata persa"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Segreteria"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Chiamata rifiutata"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Chiamata bloccata"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Chiamate in arrivo"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Riproduci messaggio vocale"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Visualizza <xliff:g id="NAME">%1$s</xliff:g> contatto"</string>
<string name="description_call" msgid="3443678121983852666">"Chiama <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Dettagli contatto <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nuovo messaggio di segreteria."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> chiamate."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videochiamata."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Invia SMS a <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Segreteria"</string>
<string name="private_num" msgid="6374339738119166953">"Numero privato"</string>
<string name="payphone" msgid="7726415831153618726">"Cabina telefonica"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> secondi"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min e <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> alle ore <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Impossibile chiamare questo numero"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Per configurare la segreteria, seleziona Menu &gt; Impostazioni."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Per chiamare la segreteria, disattiva la modalità aereo."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Ricerca vocale non disponibile"</string>
<string name="call_not_available" msgid="8941576511946492225">"Impossibile effettuare una telefonata perché l\'applicazione Telefono è stata disattivata."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Sul dispositivo non sono presenti app per tale azione"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Inserisci un nome o un numero"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Nessuna chiamata"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Nessun messaggio vocale recente"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Cerca nei contatti"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Aggiungi numero/cerca contatti"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"La cronologia delle chiamate è vuota"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Fai una chiamata"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nessuna chiamata senza risposta."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"La segreteria è vuota."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostra solo i preferiti"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Cronologia"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Cronologia chiamate"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Tutte"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perse"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Segreteria"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloccare il numero <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Le chiamate da questo numero verranno bloccate e i messaggi in segreteria verranno automaticamente eliminati."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Le chiamate da questo numero verranno bloccate, ma il chiamante potrebbe lasciarti messaggi in segreteria."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOCCA"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Sbloccare il numero <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Questo numero non sarà più bloccato e potrà chiamarti."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"SBLOCCA"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Composizione rapida"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recenti"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Cronologia chiamate"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contatti"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Segreteria"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Rimosso dai preferiti"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Annulla"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Chiama <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Crea nuovo contatto"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Aggiungi a contatto esistente"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Aggiungi a un contatto"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Invia SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Fai una videochiamata"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Visualizza cronologia completa delle chiamate"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blocca numero"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nuove chiamate senza risposta"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"La composizione rapida consente di comporre con un tocco i numeri preferiti e chiamati spesso"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Nessun contatto"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Nessun preferito disponibile nella Composizione rapida"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Aggiungi un preferito"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Nessun contatto disponibile"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Aggiungi un contatto"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Tocca l\'immagine per visualizzare tutti i numeri, oppure tocca e tieni premuto per cambiare l\'ordine"</string>
<string name="remove_contact" msgid="1080555335283662961">"Rimuovi"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TUTTI I CONTATTI"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videochiamata"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ASCOLTA"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Visualizza dettagli"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Invia un messaggio"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Dettagli chiamata"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Chiama <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Chiamata senza risposta di <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Risposta alla chiamata di <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Messaggio in segreteria da ascoltare da <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Messaggio in segreteria da <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Chiamata a <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"da o verso <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Chiama"</string>
<string name="description_call_action" msgid="4000549004089776147">"Chiama <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videochiamata a <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videochiamata <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Ascolta il messaggio vocale di: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Riproduci i messaggi di <xliff:g id="NAMEORNUMBER">^1</xliff:g> in segreteria"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Metti in pausa i messaggi di <xliff:g id="NAMEORNUMBER">^1</xliff:g> in segreteria"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Elimina i messaggi di <xliff:g id="NAMEORNUMBER">^1</xliff:g> dalla segreteria"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nuovi messaggi vocali</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nuovo messaggio vocale</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Crea contatto per <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Aggiungi <xliff:g id="NAMEORNUMBER">^1</xliff:g> al contatto esistente"</string>
<string name="description_details_action" msgid="2433827152749491785">"Dettagli chiamata per <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Eliminato dalla cronologia chiamate"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Segnala"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Oggi"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Ieri"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Meno recenti"</string>
@@ -178,7 +209,7 @@
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Suoni e vibrazione"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Accessibilità"</string>
<string name="ringtone_title" msgid="760362035635084653">"Suoneria telefono"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibrazione anche per chiamate"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibrazione per le chiamate"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Toni tastierino"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Durata tono tastierino"</string>
<string-array name="dtmf_tone_length_entries">
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Risposte rapide"</string>
<string name="call_settings_label" msgid="313434211353070209">"Chiamate"</string>
- <string name="phone_account_settings_label" msgid="5864322009841175294">"Account chiamate"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blocco delle chiamate"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blocco chiamate temporaneam. disattivato"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importa numeri"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Hai già contrassegnato alcuni chiamanti da inviare automaticamente alla segreteria tramite altre app."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Visualizza numeri"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importa"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importazione non riuscita"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Sblocca numero"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Aggiungi numero"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Le chiamate da questi numeri verranno bloccate e i messaggi in segreteria verranno automaticamente eliminati."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Le chiamate da questi numeri verranno bloccate, ma i chiamanti potrebbero lasciarti messaggi in segreteria."</string>
+ <string name="block_list" msgid="7760188925338078011">"Numeri bloccati"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> non è valido."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> è già bloccato."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Il blocco chiamate è stato disattivato per 48 ore"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Funzione disattivata: è stata fatta una chiamata di emergenza."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"Account di chiamata"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Attiva"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Imposta autorizzazioni"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Per attivare la composizione rapida, attiva l\'autorizzazione Contatti."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Per accedere al registro chiamate, attiva l\'autorizzazione sul telefono."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Per accedere ai tuoi contatti, attiva l\'autorizzazione Contatti."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Per accedere alla segreteria, attiva l\'autorizzazione sul telefono."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Per cercare nei tuoi contatti, attiva le autorizzazioni Contatti."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Per fare una chiamata, attiva l\'autorizzazione sul telefono."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"L\'app Telefono non dispone dell\'autorizzazione per modificare le impostazioni di sistema."</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 1e0166078..3ca53cd7f 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"חייגן"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"טלפון"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"טלפון"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"לוח חיוג של הטלפון"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"טלפון"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"היסטוריית שיחות"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"התקשר אל <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ערוך מספר לפני השיחה"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"הוסף לאנשי הקשר"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"מחק מהיסטוריית השיחות"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"נקה את היסטוריית השיחות"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"מחק דואר קולי"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"שתף דואר קולי"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"אין שיחות"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"היסטוריית שיחות"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"דווח על מספר לא מדויק"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"העתק מספר"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"העתק תמלול"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"חסום מספר"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> חסום"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"בטל חסימת מספר"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"בוטלה החסימה של <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"בטל"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"מחק"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"ערוך את המספר לפני השיחה"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"נקה את היסטוריית השיחות"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"מחק דואר קולי"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"דואר קולי נמחק"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"בטל"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"האם לנקות את היסטוריית השיחות?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"פעולה זו תמחק את כל השיחות מההיסטוריה שלך"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"מנקה היסטוריית שיחות…"</string>
@@ -42,24 +49,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"דואר קולי חדש מאת <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"לא ניתן היה להשמיע דואר קולי"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"מבצע אחסון זמני..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"טוען דואר קולי…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"לא ניתן היה לטעון דואר קולי"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"שיחות עם דואר קולי בלבד"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"שיחות נכנסות בלבד"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"שיחות יוצאות בלבד"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"שיחות שלא נענו בלבד"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"דואר קולי ויזואלי"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"הצג את הדואר הקולי והאזן לו בלי להתקשר למספר אחר. ייתכנו חיובים על צריכת נתונים."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"הגדרות"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"עדכוני דואר קולי אינם זמינים"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"יש דואר קולי חדש בהמתנה. לא ניתן לטעון כעת."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"הגדר את הדואר הקולי שלך"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"אודיו אינו זמין"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"הגדר"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"התקשר לדואר קולי"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"המהירות הנמוכה ביותר"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"מהירות נמוכה"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"מהירות רגילה"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"מהירות גבוהה"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"המהירות הגבוהה ביותר"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"בחר מספר"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"בחר מספר"</string>
@@ -75,7 +79,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"היסטוריית שיחות"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"אפשרויות נוספות"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"לוח חיוג"</string>
- <string name="menu_copy" msgid="6108677035381940698">"העתק"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"הצג רק שיחות יוצאות"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"הצג רק שיחות נכנסות"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"הצג רק שיחות שלא נענו"</string>
@@ -89,7 +92,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"פרטי שיחה"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"אין פרטים זמינים"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"השתמש במקלדת עם חיוג צלילים"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"חזור לשיחה מתבצעת"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"חזור לשיחה פעילה"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"הוסף שיחה"</string>
<string name="type_incoming" msgid="6502076603836088532">"שיחה נכנסת"</string>
<string name="type_outgoing" msgid="343108709599392641">"שיחה יוצאת"</string>
@@ -98,12 +101,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"שיחת וידאו יוצאת"</string>
<string name="type_missed_video" msgid="954396897034220545">"שיחת וידאו שלא נענתה"</string>
<string name="type_voicemail" msgid="5153139450668549908">"דואר קולי"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"שיחה שנדחתה"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"שיחה חסומה"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"שיחות נכנסות"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"הפעל דואר קולי"</string>
<string name="description_view_contact" msgid="5205669345700598415">"הצג את איש הקשר <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"התקשר אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"פרטי יצירת קשר עבור <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"דואר קולי חדש."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> שיחות."</string>
<string name="description_video_call" msgid="2933838090743214204">"שיחת וידאו."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"‏שלח SMS אל <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -114,7 +118,11 @@
<string name="voicemail" msgid="3851469869202611441">"דואר קולי"</string>
<string name="private_num" msgid="6374339738119166953">"מספר פרטי"</string>
<string name="payphone" msgid="7726415831153618726">"טלפון ציבורי"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> שניות"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> דק\' <xliff:g id="SECONDS">%s</xliff:g> שנ\'"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ב-<xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"לא ניתן להתקשר אל המספר הזה"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"‏כדי להגדיר את הדואר הקולי, עבור אל \'תפריט\' &gt; \'הגדרות\'."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"כדי להתקשר לדואר קולי, ראשית כבה את מצב הטיסה."</string>
@@ -127,45 +135,70 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"חיפוש קולי אינו זמין"</string>
<string name="call_not_available" msgid="8941576511946492225">"לא ניתן לבצע שיחת טלפון מפני שאפליקציית הטלפון הושבתה."</string>
<string name="activity_not_available" msgid="2287665636817987623">"אין אפליקציה עבור הפעולה הזו במכשיר הזה"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"הזן שם או מספר טלפון"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"אין שיחות"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"אין דואר קולי מהזמן האחרון"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"חפש אנשי קשר"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"הוסף מספר או חפש אנשי קשר"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"היסטוריית השיחות שלך ריקה"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"התקשר"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"אין שיחות שלא נענו."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"תיבת הדואר הקולי ריקה."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"הצג מועדפים בלבד"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"היסטוריה"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"היסטוריית שיחות"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"הכל"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"שיחה שלא נענתה"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"דואר קולי"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"האם לחסום את המספר <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"שיחות ממספר זה ייחסמו והודעות דואר קולי יימחקו באופן אוטומטי."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"שיחות ממספר זה ייחסמו, אבל המתקשר עדיין יוכל להשאיר לך הודעות דואר קולי."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"חסום"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"האם לבטל את חסימת המספר <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"מספר זה כבר לא יהיה חסום ויוכל להתקשר אליך."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ביטול חסימה"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"חיוג מהיר"</string>
- <string name="tab_recents" msgid="929949073851377206">"אחרונים"</string>
+ <string name="tab_history" msgid="2563144697322434940">"היסטוריית שיחות"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"אנשי קשר"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"דואר קולי"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"הוסר מהמועדפים"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"בטל"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"התקשר אל <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"צור איש קשר חדש"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"הוסף לאיש קשר קיים"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"הוסף לאיש קשר"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"‏שלח SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"בצע שיחת וידאו"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"הצג את היסטוריית השיחות המלאה"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"חסום מספר"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> שיחות חדשות שלא נענו"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"חיוג מהיר מאפשר לך להתקשר בנגיעה אחת אל מועדפים ומספרים שאליהם אתה מתקשר בתדירות גבוהה"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"אין אנשי קשר"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"עדיין לא הוגדר חיוג מהיר לאף איש קשר"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"הוסף פריט מועדף"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"עדיין אין לך אנשי קשר"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"הוסף איש קשר"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"גע בתמונה כדי לראות את כל המספרים או גע נגיעה ממושכת כדי לשנות את הסדר"</string>
<string name="remove_contact" msgid="1080555335283662961">"הסר"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"כל אנשי הקשר"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"שיחת וידאו"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"האזן"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"הצג פרטים"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"שלח הודעה"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"פרטי שיחה"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"התקשר אל <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"שיחה לא נענתה מ-<xliff:g id="NAMEORNUMBER">^1</xliff:g>‏, <xliff:g id="TYPEORLOCATION">^2</xliff:g>‏, <xliff:g id="TIMEOFCALL">^3</xliff:g>‏, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"נענתה שיחה מ-<xliff:g id="NAMEORNUMBER">^1</xliff:g>‏, <xliff:g id="TYPEORLOCATION">^2</xliff:g>‏, <xliff:g id="TIMEOFCALL">^3</xliff:g>‏, <xliff:g id="PHONEACCOUNT">^4</xliff:g>‏."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"דואר קולי שלא נקרא מ-<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"דואר קולי מ-<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"שיחה אל <xliff:g id="NAMEORNUMBER">^1</xliff:g>‏, <xliff:g id="TYPEORLOCATION">^2</xliff:g>‏, <xliff:g id="TIMEOFCALL">^3</xliff:g>‏, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"ב-<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"התקשר"</string>
<string name="description_call_action" msgid="4000549004089776147">"התקשר אל <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"שיחת וידאו אל <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"שיחת וידאו עם <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"האזן לדואר קולי מאת <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"השמע דואר קולי מאת <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"השהה דואר קולי מאת <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"מחק דואר קולי מאת <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="two"><xliff:g id="COUNT_1">%d</xliff:g> הודעות דואר קולי חדשות</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> הודעות דואר קולי חדשות</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> הודעות דואר קולי חדשות</item>
+ <item quantity="one">הודעת דואר קולי חדשה <xliff:g id="COUNT_0">%d</xliff:g></item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"צור איש קשר בשביל <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"הוסף את <xliff:g id="NAMEORNUMBER">^1</xliff:g> לאיש קשר קיים"</string>
<string name="description_details_action" msgid="2433827152749491785">"פרטי שיחה עבור <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"נמחקה מהיסטוריית השיחות"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"דווח"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"היום"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"אתמול"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"ישנות יותר"</string>
@@ -189,5 +222,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"תגובות מהירות"</string>
<string name="call_settings_label" msgid="313434211353070209">"שיחות"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"חסימת שיחות"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"חסימת השיחות מושבתת באופן זמני"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"חסימת השיחות הושבתה מפני שיצרת קשר מטלפון זה עם שירותי חירום במהלך 48 השעות האחרונות. הפונקציה תופעל מחדש באופן אוטומטי בתום 48 השעות."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"יבא מספרים"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"סימנת בעבר באמצעות יישומים אחרים כמה מתקשרים שיישלחו באופן אוטומטי לדואר קולי."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"הצג מספרים"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"יבא"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"הייבוא נכשל"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"בטל חסימת מספר"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"הוסף מספר"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"שיחות ממספרים אלה ייחסמו והודעות דואר קולי יימחקו באופן אוטומטי."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"שיחות ממספרים אלה ייחסמו, אבל המתקשרים עדיין יוכלו להשאיר לך הודעות דואר קולי."</string>
+ <string name="block_list" msgid="7760188925338078011">"מספרים חסומים"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> אינו חוקי."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> כבר חסום."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"חסימת השיחות הושבתה ל-48 שעות"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"מושבתת מפני שבוצעה שיחת חירום."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"חשבונות לביצוע שיחות"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"הפעל"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"הגדר הרשאות"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"כדי להפעיל חיוג מהיר, הפעל את ההרשאה \'אנשי קשר\'."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"כדי לראות את יומן השיחות, הפעל את ההרשאה \'טלפון\'."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"כדי להציג את אנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"כדי לגשת לדואר הקולי, הפעל את ההרשאה \'טלפון\'."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"כדי לחפש באנשי הקשר, הפעל את ההרשאה \'אנשי קשר\'."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"כדי להתקשר, הפעל את ההרשאה \'טלפון\'."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"לאפליקציית הטלפון אין הרשאה לכתוב בהגדרות המערכת."</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 834d6e980..a9b0f4850 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"電話"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"電話"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"電話"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"電話ダイヤルパッド"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"電話"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"通話履歴"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g>に発信"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"発信前に番号を編集"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"連絡先に追加"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"通話履歴から削除"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"通話履歴を消去"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ボイスメールを削除"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ボイスメールを共有"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"通話がありません"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"通話履歴"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"不正確な番号を報告"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"番号をコピー"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"音声文字変換をコピー"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"番号をブロック"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g>をブロックしました"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"番号のブロックを解除"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g>のブロックを解除しました"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"元に戻す"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"削除"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"発信前に番号を編集"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"通話履歴を消去"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ボイスメールを削除"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ボイスメールの削除"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"元に戻す"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"通話履歴を消去しますか?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"消去すると、すべての通話が履歴から削除されます"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"通話履歴の消去中…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>、<xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>から新着ボイスメール"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"ボイスメールを再生できませんでした"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"バッファリング中..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"ボイスメールを読み込んでいます…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"ボイスメールを読み込めませんでした"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"ボイスメールのある着信のみ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"着信のみ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"発信のみ"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"不在着信のみ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"ビジュアルボイスメール"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"電話を発信せずにボイスメールを確認して聞くことができます。データ通信料が発生する場合があります。"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"設定"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"新着ボイスメールは現在利用できません"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"新着ボイスメールがあります。現在は読み込めません。"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"ボイスメールを設定してください"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"音声を利用できません"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"セットアップ"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ボイスメール呼び出し"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"最も遅い"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"遅い"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"標準"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"速い"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"最も速い"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>)<xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"番号を選択"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"番号を選択"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"通話履歴"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"その他のオプション"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ダイヤルパッド"</string>
- <string name="menu_copy" msgid="6108677035381940698">"コピー"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"発信のみを表示"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"着信のみを表示"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"不在着信のみを表示"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"ビデオハングアウト発信"</string>
<string name="type_missed_video" msgid="954396897034220545">"ビデオハングアウト不在着信"</string>
<string name="type_voicemail" msgid="5153139450668549908">"ボイスメール"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"拒否された通話"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"ブロックされた通話"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"着信"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"ボイスメールを再生"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g>の連絡先を表示"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>に発信"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>の連絡先の詳細"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"新着のボイスメール。"</string>
<string name="description_num_calls" msgid="1601505153694540074">"通話回数は<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>回。"</string>
<string name="description_video_call" msgid="2933838090743214204">"ビデオハングアウト"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g>さんにSMSを送信"</string>
@@ -110,9 +114,13 @@
<string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g>に発信"</string>
<string name="unknown" msgid="740067747858270469">"通知不可能"</string>
<string name="voicemail" msgid="3851469869202611441">"ボイスメール"</string>
- <string name="private_num" msgid="6374339738119166953">"非通知"</string>
+ <string name="private_num" msgid="6374339738119166953">"非通知設定"</string>
<string name="payphone" msgid="7726415831153618726">"公衆電話"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g>秒"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g>分<xliff:g id="SECONDS">%s</xliff:g>秒"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>、<xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"この番号に電話できません"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ボイスメールをセットアップするには、MENUキー&gt;[設定]をタップします。"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"機内モードをOFFにしてからボイスメールを呼び出してください。"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"音声検索を利用できません"</string>
<string name="call_not_available" msgid="8941576511946492225">"電話アプリが無効になっているため発信できません。"</string>
<string name="activity_not_available" msgid="2287665636817987623">"この操作を行うアプリが端末上にありません"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"名前または電話番号を入力"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"通話がありません"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"最近のボイスメールはありません"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"連絡先を検索"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"番号を追加するか連絡先を検索"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"通話履歴はありません"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"発信"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"不在着信はありません。"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ボイスメール受信トレイは空です。"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"お気に入りのみを表示"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"履歴"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"通話履歴"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"すべて"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"不在着信"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"ボイスメール"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>をブロックしますか?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"この番号からの着信はブロックされ、ボイスメールは自動的に削除されます。"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"この番号からの着信はブロックされますが、発信者は今後もボイスメールを残すことができます。"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ブロック"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>のブロックを解除しますか?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"この番号からの着信はブロックされなくなります。"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ブロックを解除"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"クイックアクセス"</string>
- <string name="tab_recents" msgid="929949073851377206">"最近"</string>
+ <string name="tab_history" msgid="2563144697322434940">"通話履歴"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"連絡先"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"ボイスメール"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"お気に入りから削除されました"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"元に戻す"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g>に発信"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"新しい連絡先を作成"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"既存の連絡先に追加"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"連絡先に追加"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMSを送信"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ビデオハングアウト"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"通話履歴をすべて表示"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"番号をブロック"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g>件の不在着信"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"クイックアクセスは、よく通話するお気に入りや番号にワンタップでダイヤルする機能です"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"連絡先がありません"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"クイックアクセスに登録済みの連絡先はまだありません"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"お気に入りを追加"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"連絡先はまだありません"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"連絡先を追加"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"画像をタップするとすべての番号を表示でき、押し続けると並べ替えることができます"</string>
<string name="remove_contact" msgid="1080555335283662961">"削除"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"すべての連絡先"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"ビデオハングアウト"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"再生"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"詳細を表示"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"メッセージを送信"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"通話の詳細"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>に発信"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="TIMEOFCALL">^3</xliff:g>の<xliff:g id="TYPEORLOCATION">^2</xliff:g><xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="PHONEACCOUNT">^4</xliff:g>)からの不在着信。"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="TIMEOFCALL">^3</xliff:g>の<xliff:g id="TYPEORLOCATION">^2</xliff:g><xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="PHONEACCOUNT">^4</xliff:g>)からの着信。"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="TIMEOFCALL">^3</xliff:g>の<xliff:g id="TYPEORLOCATION">^2</xliff:g><xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="PHONEACCOUNT">^4</xliff:g>)からの未読のボイスメール。"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="TIMEOFCALL">^3</xliff:g>の<xliff:g id="TYPEORLOCATION">^2</xliff:g><xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="PHONEACCOUNT">^4</xliff:g>)からのボイスメール。"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="TIMEOFCALL">^3</xliff:g>の<xliff:g id="TYPEORLOCATION">^2</xliff:g><xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="PHONEACCOUNT">^4</xliff:g>)への発信。"</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"発信"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>に発信します"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>へのビデオハングアウト発信。"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>にビデオハングアウト発信します。"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>からのボイスメールを再生"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>からのボイスメールを再生"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>からのボイスメールを一時停止"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>からのボイスメールを削除"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>件の新着ボイスメール</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g>件の新着ボイスメール</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>の連絡先を作成します"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"既存の連絡先に<xliff:g id="NAMEORNUMBER">^1</xliff:g>を追加します"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>の通話の詳細"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"通話履歴から削除しました"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"報告"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"今日"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"昨日"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"以前の着信"</string>
@@ -178,7 +209,7 @@
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"音とバイブレーション"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"ユーザー補助機能"</string>
<string name="ringtone_title" msgid="760362035635084653">"着信音"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"着信時もバイブレーションON"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"着信時にバイブレーションもON"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"ダイヤルパッドの音"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"ダイヤルパッドの音の長さ"</string>
<string-array name="dtmf_tone_length_entries">
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"クイック返信"</string>
<string name="call_settings_label" msgid="313434211353070209">"通話"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"通話をブロックしています"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"通話のブロックは一時的にOFFです"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"このスマートフォンから緊急通報番号への発信が過去48時間以内に行われているため、通話のブロックは無効になっています。48時間経過すると、通話のブロックは自動的に有効になります。"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"番号をインポート"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"以前に一部の発信者について、他のアプリを通じて自動的にボイスメールに転送するようマークを付けています。"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"番号を表示"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"インポート"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"インポートに失敗しました"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"番号のブロックを解除"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"電話番号を追加"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"この番号からの着信はブロックされ、ボイスメールは自動的に削除されます。"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"この番号からの着信はブロックされますが、発信者は今後もボイスメールを残すことができます。"</string>
+ <string name="block_list" msgid="7760188925338078011">"ブロックした番号"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g>は無効な番号です。"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g>は既にブロックしています。"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"通話のブロックは48時間経過するまで無効になりました"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"緊急通報を行ったため無効になりました。"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"通話アカウント"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ONにする"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"権限を設定"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"クイックアクセスを有効にするには、連絡先権限をONにしてください。"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"通話履歴を表示するには、電話権限をONにしてください。"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"連絡先を表示するには、連絡先権限をONにしてください。"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"ボイスメールにアクセスするには、電話権限をONにしてください。"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"連絡先を検索するには、連絡先権限をONにしてください。"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"電話をかけるには、電話権限をONにしてください。"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"電話アプリにはシステム設定への書き込み権限がありません。"</string>
</resources>
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index f0a1686ec..573314760 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"დარეკვა"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ტელეფონი"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ტელეფონი"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ტელეფონის ციფერბლატი"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ტელეფონი"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"საუბრის ისტორია"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g>-თან დარეკვა"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ნომრის რედაქტირება დარეკვამდე"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"კონტაქტებში დამატება"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"ზარის ისტორიიდან წაშლა"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"ზარის ისტორიის გასუფთავება"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ხმოვანი ფოსტის წაშლა"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ხმოვანი ფოსტის გაზიარება"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"ზარები არ არის"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"საუბრის ისტორია"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"არაზუსტი ნომრის შეტყობინება"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"ნომრის კოპირება"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ტრანსკრიპტის კოპირება"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"ნომრის დაბლოკვა"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> დაბლოკილია"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"ნომრის განბლოკვა"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> განბლოკილია"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"დაბრუნება"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"წაშლა"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"ნომრის რედაქტირება დარეკვამდე"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"საუბრის ისტორიის გასუფთავება"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ხმოვანი ფოსტის წაშლა"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ხმოვანი ფოსტა წაიშალა"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"დაბრუნება"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"გასუფთავდეს ზარის ისტორია?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"ეს წაშლის ყველა ზარს თქვენი ისტორიიდან"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"მიმდ. ზარ. ისტ. გასუფთავება…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ახალი ხმოვანი ფოსტა <xliff:g id="CALLER">%1$s</xliff:g>-ისგან"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"ვერ ხორციელდება ხმოვანი ფოსტა ჩართვა"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"ბუფერიზაცია…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"ხმოვანი ფოსტა იტვირთება…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"ვერ ხორციელდება ხმოვანი ფოსტის ჩატვირთვა"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"მხოლოდ ზარები ხმოვანი ფოსტით"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"მხოლოდ შემომავალი ზარები"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"მხოლოდ გამავალი ზარები"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"მხოლოდ გამოტოვებული ზარები"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"ვიზუალური ხმოვანი ფოსტა"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"ნახეთ და მოუსმინეთ თქვენს ხმოვან ფოსტას ნომერზე დარეკვის გარეშე. შესაძლოა, გამოიწვიოს დამატებითი ხარჯები."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"პარამეტრები"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"არ არის შესაძლებელი ხმოვანი ფოსტის განახლებები"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"გელოდებათ ახალი ხმოვანი ფოსტა. ახლავე ჩატვირთვა ვერ ხორციელდება."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"დააყენეთ თქვენი ხმოვანი ფოსტა"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"აუდიო არ არის ხელმისაწვდომი"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"კონფიგურაცია"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ხმოვან ფოსტასთან დაკავშირება"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ყველაზე დაბალი სიჩქარე"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"დაბალი სიჩქარე"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"საშუალო სიჩქარე"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"დიდი სიჩქარე"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"უდიდესი სიჩქარე"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>-ში"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"ნომრის შერჩევა"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"ნომრის შერჩევა"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"საუბრის ისტორია"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"სხვა პარამეტრები"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ციფერბლატი"</string>
- <string name="menu_copy" msgid="6108677035381940698">"კოპირება"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"მხოლოდ გამავალის ჩვენება"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"მხოლოდ შემომავალის ჩვენება"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"მხოლოდ გამოტოვებულის ჩვენება"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"გამავალი ვიდეოზარი"</string>
<string name="type_missed_video" msgid="954396897034220545">"გამოტოვებული ვიდეოზარი"</string>
<string name="type_voicemail" msgid="5153139450668549908">"ხმოვანი ფოსტა"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"უარყოფილი ზარი"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"დაბლოკილი ზარი"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"შემომავალი ზარები"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"ხმოვანი ფოსტის ჩართვა"</string>
<string name="description_view_contact" msgid="5205669345700598415">"კონტაქტის <xliff:g id="NAME">%1$s</xliff:g> ნახვა"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>-თან დარეკვა"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-ის კონტაქტის დეტალები"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"ახალი ხმოვანი ფოსტა."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ზარი."</string>
<string name="description_video_call" msgid="2933838090743214204">"ვიდეოზარი."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"გააგზავნეთ SMS <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"ხმოვანი ფოსტა"</string>
<string name="private_num" msgid="6374339738119166953">"დაფარული ნომერი"</string>
<string name="payphone" msgid="7726415831153618726">"გადახდის ტელეფონი"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> წმ"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> მინ <xliff:g id="SECONDS">%s</xliff:g> წამ"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ვერ ხორციელდება ამ ნომერზე დარეკვა"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ხმოვანი ფოსტის დასაყენებლად გადადით მენიუს &gt; პარამეტრებზე."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ხმოვან ფოსტასთან დასაკავშირებლად პირველ რიგში გამორთეთ თვითმფრინავის რეჟიმი."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"ხმოვანი ძიება არ არის ხელმისაწვდომი"</string>
<string name="call_not_available" msgid="8941576511946492225">"სატელეფონო ზარის განხორციელება ვერ ხერხდება, ვინაიდან ტელეფონის აპლიკაცია გაუქმებულია."</string>
<string name="activity_not_available" msgid="2287665636817987623">"ამ მოწყობილობაზე არ არის შესაბამისი აპლიკაცია"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"შეიყვანეთ სახელი ან ტელ. ნომერი"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"ზარები არ არის"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"არ არის ბოლოდროინდელი ხმოვანი შეტყობინებები"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"კონტაქტების ძიება"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"დაამატეთ ნომერი ან მოიძიეთ კონტაქტებიდან"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"თქვენი საუბრის ისტორია ცარიელია"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"დარეკვა"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"გამოტოვებული ზარები არ გაქვთ."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"თქვენი ხმოვანი ელფოსტის შემოსულები ცარიელია."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"მხოლოდ რჩეულების ჩვენება"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ისტორია"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"საუბრის ისტორია"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"ყველა"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"გამოტოვებული"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"ხმოვანი ფოსტა"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"გსურთ, დაბლოკოთ <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ამ ნომრიდან შემოსული ზარები დაიბლოკება, ხოლო ხმოვანი ფოსტა ავტომატურად წაიშლება."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ამ ნომრიდან შემოსული ზარები დაიბლოკება, თუმცა აბონენტს მაინც შეეძლება თქვენთვის ხმოვანი ფოსტის დატოვება."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"დაბლოკვა"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"გსურთ, განბლოკოთ <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"ამ ნომრიდან შემომავალი ზარები აღარ დაიბლოკება."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"განბლოკვა"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"სწრაფი დარეკვა"</string>
- <string name="tab_recents" msgid="929949073851377206">"ბოლო"</string>
+ <string name="tab_history" msgid="2563144697322434940">"საუბრის ისტორია"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"კონტაქტები"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"ხმოვანი ფოსტა"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"წაიშალა რჩეულებიდან"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"დაბრუნება"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"დარეკვა <xliff:g id="NUMBER">%s</xliff:g>-ზე"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"ახალი კონტაქტის შექმნა"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"არსებულ კონტაქტში დამატება"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"კონტაქტისადმი დამატება"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS-ის გაგზავნა"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ვიდეოზარის განხორციელება"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"ზარების სრული ისტორიის ნახვა"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"ნომრის დაბლოკვა"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ახალი გაცდენილი ზარი"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"სწრაფი დარეკვა არის ერთი შეხებით აკრეფა, რჩეული და ხშირად დარეკილი ნომრებისათვის"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"კონტაქტები არ არის"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"სწრაფი აკრეფისთვის რჩეულები ჯერ არ გყავთ"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"რჩეული კონტაქტის დამატება"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"კონტაქტები ჯერ არ გაქვთ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"კონტაქტის დამატება"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"ყველა ნომრის სანახავად შეეხეთ სურათს ან და გეჭიროთ მასზე ხელახალი შეკვეთისათვის"</string>
<string name="remove_contact" msgid="1080555335283662961">"ამოშლა"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ყველა კონტაქტი"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"ვიდეო ზარი"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"მოსმენა"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"დეტალების ნახვა"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"შეტყობინების გაგზავნა"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"ზარის მონაცემები"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-თან დარეკვა"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"გამოტოვებული ზარი აბონენტისგან: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"უპასუხო ზარი აბონენტისგან <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"წაუკითხავი ხმოვანი ფოსტა აბონენტისგან: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"ხმოვანი ფოსტა აბონენტისგან: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"ზარი აბონენტთან <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>-ზე"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"დარეკვა"</string>
<string name="description_call_action" msgid="4000549004089776147">"დარეკვა <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"ვიდეოზარი <xliff:g id="NAMEORNUMBER">^1</xliff:g>-თან."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"ვიდეო ზარი <xliff:g id="NAMEORNUMBER">^1</xliff:g>-თან."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-ის ხმოვანი ფოსტის მოსმენა"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-გან ხმოვანი ფოსტის მოსმენა"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-გან ხმოვანი ფოსტის დაპაუზება"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-გან ხმოვანი ფოსტის წაშლა"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ახალი ხმოვანი ფოსტა</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ახალი ხმოვანი ფოსტა</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-ისთვის კონტაქტის შექმნა"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-ის დამატება არსებულ კონტაქტზე"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ზარის დეტალები"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"ზარის ისტორიიდან წაშლილი"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"შეტყობინება"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"დღეს"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"გუშინ"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"უფრო ძველი"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"სწრაფი პასუხი"</string>
<string name="call_settings_label" msgid="313434211353070209">"ზარები"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"ზარების დაბლოკვა"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ზარების დაბლოკვა დროებით გამოირთო"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ზარების დაბლოკვა გაითიშა, რადგან ბოლო 48 საათში ამ ტელეფონიდან საგანგებო სამსახურებს დაუკავშირდით. 48 საათის გასვლის შემდეგ ის ავტომატურად ჩაირთვება."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ნომრების იმპორტი"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"სხვა აპების მეშვეობით თქვენ მიერ ადრე ზოგიერთი აბონენტის ხმოვან ფოსტაზე ავტომატური გადამისამართება მოინიშნა."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ნომრების ნახვა"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"იმპორტი"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"იმპორტი ვერ მოხერხდა"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ნომრის განბლოკვა"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"ნომრის დამატება"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ამ ნომრებიდან შემოსული ზარები დაიბლოკება, ხოლო ხმოვანი ფოსტა ავტომატურად წაიშლება."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ამ ნომრებიდან შემოსული ზარები დაიბლოკება, თუმცა აბონენტებს მაინც შეეძლებათ თქვენთვის ხმოვანი ფოსტის დატოვება."</string>
+ <string name="block_list" msgid="7760188925338078011">"დაბლოკილი ნომრები"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> არასწორია."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> უკვე დაბლოკილია."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ზარების დაბლოკვა გაითიშა 48 საათით"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"გათიშულია, რადგან განხორციელდა საგანგებო ზარი."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"ანგარიშების გამოძახება"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ჩართვა"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"ნებართვების დაყენება"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"სწრაფი აკრეფის გასააქტიურებლად, ჩართეთ კონტაქტების ნებართვა."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"ზარების ჟურნალის სანახავად, ჩართეთ ტელეფონის ნებართვა."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"კონტაქტების სანახავად, ჩართეთ კონტაქტების ნებართვა."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"ხმოვან ფოსტაზე წვდომისთვის, ჩართეთ ტელეფონის ნებართვა."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"თქვენი კონტაქტების მოსაძებნად ჩართეთ კონტაქტების ნებართვები."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"ზარის განსახორციელებლად, ჩართეთ ტელეფონის ნებართვა."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ტელეფონის აპს სისტემის პარამეტრებში ჩაწერის ნებართვა არ აქვს."</string>
</resources>
diff --git a/res/values-kk-rKZ/strings.xml b/res/values-kk-rKZ/strings.xml
index 470184555..16b1cc32c 100644
--- a/res/values-kk-rKZ/strings.xml
+++ b/res/values-kk-rKZ/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Тергіш"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Телефон"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Телефон"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Телефон теру тақтасы"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Телефон"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Қоңыраулар тарихы"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> нөміріне қоңырау шалу"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Қоңырау алдында нөмірді жөндеңіз"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Контактілерге қосу"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Қоңыраулар тарихынан жою"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Қоңыраулар тарихын тазалау"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Дауыс-хабарды жою"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Дауыс-хабармен бөлісу"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Қоңыраулар жоқ"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Қоңыраулар тарихы"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Қате нөмір туралы есеп беру"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Нөмірді көшіру"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Транскрипцияны көшіру"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Нөмірді бөгеу"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгелген"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Нөмірге рұқсат беру"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеуден шығарылған"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"КЕРІ ОРЫНДАУ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Жою"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Қоңырау алдында нөмірді өзгерту"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Қоңыраулар тарихын тазалау"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Дауыстық хабарды жою"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Дауыстық хабар жойылды"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"КЕРІ ҚАЙТАРУ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Қоңыраулар тарихын тазалау керек пе?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Бұл тарихтан барлық қоңырауларды жояды"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Қоңыраулар тарихы тазалануда…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> жіберген жаңа дауыс-хабар"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Дауыстық хабарды ойнату мүмкін болмады"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Буферлеуде..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Дауыстық хабар жүктелуде…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Дауыстық хабарды жүктеу мүмкін болмады"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Дауыс хабары бар қоңыраулар ғана"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Келген қоңыраулар ғана"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Шығыс қоңыраулары ғана"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Қабылданбаған қоңыраулар ғана"</string>
- <string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Дауыс-хабар жаңартулары қол жетімді емес"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Визуалды дауыстық хабар"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Нөмірге қоңырау шалмастан, дауыстық поштаңызды қараңыз және тыңдаңыз. Деректер ақысы алынуы мүмкін."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Параметрлер"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Дауыстық пошта жаңартулары қол жетімді емес"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Жаңа дауыстық хабар күтуде. Дәл қазір жүктеу мүмкін емес."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Дауыс-хабарды реттеу"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Аудио қол жетімді емес"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Орнату"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Дауыс-хабарға қоңырау шалу"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Ең төмен жылдамдық"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Төмен жылдамдық"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Қалыпты жылдамдық"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Үлкен жылдамдық"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Ең үлкен жылдамдық"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Нөмірді таңдау"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Нөмірді таңдау"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Қоңырау тарихы"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Басқа опциялар"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"теру тақтасы"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Көшіру"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Шығыс қоңырауларды ғана көрсету"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Келгендерді ғана көрсету"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Қабылданбағандарды ғана көрсету"</string>
@@ -95,13 +98,14 @@
<string name="type_incoming_video" msgid="82323391702796181">"Кіріс бейне қоңырау"</string>
<string name="type_outgoing_video" msgid="2858140021680755266">"Шығыс бейне қоңырау"</string>
<string name="type_missed_video" msgid="954396897034220545">"Өткізіп алынған бейне қоңырау"</string>
- <string name="type_voicemail" msgid="5153139450668549908">"Дауыс-хабар"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Дауыстық пошта"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Қабылданбаған қоңырау"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Тыйым салынған қоңырау"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Келген қоңыраулар"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Дауыс-хабарды ойнату"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> контактісін көру"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> нөміріне қоңырау шалу"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> контакт деректері"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Жаңа дауыс-хабары."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> қоңыраулар."</string>
<string name="description_video_call" msgid="2933838090743214204">"Бейне қоңырау."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Мынаған SMS жіберу: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -109,10 +113,14 @@
<string name="description_start_voice_search" msgid="520539488194946012">"Дауыс іздеуді бастау"</string>
<string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> нөміріне қоңырау шалу"</string>
<string name="unknown" msgid="740067747858270469">"Белгісіз"</string>
- <string name="voicemail" msgid="3851469869202611441">"Дауыс-хабар"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Дауыстық пошта"</string>
<string name="private_num" msgid="6374339738119166953">"Жеке нөмір"</string>
<string name="payphone" msgid="7726415831153618726">"Автомат-телефон"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Бұл нөмірге қоңырау шалу мүмкін емес"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Дауыс-хабарын жасақтау үшін Mәзір &gt; Параметрлер тармақтарына кіріңіз."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Дауыс-хабарына қоңырау шалу үшін ұшақ режимін өшіру қажет."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Дауыс арқылы іздеу қол жетімді емес"</string>
<string name="call_not_available" msgid="8941576511946492225">"Телефон қоңырауын шалу мүмкін емес, өйткені «Телефон» қолданбасы өшірілген."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Бұл үшін осы құрылғыда қолданба жоқ"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Атты немесе телефон нөм. енг."</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Қоңыраулар жоқ"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Жақындағы дауыстық хабарлар жоқ"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Контактілерді іздеу"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Нөмірді енгізіңіз немесе контактілерден іздеп табыңыз"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Қоңыраулар тарихы бос"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Қоңырау шалу"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Қабылданбаған қоңырауларды жоқ."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Дауыстық поштаның \"Кіріс\" қалтасы бос."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Сүйіктілерді ғана көрсету"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Тарих"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Қоңыраулар тарихы"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Барлық"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Қабылданбаған"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Дауыстық хабар"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеу керек пе?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Осы нөмірден болашақ қоңыраулар бөгеледі және дауыстық хабарлар автоматты түрде жойылады."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Осы нөмірден қоңыраулар бөгеледі, бірақ қоңырау шалушы әлі де сізге дауыстық хабарлар қалдыра алуы мүмкін."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"БӨГЕУ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеуден шығару керек пе?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Бұл нөмірдің сізге қоңырау соғуы енді бөгелмейді."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"БӨГЕУДЕН ШЫҒАРУ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Жылдам теру"</string>
- <string name="tab_recents" msgid="929949073851377206">"Жақындағылар"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Қоңыраулар тарихы"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Контактілер"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Дауыстық хабар"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Сүйіктілерден алынған"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Кері орындау"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> нөміріне қоңырау шалу"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Жаңа контакт жасау"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Бар контактіге қосу"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Контактіге қосу"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS жіберу"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Бейне қоңырау шалу"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Толық қоңыраулар тарихын көру"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Нөмірді бөгеу"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> жаңа қабылданбаған қоңыраулар"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Жылдам теру – таңдаулыларды және жиі қоңырау шалатын нөмірлерді бір түртумен теру"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Ешқандай контактілер жоқ"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Жылдам теруде әлі ешкім жоқ"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Таңдаулыны қосу"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Әлі ешқандай контактілер жоқ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Контакт қосу"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Барлық нөмірлерді көру үшін түртіңіз немесе ретін өзгерту үшін түртіп, ұстап тұрыңыз"</string>
<string name="remove_contact" msgid="1080555335283662961">"Алып тастау"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"БАРЛЫҚ КОНТАКТІЛЕР"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Бейне қоңырау"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ТЫҢДАУ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Мәліметтерді көру"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Хабар жіберу"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Қоңырау мәліметтері"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> нөміріне қоңырау шалу"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> қоңырауы өткізіп алынды, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> қоңырауына жауап берілді, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Оқылмаған дауыстық хабар: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Дауыстық хабар: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> нөміріне қоңырау шалу, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> ішінде"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Қоңырау шалу"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> нөміріне қоңырау шалу"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Келесіге бейне қоңырау: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> бейне қоңырау шалу."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> дауыстық хабарын тыңдау"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> дауыстық хабары ойнатылады"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> дауыстық хабары кідіртіледі"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> жіберген дауыстық хабар жойылады"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> жаңа дауыс поштасы</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> жаңа дауыс поштасы</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> үшін контакт жасау"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> бар контактіге қосу"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> үшін қоңырау мәліметтері"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Қоңыраулар тарихынан жойылды"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Есеп"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Бүгін"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Кеше"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Ескілеу"</string>
@@ -174,7 +205,7 @@
<string name="voicemail_play_slower" msgid="4544796503902818832">"Баяуырақ ойнату."</string>
<string name="voicemail_play_start_pause" msgid="3687447935787768983">"Ойнатуды бастау немесе кідірту."</string>
<string name="list_delimeter" msgid="4571593167738725100">", "</string>
- <string name="display_options_title" msgid="7812852361055667468">"Дисплей опциялары"</string>
+ <string name="display_options_title" msgid="7812852361055667468">"Көрсету опциялары"</string>
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Дыбыстар мен діріл"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Арнайы мүмкіндіктер"</string>
<string name="ringtone_title" msgid="760362035635084653">"Телефон қоңырау әуені"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Жылдам жауаптар"</string>
<string name="call_settings_label" msgid="313434211353070209">"Қоңыраулар"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Қоңырауларға тыйым салу"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Қоңырауларға тыйым салу уақытша өшірулі"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Қоңырауларға тыйым салу өшірілді, өйткені сіз соңғы 48 сағат ішінде осы телефоннан төтенше қызметтерге хабарластыңыз. Ол 48 сағаттық кезең өткеннен кейін автоматты түрде қайта қосылады."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Нөмірлерді импорттау"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Сіз бұрын кейбір қоңырау шалушыларды басқа қолданбалар арқылы дауыс поштасына автоматты түрде жіберу үшін белгілеген."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Нөмірлерді көру"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импорттау"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импорттау сәтсіз аяқталды"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Нөмірді бөгеуден шығару"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Нөмір қосу"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Осы нөмірлерден қоңыраулар бөгеледі және дауыстық хабарлар автоматты түрде жойылады."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Осы нөмірлерден қоңыраулар бөгеледі, бірақ олар әлі де сізге дауыстық хабарлар қалдыра алуы мүмкін."</string>
+ <string name="block_list" msgid="7760188925338078011">"Бөгелген нөмірлер"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> жарамсыз."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгеліп қойылған."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Қоңырауларға тыйым салу 48 сағат бойы өшірілген"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Өшірілген, өйткені төтенше қоңырау соғылған."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Есептік жазбаларға қоңыр. шалу"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Қосу"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Рұқсаттар орнату"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Жылдам теруді қосу үшін \"Контактілер\" рұқсатын қосыңыз."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Қоңыраулар журналы көру үшін \"Телефон\" рұқсатын қосыңыз."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Контактілерді көру үшін \"Контактілер\" рұқсатын қосыңыз."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Дауыс поштасына қатынасу үшін \"Телефон\" рұқсатын қосыңыз."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Контактілерді іздеу үшін \"Контактілер\" рұқсаттарын қосыңыз."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Қоңырауды шалу үшін \"Телефон\" рұқсатын қосыңыз."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Телефон қолданбасында жүйелік параметрлерге жазуға рұқсат жоқ."</string>
</resources>
diff --git a/res/values-km-rKH/strings.xml b/res/values-km-rKH/strings.xml
index be5e25352..5402962a8 100644
--- a/res/values-km-rKH/strings.xml
+++ b/res/values-km-rKH/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"អ្នក​ហៅ"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ទូរស័ព្ទ"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ទូរសព្ទ"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"បន្ទះលេខទូរស័ព្ទ"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ទូរស័ព្ទ"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"ប្រវត្តិ​ហៅ"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"ហៅ <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"កែ​លេខ​មុន​ពេល​ហៅ"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"បន្ថែម​ទៅ​ទំនាក់ទំនង"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"លុបចេញពីប្រវត្តិហៅ"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"ជម្រះប្រវត្តិហៅ"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"លុប​សារ​ជា​សំឡេង"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ចែករំលែក​សារ​ជា​សំឡេង"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"មិនមានការហៅទេ"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"ប្រវត្តិ​ហៅ"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"រាយការណ៍ពីលេខដែលមិនត្រឹមត្រូវ"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"ថតចម្លងលេខទូរស័ព្ទ"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ថតចម្លងសំណៅពីសារសម្លេង"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"រារាំងលេខ"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"បានរារាំង <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"ឈប់រារាំងលេខ"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"បានឈប់រារាំង <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"មិនធ្វើវិញ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"លុប"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"កែ​លេខ​មុន​ពេល​ហៅ"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"ជម្រះប្រវត្តិហៅ"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"លុប​សារ​ជា​សំឡេង"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"បានលុបសារសម្លេង"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"​មិន​ធ្វើវិញ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ជម្រះប្រវត្តិហៅ?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"វានឹងលុបការហៅទាំងអស់ចេញពីប្រវត្តិរបស់អ្នក"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"កំពុងជម្រះប្រវត្តិហៅ…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"សារ​ជា​សំឡេង​ថ្មី​ពី <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"មិនអាចចាក់សារជាសម្លេងបានទេ"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"កំពុង​គណនា..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"កំពុងផ្ទុកសារជាសម្លេង…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"មិនអាចផ្ទុកសារជាសម្លេងបានទេ"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"តែ​ការ​ហៅ​ជា​សារ​សំឡេង"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"តែ​ការ​ហៅ​ចូល"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"តែ​ការ​ហៅ​ចេញ​ប៉ុណ្ណោះ"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"តែ​លេខ​ខកខាន​ទទួល"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"សារជាសំឡេងអាចមើលឃើញ"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"មើល និងស្តាប់សារជាសំឡេងរបស់អ្នក ដោយមិនចាំបាច់ហៅទៅលេខណាមួយឡើយ។ អាចគិតប្រាក់លើការប្រើប្រាស់ទិន្នន័យ។"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"ការកំណត់"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"មិនមានការអាប់ដេតសារជាសម្លេងទេ"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"សារជាសម្លេងថ្មីកំពុងរង់ចាំ។ មិនអាចផ្ទុកឥឡូវនេះបានទេ។"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"ដំឡើងសារជាសម្លេងរបស់អ្នក"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"មិនមានសម្លេងទេ"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"រៀបចំ"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ហៅ​ជា​សារ​សំឡេង"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ល្បឿន​យឺត​បំផុត"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ល្បឿន​យឺត"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"ល្បឿន​ធម្មតា"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"ល្បឿន​លឿន"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ល្បឿន​លឿន​បំផុត"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"ជ្រើស​លេខ"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"ជ្រើស​លេខ"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"ប្រវត្តិ​ហៅ"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ជម្រើស​បន្ថែម"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"បន្ទះ​លេខ"</string>
- <string name="menu_copy" msgid="6108677035381940698">"ចម្លង"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"បង្ហាញ​តែ​ការ​ហៅ​ចេញ"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"បង្ហាញ​តែ​ការ​ហៅ​ចូល"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"បង្ហាញ​តែ​ការ​ខកខាន​ទទួល"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"ការ​ហៅ​ជា​វីដេអូ​ចេញ"</string>
<string name="type_missed_video" msgid="954396897034220545">"ខកខាន​ទទួល​ការ​ហៅ​ជា​វីដេអូ"</string>
<string name="type_voicemail" msgid="5153139450668549908">"សារ​ជា​សំឡេង"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"ការហៅដែលបានបដិសេធ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"ការហៅដែលបានរារាំង"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ការ​ហៅ​ចូល"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"ចាក់​សារ​ជា​សំឡេង"</string>
<string name="description_view_contact" msgid="5205669345700598415">"មើល​ទំ​នាក់ទំនង <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"ហៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"ព័ត៌មាន​លម្អិត​ទំនាក់ទំនង​សម្រាប់ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"សារ​ជា​សំឡេង​ថ្មី។"</string>
<string name="description_num_calls" msgid="1601505153694540074">"ការ​ហៅ <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ។"</string>
<string name="description_video_call" msgid="2933838090743214204">"ការ​ហៅ​ជា​វីដេអូ​។"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"ផ្ញើសារ SMS ទៅ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"សារ​ជា​សំឡេង"</string>
<string name="private_num" msgid="6374339738119166953">"លេខ​ឯកជន"</string>
<string name="payphone" msgid="7726415831153618726">"ទូរស័ព្ទសាធារណៈ"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> នាទី <xliff:g id="SECONDS">%s</xliff:g> វិនាទី"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> នៅម៉ោង <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"មិនអាចហៅលេខនេះបានទេ"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ដើម្បី​កំណត់​សារ​ជា​សំឡេង ចូល​ម៉ឺនុយ &gt; ការ​កំណត់។"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ដើម្បី​ហៅ​សារ​ជា​សំឡេង ដំបូង​ត្រូវ​បិទ​របៀប​ពេល​ជិះ​យន្តហោះ។"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"ការស្វែងរកជាសម្លេងមិនមានទេ"</string>
<string name="call_not_available" msgid="8941576511946492225">"មិន​អាច​ហៅ​បាន​ទេ​ ព្រោះ​កម្មវិធី​ទូរស័ព្ទ​ត្រូវ​បាន​បិទ។"</string>
<string name="activity_not_available" msgid="2287665636817987623">"មិនមានកម្មវិធីសម្រាប់សកម្មភាពនេះនៅលើឧបករណ៍នេះទេ"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"បញ្ចូលឈ្មោះ ឬលេខទូរស័ព្ទ"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"មិនមានការហៅទេ"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"មិនមានសារជាសម្លេងកន្លងទៅថ្មីៗទេ"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"ស្វែងរកទំនាក់ទំនង"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"បន្ថែមលេខទូរស័ព្ទ ឬស្វែងរកទំនាក់ទំនង"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"ប្រវត្តិហៅរបស់អ្នកទទេ"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"ហៅទូរស័ព្ទ"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"អ្នកមិនមានការខកខានទទួលទូរស័ព្ទទេ។"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ប្រអប់ទទួលសារជាសំឡេងរបស់អ្នកទទេ។"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"បង្ហាញ​តែ​​និយម​ប្រើ​ប៉ុណ្ណោះ"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ប្រវត្តិ"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"ប្រវត្តិហៅ"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"ទាំង​អស់"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"ខកខាន​ទទួល"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"សារ​ជា​សំឡេង"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"រារាំង <xliff:g id="NUMBER">%1$s</xliff:g> ឬ?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ការហៅចេញពីលេខនេះនឹងត្រូវបានរារាំង ហើយសារជាសំឡេងនឹងត្រូវបានលុបដោយស្វ័យប្រវត្តិ។"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ការហៅចេញពីលេខនេះនឹងត្រូវបានរារាំង ប៉ុន្តែអ្នកហៅនៅតែអាចទុកសារជាសំឡេងឲ្យអ្នកបាន។"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"រារាំង"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"ឈប់រារាំង <xliff:g id="NUMBER">%1$s</xliff:g> ឬ?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"លេខនេះនឹងមិនត្រូវបានរារាំងពីការហៅមកអ្នកទៀតទេ"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ឈប់រារាំង"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"ហៅទូរស័ព្ទល្បឿនលឿន"</string>
- <string name="tab_recents" msgid="929949073851377206">"ថ្មីៗ"</string>
+ <string name="tab_history" msgid="2563144697322434940">"ប្រវត្តិហៅ"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"ទំនាក់ទំនង"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"សារជាសំឡេង"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"បាន​លុប​ចេញពី​ទំនាក់ទំនង​ដែល​និយម​ប្រើ"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"មិនធ្វើវិញ"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"ហៅ <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"បង្កើតទំនាក់ទំនងថ្មី"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"បន្ថែមទៅទំនាក់ទំនងដែលមានស្រាប់"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"បន្ថែមទៅទំនាក់ទំនង"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"ផ្ញើសារ SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ការ​ហៅ​ជា​វីដេអូ"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"មើលប្រវត្តិហៅពេញលេញ"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"រារាំងលេខ"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"ខកខាន​ទទួល​ថ្មី <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"ការហៅទូរស័ព្ទល្បឿនលឿនគឺជាការហៅទូរស័ព្ទដោយគ្រាន់តែចុចមួយពឹក សម្រាប់ទំនាក់ទំនងដែលអ្នកចូលចិត្ត និងលេខដែលអ្នកហៅទៅជាប្រចាំ។"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"មិន​មាន​ទំនាក់ទំនង។"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"គ្មាននរណាម្នាក់នៅក្នុងការហៅរហ័សរបស់អ្នកនៅឡើយទេ"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"បន្ថែមសំណព្វ"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"អ្នកមិនទាន់មានទំនាក់ទំនងនៅឡើយទេ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"បន្ថែមទំនាក់ទំនង"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"ប៉ះរូបភាពដើម្បីមើលលេខទាំងអស់ ឬប៉ះ &amp; សង្កត់ឲ្យជាប់ដើម្បីតម្រៀបឡើងវិញ"</string>
<string name="remove_contact" msgid="1080555335283662961">"លុបចេញ"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ទំនាក់ទំនង​ទាំងអស់"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"ហៅជាវីដេអូ"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ស្ដាប់"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"មើលព័ត៌មានលម្អិត"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"ផ្ញើសារ"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"ព័ត៌មានលម្អិតនៃការហៅ"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"ហៅ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"ខកខានទទួលកាហៅពី <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>។"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"បានឆ្លើយតបការហៅពី <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>។"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"សារជាសំឡេងដែលមិនទាន់អានពី <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"សារជាសំឡេងពី <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"ហៅទៅ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>។"</string>
<string name="description_phone_account" msgid="1767072759541443861">"នៅ <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"ហៅ"</string>
<string name="description_call_action" msgid="4000549004089776147">"ហៅ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"ការ​ហៅ​ជា​វីដេអូ​ទៅ <xliff:g id="NAMEORNUMBER">^1</xliff:g> ។"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"ហៅទៅ <xliff:g id="NAMEORNUMBER">^1</xliff:g> ជាវីដេអូ។"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"ស្ដាប់​សារ​ជា​សំឡេង​ពី <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"ចាក់ការហៅជាសំឡេងពី <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"ផ្អាកសារជាសំឡេងពី <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"លុបសារជាសំឡេងពី <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other">សារជាសំឡេងថ្មី <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="one">សារជាសំឡេងថ្មី <xliff:g id="COUNT_0">%d</xliff:g></item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"បង្កើតទំនាក់ទំនងសម្រាប់ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"បន្ថែម <xliff:g id="NAMEORNUMBER">^1</xliff:g> ទៅទំនាក់ទំនងដែលមានស្រាប់"</string>
<string name="description_details_action" msgid="2433827152749491785">"ព័ត៌មាន​លម្អិត​ហៅ​សម្រាប់ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"បានលុបចេញពីប្រវត្តិហៅ"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"រាយការណ៍"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ថ្ងៃនេះ"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"ម្សិលមិញ"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"ចាស់ៗ"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"ឆ្លើយតប​រហ័ស"</string>
<string name="call_settings_label" msgid="313434211353070209">"ការហៅ"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"ការរារាំងការហៅ"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ការរារាំងការហៅត្រូវបានបិទជាបណ្តោះអាសន្ន"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ការរារាំងការហៅត្រូវបានបិទដំណើរការ ដោយសារតែអ្នកបានទាក់ទងទៅសេវាអាសន្នចេញពីទូរស័ព្ទនេះក្នុងចន្លោះពេល 48 ម៉ោងកន្លងមកនេះ។ វានឹងបើកដំណើរការឡើងវិញ បន្ទាប់ពីរយៈពេល 48 ម៉ោងផុតកំណត់។"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"នាំចូលលេខ"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"កាលពីមុនអ្នកបានដាក់សម្គាល់ឲ្យបញ្ជូនអ្នកហៅមួយចំនួនដោយស្វ័យប្រវត្តិទៅកាន់សារជាសំឡេងតាមរយៈកម្មវិធីផ្សេងទៀត។"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"មើលលេខ"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"នាំចូល"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ការនាំចូលបានបរាជ័យ"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ឈប់ទប់ស្កាត់លេខ"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"បន្ថែមលេខ"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ការហៅចេញពីលេខទាំងនេះនឹងត្រូវបានរារាំង ហើយសារជាសំឡេងនឹងត្រូវបានលុបដោយស្វ័យប្រវត្តិ។"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ការហៅចេញពីលេខទាំងនេះនឹងត្រូវបានរារាំង ប៉ុន្តែពួកគេនៅតែអាចទុកសារជាសំឡេងឲ្យអ្នកបាន។"</string>
+ <string name="block_list" msgid="7760188925338078011">"លេខដែលបានរារាំង"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> មិនត្រឹមត្រូវទេ"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ត្រូវបានទប់ស្កាត់រួចហើយ"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ការរារាំងការហៅត្រូវបានបិទដំណើរការរយៈពេល 48 ម៉ោង"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"បានបិទដំណើរការពីព្រោះការហៅបន្ទាន់ត្រូវបានធ្វើឡើង"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"គណនីហៅទូរស័ព្ទ"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"បើក"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"កំណត់សិទ្ធិអនុញ្ញាត"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"ដើម្បីបើកដំណើរការហៅរហ័ស សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"ដើម្បីមើលកំណត់ហេតុហៅទូរស័ព្ទរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"ដើម្បីមើលទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីទំនាក់ទំនង។"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"ដើម្បីចូលដំណើរការសារជាសំឡេងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"ដើម្បីស្វែងរកទំនាក់ទំនងរបស់អ្នក សូមបើកសិទ្ធិអនុញ្ញាតទំនាក់ទំនង។"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"ដើម្បីធ្វើការហៅទូរស័ព្ទ សូមបើកសិទ្ធិអនុញ្ញាតកម្មវិធីហៅទូរស័ព្ទ។"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"កម្មវិធីទូរស័ព្ទមិនមានសិទ្ធិអនុញ្ញាតដើម្បីសរសេរការកំណត់ប្រព័ន្ធទេ។"</string>
</resources>
diff --git a/res/values-kn-rIN/strings.xml b/res/values-kn-rIN/strings.xml
index 71b1bdf7e..e27372593 100644
--- a/res/values-kn-rIN/strings.xml
+++ b/res/values-kn-rIN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"ಡಯಲರ್"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ಫೋನ್"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ಫೋನ್"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ಫೋನ್ ಡಯಲ್‌ಪ್ಯಾಡ್"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ಫೋನ್"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"ಕರೆ ಇತಿಹಾಸ"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಸಂಪಾದಿಸಿ"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"ಸಂಪರ್ಕಗಳಿಗೆ ಸೇರಿಸು"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"ಕರೆ ಇತಿಹಾಸದಿಂದ ಅಳಿಸಿ"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"ಕರೆ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ಧ್ವನಿಮೇಲ್‌ ಅಳಿಸಿ"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ಧ್ವನಿಮೇಲ್‌ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಿ"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"ಯಾವುದೇ ಕರೆಗಳಿಲ್ಲ"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"ಕರೆ ಇತಿಹಾಸ"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"ನಿಖರವಾಗಿಲ್ಲದ ಸಂಖ್ಯೆಯನ್ನು ವರದಿಮಾಡಿ"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"ಸಂಖ್ಯೆಯನ್ನು ನಕಲಿಸಿ"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ಟ್ರಾನ್ಸ್‌ಕ್ರಿಪ್ಶನ್ ನಕಲಿಸಿ"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಬಂಧಿಸು"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"ಸಂಖ್ಯೆಯನ್ನು ಅನಿರ್ಬಂಧಿಸು"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧ ತೆಗೆಯಲಾಗಿದೆ"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ರದ್ದುಮಾಡು"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"ಅಳಿಸು"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"ಕರೆ ಮಾಡುವ ಮೊದಲು ಸಂಖ್ಯೆಯನ್ನು ಸಂಪಾದಿಸಿ"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"ಕರೆ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ಧ್ವನಿಮೇಲ್‌ ಅಳಿಸಿ"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ಧ್ವನಿಮೇಲ್ ಅಳಿಸಲಾಗಿದೆ"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ರದ್ದುಮಾಡು"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ಕರೆ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸುವುದೇ?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"ಇದು ನಿಮ್ಮ ಇತಿಹಾಸದಿಂದ ಎಲ್ಲಾ ಕರೆಗಳನ್ನು ಅಳಿಸುತ್ತದೆ"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"ಕರೆ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> ಇವರಿಂದ ಹೊಸ ಧ್ವನಿಮೇಲ್‌"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"ಧ್ವನಿಮೇಲ್‌ ಪ್ಲೇ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"ಬಫರ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"ಧ್ವನಿಮೇಲ್‌ ಲೋಡ್‌ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"ಧ್ವನಿಮೇಲ್‌ ಲೋಡ್‌ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"ಧ್ವನಿಮೇಲ್‌ ಕರೆಗಳು ಮಾತ್ರ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"ಒಳಬರುವ ಕರೆಗಳು ಮಾತ್ರ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"ಹೊರಹೋಗುವ ಕರೆಗಳು ಮಾತ್ರ"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"ತಪ್ಪಿದ ಕರೆಗಳು ಮಾತ್ರ"</string>
- <string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"ಧ್ವನಿಮೇಲ್‌ ನವೀಕರಣಗಳು ಇದೀಗ ಲಭ್ಯವಿಲ್ಲ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"ದೃಶ್ಯ ಧ್ವನಿಮೇಲ್"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡದೆಯೇ ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಅನ್ನು ವೀಕ್ಷಿಸಿ ಮತ್ತು ಆಲಿಸಿ. ಡೇಟಾ ಶುಲ್ಕಗಳು ಅನ್ವಯಿಸಬಹುದು."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"ಧ್ವನಿಮೇಲ್‌ ಅಪ್‌ಡೇಟ್‌ಗಳು ಇದೀಗ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"ಹೊಸ ಧ್ವನಿಮೇಲ್ ಕಾಯುತ್ತಿದೆ. ಇದೀಗ ಲೋಡ್‌ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್‌ ಹೊಂದಿಸಿ"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ಆಡಿಯೋ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"ಹೊಂದಿಸು"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ಧ್ವನಿಮೇಲ್‌‌ಗೆ ಕರೆ ಮಾಡಿ"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ಅತಿ ನಿಧಾನವಾದ ವೇಗ"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ನಿಧಾನ ವೇಗ"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"ಸಾಮಾನ್ಯ ವೇಗ"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"ಅತೀ ವೇಗ"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ಅತಿ ಕ್ಷಿಪ್ರ ವೇಗ"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"ಸಂಖ್ಯೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"ಸಂಖ್ಯೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"ಕರೆ ಇತಿಹಾಸ"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ಇನ್ನಷ್ಟು ಆಯ್ಕೆಗಳು"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ಡಯಲ್‌ ಪ್ಯಾಡ್‌"</string>
- <string name="menu_copy" msgid="6108677035381940698">"ನಕಲಿಸು"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"ಹೊರಹೋಗುವುದನ್ನು ಮಾತ್ರ ತೋರಿಸು"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"ಒಳಬರುವುದನ್ನು ಮಾತ್ರ ತೋರಿಸು"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"ತಪ್ಪಿಹೋದದ್ದನ್ನು ಮಾತ್ರ ತೋರಿಸು"</string>
@@ -86,7 +89,7 @@
<string name="menu_allContacts" msgid="6948308384034051670">"ಎಲ್ಲಾ ಸಂಪರ್ಕಗಳು"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"ಕರೆಯ ವಿವರಗಳು"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"ವಿವರಗಳು ಲಭ್ಯವಿಲ್ಲ"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ಸ್ಪರ್ಶದ ಟೋನ್ ಕೀಪ್ಯಾಡ್ ಬಳಸಿ"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ಸ್ಪರ್ಶ ಟೋನ್ ಕೀಪ್ಯಾಡ್ ಬಳಸಿ"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"ಪ್ರತ್ಯತ್ತರ ಕರೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"ಕರೆಯನ್ನು ಸೇರಿಸಿ"</string>
<string name="type_incoming" msgid="6502076603836088532">"ಒಳಬರುವ ಕರೆ"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"ಹೊರಹೋಗುವ ವೀಡಿಯೊ ಕರೆ"</string>
<string name="type_missed_video" msgid="954396897034220545">"ಮಿಸ್ಡ್‌ ವೀಡಿಯೊ ಕಾಲ್‌"</string>
<string name="type_voicemail" msgid="5153139450668549908">"ಧ್ವನಿಮೇಲ್"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"ನಿರಾಕರಿಸಿದ ಕರೆ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"ನಿರ್ಬಂಧಿಸಿದ ಕರೆ"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ಒಳಬರುವ ಕರೆಗಳು"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"ಧ್ವನಿಮೇಲ್‌ ಪ್ಲೇ ಮಾಡಿ"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> ಸಂಪರ್ಕ ವೀಕ್ಷಿಸಿ"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕ ವಿವರಗಳು"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"ಹೊಸ ಧ್ವನಿಮೇಲ್‌."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ಕರೆಗಳು."</string>
<string name="description_video_call" msgid="2933838090743214204">"ವೀಡಿಯೊ ಕರೆ."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> ಅವರಿಗೆ SMS ಕಳುಹಿಸಿ"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"ಧ್ವನಿಮೇಲ್"</string>
<string name="private_num" msgid="6374339738119166953">"ಖಾಸಗಿ ಸಂಖ್ಯೆ"</string>
<string name="payphone" msgid="7726415831153618726">"ಪೇಫೋನ್"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> ನಿಮಿ <xliff:g id="SECONDS">%s</xliff:g> ಸೆಕೆಂ"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ರಂದು <xliff:g id="TIME">%2$s</xliff:g> ಗಂಟೆಗೆ"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ಈ ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ಧ್ವನಿಮೇಲ್‌ ಹೊಂದಿಸಲು, ಮೆನು &gt; ಸೆಟ್ಟಿಂಗ್‌ಗಳುಗೆ ಹೋಗಿ."</string>
<!-- no translation found for dialog_voicemail_airplane_mode_message (530922773669546093) -->
@@ -126,45 +134,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"ಧ್ವನಿ ಹುಡುಕಾಟ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="call_not_available" msgid="8941576511946492225">"ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿರುವುದರಿಂದ ಫೋನ್ ಕರೆ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
<string name="activity_not_available" msgid="2287665636817987623">"ಈ ಸಾಧನದಲ್ಲಿ ಅದಕ್ಕಾಗಿ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಲ್ಲ"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"ಹೆಸರು ಅಥವಾ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"ಯಾವುದೇ ಕರೆಗಳಿಲ್ಲ"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"ಯಾವುದೇ ಇತ್ತೀಚಿನ ಧ್ವನಿಮೇಲ್‌ಗಳಿಲ್ಲ"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"ಸಂ. ಸೇರಿಸಿ ಅಥವಾ ಸಂಪರ್ಕ ಹುಡುಕಿ"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"ನಿಮ್ಮ ಕರೆ ಇತಿಹಾಸ ಖಾಲಿಯಾಗಿದೆ"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"ಕರೆ ಮಾಡಿ"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"ನೀವು ಯಾವುದೇ ತಪ್ಪಿದ ಕರೆಗಳನ್ನು ಹೊಂದಿಲ್ಲ."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಇನ್‌ಬಾಕ್ಸ್ ಖಾಲಿ ಇದೆ."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"ಮೆಚ್ಚಿನವುಗಳನ್ನು ಮಾತ್ರ ತೋರಿಸು"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ಇತಿಹಾಸ"</string>
- <string name="call_log_all_title" msgid="3566738938889333307">"ಎಲ್ಲ"</string>
- <string name="call_log_missed_title" msgid="4541142293870638971">"ತಪ್ಪಿವೆ"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"ಕರೆ ಇತಿಹಾಸ"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"ಎಲ್ಲಾ ಕರೆಗಳು"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"ಮಿಸ್ಡ್‌‌ ಕರೆಗಳು"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"ಧ್ವನಿಮೇಲ್"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧಿಸುವುದೇ?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ಈ ಸಂಖ್ಯೆಗೆ ಕರೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಧ್ವನಿಮೇಲ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ಈ ಸಂಖ್ಯೆಗೆ ಕರೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುವುದು, ಆದರೆ ಕರೆಮಾಡುವವರು ಧ್ವನಿಮೇಲ್‌ಗಳನ್ನು ಈಗಲೂ ನಿಮಗೆ ಕಳುಹಿಸಬಹುದು."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ನಿರ್ಬಂಧಿಸು"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> ನಿರ್ಬಂಧ ತೆಗೆಯುವುದೇ?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"ನಿಮಗೆ ಕರೆ ಮಾಡುವಿಕೆಯ ಈ ಸಂಖ್ಯೆಯನ್ನು ಇನ್ನು ಮುಂದೆ ನಿರ್ಬಂಧಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ನಿರ್ಬಂಧ ತೆಗೆ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"ಸ್ಪೀಡ್ ಡಯಲ್"</string>
- <string name="tab_recents" msgid="929949073851377206">"ಇತ್ತೀಚಿನವುಗಳು"</string>
+ <string name="tab_history" msgid="2563144697322434940">"ಕರೆ ಇತಿಹಾಸ"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"ಸಂಪರ್ಕಗಳು"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"ಧ್ವನಿಮೇಲ್"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"ಮೆಚ್ಚಿನವುಗಳಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"ರದ್ದುಮಾಡು"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> ಕರೆ ಮಾಡಿ"</string>
- <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"ಹೊಸ ಸಂಪರ್ಕವನ್ನು ರಚಿಸಿ"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಪರ್ಕಕ್ಕೆ ಸೇರಿಸಿ"</string>
+ <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"ಹೊಸ ಸಂಪರ್ಕ ರಚಿಸು"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"ಸಂಪರ್ಕಕ್ಕೆ ಸೇರಿಸು"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS ಕಳುಹಿಸು"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ವೀಡಿಯೊ ಕರೆ ಮಾಡಿ"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"ಕರೆಯ ಪೂರ್ಣ ಇತಿಹಾಸವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಬಂಧಿಸು"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ಹೊಸ ತಪ್ಪಿದ ಕರೆಗಳು"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"ಸ್ಪೀಡ್ ಡಯಲ್, ನೀವು ಹೆಚ್ಚಾಗಿ ಕರೆಮಾಡುವ ಮೆಚ್ಚಿನವುಗಳು ಮತ್ತು ಸಂಖ್ಯೆಗಳಿಗೆ ಒಂದು-ಸ್ಪರ್ಶದ ಡಯಲಿಂಗ್‌ ಆಗಿದೆ"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"ಯಾವುದೇ ಸಂಪರ್ಕಗಳಿಲ್ಲ"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"ನಿಮ್ಮ ವೇಗದ ಡಯಲ್‌ನಲ್ಲಿ ಇದುವರೆಗೆ ಯಾರೂ ಇಲ್ಲ"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"ಮೆಚ್ಚಿನದನ್ನು ಸೇರಿಸಿ"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"ನೀವು ಇನ್ನೂ ಯಾವುದೇ ಸಂಪರ್ಕಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"ಸಂಪರ್ಕ ಸೇರಿಸಿ"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"ಎಲ್ಲ ಸಂಖ್ಯೆಗಳನ್ನು ನೋಡಲು ಚಿತ್ರವನ್ನು ಸ್ಫರ್ಶಿಸಿ ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಲು ಸ್ಪರ್ಶಿಸಿ &amp; ಹೋಲ್ಡ್‌ ಮಾಡಿ"</string>
<string name="remove_contact" msgid="1080555335283662961">"ತೆಗೆದುಹಾಕು"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ಎಲ್ಲ ಸಂಪರ್ಕಗಳು"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"ವೀಡಿಯೊ ಕರೆ"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ಆಲಿಸಿ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"ವಿವರಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"ಸಂದೇಶ ಕಳುಹಿಸಿ"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"ಕರೆಯ ವಿವರಗಳು"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ಕರೆ ಮಾಡಿ"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ರಿಂದ ತಪ್ಪಿದ ಕರೆ."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ರಿಂದ ಕರೆಗೆ ಉತ್ತರಿಸಲಾಗಿದೆ."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ರಿಂದ ಓದದಿರುವ ಧ್ವನಿಮೇಲ್."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ರಿಂದ ಧ್ವನಿಮೇಲ್."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ಗೆ ಕರೆ."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> ನಲ್ಲಿ"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"ಕರೆಮಾಡಿ"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ಕರೆ ಮಾಡಿ"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ಗೆ ವೀಡಿಯೊ ಕರೆ."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ಗೆ ವೀಡಿಯೊ ಕರೆ ಮಾಡಿ."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ರಿಂದ ಧ್ವನಿಮೇಲ್ ಆಲಿಸಿ"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ರಿಂದ ಧ್ವನಿಮೇಲ್ ಪ್ಲೇ ಮಾಡಿ"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ನಿಂದ ಧ್ವನಿಮೇಲ್ ವಿರಾಮಗೊಳಿಸಿ"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ನಿಂದ ಧ್ವನಿಮೇಲ್ ಅಳಿಸಿ"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ಹೊಸ ಧ್ವನಿಮೇಲ್‌ಗಳು</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ಹೊಸ ಧ್ವನಿಮೇಲ್‌ಗಳು</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ಗೆ ಸಂಪರ್ಕವನ್ನು ರಚಿಸಿ"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಂಪರ್ಕಕ್ಕೆ <xliff:g id="NAMEORNUMBER">^1</xliff:g> ಸೇರಿಸಿ"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ಗೆ ಸಂಪರ್ಕದ ವಿವರಗಳು"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"ಕರೆ ಇತಿಹಾಸದಿಂದ ಅಳಿಸಲಾಗಿದೆ"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"ವರದಿ ಮಾಡು"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ಇಂದು"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"ನಿನ್ನೆ"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"ಹಳೆಯದು"</string>
@@ -180,7 +211,7 @@
<string name="accessibility_settings_title" msgid="6068141142874046249">"ಪ್ರವೇಶಿಸುವಿಕೆ"</string>
<string name="ringtone_title" msgid="760362035635084653">"ಫೋನ್ ರಿಂಗ್‌ಟೋನ್"</string>
<string name="vibrate_on_ring_title" msgid="3362916460327555241">"ಕರೆಗಳಿಗೂ ಸಹ ವೈಬ್ರೇಟ್‌"</string>
- <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"ಡಯಲ್‌ಪ್ಯಾಡ್‌ ಧ್ವನಿಗಳು"</string>
+ <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"ಡಯಲ್‌ಪ್ಯಾಡ್‌ ಟೋನ್‌ಗಳು"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"ಡಯಲ್‌ಪ್ಯಾಡ್‌ ಟೋನ್ ಅಳತೆ"</string>
<string-array name="dtmf_tone_length_entries">
<item msgid="1036113889050195575">"ಸಾಮಾನ್ಯ"</item>
@@ -188,5 +219,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"ತ್ವರಿತ ಪ್ರತಿಕ್ರಿಯೆಗಳು"</string>
<string name="call_settings_label" msgid="313434211353070209">"ಕರೆಗಳು"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ ತಾತ್ಕಾಲಿಕ ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ನೀವು ಕಳೆದ 48 ಗಂಟೆಗಳಲ್ಲಿ ಈ ಫೋನ್‌ನಿಂದ ತುರ್ತು ಸೇವೆಗಳಿಗೆ ಸಂಪರ್ಕಿಸಿರುವ ಕಾರಣದಿಂದ ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಒಮ್ಮೆ 48 ಗಂಟೆಗಳ ಅವಧಿಯು ಮುಕ್ತಾಯಗೊಂಡ ನಂತರ ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದು."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ಸಂಖ್ಯೆಗಳನ್ನು ಆಮದು ಮಾಡಿ"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"ನೀವು ಈ ಹಿಂದೆ ಗುರುತು ಮಾಡಲಾದ ಕೆಲವು ಕಾಲರ್‌ಗಳನ್ನು ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೂಲಕ ಧ್ವನಿಮೇಲ್‌ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸಲಾಗುತ್ತದೆ."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ಆಮದು ಮಾಡಿ"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ಆಮದು ವಿಫಲವಾಗಿದೆ"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ಸಂಖ್ಯೆಯನ್ನು ಅನಿರ್ಬಂಧಿಸು"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸಿ"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ಈ ಸಂಖ್ಯೆಗಳಿಗೆ ಕರೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಧ್ವನಿಮೇಲ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ಈ ಸಂಖ್ಯೆಗಳಿಗೆ ಕರೆಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುವುದು, ಆದರೆ ಅವರು ಧ್ವನಿಮೇಲ್‌ಗಳನ್ನು ಈಗಲೂ ನಿಮಗೆ ಕಳುಹಿಸಬಹುದು."</string>
+ <string name="block_list" msgid="7760188925338078011">"ನಿರ್ಬಂಧಿಸಲಾದ ಸಂಖ್ಯೆಗಳು"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ಅಮಾನ್ಯವಾಗಿದೆ."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ಈಗಾಗಲೇ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ 48 ಗಂಟೆಗಳವರೆಗೆ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"ತುರ್ತು ಕರೆಯನ್ನು ಮಾಡಿರುವ ಕಾರಣದಿಂದ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"ಕರೆ ಮಾಡುವ ಖಾತೆಗಳು"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ಆನ್ ಮಾಡು"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"ಅನುಮತಿಗಳನ್ನು ಹೊಂದಿಸು"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"ವೇಗ ಡಯಲ್ ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"ನಿಮ್ಮ ಕರೆಯ ಲಾಗ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ವೀಕ್ಷಿಸಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"ನಿಮ್ಮ ಧ್ವನಿಮೇಲ್ ಪ್ರವೇಶಿಸಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಲು, ಸಂಪರ್ಕಗಳ ಅನುಮತಿಗಳನ್ನು ಆನ್ ಮಾಡಿ."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"ಕರೆ ಮಾಡಲು, ಫೋನ್ ಅನುಮತಿಯನ್ನು ಆನ್ ಮಾಡಿ."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಬರೆಯಲು ಫೋನ್ ಅಪ್ಲಿಕೇಶನ್ ಅನುಮತಿಯನ್ನು ಹೊಂದಿಲ್ಲ."</string>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 47c10f403..166d89cc7 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"다이얼러"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"전화"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"전화"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"전화 다이얼패드"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"휴대전화"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"통화 기록"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"전화걸기: <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"통화하기 전에 번호 수정"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"주소록에 추가"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"통화 기록에서 삭제"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"통화 기록 삭제"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"음성사서함 삭제"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"음성사서함 공유"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"통화 기록 없음"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"통화 기록"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"잘못된 번호 신고하기"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"전화번호 복사"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"텍스트 변환 복사"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"번호 차단"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> 차단됨"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"번호 차단 해제"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> 차단 해제됨"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"실행취소"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"삭제"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"통화하기 전에 번호 수정"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"통화 기록 삭제"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"음성사서함 삭제"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"음성사서함 삭제됨"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"실행취소"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"통화 기록을 삭제하시겠습니까?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"모든 통화가 기록에서 삭제됩니다."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"통화 기록을 삭제하는 중…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>님이 보낸 새 음성사서함"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"음성사서함을 재생할 수 없습니다."</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"버퍼링 중..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"음성사서함 로드 중…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"음성사서함을 로드할 수 없습니다."</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"음성사서함 메시지만"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"수신 전화만"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"발신 전화만"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"부재중 전화만"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"시각적 음성사서함"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"전화를 걸지 않고도 음성사서함을 확인하고 들을 수 있습니다. 데이터 요금이 부과될 수 있습니다."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"설정"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"음성사서함 업데이트를 사용할 수 없습니다."</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"새로운 음성사서함이 대기 중이지만 현재 로드할 수 없습니다."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"음성사서함 설정"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"오디오가 지원되지 않습니다."</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"설정"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"음성사서함 연결"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"가장 느린 속도"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"느린 속도"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"보통 속도"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"빠른 속도"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"가장 빠른 속도"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"<xliff:g id="DATE">%2$s</xliff:g>에 통화 <xliff:g id="COUNT">%1$d</xliff:g>통"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"번호 선택"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"번호 선택"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"통화 기록"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"옵션 더보기"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"다이얼패드"</string>
- <string name="menu_copy" msgid="6108677035381940698">"복사"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"발신 전화만 표시"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"수신 전화만 표시"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"부재중 전화만 표시"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"발신 화상 통화"</string>
<string name="type_missed_video" msgid="954396897034220545">"부재중 화상 통화"</string>
<string name="type_voicemail" msgid="5153139450668549908">"음성사서함"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"거부된 통화"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"차단된 통화"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"수신전화"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"음성사서함 재생"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g>님의 연락처 보기"</string>
<string name="description_call" msgid="3443678121983852666">"전화하기:<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>의 연락처 세부정보"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"새로운 음성사서함이 있습니다."</string>
<string name="description_num_calls" msgid="1601505153694540074">"통화 횟수: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>번"</string>
<string name="description_video_call" msgid="2933838090743214204">"화상 통화"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g>님에게 SMS 보내기"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"음성사서함"</string>
<string name="private_num" msgid="6374339738119166953">"비공개 번호"</string>
<string name="payphone" msgid="7726415831153618726">"공중전화"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g>초"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g>분 <xliff:g id="SECONDS">%s</xliff:g>초"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"이 번호로 전화를 걸 수 없습니다."</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"음성사서함을 설정하려면 메뉴 &gt; 설정으로 이동하세요."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"음성사서함에 메시지를 남기려면 먼저 비행기 모드를 해제하세요."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"음성검색이 지원되지 않습니다."</string>
<string name="call_not_available" msgid="8941576511946492225">"전화 애플리케이션을 사용 중지했으므로 전화를 걸 수 없습니다."</string>
<string name="activity_not_available" msgid="2287665636817987623">"이 기기에 작업을 처리할 수 있는 앱이 없습니다."</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"이름 또는 전화번호 입력"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"부재중 통화 없음"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"최근 음성사서함 없음"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"연락처 검색"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"번호 추가 또는 연락처 검색"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"통화 기록이 비어있습니다."</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"전화 걸기"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"부재중 전화가 없습니다."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"음성사서함 받은편지함이 비어 있습니다."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"즐겨찾는 연락처만 표시"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"기록"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"통화 기록"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"전체"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"부재중 전화"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"음성사서함"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>번을 차단할까요?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"이 번호에서 걸려오는 전화가 차단되며 음성사서함이 자동으로 삭제됩니다."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"이 번호에서 걸려오는 전화가 차단되지만, 발신자가 음성사서함에 메시지를 남길 수는 있습니다."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"차단"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>번을 차단 해제할까요?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"이 번호가 더 이상 내게 전화하는 것을 차단하지 않습니다."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"차단 해제"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"단축번호"</string>
- <string name="tab_recents" msgid="929949073851377206">"최근"</string>
+ <string name="tab_history" msgid="2563144697322434940">"통화 기록"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"주소록"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"음성사서함"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"즐겨찾기에서 삭제됨"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"실행취소"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g>에 전화"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"새 연락처 만들기"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"기존 연락처에 추가"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"연락처에 추가"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS 보내기"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"화상 통화하기"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"전체 통화 기록 조회"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"번호 차단"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"새로운 부재중 전화 <xliff:g id="NUMBER">%s</xliff:g>건"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"단축번호를 지정하면 즐겨찾거나 자주 전화하는 번호를 한 번만 터치하여 전화를 걸 수 있습니다."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"주소록 없음"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"아직 단축 다이얼이 설정된 연락처가 없습니다."</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"단축 다이얼 추가"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"아직 연락처가 없습니다."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"연락처 추가"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"이미지를 터치하여 모든 번호를 확인하거나 길게 터치하여 재정렬합니다."</string>
<string name="remove_contact" msgid="1080555335283662961">"삭제"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"모든 연락처"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"화상 통화"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"듣기"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"세부정보 보기"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"메시지 보내기"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"통화 세부정보"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>에 전화 걸기"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>의 부재중 전화(<xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>)"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>에게 걸려온 수신 전화(<xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>)"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>에서 보낸 읽지 않은 음성사서함"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>에서 보낸 음성사서함"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>에게 건 전화(<xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>)"</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> 계정"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"통화"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>에 전화 걸기"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"발신 화상 통화: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>에 화상 통화 걸기"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> 음성사서함 듣기"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>에서 발신한 음성사서함 재생"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>에서 발신한 음성사서함 일시중지"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>에서 발신한 음성사서함 삭제"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other">새 음성사서함 <xliff:g id="COUNT_1">%d</xliff:g>개</item>
+ <item quantity="one">새 음성사서함 <xliff:g id="COUNT_0">%d</xliff:g>개</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> 연락처 만들기"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>님을 기존 연락처에 추가합니다."</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>의 통화 세부정보"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"통화 기록에서 삭제했습니다."</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"신고"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"오늘"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"어제"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"이전"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"빠른 응답"</string>
<string name="call_settings_label" msgid="313434211353070209">"통화"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"통화 차단"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"통화 차단 기능이 일시적으로 중지됨"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"지난 48시간 이내에 이 휴대전화를 사용해 응급 서비스에 연락했으므로 통화 차단 기능이 중지되었습니다. 48시간이 지나면 통화 차단 기능이 자동으로 다시 사용 설정됩니다."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"번호 가져오기"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"이전에 다른 앱을 통해 일부 발신자를 자동으로 음성사서함으로 보내도록 표시했습니다."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"개수 보기"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"가져오기"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"가져오지 못했습니다."</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"번호 차단 해제"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"번호 추가"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"이러한 번호에서 걸려오는 전화가 차단되며 음성사서함이 자동으로 삭제됩니다."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"이러한 번호에서 걸려오는 전화가 차단되지만, 발신자가 음성사서함에 메시지를 남길 수는 있습니다."</string>
+ <string name="block_list" msgid="7760188925338078011">"차단된 번호"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g>번은 잘못된 번호입니다."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g>번은 이미 차단되었습니다."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"통화 차단이 48시간 동안 중지됨"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"긴급 통화를 사용했기 때문에 중지되었습니다."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"통화 계정"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"사용"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"권한 설정"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"단축번호를 사용하려면 주소록 권한을 사용하도록 설정하세요."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"통화 기록을 보려면 전화 권한을 사용하도록 설정하세요."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"주소록을 보려면 주소록 권한을 사용하도록 설정하세요."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"음성사서함에 액세스하려면 전화 권한을 사용하도록 설정하세요."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"주소록을 검색하려면 주소록 권한을 사용하도록 설정하세요."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"전화를 걸려면 전화 권한을 사용하도록 설정하세요."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"전화 앱은 시스템 설정에 쓸 수 있는 권한이 없습니다."</string>
</resources>
diff --git a/res/values-ky-rKG/strings.xml b/res/values-ky-rKG/strings.xml
index aa0bb4dfa..c2c409d86 100644
--- a/res/values-ky-rKG/strings.xml
+++ b/res/values-ky-rKG/strings.xml
@@ -17,22 +17,26 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Чалгыч"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Телефон"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Телефон"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Телефон тергичи"</string>
<!-- no translation found for dialerIconLabel (6500826552823403796) -->
<skip />
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Чалуулар таржымалы"</string>
- <!-- no translation found for recentCalls_callNumber (1756372533999226126) -->
- <skip />
- <!-- no translation found for recentCalls_editNumberBeforeCall (7756171675833267857) -->
- <skip />
- <!-- no translation found for recentCalls_addToContact (1429899535546487008) -->
- <skip />
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Чалуулар таржымалынан жок кылуу"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Чалуулар таржымалын тазалоо"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Үнкатты жок кылуу"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Үнкатты бөлүшүү"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Чалуулар жок"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Чалуулар таржымалы"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Номер туура эмес"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Номерди көчүрүү"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Транскрипцияны көчүрүү"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Номерди бөгөттөө"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгөттөлдү"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Номерди бөгөттөн чыгаруу"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгөттөн чыгарылды"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"КАЙТАРУУ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Жок кылуу"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Чалуудан мурун номерди түзөтүү"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Чалуулар таржымалын тазалоо"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Үн почтасын жок кылуу"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Үн почтасы жок кылнд"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"КАЙТАРУУ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Чалуулар таржымалы тазалансынбы?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ушуну менен бул таржымалдагы бардык чалуулар жок болот"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Чалуулар таржымалы тазаланууда…"</string>
@@ -44,24 +48,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> жаңы үнкат калтырды"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Үн почтасы ойнолгон жок"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Топтолууда…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Үн почтасы жүктөлүүдө…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Үн почтасы жүктөлгөн жок"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Үнкат чалуулары"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Кириш чалуулар"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Чыккан чалуулар"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Өткөзүлгөн чалуулар гана"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Визуалдык үн почтасы"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Номерге чалып отурбастан, үн почтаңызды көрүп, уга аласыз. Дайындардын өткөрүлгөндүгү үчүн акы алынышы мүмкүн."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Жөндөөлөр"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Үн почтасынын жаңыртуулары жеткиликтүү эмес"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Жаңы үн почтасы күтүүдө. Учурда жүктөлбөй жатат."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Үн почтаңызды орнотуңуз"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Аудио жеткиликтүү эмес"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Тууралоо"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Үнкатка чалуу"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Эң жай"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Жайлатуу"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Кадимкидей"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Ылдамдатуу"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Эң ылдам"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Номур тандоо"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Номур тандаңыз"</string>
@@ -81,7 +82,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Чалуулардын тарыхы"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Көбүрөөк мүмкүнчүлүктөр"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"чалгыч такта"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Көчүрүү"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Чыккан чалуу-ды гана көрсөтүү"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Кириш чалууларды гана көрсөтүү"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Өткөз. чалуу-ды гана көрсөтүү"</string>
@@ -115,13 +115,14 @@
<string name="type_missed_video" msgid="954396897034220545">"Кабыл алынбаган видео чалуу"</string>
<!-- no translation found for type_voicemail (5153139450668549908) -->
<skip />
+ <string name="type_rejected" msgid="7783201828312472691">"Четке кагылган чалуу"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Бөгөттөлгөн чалуу"</string>
<!-- no translation found for actionIncomingCall (6028930669817038600) -->
<skip />
<string name="description_call_log_play_button" msgid="651182125650429846">"Үнкатты угуу"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Байланышты кароо <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Чалуу <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> байланыш маалыматтары"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Жаңы үнкат."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> чалуу."</string>
<string name="description_video_call" msgid="2933838090743214204">"Видео чалуу."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> дегенге SMS жөнөтүү"</string>
@@ -135,7 +136,11 @@
<!-- no translation found for private_num (6374339738119166953) -->
<skip />
<string name="payphone" msgid="7726415831153618726">"Таксофон"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> мүн. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> саат <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Бул номурга чалуу мүмкүн болбой жатат"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Үнкат орноотуу үчүн Меню &gt; Тууралоолорго кириңиз."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Үнкатты текшерүү үчүн, алгач Учак тартибин өчүрүңүз."</string>
@@ -152,45 +157,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Үн менен издөө жеткиликтүү эмес"</string>
<string name="call_not_available" msgid="8941576511946492225">"Телефон колдонмосу өчүрүлгөндүктөн, чалуу мүмкүн болбой жатат."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Бул түзмөктө ал үчүн колдонмо жок"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Атын же телеф номерин киргизңз"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Чалуулар жок"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Акыркы үн каттары жок"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Байланыштардан издеп көрүңүз"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Номер кошуңуз же байлнш издңз"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Чалуулар таржымалыңыз бош"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Чалуу"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Алынбай калган чалуулар жок."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Үн почтаңыздын келген билдирүүлөр куржуну бош."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Тандамалдарды гана көрсөтүү"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Тарыхы"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Чалуулар таржымалы"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Бардыгы"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Өткөзүлгөндөр"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Үнкат"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгөттөлсүнбү?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Бул номерден келген чалуулар бөгөттөлөт жана үн билдирүүлөрү автоматтык түрдө жок кылынат."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Бул номерден келген чалуулар бөгөттөлөт, бирок чалуучу сизге үн билдирүүлөрүн калтыра берет."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"БӨГӨТТӨӨ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> бөгөттөн чыгарылсынбы?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Бул номерден болгон чалуулар мындан ары бөгөттөлбөйт."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"БӨГӨТТӨН ЧЫГАРУУ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Тез терүү"</string>
- <string name="tab_recents" msgid="929949073851377206">"Акыркылар"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Чалуулар таржымалы"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Байланыштар"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Үн почтасы"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Тандамалдардан өчүрүлдү"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Кайтаруу"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Чалуу <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Жаңы байланыш түзүү"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Учурдагы байланышка кошуу"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Байланышка кошуу"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS жөнөтүү"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Видео түрүндө чалуу"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Чалуулардын толук таржымалын көрүү"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Номерди бөгөттөө"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> жаңы өткөзүлгөн чалуу"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Тез терүү мүмкүнчүлүгү менен, сүйүктүү байланыштарды жана тез-тез чалынган номурларды бир тийип тере аласыз"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Байланыштар жок"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Азырынча тез териле турган номерлер жок"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Сүйүктүү номер кошуу"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Азырынча эч байланышыңыз жок"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Байланыш кошуу"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Бардык номурларды көрүү үчүн сүрөткө тийип коюңуз же иреттештирүү үчүн жана коё бербей басып туруңуз"</string>
<string name="remove_contact" msgid="1080555335283662961">"Алып салуу"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"БАРДЫК БАЙЛАНЫШТАР"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Видео чалуу"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"УГУУ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Чоо-жайын карап көрүү"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Билдирүү жөнөтүү"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Чалуунун чоо-жайы"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> чалуу"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> дегенден жооп берилбей калган чалуу."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> дегенден жооп берилген чалуу."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> дегенден окула элек үн почтасы, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> дегенден үн почтасы, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> дегенге чалуу."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> боюнча"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Чалуу"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> чалуу"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Төмөнкүгө видео чалуу <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> видео чалуу."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> үн катын угуу"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Үн почтасын <xliff:g id="NAMEORNUMBER">^1</xliff:g> дегенден ойнотуу"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Үн почтасын <xliff:g id="NAMEORNUMBER">^1</xliff:g> дегенден тындыруу"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Үн почтасын <xliff:g id="NAMEORNUMBER">^1</xliff:g> дегенден жок кылуу"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> жаңы үн почтасы</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> жаңы үн почтасы</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> номери үчүн байланыш түзүү"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> учурдагы байланышка кошуу"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> чалуу чоо-жайы"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Чалуулар таржымалынан жок кылынды"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Кабарлоо"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Бүгүн"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Кечээ"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Мурункураак"</string>
@@ -214,5 +242,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Тез жооптор"</string>
<string name="call_settings_label" msgid="313434211353070209">"Чалуулар"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Чалууну бөгөттөө"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Чалууну бөгөттөө убактылуу өчүрүлгөн"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Акыркы 48 саат ичинде бул телефондон өзгөчө кырдаал кызматына байланышкандыктан чалууну бөгөттөө өчүрүлдү. 48 сааттык мөөнөтү аяктагандан кийин ал автоматтык түрдө кайра иштетилет."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Номерлерди импорттоо"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Мурда башка колдонмолор аркылуу айрым чалуучуларга автоматтык түрдө үн почтасы жөнөтүлгүдөй кылып белгилегенсиз."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Номерлерди көрүү"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импорттоо"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импорттолбой калды"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Номерди бөгөттөн чыгаруу"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Номер кошуу"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Бул номерлерден келген чалуулар бөгөттөлөт жана үн билдирүүлөрү автоматтык түрдө жок кылынат."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Бул номерлерден келген чалуулар бөгөттөлөт, бирок алар сизге үн билдирүүлөрүн калтыра берет."</string>
+ <string name="block_list" msgid="7760188925338078011">"Бөгөттөлгөн номерлер"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> - жараксыз."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> мурунтан эле бөгөттөлгөн."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Чалууну бөгөттөө 48 саатка өчүрүлгөн"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Шашылыш чалуу аткарылгандыктан өчүрүлгөн."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Чалуу каттоо эсептери"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Күйгүзүү"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Уруксаттарды берүү"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Тез терүүнү иштетүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Чалуулар таржымалыңызды көрүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Байланыштар тизмесин көрүү үчүн, \"Байланыштар\" колдонмосуна уруксат бериңиз."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Үн почтаңызга кирүү үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Байланыштарыңызды издөө үчүн, Байланыштарга уруксатты күйгүзүңүз."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Чалуу үчүн, \"Телефон\" колдонмосуна уруксат бериңиз."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Телефон колдонмосунун Тутум жөндөөлөрүнө жазууга уруксаты жок."</string>
</resources>
diff --git a/res/values-lo-rLA/strings.xml b/res/values-lo-rLA/strings.xml
index d5794d44d..118d87667 100644
--- a/res/values-lo-rLA/strings.xml
+++ b/res/values-lo-rLA/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"ແປ້ນໂທລະສັບ"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ໂທລະສັບ"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ໂທລະສັບ"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ໜ້າ​ປັດ​ກົດ​ເບີ​ໂທ​ລະ​ສັບ"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ໂທລະສັບ"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"ປະຫວັດການໂທ"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"ໂທຫາ <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ແກ້ໄຂເບີກ່ອນໂທ"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"ເພີ່ມໃສ່ລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"ລຶບ​ຈາກ​ປະ​ຫວັດ​ການ​ໂທ"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"ລຶບ​ປະ​ຫວັດ​ການ​ໂທ​"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ລຶບຂໍ້ຄວາມສຽງ"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ແບ່ງປັນຂໍ້ຄວາມສຽງ"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"ບໍ່​ມີ​ສາຍ​ໂທ"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"ປະຫວັດການໂທ"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"ລາຍງານໝາຍເລກທີ່ບໍ່ຖືກຕ້ອງ"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"ອັດ​ສຳ​ເນົາ​ໝາຍເລກ"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ອັດ​ສຳ​ເນົາ​ການ​ກ່າຍ​ເປັນ​ໜັງ​ສື"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"ບ​ລັອກ​ໝາຍເລກ"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກບ​ລັອກໄວ້​ແລ້ວ"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"ປົດ​ບ​ລັອກ​ໝາຍເລກ"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກບ​ລັອກໄວ້​ແລ້ວ"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ບໍ່​ເຮັດ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"​ລຶບ"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"ແກ້ໄຂໝາຍເລກກ່ອນໂທ"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"ລຶບ​ປະ​ຫວັດ​ການ​ໂທ​"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ລຶບຂໍ້ຄວາມສຽງ"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ລຶບ​ຂໍ້​ຄວາມ​ສຽງ​ແລ້ວ"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ບໍ່​ເຮັດ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ລຶບ​ປະ​ຫວັດ​ການ​ໂທ​ບໍ?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"ອັນ​ນີ້​ຈະ​ລຶບ​ທຸກ​ສາຍ​ໂທ​ຈາກ​ປະ​ຫວັດ​ຂອງ​ທ່ານ"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"ກຳ​ລັງ​ລຶບ​ປະ​ຫວັດ​ການ​ໂທ…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ບໍ່ມີຂໍ້ຄວາມສຽງຈາກ <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"ບໍ່​ສາ​ມາດ​ຫຼິ້ນ​ຂໍ້​ຄວາມ​ສຽງ​ໄດ້"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"ກຳລັງດຶງຂໍ້ມູນມາກຽມ..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"ກຳ​ລັງ​ໂຫຼດ​ຂໍ້​ຄວາມ​ສຽງ…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"ບໍ່​ສາ​ມາດ​ໂຫຼດ​ຂໍ້​ຄວາມ​ສຽງ​ໄດ້"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"ເບີໂທຂໍ້ຄວາມສຽງເທົ່ານັ້ນ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"ສາຍໂທເຂົ້າເທົ່ານັ້ນ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"ເບີໂທອອກເທົ່ານັ້ນ"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"ສະເພາະສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"ຂໍ້ຄວາມສຽງເຫັນພາບ"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"ເບິ່ງ ແລະຟັງຂໍ້ຄວາມສຽງຂອງທ່ານ ໂດຍບໍ່ຈຳເປັນຕ້ອງໂທຫາໝາຍເລກໃດໜຶ່ງ. ອາດຈະມີຄ່າທຳນຽມຂໍ້ມູນ."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"ການ​ຕັ້ງ​ຄ່າ"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"ບໍ່​ມີ​ການ​ອັບ​ເດດ​ຂໍ້​ຄວາມ​ສຽງ​ຢູ່"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"ຂໍ້​ຄວາມ​ສຽງ​ໃໝ່​ລໍ​ຖ້າ​ຢູ່. ບໍ່​ສາ​ມາດ​ໂຫຼດ​ໄດ້​ໃນ​ເວ​ລາ​ນີ້."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"ຕັ້ງ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ບໍ່​ມີ​ສຽງ​ຢູ່"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"ຕັ້ງຄ່າ"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ໂທຫາເບີຂໍ້ຄວາມສຽງ"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ຊ້າທີ່ສຸດ"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ຊ້າ"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"ປົກກະຕິ"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"ໄວ"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ໄວທີ່ສຸດ"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"ເລືອກເບີໂທ"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"ເລືອກເບີໂທ"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"ປະຫວັດການໂທ"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ໂຕເລືອກເພີ່ມເຕີມ"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ປຸ່ມໂທລະສັບ"</string>
- <string name="menu_copy" msgid="6108677035381940698">"ສຳເນົາ"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"ສະແດງສະເພາະສາຍໂທອອກ"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"ສະແດງສະເພາະສາຍໂທເຂົ້າ"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"ສະແດງສະເພາະສາຍບໍ່ໄດ້ຮັບ"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"ສາຍ​ໂທ​ອອກ​ດ້ວຍ​ວິດີໂອ"</string>
<string name="type_missed_video" msgid="954396897034220545">"ສາຍ​ວິດີໂອ​ທີ່​ບໍ່​ໄດ້​ຮັບ"</string>
<string name="type_voicemail" msgid="5153139450668549908">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"ສາຍ​ໂທ​ທີ່​ຖືກ​ປະ​ຕິ​ເສດ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"ສາຍ​ໂທ​ທີ່​ຖືກບ​ລັອກ"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ສາຍໂທເຂົ້າ"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"ເປີດຂໍ້ຄວາມສຽງ"</string>
<string name="description_view_contact" msgid="5205669345700598415">"ເບິ່ງລາຍຊື່ຜູ່ຕິດຕໍ່ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"ໂທຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"ລາຍລະອຽດ​ລາຍຊື່​ຜູ່ຕິດຕໍ່​ສຳລັບ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"ຂໍ້ຄວາມ​ສຽງ​ໃໝ່."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ການໂທ."</string>
<string name="description_video_call" msgid="2933838090743214204">"ການ​ໂທ​ດ້ວຍ​ວິ​ດີ​ໂອ."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"ສົ່ງ SMS ຫາ <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"ຂໍ້ຄວາມສຽງ"</string>
<string name="private_num" msgid="6374339738119166953">"ເບີສ່ວນໂຕ"</string>
<string name="payphone" msgid="7726415831153618726">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> ວິນາທີ"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> ນ​ທ <xliff:g id="SECONDS">%s</xliff:g> ວິ"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ເວລາ <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ບໍ່​ສາ​ມາດ​ໂທ​ຫາ​ເບີ​ນີ້​ໄດ້"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ເພື່ອຕັ້ງຄ່າຂໍ້ຄວາມສຽງ ໃຫ້ໄປທີ່ ເມນູ &gt; ການຕັ້ງຄ່າ."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ເພື່ອໂທຫາເບີຂໍ້ຄວາມສຽງ ທ່ານຕ້ອງປິດໂໝດຢູ່ເທິງຍົນກ່ອນ."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"ບໍ່​ມີ​ການ​ຊອກ​ຫາ​ດ້ວຍ​ສຽງ​ຢູ່"</string>
<string name="call_not_available" msgid="8941576511946492225">"ບໍ່​ສາ​ມາດ​ໂທ​ໄດ​້​ເນື່ອງ​ຈາກ​ແອັບ​ພ​ລິ​ເຄ​ຊັນ​ໂທ​ລະ​ສັບ​ຖືກ​ປິດ​ການ​ນຳ​ໃຊ້​ໄວ້."</string>
<string name="activity_not_available" msgid="2287665636817987623">"ບໍ່​ມີ​ແອັ​ບຯ​ສຳ​ລັບ​ສິ່ງນັ້ນ​ຢູ່​ໃນ​ອຸ​ປະ​ກອນ​ນີ້"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"ປ້ອນ​ຊື່ ຫຼື​ເບີ​ໂທ​ລະ​ສັບ​ເຂົ້າ​ໄປ"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"ບໍ່​ມີ​ສາຍ​ໂທ"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"ບໍ່​ມີ​ຂໍ້​ຄວາມ​ສຽງ​ບໍ່​ດົນ​ມາ​ນີ້"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"ຊອກຫາລາຍຊື່ຜູ່ຕິດຕໍ່"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"ເພີ່ມ​ເບີ​ໂທ​ລະ​ສັບ ຫຼື ຊອກ​ຫາ​ລາຍ​ຊື່​ຕິດ​ຕໍ່"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"ປະ​ຫວັດ​ການ​ໂທ​ຂອງ​ທ່ານ​ຫວ່າງ​ເປົ່າ"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"​ໂທ​ອອກ"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"ທ່ານ​ມີ​ສາຍ​ບໍ່​ໄດ້​ຮັບ."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ກ່ອງເຂົ້າ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ​ຫວ່າງ​ເປົ່າ."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"ສະ​ແດງ​ສະເພາະລາຍການທີ່ນິຍົມເທົ່ານັ້ນ"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ປະຫວັດການໂທ"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"ປະຫວັດການໂທ"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"ທັງໝົດ"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"ສາຍທີ່ບໍ່ໄດ້ຮັບ"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"ຂໍ້ຄວາມສຽງ"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"ບ​ລັອກ <xliff:g id="NUMBER">%1$s</xliff:g> ບໍ?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ການໂທຈາກເບີໂທນີ້ຈະຖືກບລັອກໄວ້ ແລະຂໍ້ຄວາມສຽງຈະຖືກລຶບໂດຍອັດຕະໂນມັດ."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ການໂທຈາກເບີນີ້ຈະຖືກບລັອກໄວ້, ແຕ່ຜູ່ໂທອາດຈະຍັງສາມາດຝາກຂໍ້ຄວາມສຽງໃຫ້ທ່ານໄດ້."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ບລັອກ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"ປົດ​ບ​ລັອກ <xliff:g id="NUMBER">%1$s</xliff:g> ບ​ໍ?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"ເບີ​ນີ້​ຈະ​ບໍ່​ຖືກບ​ລັອກ​ຈາກ​ການ​ໂທ​ຫາ​ທ່ານ​ອີກ​ຕໍ່​ໄປ."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"​ປົດ​ບລັອກ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"ການ​ໂທ​ດ່ວນ"</string>
- <string name="tab_recents" msgid="929949073851377206">"ຫາ​ກໍ​ໃຊ້"</string>
+ <string name="tab_history" msgid="2563144697322434940">"ປະຫວັດການໂທ"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"ຂໍ້ຄວາມສຽງ"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"ລຶບອອກຈາກລາຍການທີ່ມັກແລ້ວ"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"ຍົກເລີກ"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"ໂທ​ຫາ <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"ສ້າງລາຍຊື່ໃໝ່"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"ເພີ່ມ​ລາຍ​ຊື່​ທີ່​ມີ​ຢູ່"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"ເພີ່ມ​ໃສ່​ລາຍ​ຊື່"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"ສົ່ງ SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"​ໂທ​ອອກ​ດ້ວຍ​ວິ​ດີ​ໂອ"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"ເບິ່ງ​ປະ​ຫວັດ​ການ​ໂທ​ແບບເຕັມ"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"ບ​ລັອກ​ໝາຍ​ເລກ"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ສາຍທີ່ບໍ່ໄດ້ຮັບໃໝ່"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"ການ​ໂທ​ດ່ວນ​ແມ່ນ​ການ​ກົດ​ໂທ​ດ້ວຍ​ການ​ສຳ​ຜັດ​ເທື່ອ​ດຽວ ສຳ​ລັບ​ລາຍ​ການ​ທີ່​ມັກ ແລະ​ເບີ​ທີ່​ທ່ານ​ໂທ​ຢູ່​ເລື້ອຍ​ໆ"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"ບໍ່ມີລາຍຊື່ຕິດຕໍ່"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"ບໍ່​ມີ​ຜູ້​ໃດ​ຢູ່​ໃນ​ການ​ໂທ​ດ່ວນ​ຂອງ​ທ່ານ​ເທື່ອ"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"ເພີ່ມ​ລາຍ​ການ​ທີ່​ມັກ"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"ທ່ານ​ບໍ່​ມີ​ລາຍ​ຊື່​ໃດ​ເທື່ອ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"ເພີ່ມ​ລາຍ​ຊື່"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"ແຕະ​ຮູບ ເພື່ອ​ເບິ່ງ​ທຸກ​ເລກ​ໝາຍ ຫຼື​ແຕະ &amp; ຄ້າງ​ໄວ້ ເພື່ອ​ບັນ​ທຶກ"</string>
<string name="remove_contact" msgid="1080555335283662961">"​ລຶບ​ອອກ"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"​ລາຍ​ຊື່​ຜູ່​ຕິດ​ຕໍ່​ທັງ​ໝົດ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"​ໂທ​ດ້ວຍ​ວິ​ດີ​ໂອ"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ຟັງ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"​ເບິ່ງ​ລາຍ​ລະ​ອຽດ"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"ສົ່ງຂໍ້ຄວາມ"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"ລາຍລະອຽດ​ການໂທ"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"ໂທຫາ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"ສາຍ​ບໍ່​ໄດ້​ຮັບ​ຈາກ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"ຮັບ​ສາຍ​ໂທ​ຈາກ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"ຂໍ້​ຄວາມ​ສຽງ​ບໍ່​ໄດ້​ອ່ານ​ຈາກ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"ຂໍ້​ຄວາມ​ສຽງ​ຈາກ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"ໂທ​ຫາ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"ຢູ່​ເທິງ <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"ໂທ"</string>
<string name="description_call_action" msgid="4000549004089776147">"ໂທ​ຫາ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"ການ​ໂທ​ດ້ວຍ​ວິດີໂອ​ຫາ <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"ການ​ໂທວິ​ດີ​ໂອ <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"​ຟັງ​ຂໍ້​ຄວາມ​ສຽງ​ຈາກ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"ຫຼິ້ນຂໍ້ຄວາມສຽງຈາກ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"ຢຸດຂໍ້ຄວາມສຽງຈາກ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"ລຶບຂໍ້ຄວາມສຽງຈາກ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ຂໍ້​ຄວາມ​ສຽງ​ໃໝ່</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ຂໍ້​ຄວາມ​ສຽງ​ໃໝ່</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"ສ້າງ​ລາຍ​ຊື່​ສຳ​ລັບ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"ເພີ່ມ <xliff:g id="NAMEORNUMBER">^1</xliff:g> ໃສ່​ລາຍ​ຊື່​ທີ່​ມີ​ຢູ່"</string>
<string name="description_details_action" msgid="2433827152749491785">"ລາຍລະອຽດ​ການ​ໂທ​ສຳລັບ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"ລຶບ​ຈາກ​ປະ​ຫວັດ​ການ​ໂທ​ແລ້ວ"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"ລາຍງານ"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ມື້ນີ້"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"ມື້​ວານ​ນີ້"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"ເກົ່າກວ່າ"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"ການຕອບແບບວ່ອງໄວ"</string>
<string name="call_settings_label" msgid="313434211353070209">"​ການ​ໂທ"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"ການບ​ລັອກ​ສາຍ​ໂທ"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ການບ​ລັອກ​ສາຍ​ໂທ​ປິດ​ຊົ່ວ​ຄາວ"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ການບ​ລັອກ​ສາຍ​ໂທ​ຖືກ​ປິດ​ໃຊ້​ງານ​ແລ້ວ ເພາະ​ວ່າ​ທ່ານ​ໄດ້​ຕິດ​ຕໍ່​ຫາ​ຝ່າຍ​ບໍ​ລິ​ການ​ສຸກ​ເສີນ​ຈາກ​ໂທ​ລະ​ສັບ​ນີ້​ພາຍ​ໃນ 48 ຊົ່ວ​ໂມງ​ສຸດ​ທ້າຍ. ມັນ​ຈະ​ຖືກ​ເປີດ​ໃຊ້​ງານ​ອີກ​ໂດຍ​ອັດ​ຕະ​ໂນ​ມັດ ເມື່ອ​ໝົດ​ໄລ​ຍະ 48 ຊົ່ວ​ໂມງ​ໄປ​ແລ້ວ."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ນຳ​ຕົວ​ເລກ​ເຂົ້າ"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"ຜ່ານ​ມາ​ທ່ານ​ໄດ້​ໝາຍ​ຜູ້​ໂທ​ບາງ​ຄົນ​ໃຫ້​ຖືກ​ສົ່ງ​​ຫາ​ຂໍ້​ຄວາມ​ສຽງໂດຍ​ອັດ​ຕະ​ໂນ​ມັດ​ຜ່ານ​ແອັບ​ອື່ນ​."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ເບິ່ງ​ຕົວ​ເລກ"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ນໍາເຂົ້າ"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ນຳ​ເຂົ້າ​ລົ້ມ​ເຫລວ"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ປົດ​ບ​ລັອກ​ໝາຍ​ເລກ"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"ເພີ່ມໝາຍເລກ"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ການໂທຈາກເບີໂທເຫຼົ່ານີ້ຈະຖືກບລັອກໄວ້ ແລະຂໍ້ຄວາມສຽງຈະຖືກລຶບໂດຍອັດຕະໂນມັດ."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ການໂທຈາກເບີໂທເຫຼົ່ານີ້ຈະຖືກບລັອກໄວ້, ແຕ່ພວກເຂົາອາດຈະຍັງສາມາດຝາກຂໍ້ຄວາມສຽງໃຫ້ທ່ານໄດ້."</string>
+ <string name="block_list" msgid="7760188925338078011">"ໝາຍເລກ​ທີ່ບລັອກ​ແລ້ວ"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ບໍ່ຖືກຕ້ອງ."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ຖືກ​ບ​ລັອກ​ແລ້ວ."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ການບ​ລັອກ​ສາຍ​ໂທ​ຖືກ​ປິດ​ໃຊ້​ງານ​ແລ້ວ​ເປັນ​ເວ​ລາ 48 ຊົ່​ວ​ໂມງ"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"ປິດ​ໃຊ້​ງານ​ແລ້ວ ເພາະ​ວ່າ​ໄດ້​ມີ​ການ​ໂທ​ສຸກ​ເສີນ."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"ບັນ​ຊີ​ໂທ"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ເປີດ​"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"ຕັ້ງ​ການ​ອະ​ນຸ​ຍາດ"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"ເພື່ອ​ເປີດ​ໃຊ້​ງານ​ການໂທດ່ວນ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"ເພື່ອ​ເບິ່ງ​ບັນ​ທຶກ​ການ​ໂທ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"ເພື່ອ​ເບິ່ງ​ລາຍ​ຊື່​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ລາຍ​ຊື່"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"ເພື່ອ​ເຂົ້າ​ຫາ​ຂໍ້​ຄວາມ​ສຽງ​ຂອງ​ທ່ານ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"ເພື່ອຄົ້ນຫາລາຍາຊື່ຂອງທ່ານ, ໃຫ້ເປີດການອະນຸຍາດລາຍຊື່."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"ເພື່ອ​ເຮັດການໂທ, ເປີດ​ການ​ອະ​ນຸ​ຍາດ​ໂທ​ລະ​ສັບ."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ແອັບໂທລະສັບບໍ່ມີການອະນຸຍາດໃຫ້ຂຽນໃສ່ການຕັ້ງຄ່າລະບົບ."</string>
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 5edbe9ec6..b951dc49d 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Skambučiai"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefonas"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefonas"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefono skambinimo skydelis"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefonas"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Skambučių istorija"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Skambinti <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Redaguoti numerį prieš skambutį"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Pridėti prie adresatų"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Ištrinti iš skambučių istorijos"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Išvalyti skambučių istoriją"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ištrinti balso pašto pran."</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Bendrinti balso paštą"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Nėra skambučių"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Skambučių istorija"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Pranešti apie netikslų numerį"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopijuoti numerį"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopijuoti transkribuotą tekstą"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokuoti numerį"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> užblokuotas"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Panaikinti numerio blokavimą"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Panaikintas <xliff:g id="NUMBER">%1$s</xliff:g> blokavimas"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ANULIUOTI"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Ištrinti"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Redaguoti numerį prieš skambinant"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Išvalyti skambučių istoriją"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ištrinti balso pašto pranešim."</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Balso pšt. ištrintas"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANULIUOTI"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Išvalyti skambučių istoriją?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Bus ištrinti visi skambučiai iš istorijos"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Išvaloma skambučių istorija..."</string>
@@ -42,24 +49,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nauji b. pašto pran. iš <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Nepavyko paleisti balso pašto pranešimo"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Rašoma į buferį…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Įkeliamas balso pašto pranešimas..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nepavyko įkelti balso pašto pranešimo"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Tik skambučiai su balso paštu"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Tik gaunami skambučiai"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Tik siunčiami skambučiai"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Tik praleisti skambučiai"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vaizdinis balso paštas"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Peržiūrėkite ir klausykite balso pašto pranešimų neskambindami telefono numeriu. Gali būti taikomi duomenų mokesčiai."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Nustatymai"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Balso pašto naujiniai nepasiekiami"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Laukiantis naujas balso pašto pranešimas. Negalima dabar įkelti."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Nustatykite balso paštą"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Garso įrašas nepasiekiamas"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Nustatyti"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Skamb. į balso pšt."</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Mažiausias greitis"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Mažas greitis"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normalus greitis"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Didelis greitis"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Didžiausias greitis"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Pasirinkite numerį"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Pasirinkite numerį"</string>
@@ -75,7 +79,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Skambučių istorija"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Daugiau parinkčių"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"skambinimo skydelis"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopijuoti"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Rodyti tik išsiunčiamus"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Rodyti tik gaunamus"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Rodyti tik praleistus"</string>
@@ -98,12 +101,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Siunčiamasis vaizdo skambutis"</string>
<string name="type_missed_video" msgid="954396897034220545">"Praleistas vaizdo skambutis"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Balso paštas"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Atmestas skambutis"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Užblokuotas skambutis"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Gaunami skambučiai"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Paleisti balso pašto pranešimus"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Žiūrėti kontaktą <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Skambinti <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Išsami kontaktinė informacija: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Naujas balso pašto pranešimas."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Skambučių: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"Vaizdo skambutis."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Siųsti SMS <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -114,7 +118,11 @@
<string name="voicemail" msgid="3851469869202611441">"Balso paštas"</string>
<string name="private_num" msgid="6374339738119166953">"Privatus numeris"</string>
<string name="payphone" msgid="7726415831153618726">"Taksofonas"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sek."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Negalima skambinti šiuo numeriu"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Jei norite nustatyti balso paštą, eikite į „Meniu“ &gt; „Nustatymai“."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Jei norite skambinti į balso paštą, išjunkite lėktuvo režimą."</string>
@@ -127,45 +135,70 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Paieška balsu nepasiekiama"</string>
<string name="call_not_available" msgid="8941576511946492225">"Negalima skambinti telefonu, nes Telefono programa išjungta."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Šiame įrenginyje nėra tam skirtos programos"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Įveskite vardą ar telefono nr."</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Nėra skambučių"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Nėra naujų balso pašto pranešimų"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Ieškokite kontaktų"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Prid. nr. arba iešk. kontaktų"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Skambučių istorija yra tuščia"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Skambinti"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nėra jokių praleistų skambučių."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Balso pašto gautųjų aplankas yra tuščias."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Rodyti tik mėgstamiausius"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Istorija"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Skambučių istorija"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Praleisti"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Balso paštas"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokuoti numerį <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Skambučiai iš šio numerio bus užblokuoti, o balso pašto pranešimai bus automatiškai ištrinti."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Skambučiai iš šio numerio bus užblokuoti, tačiau skambintojas vis tiek galės palikti jums balso pašto pranešimus."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKUOTI"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Panaikinti numerio <xliff:g id="NUMBER">%1$s</xliff:g> blokavimą?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Šis numeris nebebus blokuojamas ir jį naudojant bus galima jums paskambinti."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"PANAIKINTI BLOKAVIMĄ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Spartusis rinkimas"</string>
- <string name="tab_recents" msgid="929949073851377206">"Naujausi"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Skambučių istorija"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktai"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Balso paštas"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Pašalintas iš adresyno"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Anuliuoti"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Skambinti numeriu <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Kurti naują kontaktą"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Pridėti prie esamo kontakto"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Pridėti prie kontakto"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Siųsti SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Atlikti vaizdo skambutį"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Visos skambučių istorijos peržiūra"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokuoti numerį"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Naujų praleistų skambučių: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Spartusis rinkimas – tai į mėgstamiausius įtrauktų ir tų, kuriais dažnai skambinate, numerių rinkimas vienu palietimu"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Kontaktų nėra"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Dar nieko neįtraukėte į sparčiojo rinkimo sąrašą"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Pridėti mėgstamiausią veiklą"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Dar neturite kontaktų"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Pridėti kontaktą"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Palieskite vaizdą, kad peržiūrėtumėte visus numerius, arba palieskite ir laikykite, kad pertvarkytumėte"</string>
<string name="remove_contact" msgid="1080555335283662961">"Pašalinti"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VISI KONTAKTAI"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Vaizdo skambutis"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"KLAUSYTI"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Peržiūrėti išsamią informaciją"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Siųsti pranešimą"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Išsami skambučio informacija"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Skambinti <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Praleistas skambutis: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Atsakytas skambutis: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Neskaitytas balso pašto pranešimas: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Balso pašto pranešimas: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Skambutis: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Skambinti"</string>
<string name="description_call_action" msgid="4000549004089776147">"Skambinti <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Atliktas vaizdo skambutis: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Vaizdo skambutis <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Klausyti balso pašto nuo <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Leisti balso pašto pranešimą iš <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pristabdyti balso pašto pranešimą iš <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Ištrinti balso pašto pranešimą iš <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> naujas balso pašto pranešimas</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> nauji balso pašto pranešimai</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> naujo balso pašto pranešimo</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> naujų balso pašto pranešimų</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Sukurti <xliff:g id="NAMEORNUMBER">^1</xliff:g> kontaktą"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Pridėti <xliff:g id="NAMEORNUMBER">^1</xliff:g> prie esamo kontakto"</string>
<string name="description_details_action" msgid="2433827152749491785">"Išsami skambučio informacija (<xliff:g id="NAMEORNUMBER">^1</xliff:g>)"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Ištrinta iš skambučių istorijos"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Pranešti"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Šiandien"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Vakar"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Senesni"</string>
@@ -189,5 +222,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Greiti atsakai"</string>
<string name="call_settings_label" msgid="313434211353070209">"Skambučiai"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Skambučių blokavimas"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Skamb. blokavimo funkcija laikinai išj."</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importuoti numerius"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Naudodami kitas programas anksčiau buvote pažymėję, kad kai kurie skambintojai būtų automatiškai nusiųsti į balso paštą."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Žr. skaičius"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importuoti"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importuoti nepavyko"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Panaikinti numerio blokavimą"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Pridėti numerį"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Skambučiai iš šių numerių bus užblokuoti, o balso pašto pranešimai bus automatiškai ištrinti."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Skambučiai iš šių numerių bus užblokuoti, tačiau skambintojai vis tiek galės palikti jums balso pašto pranešimus."</string>
+ <string name="block_list" msgid="7760188925338078011">"Užblokuoti numeriai"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> yra netinkamas numeris."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> jau užblokuotas."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Skambučių blokavimas išjungtas 48 val."</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Išjungta, nes skambinta pagalbos numeriu."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Skambinimo paskyros"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Įjungti"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Nustatyti leidimus"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Jei norite įgalinti spartųjį rinkimą, įjunkite Kontaktų programos leidimą."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Jei norite peržiūrėti skambučių žurnalą, įjunkite Telefono programos leidimą."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Jei norite peržiūrėti kontaktus, įjunkite Kontaktų programos leidimą."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Jei norite pasiekti balso paštą, įjunkite Telefono programos leidimą."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Kad galėtumėte ieškoti kontaktų, įjunkite Kontaktų leidimus."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Jei norite paskambinti, įjunkite Telefono programos leidimą."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefono programa neturi leidimo keisti sistemos nustatymų."</string>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index e020c18e7..1762a6c76 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Tālrunis"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Tālrunis"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Tālrunis"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Tālruņa numuru sastādīšanas tastatūra"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Zvanīt"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Zvanu vēsture"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Zvanīt: <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Rediģēt numuru pirms zvanīšanas"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Pievienot kontaktpersonām"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Dzēst no zvanu vēstures"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Dzēst zvanu vēsturi"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Dzēst balss pasta ziņojumu"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Kopīgot balss pastu"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Nav neviena zvana."</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Zvanu vēsture"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Ziņot par nepareizu numuru"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopēt numuru"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopēt transkripciju"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloķēt numuru"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> bloķēts"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Atbloķēt numuru"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> atbloķēts"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ATSAUKT"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Dzēst"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Rediģēt numuru pirms zvanīšanas"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Dzēst zvanu vēsturi"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Dzēst balss pasta ziņojumu"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Balss pasts dzēsts"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ATSAUKT"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vai dzēst zvanu vēsturi?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tiks dzēsti visi vēsturē saglabātie zvani."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Notiek zvanu vēstures dzēšana…"</string>
@@ -41,24 +48,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Jauns b. pasta ziņ. no: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Nevarēja atskaņot balss pasta ziņojumu."</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Notiek buferizācija..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Notiek balss pasta ziņojumu ielāde…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nevarēja ielādēt balss pasta ziņojumu."</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Tikai balss pasta zvani"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Tikai ienākošie zvani"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Tikai izejošie zvani"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Tikai neatbildētie zvani"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizuālais balss pasts"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Skatiet un klausieties balss pasta ziņojumus, nezvanot uz numuru. Var tikt piemērota maksa par datu pārraidi."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Iestatījumi"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Balss pasta atjauninājumi nav pieejami."</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Saņemti jauni balss pasta ziņojumi. Pašlaik tos nevar ielādēt."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Iestatiet balss pastu."</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio nav pieejams."</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Iestatīt"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Zvanīt balss pastam"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Mazākais ātrums"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Mazs ātrums"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Parasts ātrums"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Liels ātrums"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Lielākais ātrums"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Numura izvēlēšanās"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Numura izvēlēšanās"</string>
@@ -74,7 +78,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Zvanu vēsture"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Vairāk opciju"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"numura sastādīšanas tastatūra"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopēt"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Rādīt tikai izejošos zvanus"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Rādīt tikai ienākošos zvanus"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Rādīt tikai neatbildētos zvanus"</string>
@@ -97,23 +100,28 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Izejošs videozvans"</string>
<string name="type_missed_video" msgid="954396897034220545">"Neatbildēts videozvans"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Balss pasts"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Noraidīts zvans"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Bloķēts zvans"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Ienākošie zvani"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Atskaņot balss pasta ziņojumu"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Skatīt kontaktpersonu <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Zvanīt šim: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Kontaktpersonas informācija: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Jauns balss pasta ziņojums."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> zvani."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videozvans"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Sūtīt īsziņu šai kontaktpersonai: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nenoklausīti balss pasta ziņojumi"</string>
<string name="description_start_voice_search" msgid="520539488194946012">"Sākt meklēšanu ar balsi"</string>
- <string name="menu_callNumber" msgid="997146291983360266">"Zvaniet: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Zvanīt: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Nezināms"</string>
<string name="voicemail" msgid="3851469869202611441">"Balss pasts"</string>
<string name="private_num" msgid="6374339738119166953">"Privāts numurs"</string>
<string name="payphone" msgid="7726415831153618726">"Maksas tālrunis"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> plkst. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Uz šo numuru nevar piezvanīt."</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Lai iestatītu balss pastu, atveriet sadaļu Izvēlne &gt; Iestatījumi."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Lai piezvanītu balss pastam, vispirms izslēdziet lidojuma režīmu."</string>
@@ -126,45 +134,69 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Meklēšana ar balsi nav pieejama."</string>
<string name="call_not_available" msgid="8941576511946492225">"Nevar veikt tālruņa zvanu, jo lietojumprogramma Tālrunis tika atspējota."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Šajā ierīcē nav nevienas šai darbībai piemērotas lietotnes."</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Ievadiet vārdu/tālruņa numuru"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Nav neviena zvana."</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Nav neviena nesena balss pasta ziņojuma."</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Meklēt kontaktpersonas"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Pievienojiet numuru vai meklējiet kontaktpersonas"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Jūsu zvanu vēsturē nav ierakstu."</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zvanīt"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Jums nav neatbildētu zvanu."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Jūsu balss pasta iesūtne ir tukša."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Rādīt tikai izlasi"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Vēsture"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Zvanu vēsture"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Visi"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Neatb."</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Balss p."</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vai bloķēt numuru <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"No šī numura saņemtie zvani tiks bloķēti, un balss pasta ziņojumi tiks automātiski dzēsti."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"No šī numura saņemtie zvani tiks bloķēti, taču zvanītājs joprojām varēs jums atstāt balss pasta ziņojumus."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOĶĒT"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vai atbloķēt numuru <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Šis numurs vairs nebūs bloķēts."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ATBLOĶĒT"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Ātrie zvani"</string>
- <string name="tab_recents" msgid="929949073851377206">"Pēdējie"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Zvanu vēsture"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktpersonas"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Balss pasts"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Noņemts no izlases"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Atsaukt"</string>
- <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zvaniet: <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Zvanīt: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Izveidot jaunu kontaktpersonu"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Pievienot esošai kontaktpersonai"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Pievienot kontaktpersonai"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Sūtīt īsziņu"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Veikt videozvanu"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Visas zvanu vēstures skatīšana"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloķēt numuru"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Jauni neatbildēti zvani: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Izmantojot ātros zvanus, varat ar vienu pieskārienu zvanīt kontaktpersonām, kuras ir pievienotas jūsu izlasei vai kurām bieži zvanāt."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Nav kontaktpersonu"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Ātro zvanu sarakstā vēl nav nevienas kontaktpersonas."</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Pievienot izlasei"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Jums vēl nav nevienas kontaktpersonas."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Pievienot kontaktpersonu"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Pieskarieties attēlam, lai skatītu visus numurus, vai pieskarieties attēlam un turiet to, lai veiktu pārkārtošanu."</string>
<string name="remove_contact" msgid="1080555335283662961">"Noņemt"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VISAS KONTAKTPERSONAS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videozvans"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"KLAUSĪTIES"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Skatīt detalizētu informāciju"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Sūtīt ziņojumu"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Informācija par zvanu"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Zvanīt: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Neatbildēts zvans no: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Atbildēts zvans no: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Nelasīts balss pasts no <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Balss pasts no <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Izejošs zvans: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"kontā <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Zvanīt"</string>
<string name="description_call_action" msgid="4000549004089776147">"Zvanīt: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Izejošs videozvans: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Zvaniet kontaktpersonai <xliff:g id="NAMEORNUMBER">^1</xliff:g>, izmantojot videozvanu."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Klausīties balss pasta ziņojumu no: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Atskaņot balss pasta ziņojumu no: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pārtraukt balss pasta ziņojuma atskaņošanu no: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Dzēst balss pasta ziņojumu no: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="zero"><xliff:g id="COUNT_1">%d</xliff:g> jauni balss pasta ziņojumi</item>
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> jauns balss pasta ziņojums</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> jauni balss pasta ziņojumi</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Izveidojiet kontaktpersonu, izmantojot vienumu <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Pievienojiet vienumu <xliff:g id="NAMEORNUMBER">^1</xliff:g> esošai kontaktpersonai."</string>
<string name="description_details_action" msgid="2433827152749491785">"Zvanu informācija par šādu numuru: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Dzēsts no zvanu vēstures."</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Ziņot"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Šodien"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Vakar"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Vecāki zvani"</string>
@@ -188,5 +220,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Ātrās atbildes"</string>
<string name="call_settings_label" msgid="313434211353070209">"Zvani"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Zvanu bloķēšana"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Zvanu bloķēšana ir īslaicīgi izslēgta"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importēt numurus"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Jūs iepriekš atzīmējāt dažus zvanītājus, kuri automātiski jānovirza uz balss pastu, izmantojot citas lietotnes."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Skatīt numurus"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importēt"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importēšana neizdevās"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Atbloķēt numuru"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Pievienot numuru"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"No šiem numuriem saņemtie zvani tiks bloķēti, un balss pasta ziņojumi tiks automātiski dzēsti."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"No šiem numuriem saņemtie zvani tiks bloķēti, taču zvanītāji joprojām varēs jums atstāt balss pasta ziņojumus."</string>
+ <string name="block_list" msgid="7760188925338078011">"Bloķētie numuri"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> nav derīgs."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> jau ir bloķēts."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Zvanu bloķēšana atspējota uz 48 stundām"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Zvanu bloķēšana atspējota, jo tika veikts ārkārtas zvans."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Zvanu konti"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Ieslēgt"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Iestatīt atļaujas"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Lai iespējotu ātros zvanus, ieslēdziet atļauju Kontaktpersonas."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Lai skatītu zvanu žurnālu, ieslēdziet atļauju Tālrunis."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Lai skatītu kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Lai piekļūtu balss pastam, ieslēdziet atļauju Tālrunis."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Lai meklētu savas kontaktpersonas, ieslēdziet atļauju Kontaktpersonas."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Lai veiktu zvanu, ieslēdziet atļauju Tālrunis."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Tālruņa lietotnei nav atļaujas rakstīt sistēmas iestatījumos."</string>
</resources>
diff --git a/res/values-mk-rMK/strings.xml b/res/values-mk-rMK/strings.xml
index f1fbfdc29..21987d334 100644
--- a/res/values-mk-rMK/strings.xml
+++ b/res/values-mk-rMK/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Бирач"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Телефон"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Телефон"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Телефонска тастатура"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Телефон"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Историја на повици"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Повикај <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Уреди број пред повик"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Додај во контакти"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Избришете од историјата на повици"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Избришете историја на повици?"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Избриши говорна пошта"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Сподели говорна пошта"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Нема повици"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Историја на повици"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Пријави неточен број"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Копирај го бројот"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Копирај транскрипција"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Блокирај го бројот"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> е блокиран"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Деблокирај го бројот"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> е деблокиран"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ВРАТИ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Избриши"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Уредете го бројот пред повикот"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Избришете ја историјата на повици"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Избришете ја говорната пошта"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Гов. пошта е избриш."</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ВРАТИ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Избришете историја на повици?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ова ќе ги избрише сите повици од историјата"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Се чисти историјата на повици…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Нова говорна пошта од <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Говорната пошта не можеше да се репродуцира"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Меѓумеморирање..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Се вчитува говорната пошта…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Говорната пошта не можеше да се вчита"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Само повици со говорна пошта"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Само дојдовни повици"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Само појдовни повици"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Само пропуштени повици"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Визуелна говорна пошта"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Гледајте и слушајте ја говорната пошта без да треба да повикувате број. Може да важат стандардни тарифи."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Поставки"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Не се достапни ажурирања на говорната пошта"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Чека нова говорна пошта. Не може да се вчита во моментов."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Поставете ја говорната пошта"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Аудио не е достапно"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Подеси"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Повикај говорна пошта"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Најбавно"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Побавно"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Нормално"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Побрзо"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Најбрзо"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Избери број"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Избери број"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Историја на повици"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Повеќе опции"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"тастатура за избирање"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Копирај"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Прикажи само појдовни"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Прикажи само дојдовни"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Прикажи само пропуштени"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Појдовен видеоповик"</string>
<string name="type_missed_video" msgid="954396897034220545">"Пропуштен видеоповик"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Говорна пошта"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Одбиен повик"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Блокирани повик"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Дојдовни повици"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Преслушај говорна пошта"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Повикај <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Детали за контакт за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Нова говорна пошта."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> повици."</string>
<string name="description_video_call" msgid="2933838090743214204">"Видеоповик."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Испратете СМС до <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Говорна пошта"</string>
<string name="private_num" msgid="6374339738119166953">"Приватен број"</string>
<string name="payphone" msgid="7726415831153618726">"Говорница"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> во <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Бројот не може да се повика"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"За да подесите говорна пошта, одете на Мени &gt; Подесувања."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"За да се јавите во говорна пошта, прво исклучете режим на работа во авион."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Гласовното пребарување не е достапно"</string>
<string name="call_not_available" msgid="8941576511946492225">"Не може да се воспостави телефонски повик, бидејќи апликацијата Телефон е оневозможена."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Нема апликација за тоа на уредот"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Внесете име или телефонски број"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Нема повици"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Нема скорешна говорна пошта"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Пребарајте контакти"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Додајте број или побарајте контакти"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Историјата на повици е празна"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Повикај"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Немате пропуштени повици."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Приемното сандаче на говорната пошта е празно."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Прикажи само омилени"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Историја"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Историја на повици"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Сите"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропуштени"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Говорна пошта"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Блокирај го <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Повиците од овој број ќе се блокираат, а говорната пошта автоматски ќе се брише."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Повиците од овој број ќе се блокираат, но можно е повикувачот сѐ уште да може да ви остава говорна пошта."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"БЛОКИРАЈ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Деблокирај го <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Бројов веќе нема да биде блокиран да ве повикува."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ДЕБЛОКИРАЈ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Брзо бирање"</string>
- <string name="tab_recents" msgid="929949073851377206">"Неодамнешни"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Историја на повици"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Контакти"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Говорна пошта"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Отстранет од омилени"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Врати"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Повикај <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Создај нов контакт"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Додај во постоечки контакт"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Додај на контакт"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Испрати СМС"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Остварете видеоповик"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Погледнете цела историја на повик"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Блокирај го бројот"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> нови пропуштени повици"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Брзото бирање е бирање со еден допир на омилените и броевите кои често ги повикувате"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Нема контакти"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Сè уште немате никого на брзо бирање"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Додај омилено"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Сè уште немате контакти"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Додај контакт"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Допрете ја сликата за да ги видите сите броеви или допрете и држете за промена на редоследот"</string>
<string name="remove_contact" msgid="1080555335283662961">"Отстрани"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"СИТЕ КОНТАКТИ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Видеоповик"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"СЛУШАЈТЕ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Прикажи детали"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Испрати порака"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Детали на повик"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Повикај <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Пропуштен повик од <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Одговорен повик од <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Непрочитана говорна порака од <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Говорна порака од <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Повик до <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"на <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Повикај"</string>
<string name="description_call_action" msgid="4000549004089776147">"Повикај <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Видеоповик до <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Видеоповик до <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Слушајте говорна пошта од <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Пушти говорна порака од <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Паузирај говорна порака од <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Избриши говорна пошта од <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> нова говорна порака</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> нови говорни пораки</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Создај контакт за <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Додај <xliff:g id="NAMEORNUMBER">^1</xliff:g> во постоечки контакт"</string>
<string name="description_details_action" msgid="2433827152749491785">"Информации на повикот за <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Избришано од историјата на повици"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Извештај"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Денес"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Вчера"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Постари"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Брзи одговори"</string>
<string name="call_settings_label" msgid="313434211353070209">"Повици"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Блокирање повик"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокирањето повик е привремено исклучено"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокирањето повици е исклучено бидејќи ја контактиравте службата за итни случаи од телефонов во изминатите 48 часа. Повторно ќе се овозможи автоматски откако ќе истече периодот од 48 часа."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Увези броеви"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Претходно означивте некои повикувачи да се испратат автоматски на говорната пошта преку други апликации."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Прикажи броеви"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Увези"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Увоз не успеа"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Деблокирај го бројот"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Додај број"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Повиците од овие броеви ќе се блокираат, а говорната пошта автоматски ќе се брише."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Повиците од овие броеви ќе се блокираат, но можно е сѐ уште да може да ви оставаат говорна пошта."</string>
+ <string name="block_list" msgid="7760188925338078011">"Блокирани броеви"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> не е важечки."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> веќе е блокиран."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокирањето на повикот е оневозможено 48 часа"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Оневозможено е затоа што беше направен итен повик."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Сметки за повикување"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Вклучи"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Постави дозволи"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"За да овозможите брзо бирање, вклучете ја дозволата за контакти."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"За да ја видите евиденцијата на повици, вклучете ја дозволата за телефон."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"За да ги видите контактите, вклучете ја дозволата за контакти."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"За да пристапите кон говорната пошта, вклучете ја дозволата за телефон."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"За да ги пребарувате контактите, вклучете ги дозволите за контакти."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"За да воспоставите повик, вклучете ја дозволата за телефон."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Апликацијата на телефонот нема дозвола да пишува во поставките на системот."</string>
</resources>
diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml
index 93fc36ec4..516309fbb 100644
--- a/res/values-ml-rIN/strings.xml
+++ b/res/values-ml-rIN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"ഡയലർ"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ഫോണ്‍"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ഫോണ്‍"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ഫോൺ ഡയൽപാഡ്"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ഫോണ്‍"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"കോള്‍‌ ചരിത്രം"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> എന്നതിൽ വിളിക്കുക"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"കോൾ ചെയ്യുന്നതിന് മുമ്പായി നമ്പർ എഡിറ്റുചെയ്യുക"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"കോൺടാക്റ്റുകളിൽ ചേർക്കുക"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"കോൾ ചരിത്രത്തിൽ നിന്ന് മായ്‌ക്കുക"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"കോൾ ചരിത്രം മായ്‌ക്കുക"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"വോയ്‌സ്മെയിൽ ഇല്ലാതാക്കുക"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"വോയ്‌സ്‌മെയിൽ പങ്കിടുക"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"കോളുകളൊന്നുമില്ല"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"കോള്‍‌ ചരിത്രം"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"കൃത്യമല്ലാത്ത നമ്പർ റിപ്പോർട്ടുചെയ്യുക"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"നമ്പർ പകർത്തുക"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ട്രാൻസ്ക്രിപ്ഷൻ പകർത്തുക"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"നമ്പർ ബ്ലോക്കുചെയ്യുക"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്തു"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"നമ്പർ അൺബ്ലോക്കുചെയ്യുക"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> അൺബ്ലോക്കുചെയ്തു"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"പഴയപടിയാക്കുക"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"ഇല്ലാതാക്കുക"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"കോൾ ചെയ്യുന്നതിന് മുമ്പായി നമ്പർ എഡിറ്റുചെയ്യുക"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"കോൾ ചരിത്രം മായ്‌ക്കുക"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"വോയ്‌സ്മെയിൽ ഇല്ലാതാക്കുക"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"വോയ്സ്മെയിൽ ഇല്ലാതാക്കി"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"പഴയപടിയാക്കുക"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"കോൾ ചരിത്രം മായ്‌ക്കണോ?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"ഇത് നിങ്ങളുടെ ചരിത്രത്തിൽ നിന്ന് എല്ലാ കോളുകളും ഇല്ലാതാക്കും"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"കോൾ ചരിത്രം മായ്‌ക്കുന്നു..."</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> എന്നയാളിൽ നിന്നുള്ള പുതിയ വോയ്‌സ്‌മെയിൽ"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"വോയ്‌സ്‌മെയിൽ പ്‌ലേ ചെയ്യാനായില്ല"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"ബഫർ ചെയ്യുന്നു…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"വോയ്‌സ്‌മെയിൽ ലോഡുചെയ്യുന്നു..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"വോയ്‌സ്‌മെയിൽ ലോഡുചെയ്യാനായില്ല"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"വോയ്‌സ്മെയിൽ ഉള്ള കോളുകൾ മാത്രം"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"ഇൻകമിംഗ് കോളുകൾ മാത്രം"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"ഔട്ട്‌ഗോയിംഗ് കോളുകൾ മാത്രം"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"മിസ്‌ഡ് കോളുകൾ മാത്രം"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"വിഷ്വൽ വോയ്‌സ്‌മെയിൽ"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"ഏതെങ്കിലും നമ്പറിലേക്ക് വിളിക്കാതെ തന്നെ, വോയ്സ്‌മെയിൽ കാണുക, കേൾക്കുക. ഡാറ്റാ നിരക്കുകൾ ബാധകമായേക്കാം."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"ക്രമീകരണം"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"വോയ്‌സ്‌മെയിൽ അപ്‌ഡേറ്റുകൾ ലഭ്യമല്ല"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"പുതിയ വോയ്‌സ്‌മെയിൽ കാത്തിരിക്കുന്നു. ഇപ്പോൾ ലോഡുചെയ്യാനാവില്ല."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"നിങ്ങളുടെ വോയ്‌സ്‌മെയിൽ സജ്ജീകരിക്കുക"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ഓഡിയോ ലഭ്യമല്ല"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"സജ്ജമാക്കുക"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"വോയ്‌സ്‌മെയിൽ വിളിക്കുക"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"വളരെ കുറഞ്ഞ വേഗത"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"കുറഞ്ഞ വേഗത"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"സാധാരണ വേഗത"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"കൂടിയ വേഗത"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"വളരെ കൂടിയ വേഗത"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"നമ്പർ തിരഞ്ഞെടുക്കുക"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"നമ്പർ തിരഞ്ഞെടുക്കുക"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"കോള്‍‌ ചരിത്രം"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"കൂടുതല്‍ ഓപ്‌ഷനുകള്‍"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ഡയൽ പാഡ്"</string>
- <string name="menu_copy" msgid="6108677035381940698">"പകര്‍ത്തുക"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"ഔട്ട്‌ഗോയിംഗ് മാത്രം കാണിക്കുക"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"ഇൻ‌കമിംഗ് മാത്രം കാണിക്കുക"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"മിസ്‌ഡ് മാത്രം കാണിക്കുക"</string>
@@ -90,29 +93,34 @@
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"വിളിച്ചുകൊണ്ടിരിക്കുന്ന കോളിലേക്ക് മടങ്ങുക"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"കോൾ ചേർക്കുക"</string>
<string name="type_incoming" msgid="6502076603836088532">"ഇന്‍കമിംഗ് കോള്‍"</string>
- <string name="type_outgoing" msgid="343108709599392641">"ഔട്ട്‌ഗോയിംഗ് കോൾ"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"വിളിച്ച കോൾ"</string>
<string name="type_missed" msgid="2720502601640509542">"മിസ്‌ഡ് കോൾ"</string>
<string name="type_incoming_video" msgid="82323391702796181">"ഇൻകമിംഗ് വീഡിയോ കോൾ"</string>
- <string name="type_outgoing_video" msgid="2858140021680755266">"ഔട്ട്ഗോയിംഗ് വീഡിയോ കോൾ"</string>
+ <string name="type_outgoing_video" msgid="2858140021680755266">"വിളിച്ച വീഡിയോ കോൾ"</string>
<string name="type_missed_video" msgid="954396897034220545">"വീഡിയോ കോൾ നഷ്‌ടമായി"</string>
<string name="type_voicemail" msgid="5153139450668549908">"വോയ്‌സ്‌മെയിൽ"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"നിരസിച്ച കോൾ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"ബ്ലോക്കുചെയ്ത കോൾ"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ഇൻകമിംഗ് കോളുകൾ"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"വോയ്‌സ്‌മെയിൽ പ്ലേ ചെയ്യുക"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> എന്ന കോൺടാക്റ്റ് കാണുക"</string>
- <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> എന്നതിൽ വിളിക്കുക"</string>
+ <string name="description_call" msgid="3443678121983852666">"വിളിക്കുക <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> എന്നതിന്റെ കോൺ‌ടാക്റ്റ് വിശദാംശങ്ങൾ"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"പുതിയ വോയ്‌സ്‌മെയിൽ."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> കോളുകൾ."</string>
<string name="description_video_call" msgid="2933838090743214204">"വീഡിയോ കോൾ."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> എന്നയാൾക്ക് SMS അയയ്‌ക്കുക"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"കേൾക്കാത്ത വോയ്‌സ്‌മെയിൽ"</string>
<string name="description_start_voice_search" msgid="520539488194946012">"ശബ്ദ തിരയൽ ആരംഭിക്കുക"</string>
- <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> എന്നതിൽ വിളിക്കുക"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"വിളിക്കുക <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"അജ്ഞാതം"</string>
<string name="voicemail" msgid="3851469869202611441">"വോയ്‌സ്‌മെയിൽ"</string>
<string name="private_num" msgid="6374339738119166953">"സ്വകാര്യ നമ്പർ"</string>
<string name="payphone" msgid="7726415831153618726">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> സെക്കൻഡ്"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> മി. <xliff:g id="SECONDS">%s</xliff:g> സെ."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>-ന്"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ഈ നമ്പറിലേക്ക് കോൾ ചെയ്യാനാവില്ല"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"വോയ്‌സ്‌മെയിൽ സജ്ജീകരിക്കുന്നതിന്, മെനു &gt; ക്രമീകരണങ്ങൾ എന്നതിലേക്ക് പോകുക."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"വോയ്‌സ്‌മെയിൽ വിളിക്കാൻ ആദ്യം ഫ്ലൈറ്റ് മോഡ് ഓഫാക്കുക."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"വോയ്‌സ് തിരയൽ ലഭ്യമല്ല"</string>
<string name="call_not_available" msgid="8941576511946492225">"ഫോൺ അപ്ലിക്കേഷൻ പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നതിനാൽ ഫോൺ കോൾ ചെയ്യാനാകില്ല."</string>
<string name="activity_not_available" msgid="2287665636817987623">"അതിനായി ഈ ഉപകരണത്തിൽ അപ്ലിക്കേഷനുകളൊന്നുമില്ല"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"ഒരു പേരോ ഫോൺ നമ്പറോ നൽകുക"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"കോളുകളൊന്നുമില്ല"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"പുതിയ വോയ്‌സ്‌‌മെയിലുകളൊന്നുമില്ല"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"കോണ്‍‌ടാക്റ്റുകള്‍ തിരയുക"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"നമ്പർ ചേർക്കുക അല്ലെങ്കിൽ കോൺടാക്റ്റുകൾ തിരയുക"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"നിങ്ങളുടെ കോൾ ചരിത്രം ശൂന്യമാണ്"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"ഒരു കോൾ ചെയ്യുക"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"നിങ്ങൾക്ക് മിസ്‌ഡ് കോളുകളൊന്നുമില്ല."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"നിങ്ങളുടെ വോയ്സ്മെയിൽ ഇൻബോക്സ് ശൂന്യമാണ്."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"പ്രിയപ്പെട്ടവ മാത്രം കാണിക്കുക"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ചരിത്രം"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"കോൾ ചരിത്രം"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"എല്ലാം"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"മിസ്‌ഡ്"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"വോയ്‌സ്‌മെയിൽ"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്യണോ?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ഈ നമ്പറിൽ നിന്നുള്ള കോളുകൾ ബ്ലോക്കുചെയ്യും, വോയ്സ്മെയിലുകളെ സ്വയമേവ ഇല്ലാതാക്കും."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ഈ നമ്പറിൽ നിന്നുള്ള കോളുകൾ ബ്ലോക്കുചെയ്യും, എന്നാൽ വിളിക്കുന്നയാൾക്ക് അപ്പോഴും നിങ്ങൾക്ക് വോയ്സ്‌മെയിലുകൾ അയയ്ക്കാൻ കഴിഞ്ഞേക്കാം."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ബ്ലോക്കുചെയ്യുക"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> അൺബ്ലോക്കുചെയ്യണോ?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"നിങ്ങളെ വിളിക്കുന്നതിൽ നിന്ന് ഈ നമ്പർ തുടർന്നങ്ങോട്ട് ബ്ലോക്കുചെയ്യപ്പെടില്ല."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"അൺബ്ലോക്കുചെയ്യുക"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"സ്‌പീഡ് ഡയൽ"</string>
- <string name="tab_recents" msgid="929949073851377206">"പുതിയവ"</string>
+ <string name="tab_history" msgid="2563144697322434940">"കോൾ ചരിത്രം"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"കോണ്‍ടാക്റ്റുകള്‍"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"വോയ്‌സ്‌മെയിൽ"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"പ്രിയപ്പെട്ടവയിൽ നിന്നും നീക്കംചെയ്‌തു"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"പഴയപടിയാക്കുക"</string>
- <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> എന്നതിൽ വിളിക്കുക"</string>
- <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"പുതിയ കോൺടാക്റ്റ് സൃഷ്‌ടിക്കുക"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"നിലവിലുള്ള കോൺടാക്റ്റിലേക്ക് ചേർക്കുക"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"വിളിക്കുക <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"പുതിയകോൺടാക്റ്റ് സൃഷ്‌ടിക്കൂ"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"ഒരുകോൺടാക്റ്റിൽ ചേർക്കൂ"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS അയയ്ക്കുക"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"വീഡിയോ കോൾ ചെയ്യുക"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"മുഴുവൻ കോൾ ചരിത്രവും കാണുക"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"നമ്പർ ബ്ലോക്കുചെയ്യുക"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> പുതിയ മിസ്‌ഡ് കോളുകൾ"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"നിങ്ങൾ ഇടയ്ക്കിടെ വിളിക്കുന്ന പ്രിയപ്പെട്ടവർക്കും നമ്പറുകൾക്കുമായി ഒരൊറ്റ സ്പർശനത്തിൽ ഡയൽ ചെയ്യുന്ന സവിശേഷതയാണ് സ്‌പീഡ് ഡയൽ"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"കോൺടാക്റ്റുകളൊന്നുമില്ല"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"ഇതുവരെ ആരും നിങ്ങളുടെ സ്പീഡ് ഡയലിൽ ഇല്ല"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"പ്രിയപ്പെട്ടത് ചേർക്കുക"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"നിങ്ങൾക്ക് ഇതുവരെയും കോൺടാക്റ്റുകൾ ഒന്നുമില്ല."</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"ഒരു കോണ്‍ടാക്റ്റ് ചേര്‍ക്കുക"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"എല്ലാ നമ്പറുകളും കാണാൻ ചിത്രം സ്‌പർശിക്കുക അല്ലെങ്കിൽ വീണ്ടും ക്രമീകരിക്കാൻ സ്‌പർശിച്ച് പിടിക്കുക"</string>
<string name="remove_contact" msgid="1080555335283662961">"നീക്കംചെയ്യുക"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"എല്ലാ കോൺ‌ടാക്റ്റുകളും"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"വീഡിയോ കോള്‍"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"കേൾക്കുക"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"വിശദാംശങ്ങൾ കാണുക"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"ഒരു സന്ദേശം അയയ്‌ക്കുക"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"കോൾ വിശദാംശങ്ങൾ"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്ന നമ്പർ/വ്യക്തിയെ വിളിക്കൂ"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> എന്നതിൽ നിന്നുള്ള മിസ്ഡ് കോൾ."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> എന്നതിൽ നിന്നുള്ള മറുപടി നൽകിയ കോൾ."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> എന്നതിൽ നിന്നുള്ള വായിക്കാത്ത വോയ്സ്മെയിൽ."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> എന്നതിൽ നിന്നുള്ള വോയ്സ്മെയിൽ."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> എന്നതിലേക്കുള്ള കോൾ."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> എന്നതിൽ"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"വിളിക്കുക"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> വിളിക്കുക"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്നയാൾക്കുള്ള വീഡിയോ കോൾ."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്നതുമായി വീഡിയോ കോൾ നടത്തുക."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്നയാളിൽ നിന്നുള്ള വോയ്‌സ്മെയിൽ കേൾക്കുക"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്ന നമ്പറിൽ/വ്യക്തിയിൽ നിന്നുള്ള വോയ്സ്‌മെയിൽ പ്ലേ ചെയ്യുക"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്ന നമ്പറിൽ/വ്യക്തിയിൽ നിന്നുള്ള വോയ്സ്‌മെയിൽ തൽക്കാലം നിർത്തുക"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്ന നമ്പറിൽ/വ്യക്തിയിൽ നിന്നുള്ള വോയ്സ്മെയിൽ ഇല്ലാതാക്കുക"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> പുതിയ വോയ്‌സ്‌മെയിലുകൾ</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> പുതിയ വോയ്‌സ്‌മെയിൽ</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്നതിനായി കോൺടാക്റ്റ് സൃഷ്‌ടിക്കുക"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"നിലവിലുള്ള കോൺടാക്റ്റിലേക്ക് <xliff:g id="NAMEORNUMBER">^1</xliff:g> ചേർക്കുക"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> എന്നയാളുടെ കോൾ വിശദാംശങ്ങൾ"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"കോൾ ചരിത്രത്തിൽ നിന്ന് ഇല്ലാതാക്കി"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"റിപ്പോർട്ടുചെയ്യുക"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ഇന്ന്"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"ഇന്നലെ"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"പഴയത്"</string>
@@ -178,7 +209,7 @@
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"ശബ്‌ദവും വൈബ്രേഷനും"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"പ്രവേശനക്ഷമത"</string>
<string name="ringtone_title" msgid="760362035635084653">"ഫോൺ റിംഗ്ടോൺ"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"കോളുകൾക്കായും വൈബ്രേറ്റ് ചെയ്യും"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"കോളുകൾക്കും വൈബ്രേറ്റ്"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"ഡയൽപാഡ് ടോണുകൾ"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"ഡയൽപാഡ് ടോണിന്റെ ദൈർഘ്യം"</string>
<string-array name="dtmf_tone_length_entries">
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"ദ്രുത പ്രതികരണങ്ങൾ"</string>
<string name="call_settings_label" msgid="313434211353070209">"കോളുകൾ"</string>
- <string name="phone_account_settings_label" msgid="5864322009841175294">"കോളുചെയ്യാനുള്ള അക്കൗണ്ട്"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"കോൾ ബ്ലോക്കുചെയ്യൽ"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"കോൾ ബ്ലോക്കുചെയ്യൽ താൽക്കാലികമായി ഓഫാണ്"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"കഴിഞ്ഞ 48 മണിക്കൂറിനുള്ളിൽ നിങ്ങൾ ഈ ഫോണിൽ നിന്ന് അടിയന്തിര സേവനങ്ങളുമായി ബന്ധപ്പെട്ടതിനാൽ കോൾ ബ്ലോക്കുചെയ്യൽ പ്രവർത്തനരഹിതമാക്കി. 48 മണിക്കൂർ സമയപരിധി കഴിഞ്ഞയുടൻ ഇത് സ്വയമേവ പ്രവർത്തനക്ഷമമാക്കപ്പെടും."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"നമ്പറുകൾ ഇമ്പോർട്ടുചെയ്യുക"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"മറ്റ് ആപ്സ് വഴി വോയ്സ്‌മെയിൽ സ്വയമേവ അയയ്ക്കുന്നതിന് കോൾ ചെയ്യുന്നവരിൽ ചിലരെ നിങ്ങൾ മുമ്പ് അടയാളപ്പെടുത്തി."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"നമ്പറുകൾ കാണുക"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ഇമ്പോർട്ടുചെയ്യുക"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ഇമ്പോർട്ടുചെയ്യൽ പരാജയപ്പെട്ടു"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"നമ്പർ അൺബ്ലോക്കുചെയ്യുക"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"നമ്പർ ചേർക്കുക"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ഈ നമ്പറുകളിൽ നിന്നുള്ള കോളുകൾ ബ്ലോക്കുചെയ്യും, വോയ്സ്മെയിലുകളെ സ്വയമേവ ഇല്ലാതാക്കും."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ഈ നമ്പറുകളിൽ നിന്നുള്ള കോളുകൾ ബ്ലോക്കുചെയ്യും, എന്നാൽ വിളിക്കുന്നവർക്ക് അപ്പോഴും നിങ്ങൾക്ക് വോയ്സ്‌മെയിലുകൾ അയയ്ക്കാൻ കഴിഞ്ഞേക്കാം."</string>
+ <string name="block_list" msgid="7760188925338078011">"ബ്ലോക്കുചെയ്ത നമ്പറുകൾ"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> അസാധുവാണ്."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"ഇതിനകം തന്നെ <xliff:g id="NUMBER">%1$s</xliff:g> ബ്ലോക്കുചെയ്തിരിക്കുന്നു"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"48 മണിക്കൂർ നേരത്തേക്ക് കോൾ ബ്ലോക്കുചെയ്യൽ പ്രവർത്തനരഹിതമാക്കി"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"എമർജൻസി കോൾ നടത്തിയതിനാൽ പ്രവർത്തനരഹിതമാക്കി."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"കോളിംഗ് അക്കൗണ്ട്"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ഓണാക്കുക"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"അനുമതികൾ സജ്ജമാക്കുക"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"സ്പീഡ് ഡയൽ പ്രവർത്തനക്ഷമാക്കുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"നിങ്ങളുടെ കോൾ ലോഗ് കാണുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ കാണുന്നതിന്, \'കോൺടാക്റ്റുകൾ\' അനുമതി ഓണാക്കുക."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"നിങ്ങളുടെ വോയ്‌സ്‌മെയിൽ ആക്സസ് ചെയ്യുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"നിങ്ങളുടെ കോൺടാക്റ്റുകൾ തിരയുന്നതിന് കോൺടാക്റ്റുകൾക്കുള്ള അനുമതികൾ ഓണാക്കുക."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"കോൾ വിളിക്കുന്നതിന്, \'ഫോൺ\' അനുമതി ഓണാക്കുക."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"സിസ്റ്റം ക്രമീകരണത്തിലേക്ക് എഴുതാൻ ഫോൺ ആപ്പിന് അനുമതിയില്ല."</string>
</resources>
diff --git a/res/values-mn-rMN/strings.xml b/res/values-mn-rMN/strings.xml
index f2643d024..927e04422 100644
--- a/res/values-mn-rMN/strings.xml
+++ b/res/values-mn-rMN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Залгагч"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Гар утас"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Утас"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Утасны дуудлага хийх дэлгэц"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Утас"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Дуудлагын түүх"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> руу залгах"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Дуудлага хийхийн өмнө дугаарыг засах"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Харилцагчдад нэмэх"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Дуудлагын түүхээс устгах"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Дуудлагын түүхийг устгах уу?"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Дуут шууданг устгах"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Дуут шууданг хуваалцах"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Дуудлага алга"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Дуудлагын түүх"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Тохиромжгүй дугаарыг мэдээлэх"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Дугаар хуулах"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Галиглалыг хуулах"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Дугаар блоклох"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g>-г блоклосон"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Дугаар блокноос гаргах"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g>-г блокоос гаргасан"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"БУЦААХ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Устгах"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Залгахын өмнө дугаар засах"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Дуудлагын түүхийг устгах уу?"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Дуут шууданг устгах"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Дуут шууданг устгасан"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"БУЦААХ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Дуудлагын түүхийг устгах уу?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Энэ нь таны хийсэн бүх дуудлагыг түүхээс устгана."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Дуудлагын түүхийг устгаж байна..."</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>-с ирсэн шинэ дуут шуудан"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Дуут шууданг тоглуулж чадсангүй"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Буферлэж байна…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Дуут шууданг ачаалж байна..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Дуут шууданг ачаалж чадсангүй"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Зөвхөн дуут шуудантай дуудлагуудыг"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Зөвхөн ирсэн дуудлага"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Зөвхөн залгасан дуудлагуудыг"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Зөвхөн аваагүй дуудлагуудыг"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Уншиж болохуйц дуут шуудан"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Дугаар луу залгалгүйгээр дуут шууданг харах болон сонсоорой. Дата ашиглалтын төлбөр гарч болзошгүй."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Тохиргоо"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Дуут шуудангийн шинэчлэлтүүд байхгүй байна"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Шинэ дуут шуудан ирсэн байна. Гэвч одоохондоо ачаалах боломжгүй байна."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Дуут шуудангаа тохируулах"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Дуу байхгүй байна"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Тохируулах"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Дуут шуудан руу залгах"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Хамгийн удаанаар"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Удаанаар"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Энгийн хурдаар"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Хурданаар"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Хамгийн хурданаар"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Дугаар сонгоно уу"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Дугаар сонгоно уу"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Дуудлагын түүх"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Нэмэлт сонголтууд"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"дугаар цуглуулагч"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Хуулах"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Зөвхөн залгасан дуудлагуудыг харуулах"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Зөвхөн ирсэн дуудлагуудыг харуулах"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Зөвхөн аваагүй дуудлагуудыг харуулах"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Залгасан видео дуудлага"</string>
<string name="type_missed_video" msgid="954396897034220545">"Аваагүй видео дуудлага"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Дуут шуудан"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Татгалзсан дуудлага"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Блоклосон дуудлага"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Ирж буй дуудлага"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Дуут шууданг тоглуулах"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> харилцагчийг харах"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> руу залгах"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>-н харилцагчийн мэдээлэл"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Шинэ дуут шуудан."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> дуудлага."</string>
<string name="description_video_call" msgid="2933838090743214204">"Видео дуудлага."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g>-д мессеж илгээх"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Дуут шуудан"</string>
<string name="private_num" msgid="6374339738119166953">"Нууцлагдсан дугаар"</string>
<string name="payphone" msgid="7726415831153618726">"Payphone"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> минут <xliff:g id="SECONDS">%s</xliff:g> секунд"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>-д"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Энэ дугаар луу залгах боломжгүй байна"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Дуут шууданг тохируулахын тулд Цэс &gt; Тохиргоо руу очно уу."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Дуут шуудан руу залгахын тулд юуны өмнө Нислэгийн төлвийг идэвхгүйжүүлнэ үү."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Дуут хайлт хийх боломжгүй байна"</string>
<string name="call_not_available" msgid="8941576511946492225">"Утас аппликешныг идэвхгүйжүүлсэн тул утасны дуудлага хийх боломжгүй."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Энэхүү төхөөрөмж дээр тухайн үйлдлийг гүйцэтгэх апликейшн байхгүй байна."</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Нэр эсвэл утасны дугаар оруулна уу"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Дуудлага алга"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Шинэ дуут шуудан алга"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Харилцагч хайх"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Дугаар нэмэх болон харилцагч хайх"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Таны дуудлагын түүх хоосон байна"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Дуудлага хийх"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Танд аваагүй дуудлага байхгүй байна."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Таны дуут шуудангийн хайрцаг хоосон байна."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Зөвхөн дуртайнуудыг харуулах"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Түүх"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Дуудлагын түүх"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Бүгд"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Аваагүй"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Дуут шуудан"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>-г блоклох уу?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Энэ дугаараас ирэх дуудлагыг блоклох бөгөөд дуут шуудан автоматаар устах болно."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Энэ дугаараас ирэх дуудлагыг блоклосон, гэхдээ залгагч танд дуут шуудан илгээх боломжтой."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"БЛОКЛОХ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>-г блокоос гаргах уу?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Энэ дугаараас танд ирэх цаашдын дуудлагыг блоклохгүй."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"БЛОКООС ГАРГАХ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Түргэн залгалт"</string>
- <string name="tab_recents" msgid="929949073851377206">"Саяхных"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Дуудлагын түүх"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Харилцагчид"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Дуут шуудан"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Дуртай жагсаалтаас хасав"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Буцаах"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> руу залгах"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Шинэ хаяг үүсгэх"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Байгаа хаяганд нэмэх"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Харилцагчийн хаягт нэмэх"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Мессеж илгээх"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Видео дуудлага хийх"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Дуудлагын түүхийг бүхэлд нь харах"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Дугаар блоклох"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> шинэ аваагүй дуудлага"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Түргэн залгалт нь шууд автоматаар таныг дотнын хүмүүс болон байнга холбогддог дугааруудтай чинь холбож өгнө."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Харилцагчид байхгүй"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Таны яаралтай залгах тохиргоон дээр одоогоор харилцагч байхгүй байна"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Таалагдсан хэсэгт нэмэх"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Танд одоогоор харилцагч байхгүй байна"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Харилцагч нэмэх"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Бүх дугаарыг харахын тулд зурган дээр дарна уу эсвэл жагсаалтыг өөрчлөхийн тулд удаан дарна уу."</string>
<string name="remove_contact" msgid="1080555335283662961">"Хасах"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"БҮХ ХАРИЛЦАГЧИД"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Видео дуудлага"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"СОНСОХ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Дэлгэрэнгүй үзэх"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Зурвас илгээх"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Дуудлагын мэдээлэл"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> руу дуудлага хийх"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Дараах дуудлагыг хүлээн аваагүй <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Дараах дуудлагыг хүлээн авсан <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>-н уншаагүй дуут шуудан"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>-н дуут шуудан"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Дараах дугаар луу залгасан <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>-р залгасан"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Дуудлага"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> руу дуудлага хийх"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> руу видео дуудлага."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-ын видео дуудлага."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-н дуут шууданг сонсох"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-н дуут шууданг тоглуулах"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-н дуут шууданг зогсоох"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-н дуут шууданг устгах"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> шинэ дуут шуудан</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> шинэ дуут шуудан</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-д харилцагч шинээр үүсгэх"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>-ыг одоогийн харилцагч руугаа нэмнэ"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> дуудлагын дэлгэрэнгүй мэдээлэл"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Дуудлагын түүхээс устгагдсан"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Мэдэгдэх"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Өнөөдөр"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Өчигдөр"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Хуучин"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Шуурхай хариунууд"</string>
<string name="call_settings_label" msgid="313434211353070209">"Дуудлага"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Дуудлага блоклох"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Дуудлага блоклох тохиргоог түр хугацаагаар унтраасан"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Та сүүлийн 48 цагийн дотор энэ утсаар тусламжийн дуудлага хийсэн тул дуудлага блоклох тохиргоог идэвхгүй болгосон. Энэ тохиргоо нь 48 цагийн хугацаа дуусахад автоматаар идэвхэжнэ."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Импортын тоо"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Тань руу залгасан зарим хүмүүсийг бусад апп ашиглан автоматаар дуут шуудан илгээж байхаар өмнө нь тэмдэглэсэн."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Дугаар харах"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортлох"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Импортолж чадсангүй"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Дугаар блокноос гаргах"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Дугаар нэмэх"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Эдгээр дугаараас ирэх дуудлагыг блоклож, дуут шууданг автоматаар устгана."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Эдгээр дугаараас ирэх дуудлагыг блоклож, харин танд дуут шуудан илгээх боломжтой."</string>
+ <string name="block_list" msgid="7760188925338078011">"Блоклосон дугаар"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> хүчингүй байна."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g>-г аль хэдийн блоклосон байна."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Дуудлага блоклохыг 48 цагийн турш идэвхгүй болгосон."</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Яаралтай дуудлага хийсэн тул идэвхгүй болгосон."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Дуудах акаунт"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Идэвхжүүлэх"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Зөвшөөрөл тохируулах"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Яаралтай дуудлагыг идэвхжүүлэхийн тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Дуудлагын жагсаалтыг харахын тулд утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Харилцагчдаа харахын тулд Харилцагчдын зөвшөөрлийг идэвхжүүлнэ үү."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Дуут шууданд хандахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Харилцагчаа хайхын тулд, Харилцагчийн жагсаалтын зөвшөөрлийг идэвхжүүлнэ үү."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Залгахын тулд Утасны зөвшөөрлийг идэвхжүүлнэ үү."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Гар утасны апп-д системийн тохиргоо бичих зөвшөөрөл алга."</string>
</resources>
diff --git a/res/values-mr-rIN/strings.xml b/res/values-mr-rIN/strings.xml
index 1b87c8788..b66d5f235 100644
--- a/res/values-mr-rIN/strings.xml
+++ b/res/values-mr-rIN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"डायलर"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"फोन"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"फोन"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"फोन डायलपॅड"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"फोन"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"कॉल इतिहास"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> ला कॉल करा"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"कॉल करण्यापूर्वी नंबर संपादित करा"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"संपर्कांमध्ये जोडा"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"कॉल इतिहासातून हटवा"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"कॉल इतिहास साफ करा"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"व्हॉइसमेल हटवा"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"व्हॉइसमेल सामायिक करा"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"कोणतेही कॉल नाहीत"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"कॉल इतिहास"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"चुकीच्या नंबरचा अहवाल द्या"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"नंबर कॉपी करा"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"लिप्यंतरण कॉपी करा"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"नंबर अवरोधित करा"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> अवरोधित केला"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"नंबर अनावरोधित करा"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> अनावरोधित केला"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"पूर्ववत करा"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"हटवा"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"कॉल करण्यापूर्वी नंबर संपादित करा"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"कॉल इतिहास साफ करा"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"व्हॉइसमेल हटवा"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"व्हॉइसमेल आढळले"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"पूर्ववत करा"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"कॉल इतिहास साफ करायचा?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"हे आपल्या कॉल इतिहासातून सर्व कॉल हटवेल"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"कॉल इतिहास साफ करत आहे…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> कडील नवीन व्हॉइसमेल"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"व्हॉइसमेल प्ले करू शकलो नाही"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"बफर करत आहे..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"व्हॉइसमेल लोड करत आहे…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"व्हॉइसमेल लोड करू शकलो नाही"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"केवळ व्हॉइसमेल सह कॉल"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"केवळ येणारे कॉल"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"केवळ केले जाणारे कॉल"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"केवळ सुटलेले कॉल"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"दृश्‍यमान व्हॉइसमेल"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"नंबरवर कॉल न करता आपले व्हॉइसमेल पहा आणि ऐका. डेटा शुल्क लागू होऊ शकतात."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"सेटिंग्ज"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"व्हॉइसमेल अद्यतने उपलब्ध नाहीत"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"नवीन व्हॉइसमेल प्रतीक्षा करत आहे. आत्ता लोड करू शकत नाही."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"आपला व्हॉइसमेल सेट करा"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ऑडिओ उपलब्ध नाही"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"सेट अप"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"व्हॉइसमेलवर कॉल करा"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"सर्वात धीमी गती"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"धीमी गती"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"सामान्य गती"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"जलद गती"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"सर्वाधिक जलद गती"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"नंबर निवडा"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"नंबर निवडा"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"कॉल इतिहास"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"अधिक पर्याय"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"डायल पॅड"</string>
- <string name="menu_copy" msgid="6108677035381940698">"कॉपी करा"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"केवळ केले जाणारे दर्शवा"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"केवळ येणारे दर्शवा"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"केवळ सुटलेले दर्शवा"</string>
@@ -87,7 +90,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"कॉल तपशील"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"तपशील उपलब्ध नाहीत"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"स्‍पर्श टोन कीपॅडचा वापर करा"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"कॉल प्रगतीपथावर, वर परत जा"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"चालू असलेल्या कॉलवर परत जा"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"कॉल जोडा"</string>
<string name="type_incoming" msgid="6502076603836088532">"येणारा कॉल"</string>
<string name="type_outgoing" msgid="343108709599392641">"केले जाणारे कॉल"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"जाणारे व्हिडिओ कॉल"</string>
<string name="type_missed_video" msgid="954396897034220545">"सुटलेला व्हिडिओ कॉल"</string>
<string name="type_voicemail" msgid="5153139450668549908">"व्हॉइसमेल"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"नाकारलेला कॉल"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"अवरोधित केलेला कॉल"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"येणारे कॉल"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"व्हॉइसमेल प्ले करा"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> संपर्क पहा"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> ला कॉल करा"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> साठी संपर्क तपशील"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"नवीन व्हॉइसमेल."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> कॉल."</string>
<string name="description_video_call" msgid="2933838090743214204">"व्हिडिओ कॉल."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> वर SMS पाठवा"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"व्हॉइसमेल"</string>
<string name="private_num" msgid="6374339738119166953">"खाजगी नंबर"</string>
<string name="payphone" msgid="7726415831153618726">"सार्वजनिक फोन"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> मिनिट <xliff:g id="SECONDS">%s</xliff:g> सेकंद"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> रोजी <xliff:g id="TIME">%2$s</xliff:g> वाजता"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"या नंबरवर कॉल करू शकत नाही"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"व्हॉइसमेल सेट करण्‍यासाठी, मेनू आणि सेटिंग्‍ज वर जा."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"व्हॉइसमेलला कॉल करण्यासाठी, प्रथम विमान मोड बंद करा."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"व्हॉइस शोध उपलब्ध नाही"</string>
<string name="call_not_available" msgid="8941576511946492225">"फोन अनुप्रयोग अक्षम केला गेला असल्याने फोन कॉल करणे शक्य नाही."</string>
<string name="activity_not_available" msgid="2287665636817987623">"या डिव्हाइसवर त्यासाठी कोणताही अॅप नाही"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"नाव किंवा फोन नंबर प्रविष्ट करा"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"कोणतेही कॉल नाहीत"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"कोणतेही अलीकडील व्हॉइसमेल नाहीत"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"संपर्क शोधा"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"नंबर जोडा किंवा संपर्क शोधा"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"आपला कॉल इतिहास रिक्त आहे"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"एक कॉल करा"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"आपल्‍याकडे कोणतेही सुटलेले कॉल नाहीत."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"आपला व्हॉइसमेल इनबॉक्स रिक्त आहे."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"केवळ आवडीचे दर्शवा"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"इतिहास"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"कॉल इतिहास"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"सर्व"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"सुटलेले"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"व्हॉइसमेल"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> अवरोधित करायचा?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"या नंबर वरून केलेले कॉल अवरोधित केले जातील आणि व्हॉइसमेल स्वयंचलितपणे हटविले जातील."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"या नंबर वरून केलेले कॉल अवरोधित केले जातील परंतु कॉलर आपल्‍यासाठी व्हॉइसमेल सोडण्यात अद्याप सक्षम असू शकेल."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"अवरोधित करा"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> ला अनावरोधित करायचे?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"या नंबरला यापुढे आपल्‍याला कॉल करण्‍यासाठी अवरोधित केले जाणार नाही."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"अनावरोधित करा"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"स्पीड डायल"</string>
- <string name="tab_recents" msgid="929949073851377206">"अलीकडील"</string>
+ <string name="tab_history" msgid="2563144697322434940">"कॉल इतिहास"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"संपर्क"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"व्हॉइसमेल"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"आवडी मधून काढले"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"पूर्ववत करा"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> ला कॉल करा"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"नवीन संपर्क तयार करा"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"विद्यमान संपर्कामध्‍ये जोडा"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"संपर्कांमध्‍ये जोडा"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS पाठवा"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"व्‍हिडिओ कॉल करा"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"संपूर्ण कॉल इतिहास पहा"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"नंबर अवरोधित करा"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> नवीन सुटलेले कॉल"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"स्पीड डायल हे आवडींसाठी आणि आपण नेहमी कॉल करता त्या नंबरसाठी एकदाच-स्पर्श करण्याचे डायलिंग आहे"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"कोणतेही संपर्क नाहीत"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"अद्याप आपल्‍या स्पीड डायलवर कोणीही नाही"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"एक आवडते जोडा"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"आपल्‍याकडे अद्याप कोणतेही संपर्क नाहीत"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"एक संपर्क जोडा"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"सर्व नंबर पाहण्यासाठी प्रतिमेस स्पर्श करा किंवा पुन्हा क्रम लावण्यासाठी स्पर्श करा आणि धरून ठेवा"</string>
<string name="remove_contact" msgid="1080555335283662961">"काढा"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"सर्व संपर्क"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"व्हिडिओ कॉल"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ऐका"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"तपशील पहा"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"एक संदेश पाठवा"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"कॉल तपशील"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> वर कॉल करा"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> वरून कॉल सुटला."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> वरून कॉलला उत्तर दिले."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> कडून न वाचलेला व्हॉइसमेल."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> कडून व्हॉॅइसमेल."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> वर कॉल करा."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> वर"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"कॉल करा"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> वर कॉल करा"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> व्हिडिओ कॉल करा."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"व्हिडिओ कॉल <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> कडील व्हॉइसमेल ऐका"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> कडील व्हॉइसमेल प्ले करा"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> कडील व्हॉइसमेल ला विराम द्या"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> वरील व्हॉइसमेल हटवा"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> नवीन व्हॉइसमेल</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> नवीन व्हॉइसमेल</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> साठी संपर्क तयार करा"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"विद्यमान संपर्कांमध्ये <xliff:g id="NAMEORNUMBER">^1</xliff:g> जोडा"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> साठी कॉल तपशील"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"कॉल इतिहासातून हटविले"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"अहवाल द्या"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"आज"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"काल"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"अधिक जुने"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"द्रुत प्रतिसाद"</string>
<string name="call_settings_label" msgid="313434211353070209">"कॉल"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"कॉल अवरोधित करणे"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"कॉल अवरोधित करणे तात्पुरते बंद"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"आपण मागील 48 तासात या फोनवरून आणीबाणी सेवांशी संपर्क साधला असल्याने कॉल अवरोधित करणे अक्षम केले गेले आहे. एकदा 48 तासांचा कालावधी कालबाह्य झाला की ते स्वयंचलितपणे पुन्हा सक्षम केले जाईल."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"नंबर अायात करा"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"आपण पूर्वीपासून काही कॉलरना स्वयंचलितपणे इतर अॅप्सद्वारे व्हॉइसमेलमध्ये पाठविण्यासाठी चिन्हांकित केले आहे."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नंबर पहा"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात करा"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात अयशस्वी झाले"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नंबर अनावरोधित करा"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"नंबर जोडा"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"या नंबरवरून केलेले कॉल अवरोधित केले जातील आणि व्हॉइसमेल स्वयंचलितपणे हटविले जातील."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"या नंबर वरून केलेले कॉल अवरोधित केले जातील परंतु ते आपल्‍यासाठी व्हॉइसमेल सोडण्यात अद्याप कदाचित सक्षम असतील."</string>
+ <string name="block_list" msgid="7760188925338078011">"अवरोधित केलेले नंबर"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> अवैध आहे."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> आधीच अवरोधित केलेला आहे."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"कॉल अवरोधित करणे 48 तासांसाठी अक्षम केले"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"एक आणीबाणीचा कॉल केल्‍याने अक्षम केले."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"कॉल करण्याची खाती"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"चालू करा"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"परवानग्या सेट करा"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"स्पीड डायल सक्षम करण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"आपला कॉल लॉग पाहण्‍यासाठी, फोन परवानगी चालू करा."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"आपले संपर्क पाहण्‍यासाठी, संपर्क परवानगी चालू करा."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"आपल्‍या व्हॉइसमेलमध्‍ये प्रवेश करण्‍यासाठी, फोन परवानगी चालू करा."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"आपले संपर्क शोधण्‍यासाठी, संपर्क परवानग्या चालू करा."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"कॉल करण्यासाठी, फोन परवानगी चालू करा."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"फोन अॅपला सिस्टीम स‍ेटिंग्जमध्ये लिहिण्याची परवानगी नाही."</string>
</resources>
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 6035bb226..1b231f71d 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Pendail"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Pad Dail Telefon"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Sejarah panggilan"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Panggil <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edit nombor sebelum panggilan"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Tambah ke kenalan"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Padamkan dari sejarah panggilan"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Kosongkan sejarah panggilan"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Padamkan mel suara"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Kongsi mel suara"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Tiada panggilan"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Sejarah panggilan"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Laporkan nombor yang tidak tepat"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Salin nombor"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Salin transkripsi"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Sekat nombor"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> disekat"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Nyahsekat nombor"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> dinyahsekat"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"BUAT ASAL"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Padam"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edit nombor sebelum memanggil"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Kosongkan sejarah panggilan"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Padamkan mel suara"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mel suara dipadamkan"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"BUAT ASAL"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Kosongkan sejarah panggilan?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Langkah ini akan memadamkan semua panggilan dari sejarah anda"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Tindakan ini akan memadamkan semua panggilan daripada sejarah anda"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Mengosongkan sejarah panggilan..."</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> Mel suara </item>
@@ -38,26 +45,23 @@
</plurals>
<string name="notification_action_voicemail_play" msgid="6113133136977996863">"Main"</string>
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
- <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Mel suara baru daripada <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Mel suara baharu daripada <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Tidak dapat memainkan mel suara"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Menimbal…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Memuatkan mel suara..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Tidak dapat memuatkan mel suara"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Panggilan dengan mel suara sahaja"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Panggilan masuk sahaja"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Panggilan keluar sahaja"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Panggilan terlepas sahaja"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Mel suara visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Lihat dan dengar mel suara anda tanpa perlu memanggil nombor. Caj data mungkin dikenakan."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Tetapan"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Kemas kini mel suara tidak tersedia"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Mel suara baharu sedang menunggu. Tidak dapat memuat sekarang."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Sediakan mel suara anda"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio tidak tersedia"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Menyediakan"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Panggil mel suara"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"kelajuan paling perlahan"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Kelajuan perlahan"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Kelajuan biasa"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Kelajuan pantas"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Kelajuan paling pantas"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Pilih nombor"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Pilih nombor"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Sejarah Panggilan"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Lagi pilihan"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"pad dail"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Salin"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Tunjuk panggilan keluar shj"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Tunjuk panggilan masuk shj"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Tunjuk panggilan terlepas shj"</string>
@@ -82,7 +85,7 @@
<string name="add_2sec_pause" msgid="9214012315201040129">"Tambah jeda 2 saat"</string>
<string name="add_wait" msgid="3360818652790319634">"Tambah penungguan"</string>
<string name="dialer_settings_label" msgid="4305043242594150479">"Tetapan"</string>
- <string name="menu_newContact" msgid="1209922412763274638">"Kenalan baru"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Kenalan baharu"</string>
<string name="menu_allContacts" msgid="6948308384034051670">"Semua kenalan"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Butiran panggilan"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Butiran tidak tersedia"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Panggilan video keluar"</string>
<string name="type_missed_video" msgid="954396897034220545">"Telah terlepas panggilan video"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Mel suara"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Panggilan yang ditolak"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Panggilan yang disekat"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Panggilan masuk"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Mainkan mel suara"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Lihat kenalan <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Panggil <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Butiran hubungan untuk <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Mel suara baharu."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> panggilan."</string>
<string name="description_video_call" msgid="2933838090743214204">"Panggilan video."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Hantar SMS kepada <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Mel suara"</string>
<string name="private_num" msgid="6374339738119166953">"Nombor peribadi"</string>
<string name="payphone" msgid="7726415831153618726">"Telefon Awam"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> saat"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> saat"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> pada <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Tidak dapat menghubungi nombor ini"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Untuuk menyediakan mel suara, pergi ke Menu &gt; Tetapan."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Untuk membuat panggilan ke mel suara, mula-mula matikan mod Pesawat."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Carian suara tidak tersedia"</string>
<string name="call_not_available" msgid="8941576511946492225">"Tidak boleh membuat panggilan telefon kerana aplikasi Telefon telah dilumpuhkan."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Tiada apl untuk tindakan itu pada peranti ini"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Masukkan nama atau nombor tel"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Tiada panggilan"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Tiada mel suara terbaharu"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Cari kenalan"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Tambahkn no. atau cari kenalan"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Sejarah panggilan anda kosong"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Buat panggilan"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Anda tiada panggilan terlepas."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Peti masuk mel suara anda kosong."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Tunjukkan kegemaran sahaja"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Sejarah"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Sejarah Panggilan"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Semua"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Tidak dijawab"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Mel suara"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Sekat <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Panggilan daripada nombor ini akan disekat dan mel suara akan dipadamkan secara automatik."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Panggilan daripada nombor ini akan disekat, tetapi pemanggil masih boleh meninggalkan mel suara kepada anda."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"SEKAT"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Nyahsekat <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Nombor ini tidak akan disekat daripada memanggil anda lagi."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"NYAHSEKAT"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Dail laju"</string>
- <string name="tab_recents" msgid="929949073851377206">"Terkini"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Sejarah Panggilan"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kenalan"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Mel suara"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Dialih keluar daripada kegemaran"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Buat asal"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Panggil <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Buat kenalan baharu"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Tambah kepada kenalan sedia ada"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Tambahkan pada kenalan"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Hantar SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Buat panggilan video"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Lihat sejarah panggilan penuh"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Sekat nombor"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> panggilan terlepas baharu"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Dail laju ialah pendailan satu sentuhan untuk kegemaran dan nombor yang kerap anda hubungi"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Tiada kenalan"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Belum ada sesiapa pada dail pantas anda"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Tambahkan kegemaran"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Anda belum mempunyai sebarang kenalan"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Tambahkan kenalan"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Sentuh imej untuk melihat semua nombor atau sentuh &amp; tahan untuk menyusun semula"</string>
<string name="remove_contact" msgid="1080555335283662961">"Alih keluar"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"SEMUA KENALAN"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Panggilan video"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"DENGAR"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Lihat butiran"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Hantar mesej"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Butiran panggilan"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Panggil <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Panggilan tidak dijawab daripada <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Panggilan telah dijawab daripada <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Mel suara yang belum dibaca daripada <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Mel suara daripada <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Buat panggilan kepada <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"pada <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Panggil"</string>
<string name="description_call_action" msgid="4000549004089776147">"Panggil <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Panggilan video kepada <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Panggilan video <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Dengar mel suara daripada <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Mainkan mel suara daripada <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Jeda mel suara daripada <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Padamkan mel suara daripada <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> mel suara baharu</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> mel suara baharu</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Buat kenalan untuk <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Tambahkan <xliff:g id="NAMEORNUMBER">^1</xliff:g> pada kenalan yang sedia ada"</string>
<string name="description_details_action" msgid="2433827152749491785">"Butiran panggilan untuk <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Dipadamkan dari sejarah panggilan"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Laporkan"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Hari ini"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Semalam"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Lebih lama"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respons pantas"</string>
<string name="call_settings_label" msgid="313434211353070209">"Panggilan"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Sekatan panggilan"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Sekatan panggilan dimatikan sementara"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Import nombor"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Sebelum ini anda telah menandakan beberapa pemanggil dihantar ke mel suara secara automatik melalui aplikasi lain."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Lihat nombor"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Pengimportan gagal"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Nyahsekat nombor"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Tambah nombor"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Panggilan daripada nombor ini akan disekat dan mel suara akan dipadamkan secara automatik."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Panggilan daripada nombor ini akan disekat, tetapi mereka masih boleh meninggalkan mel suara kepada anda."</string>
+ <string name="block_list" msgid="7760188925338078011">"Nombor yang disekat"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> tidak sah."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> sudah disekat."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Sekatan panggilan dilumpuhkan selama 48 jam"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Dilumpuhkan kerana panggilan kecemasan telah dibuat."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Akaun panggilan"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Hidupkan"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Tetapkan kebenaran"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Untuk mendayakan dail laju, hidupkan kebenaran Kenalan."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Untuk melihat log panggilan anda, hidupkan kebenaran Telefon."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Untuk melihat kenalan anda, hidupkan kebenaran Kenalan."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Untuk mengakses mel suara anda, hidupkan kebenaran Telefon."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Untuk mencari kenalan anda, hidupkan kebenaran Kenalan."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Untuk membuat panggilan, hidupkan kebenaran Telefon."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Apl telefon tiada kebenaran untuk menulis ke tetapan sistem."</string>
</resources>
diff --git a/res/values-my-rMM/strings.xml b/res/values-my-rMM/strings.xml
index 12b11156e..63eb82013 100644
--- a/res/values-my-rMM/strings.xml
+++ b/res/values-my-rMM/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"ခေါ်ဆိုရန်နံပါတ်ကွက်"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ဖုန်း"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ဖုန်း"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ဖုန်းခလုတ်ခုံ"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ဖုန်း"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"ခေါ်ဆိုမှု မှတ်တမ်း"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> ကိုခေါ်ပါ"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ဖုန်းမခေါ်ခင် နံပါတ်အားပြင်ရန်"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"လိပ်စာများထဲသို့ ထည့်ပါ"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"ခေါ်ဆိုမှု မှတ်တမ်း ထဲမှာ ဖျက်ရန်"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"ခေါ်ဆိုမှု မှတ်တမ်း ရှင်းရန်"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"အသံပို့စာ အားဖျက်ရန်"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"အသံပို့စာ အား မျှဝေရန်"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"ခေါ်ဆိုမှုများ မရှိ"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"ခေါ်ဆိုမှု မှတ်တမ်း"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"မမှန်ကန်သည့် နံပါတ်အား သတင်းပို့ပါ"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"နံပါတ်ကိုကူးရန်"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"အသံမှစာအဖြစ်ဘာသာပြန်ခြင်းကို ကူးရန်"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"နံပါတ်ကို ပိတ်ရန်"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ကိုပိတ်ဆို့လိုက်ပါပြီ"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"နံပါတ်ကို ဖွင့်မည်"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ကိုပိတ်ဆို့ခြင်းမှ ဖယ်ရှားလိုက်ပါပြီ"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"နောက်ပြန်လုပ်ပါ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"ဖျက်ရန်"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"မခေါ်ဆိုမီ နံပါတ်ကိုတည်းဖြတ်ရန်"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"ခေါ်ဆိုမှု မှတ်တမ်း ရှင်းရန်"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"အသံပို့စာ အားဖျက်ရန်"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"အသံမေးလ် ရှာတွေ့ခဲ့"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ပြန်ဖျက်ရန်"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ခေါ်ဆိုမှု မှတ်တမ်းကို ရှင်းပစ်ရမလား?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"ဒါက သင့် မှတ်တမ်းထဲက ခေါ်ဆိုမှုများ အားလုံးကို ဖျက်ပစ်မည်"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"ခေါ်ဆိုမှု မှတ်တမ်းကို ရှင်းနေ…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> ဆီမှ အသံစာ အသစ်"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"အသံမေးလ်ကို ဖွင့်မပေးနိုင်ခဲ့"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"ယာယီကြားခံနေစဉ်…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"အသံမေးလ်ကို တင်ပေးနေ…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"အသံမေးလ်ကို တင်မပေးနိုင်ခဲ့"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"အသံမေးလ်ပါသော အဝင်ခေါ်ဆိုမှုများသာ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"အဝင်ဖုန်းသာ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"အထွက်ခေါ်ဆိုမှုများသာ"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"လွတ်သွားသော ဖုန်းသာ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"အသံအသုံးပြုစာအား စာသားအသွင်ပြောင်းခြင်း"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"နံပါတ်တစ်ခုသို့ ခေါ်ဆိုရန် မလိုဘဲ၊ သင်၏ အသံအသုံးပြုစာအား ကြည့်ရှု နားထောင်ပါ။ ဒေတာအတွက် ကျသင့်ငွေရှိနိုင်သည်။"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"ဆက်တင်များ"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"အသံမေးလ် မွမ်းမံမှုများ မရှိ"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"အသံမေးလ် အသစ် စောင့်နေသည်။ ယခုချက်ချင်း တင်မပေးနိုင်ပါ။"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"သင်၏ အသံမေးလ်ကို စဖွင့်သတ်မှတ်ရန်"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"အသံ မရှိ"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"အစီအမံလုပ်ပါ"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"အသံပို့စာစနစ်ခေါ်ရန်"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"အနှေးဆုံးနှုန်း"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"အနှေးနှုန်း"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"ပုံမှန်နှုန်း"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"အမြန်နှုန်း"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"အမြန်ဆုံးနှုန်း"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"နံပါတ်ရွေးပါ"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"နံပါတ်ရွေးပါ"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"ယခင်ခေါ်ဆိုမှုများ"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ပိုမိုရွေးချယ်စရာများ"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ဖုန်းနံပါတ်ကွက်"</string>
- <string name="menu_copy" msgid="6108677035381940698">"ကူးခြင်း"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"အထွက်ခေါ်ဆိုခြင်းများသာပြပါ"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"အဝင်ခေါ်ဆိုမှုသာ ပြပါ"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"လွတ်သွားသော ခေါ်ဆိုမှုများသာပြပါ"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"ပြုလုပ်နေဆဲ ဗီဒီယို ခေါ်ဆိုမှု"</string>
<string name="type_missed_video" msgid="954396897034220545">"လွတ်သွားသော ဗီဒီယို ခေါ်ဆိုမှု"</string>
<string name="type_voicemail" msgid="5153139450668549908">"အသံစာပို့စနစ်"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"ငြင်းဆိုခဲ့သည့် ခေါ်ဆိုမှု"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"ခေါ်ဆိုမှု ပိတ်ဆို့ထား"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"အဝင်ခေါ်ဆိုမှုများ"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"အသံပို့စာ နားထောင်ရန်"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> လိပ်စာကြည့်ရန်"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> ကိုခေါ်ပါ"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ရဲ့ အဆက်အသွယ် အသေးစိတ်"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"အသံပို့စာ အသစ်"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ခါ"</string>
<string name="description_video_call" msgid="2933838090743214204">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g>ထံသို့ SMS ပို့ရန်"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"အသံစာပို့စနစ်"</string>
<string name="private_num" msgid="6374339738119166953">"လျို့ဝှက် နံပါတ်"</string>
<string name="payphone" msgid="7726415831153618726">"ငွေပေးရသည့်ဖုန်း"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> မိနစ် <xliff:g id="SECONDS">%s</xliff:g> စက္ကန့်"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g> ၌"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ဒီနံပါတ်ကို မခေါ်ဆိုနိုင်ပါ"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"အသံစာပို့စနစ်ကို ပြင်ဆင်ရန်၊ မီနူး ပြီးနောက် ဆက်တင် သို့သွားပါ"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"အသံစာပို့စနစ်ကို ခေါ်ဆိုမှုပြုရန် လေယာဉ်ပျံပေါ်သုံးစနစ်ကို ပိတ်ပါ"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"အသံဖြင့် ရှာဖွေမှု မရှိ"</string>
<string name="call_not_available" msgid="8941576511946492225">"ဖုန်း အပလီကေးရှင်းကို ပိတ်ထား၍ ဖုန်း ခေါ်ဆိုမှု မပြုလုပ်နိုင်ခဲ့ပါ။"</string>
<string name="activity_not_available" msgid="2287665636817987623">"ဒီကိရိယာထဲမှာ အဲဒါ့အတွက် app မရှိပါ"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"အမည် သို့မဟုတ် ဖုန်း နံပါတ်ကို ရိုက်ထည့်ပါ"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"ခေါ်ဆိုမှုများ မရှိ"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"မကြာမီက အသံမေးလ် မရှိ"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"အဆက်အသွယ်များရှာပါ"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"နံပါတ်ပေါင်းထည့်ပါ သို့မဟုတ် အဆက်အသွယ်များ ရှာဖွေပါ"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"သင့်ခေါ်ဆိုမှုသမိုင်းတွင် ဘာမှမရှိပါ"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"ခေါ်ဆိုမှု ပြုလုပ်ရန်"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"သင့်တွင် လွဲသွားသည့်ခေါ်ဆိုမှုများ မရှိပါ။"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"သင့်အသံမေးလ် စာတိုက်ပုံးတွင် ဘာမှမရှိပါ။"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"အနှစ်သက်ဆုံးများသာ ပြပါ"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"မှတ်တမ်း"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"ခေါ်ဆိုမှုသမိုင်း"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"အားလုံး"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"မကိုင်မိလိုက်သော"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"အသံစာ"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>ကို ပိတ်ဆို့မလား။"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ဤနံပါတ်မှခေါ်ဆိုမှုများကို ပိတ်ဆို့လိုက်မည်ဖြစ်ပြီး အသံမေးလ်များကို အလိုအလျောက် ဖျက်လိုက်ပါမည်။"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ဤနံပါတ်မှ ခေါ်ဆိုမှုများကို ပိတ်ဆို့လိုက်ပါမည်၊ သို့သော် ၎င်းတို့သည် သင့်ကို အသံမေးလ်ချန်ခဲ့နိုင်ပါသည်။"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ပိတ်ဆို့ပါ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> အား ပိတ်ဆို့မှု ဖယ်ရှားလိုက်ရမလား။"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"ဤနံပါတ်ကို သင့်အား ခေါ်ဆိုမရအောင် မပိတ်ဆို့တော့ပါ။"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ပိတ်ဆို့ခြင်းမှ ဖယ်ရှားပါ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"အမြန် နံပါတ်လှည့်မှု"</string>
- <string name="tab_recents" msgid="929949073851377206">"မကြာမီက"</string>
+ <string name="tab_history" msgid="2563144697322434940">"ခေါ်ဆိုမှု သမိုင်း"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"အဆက်အသွယ်များ"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"အသံမေးလ်"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"အနှစ်သက်ဆုံးများထဲမှာ ထုတ်လိုက်ပါပြီ"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"နောက်ပြန်လုပ်ပါ"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> ကိုခေါ်ပါ"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"အဆက်အသွယ် အသစ် ဖန်တီးရန်"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"လက်ရှိ အဆက်အသွယ်တွင်း ထည့်ရန်"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"အဆက်အသွယ်သို့ ပေါင်းထည့်ရန်"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"စာတို ပို့ရန်"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ဗီဒီယို ခေါ်ဆိုမှု ပြုလုပ်ရန်"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"ခေါ်ဆိုမှု မှတ်တမ်း အပြည့်ကို ကြည့်ရန်"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"နံပါတ်ကို ပိတ်ဆို့ရန်"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"လွတ်သွားသောဖုန်း <xliff:g id="NUMBER">%s</xliff:g> ခါ"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"အမြန် နံပါတ်လှည့်မှုမှာ စိတ်ကြိုက်များ နှင့် သင်မကြာခဏ ခေါ်သည့် နံပါတ်များကို တစ်ချက်နှိပ် နံပါတ်လှည့်မှု ဖြစ်သည်"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"အဆက်အသွယ်များ မရှိ"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"ဘယ်သူမှ သင့်လျှင်မြန်စွာ ခေါ်ဆိုမှုထဲတွင် မရှိသေးပါ"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"အနှစ်သက်ဆုံးတစ်ခု ထည့်ရန်"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"သင့်တွင် မည်သည့်အဆက်အသွယ်မျှ မရှိသေးပါ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"အဆက်အသွယ်တစ်ယောက် ထည့်မည်"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"နံပါတ်များ အားလုံးကိုကြည့်ရန် ပုံကို ထိပါ သို့မဟုတ် ပြန်စီရန် ထိလျက် &amp; ကိုင်ထားပါ"</string>
<string name="remove_contact" msgid="1080555335283662961">"ဖယ်ရှာခြင်း"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"အဆက်အသွယ်များအားလုံး"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"ဗီဒီယို ခေါ်ဆိုမှု"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"နားထောင်ရန်"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"အသေးစိတ်များကို ကြည့်မည်"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"စာ တစ်စောင် ပို့ပါ"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"ဖုန်းခေါ်မှု အသေးစိတ်အချက်အလက်"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> အား ခေါ်ပါ"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>၊ <xliff:g id="TYPEORLOCATION">^2</xliff:g>၊ <xliff:g id="TIMEOFCALL">^3</xliff:g>၊ <xliff:g id="PHONEACCOUNT">^4</xliff:g> မှ ခေါ်ဆိုမှု လွတ်သွား၏။"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>၊ <xliff:g id="TYPEORLOCATION">^2</xliff:g>၊ <xliff:g id="TIMEOFCALL">^3</xliff:g>၊ <xliff:g id="PHONEACCOUNT">^4</xliff:g> မှ ခ​ေါ်ဆိုမှုအား ဖြေထား၏။"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>၊ <xliff:g id="TYPEORLOCATION">^2</xliff:g>၊ <xliff:g id="TIMEOFCALL">^3</xliff:g>၊ <xliff:g id="PHONEACCOUNT">^4</xliff:g>ထံမှ အသံစာကို ဖတ်ပါ။"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>၊ <xliff:g id="TYPEORLOCATION">^2</xliff:g>၊ <xliff:g id="TIMEOFCALL">^3</xliff:g>၊ <xliff:g id="PHONEACCOUNT">^4</xliff:g>ထံမှ အသံစာ။"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>၊ <xliff:g id="TYPEORLOCATION">^2</xliff:g>၊ <xliff:g id="TIMEOFCALL">^3</xliff:g>၊ <xliff:g id="PHONEACCOUNT">^4</xliff:g> အား ခေါ်ခြင်း။"</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> ၌"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"ခေါ်ဆိုမှု"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> အားခေါ်ရန်"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ထံသို့ ဗီဒီယို ခေါ်ဆိုမှု"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ကိုဗီဒီယိုခေါ်ဆိုမည်။"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>ထံမှ အသံစာကို နားထောင်ရန်"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> မှ အသံအသုံးပြုစာအား ဖွင့်ပါ"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> မှ အသံအသုံးပြုစာအား ရပ်ပါ"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> မှ အသံအသုံးပြုစာအား ဖျက်ပါ"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"> အသံသုံးပို့စာ အသစ် <xliff:g id="COUNT_1">%d</xliff:g> ခု</item>
+ <item quantity="one"> အသံသုံးပို့စာ အသစ် <xliff:g id="COUNT_0">%d</xliff:g> ခု</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> အတွက် အဆက်အသွယ် ဖန်တီးမည်"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> အားလက်ရှိ အဆက်အသွယ်သို့ ပေါင်းထည့်မည်"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>၏ ခေါ်ဆိုမှု အသေးစိတ်များ"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"ခေါ်ဆိုမှု မှတ်တမ်းထဲမှ ဖျက်ပစ်ခဲ့"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"သတင်းပို့ပါ"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ယနေ့"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"မနေ့က"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"ပိုဟောင်းသော"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"အမြန် တုံ့ပြန်ချက်များ"</string>
<string name="call_settings_label" msgid="313434211353070209">"ခေါ်ဆိုမှုများ"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"ခေါ်ဆိုမှု ပိတ်ဆို့ခြင်း"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ခေါ်ဆိုမှုပိတ်ဆို့ခြင်း ယာယီပိတ်ထားသည်"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"သင်သည် လွန်ခဲ့သည့် ၄၈ နာရီအတွင်း ဤဖုန်းဖြင့် အရေးပေါ်ဌာနကိုဖုန်း ခေါ်ဆိုခဲ့သောကြောင့် ခေါ်ဆိုမှုပိတ်ဆို့ခြင်းကို ဖြုတ်ထားသည်။ ၄၈ နာရီကျော်လွန်သည်နှင့် ၎င်းကိုအလိုအလျောက် ပြန်ဖွင့်ပေးပါမည်။"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"နံပါတ်များ သွင်းရန်"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"သင်သည် ယခင်က အချို့ခေါ်ဆိုသူများကို အလိုအလျောက် အခြား အက်ပ်များမှ တဆင့် အသံစာသို့ ပို့ရန် မှတ်ပေးခဲ့သည်။"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"နံပါတ်များကို ကြည့်ရန်"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"တင်သွင်းရန်"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"တင်သွင်းမှု မအောင်မြင်ပါ"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"နံပါတ်ကို ဖွင့်မည်"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"နံပါတ် ထည့်သွင်းပါ"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ဤနံပါတ်များမှ ခေါ်ဆိုမှုများကို ပိတ်ဆို့လိုက်မည်ဖြစ်ပြီး အသံမေးလ်များကို အလိုအလျောက် ဖျက်လိုက်ပါမည်။"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ဤနံပါတ်များမှ ခေါ်ဆိုမှုများကို ပိတ်ဆို့လိုက်ပါမည်၊ သို့သော် ၎င်းတို့သည် သင့်ကို အသံမေးလ်ချန်ခဲ့နိုင်ပါသည်။"</string>
+ <string name="block_list" msgid="7760188925338078011">"ပိတ်ထားသည့် နံပါတ်များ"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> သည်တရားမဝင်ပါ။"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> အားပိတ်ဆို့ထားပြီးပါပြီ။"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ခေါ်ဆိုမှုပိတ်ဆို့ခြင်းကို ၄၈ နာရီပိတ်ထားသည်"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"အရေးပေါ်ခေါ်ဆိုမှု ပြုလုပ်ခဲ့သည့်အတွက် ပိတ်ထားပါသည်။"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"ခေါ်ဆိုသော အကောင့်များ"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ဖွင့်ထားရန်"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"ခွင့်ပြုချက်များ သတ်မှတ်မည်"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"မြန်နှုန်းမြင့်ဖုန်းခေါ်ဆိုမှုကို ဖွင့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ရန်၊ ဖုန်းခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"အဆက်အသွယ်များကိုကြည့်ရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်ကို ဖွင့်ပါ။"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"အသံမေးလ်ကိုအသုံးပြုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"သင့်အဆက်အသွယ်များကို ရှာဖွေရန်၊ အဆက်အသွယ်ခွင့်ပြုချက်များကို ဖွင့်ပါ။"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"ဖုန်းခေါ်ဆိုရန်၊ ဖုန်းခွင့်ပြုချက်ကိုဖွင့်ပါ။"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ဖုန်း အက်ပ်ဆီတွင် စနစ် ဆက်တင်များသို့ ရေးသားခွင့် မရှိပါ။"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index a3a8fac92..ff71cdd76 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Oppringer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefontastatur"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Anropslogg"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Ring <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Rediger nummer før anrop"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Legg til kontakter"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Slett fra anropsloggen"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Slett anropsloggen"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Slett talepost"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Del talepost"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Ingen anrop"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Anropslogg"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Rapportér feil nummer"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopiér nummeret"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiér transkripsjonen"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokkér nummeret"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> er blokkert"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Opphev blokkeringen av nummeret"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Blokkeringen av <xliff:g id="NUMBER">%1$s</xliff:g> er opphevet"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ANGRE"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Slett"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Endre nummeret før du ringer"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Slett anropsloggen"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Slett talepost"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Taleposten er slettet"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANGRE"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vil du slette anropsloggen?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Dette sletter alle anrop fra loggen"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Sletter anropsloggen …"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nye talemeldinger fra <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Kunne ikke spille av talepost"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Bufrer …"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Laster inn talepost …"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Kunne ikke laste inn taleposten"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Bare anrop som gikk til talepostkasse"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Bare innkommende anrop"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Bare utgående anrop"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Bare ubesvarte anrop"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visuell talemelding"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Se og lytt til talemeldingene dine, uten å måtte ringe et nummer. Dette kan føre til datakostnader."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Innstillinger"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Talepostoppdateringer er ikke tilgjengelige"</string>
- <string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Ny talepost venter. Kan ikke laste inn akkurat nå."</string>
+ <string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Ny talemelding venter. Kan ikke laste inn akkurat nå."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Konfigurer taleposten din"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Lyd er ikke tilgjengelig"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Konfigurer"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Ring talepostkasse"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Laveste hastighet"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Lav hastighet"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal hastighet"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Høy hastighet"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Høyeste hastighet"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Velg nummer"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Velg nummer"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Anropslogg"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Flere alternativer"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"tastatur"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopiér"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Vis bare utgående"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Vis bare innkommende"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Vis bare tapte"</string>
@@ -87,7 +90,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"Samtaleinformasjon"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Informasjon er ikke tilgjengelig"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Bruk tonetastatur"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Gå tilbake til pågående samtale"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Gå tilbake til aktiv samtale"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Legg til en samtale"</string>
<string name="type_incoming" msgid="6502076603836088532">"Innkommende samtale"</string>
<string name="type_outgoing" msgid="343108709599392641">"Utgående samtale"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Utgående videoanrop"</string>
<string name="type_missed_video" msgid="954396897034220545">"Ubesvart videoanrop"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Talepostkasse"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Avvist anrop"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokkert anrop"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Innkommende samtaler"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Spill av talemelding"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Se kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Ring til <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Kontaktinformasjon for <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Ny talemelding."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> samtaler."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videoanrop."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Send SMS til <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Telefonsvarer"</string>
<string name="private_num" msgid="6374339738119166953">"Skjult nummer"</string>
<string name="payphone" msgid="7726415831153618726">"Telefonkiosk"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sek"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Kan ikke ringe dette nummeret"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Du konfigurerer talepost ved å gå til Meny &amp;gt Innstillinger"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Du må slå av flymodus før du kan sjekke talepostkassen."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Talesøk er ikke tilgjengelig"</string>
<string name="call_not_available" msgid="8941576511946492225">"Kan ikke ringe fordi Telefon-appen er deaktivert."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Det finnes ingen apper for det på denne enheten"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Angi navn eller telefonnummer"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Ingen anrop"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Ingen nye talepostmeldinger"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Søk i kontakter"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Legg til nummer eller søk etter kontakter"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Anropsloggen din er tom"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Start en samtale"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Du har ingen tapte anrop."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Talepostkassen din er tom."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Vis bare favoritter"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Logg"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Anropslogg"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
- <string name="call_log_missed_title" msgid="4541142293870638971">"Ikke besvart"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Ubesvart"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Talemeldinger"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vil du blokkere <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Anrop fra dette nummeret blokkeres, og talepost blir automatisk slettet."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Anrop fra dette nummeret blokkeres, men den som ringer kan fortsatt legge igjen beskjeder i talepostkassen din."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKKÉR"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vil du oppheve blokkeringen av <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Anrop fra dette nummeret blokkeres ikke lenger."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"OPPHEV BLOKKERINGEN"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Hurtigvalg"</string>
- <string name="tab_recents" msgid="929949073851377206">"Sist brukte"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Anropslogg"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontakter"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Talepostkasse"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Fjernet fra favoritter"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Angre"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Opprett ny kontakt"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Legg til i eksisterende kontakt"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Legg til for en kontakt"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Send SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Start en videosamtale"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Se hele anropsloggen"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokkér nummeret"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nye tapte anrop"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Hurtigoppringing ringer til favorittene dine og numrene du ringer ofte, med bare ett trykk"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Ingen kontakter"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Du har ingen på hurtigoppringning ennå"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Legg til en favoritt"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Du har ingen kontakter ennå"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Legg til en kontakt"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Trykk på bildet for å se alle numre, eller trykk på og hold nede for å omorganisere"</string>
<string name="remove_contact" msgid="1080555335283662961">"Fjern"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLE KONTAKTER"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videoanrop"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LYTT"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Vis detaljer"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Send en melding"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Samtaleinformasjon"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Ring <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Ubesvart anrop fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Besvart anrop fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Ulest talepost fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Talepost fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Ring til <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"på <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Ring"</string>
<string name="description_call_action" msgid="4000549004089776147">"Ring <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videosamtale startet med <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Start videoanrop med <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Lytt til talepostkasse fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Spill av talemelding fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Sett talemelding fra <xliff:g id="NAMEORNUMBER">^1</xliff:g> på pause"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Slett talemelding fra <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nye taleposter</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ny talepost</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Opprett kontakt for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Legg <xliff:g id="NAMEORNUMBER">^1</xliff:g> til en eksisterende kontakt"</string>
<string name="description_details_action" msgid="2433827152749491785">"Samtaledetaljer for <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Slettet fra anropsloggen"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Rapportér"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"I dag"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"I går"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Eldre"</string>
@@ -177,9 +208,9 @@
<string name="display_options_title" msgid="7812852361055667468">"Visningsalternativer"</string>
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Lyder og vibrasjon"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Tilgjengelighet"</string>
- <string name="ringtone_title" msgid="760362035635084653">"Telefonringetone"</string>
+ <string name="ringtone_title" msgid="760362035635084653">"Telefonringelyd"</string>
<string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibrer også når det ringer"</string>
- <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tastetoner for tastaturet"</string>
+ <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tastetoner"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Tonelengde for tastaturet"</string>
<string-array name="dtmf_tone_length_entries">
<item msgid="1036113889050195575">"Normal"</item>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Hurtigsvar"</string>
<string name="call_settings_label" msgid="313434211353070209">"Anrop"</string>
- <string name="phone_account_settings_label" msgid="5864322009841175294">"Ringe kontoer"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Anropsblokkering"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokkering av anrop er midlertidig slått av"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importér numre"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Du markerte tidligere noen anropere for automatisk overføring til talepost via andre apper."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Se numre"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importér"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importeringen mislyktes"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Opphev blokkeringen av nummeret"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Legg til nummer"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Anrop fra disse numrene blokkeres, og talepost blir automatisk slettet."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Anrop fra dette nummeret blokkeres, men du kan fortsatt motta talepost."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokkerte telefonnumre"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> er ugyldig."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> er allerede blokkert."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Anropsblokkering er slått av i 48 timer"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Slått av fordi du foretok et nødanrop."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"Ringekontoer"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Slå på"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Angi tillatelser"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"For å slå på hurtigoppringning, slå på Kontakter-tillatelsen."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"For å se samtaleloggen din, slå på Telefon-tillatelsen."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"For å se kontaktene dine, slå på Kontakter-tillatelsen."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"For å få tilgang til talepostkassen, slå på Telefon-tillatelsen."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"For å søke i kontaktene dine, slå på tillatelser for Kontakter."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"For å ringe, slå på Telefon-tillatelsen."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefonappen har ikke tillatelse til å skrive til systeminnstillinger."</string>
</resources>
diff --git a/res/values-ne-rNP/strings.xml b/res/values-ne-rNP/strings.xml
index 8290fa8d6..9cc4a290b 100644
--- a/res/values-ne-rNP/strings.xml
+++ b/res/values-ne-rNP/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"डायलर"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"फोन"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"फोन"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"फोन डायलप्याड"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"फोन"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"कल इतिहास"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"कल <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"कल गर्नुअगाडी नम्बर सम्पादन गर्नुहोस्"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"सम्पर्कहरूमा थप्नुहोस्"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"कल इतिहासबाट मेट्नुहोस्"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"कल इतिहास हटाउनुहोस्"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"भ्वाइसमेल हटाउनुहोस्"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"भ्वाइसमेल साझेदारी गर्नुहोस्"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"कुनै कल छैन"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"कल इतिहास"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"गलत नम्बर रिपोर्ट गर्नुहोस्"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"नम्बर प्रतिलिपि गर्नुहोस्"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ट्रान्सक्रिप्शनको प्रतिलिपि बनाउँनुहोस्"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"नम्बरलाई रोक्नुहोस्"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> रोकियो"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"नम्बर माथिको रोक हटाउनुहोस्"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> रोकियो"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"अनडू गर्नुहोस्"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"मेटाउनुहोस्"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"कल गर्न अगाडि नम्बर सम्पादन गर्नुहोस्"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"कल इतिहास मेटाउनुहोस्"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"भ्वाइसमेल हटाउनुहोस्"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"भ्वाइस मेल मेटाइयो"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"अनडू गर्नुहोस्"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"कल इतिहास हटाउने हो?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"यस कार्यले तपाईँको इतिहासबाट सबै कल मेट्नेछ"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"कल इतिहास हाटउँदै..."</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g> , <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> बाट नयाँ भ्वाइसमेल"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"भ्वाइस मेललाई बजाउन सकिएन"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"बफरिङ हुदै..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"भ्वाइस मेल लोड हुँदै ..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"भ्वाइस मेललाई लोड गर्न सकिएन"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"भ्वाइसमेलका साथ मात्र कल गर्नुहोस्"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"आगमन कलहरू मात्र"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"बहिर्गमन कलहरू मात्र"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"छुटेका कलहरू मात्र"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"भिजुअल भ्वाइस मेल"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"नम्बरमा कल गर्न नपरी तपाईँको भ्वाइसमेल हेर्नुहोस् र सुन्नुहोस्। डेटा शुल्क लाग्न सक्छ।"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"सेटिङहरू"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"भ्वाइस मेल अद्यावधिक उपलब्ध छैन"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"नयाँ भ्वाइस मेल पर्खदै। अहिले नै लोड गर्न सक्दैन।"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"तपाईँको भ्वाइसमेल सेटअप गर्नुहोस्"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"अडियो उपलब्ध छैन"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"मिलाउनुहोस्"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"भ्वाइसमेल कल गर्नुहोस्"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"सबभन्दा ढिलो गति"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"सुस्त गति"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"सामान्य गति"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"तेज गति"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"सबभन्दा तेज गति"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"( <xliff:g id="COUNT">%1$d</xliff:g> ) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"नम्बर रोज्नुहोस्"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"नम्बर छान्नुहोस्"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"कल इतिहास"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"थप विकल्पहरू"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"डायल प्याड"</string>
- <string name="menu_copy" msgid="6108677035381940698">"प्रतिलिपि गर्नुहोस्"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"बहिर्गमन मात्र देखाउनुहोस्"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"आगमन कल मात्र देखाउनुहोस्"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"छुटेकाहरू मात्र देखाउनुहोस्"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"बहिर्गमन भिडियो कल"</string>
<string name="type_missed_video" msgid="954396897034220545">"छुटेको भिडियो कल"</string>
<string name="type_voicemail" msgid="5153139450668549908">"भ्वाइसमेल"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"अस्वीकृत कल"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"अवरुद्ध कल"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"आगमन कलहरू"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"भ्वाइसमेल बजाउनुहोस्"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> सम्पर्क हेर्नुहोस्"</string>
<string name="description_call" msgid="3443678121983852666">"कल <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> को लागि सम्पर्क विवरणहरू"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"नयाँ भ्वाइसमेल।"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> कल।"</string>
<string name="description_video_call" msgid="2933838090743214204">"भिडियो कल।"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g>लाई SMS पठाउनुहोस्"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"भ्वाइसमेल"</string>
<string name="private_num" msgid="6374339738119166953">"नीजि नम्बर"</string>
<string name="payphone" msgid="7726415831153618726">"पेफोन"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> सेकेन्ड"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> मिनेट <xliff:g id="SECONDS">%s</xliff:g> सकेन्ड"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> मा <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"यस नम्बरलाई कल गर्न सकिंदैन"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"भ्वाइसमेल सेट गर्नका लागि मेनु सेटिङमा जानुहोस्।"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"भ्वाइसमेल कल गर्नका लागि पहिले हवाइजहाज मोड बन्द गर्नुहोस्।"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"आवाज खोजी उपलब्ध छैन"</string>
<string name="call_not_available" msgid="8941576511946492225">"फोन अनुप्रयोग असक्षम गरिएकोले फोन गर्न सकिँदैन।"</string>
<string name="activity_not_available" msgid="2287665636817987623">"यस यन्त्रमा त्यसका लागि कुनै पनि अनुप्रयोग छैन"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"एक नाम वा फोन नम्बर प्रविष्टि गर्नुहोस्"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"कुनै कल छैन"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"कुनै हालसालका भ्वाइसमेल छैन"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"सम्पर्क ठेगानाहरू खोज्नुहोस्"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"नम्बर थप्नुहोस् वा सम्पर्कहरू खोज्नुहोस्"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"तपाईँको कल इतिहास खाली छ"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"कल गर्नुहोस्"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"तपाईँसँग कुनै पनि छुटेका कलहरू छैनन्।"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"तपाईँको भ्वाइस मेल खाली छ।"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"मनपर्ने मात्र देखाउनुहोस्"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"इतिहास"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"कल इतिहास"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"सबै"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"छुटेको"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> माथि रोक लगाउने हो?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"यो नम्बरबाट सबै कलहरू रोकिनेछन् र भ्वाइसमेलहरू स्वचालित रूपमा मेटिनेछन्।"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"यो नम्बरबाट सबै कलहरू रोकिनेछन्। तर कलरले अझै तपाईँलाई भ्वाइस मेलहरू भने छोड्न सक्नेछन्।"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"रोक्नुहोस्"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> माथिको रोक हटाउने हो?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"तपाईँलाई कल गर्नको लागि यो नम्बर माथि अबदेखि रोक लगाइने छैन।"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"रोक हटाउनुहोस्"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"द्रूत डायल"</string>
- <string name="tab_recents" msgid="929949073851377206">"हालैका"</string>
+ <string name="tab_history" msgid="2563144697322434940">"कल इतिहास"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"सम्पर्कहरू"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"भ्वाइसमेल"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"मनपर्नेहरूबाट हटाइयो"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"अनडु गर्नुहोस्"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> कल गर्नुहोस्"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"नयाँ सम्पर्क सिर्जना गर्नुहोस्"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"अवस्थित सम्पर्कमा थप्नुहोस्"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"सम्पर्कमा थप्नुहोस्"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS पठाउनुहोस्"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"भिडियो कल बनाउनुहोस्"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"पूर्ण कल इतिहास हेर्नुहोस्"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"नम्बरलाई निषेध गर्नुहोस्"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> नयाँ छुटेका कलहरु"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"द्रूत डायल मनपर्नेका लागि एक-टच डाइलिङ र तपाईंले प्राय: कल गर्ने नम्बर हुन्।"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"कुनै सम्पर्कहरू छैन।"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"तपाईँको स्पिड डायलमा अझसम्म कोही छैन"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"एक मनपर्ने थप्नुहोस्"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"तपाईँसँग अझसम्म कुनै सम्पर्कहरू छैनन्"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"एउटा सम्पर्क थप्नुहोस्"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"सबै संख्या हेर्न छविलाई छुनुहोस् वा पुन:क्रमबद्ध गर्न समात्नुहोस्"</string>
<string name="remove_contact" msgid="1080555335283662961">"हटाउँनुहोस्"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"सबै सम्पर्कहरू"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"भिडियो कल"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LISTEN"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"विवरणहरू हेर्नुहोस्"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"सन्देश पठाउनुहोस्"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"कल विवरणहरु"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> कल गर्नुहोस्"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> बाट मिस्ड कल।"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> बाट कलको जवाफ दिइयो।"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> बाट पढ्न बाँकी भ्वाइस मेल।"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> बाट भ्वाइस मेल।"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> लाई कल गर्नुहोस्।"</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> मा"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"कल गर्नुहोस्"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> कल गर्नुहोस्"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>. लाई भिडियो कल।"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> भिडियो कल गर्नुहोस्।"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> बाट भ्वाइसमेल सुन्नुहोस्"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> बाट भ्वाइस मेल बजाउनुहोस्"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> बाट भ्वाइस मेल रोक्नुहोस्"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> बाट भ्वाइस मेल मेटाउनुहोस्"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> नयाँ भ्वाइस मेलहरू</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> नयाँ भ्वाइस मेल</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> का लागि नयाँ सम्पर्क बनाउँनुहोस्"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"विद्यमान सम्पर्कमा <xliff:g id="NAMEORNUMBER">^1</xliff:g> थप्नुहोस्"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> का लागि कल विवरणहरू"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"कल इतिहासबाट मेटाइयो"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"रिपोर्ट गर्नुहोस्"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"आज"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"हिजो"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"अझ पुरानो"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"द्रुत प्रतिक्रियाहरू"</string>
<string name="call_settings_label" msgid="313434211353070209">"कलहरू"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"कल रोक्दै"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"कल अवरुद्ध अस्थायी रुपमा निष्क्रिय"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"कल अवरुद्ध अस्थायी रुपमा असक्षम गरिएको छ किनभने तपाईँले अन्तिम ४८ घण्टा भित्र यस फोनबाट आपत्कालीन सेवाहरू सम्पर्क गर्नुभयो। एकपटक ४८ घण्टा अवधि समाप्त भएपछि यो स्वचालित रूपले पुनः सक्रिय हुनेछ।"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"नम्बरहरू आयात गर्नुहोस्"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"तपाईँले पहिल्यै केही कल गर्ने व्यक्तिहरूलाई अन्य अनुप्रयोगहरू मार्फत स्वत: रूपमा भ्वाइस मेल पठाउन नै चिन्ह लगाउनु भएको थियो।"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"नम्बरहरू हेर्नुहोस्"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"आयात गर्नुहोस्"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"आयात असफल भयो"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"नम्बरमाथिको रोक हटाउनुहोस्"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"नम्बर थप्नुहोस्"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"यी नम्बरहरूबाट सबै कलहरू रोकिनेछन् र भ्वाइसमेलहरू स्वचालित रूपमा मेटिनेछन्।"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"यो नम्बरहरूबाट सबै कलहरू रोकिनेछन्। तर तिनिहरूले अझै तपाईँलाई भ्वाइस मेलहरू भने छोड्न सक्नेछन्।"</string>
+ <string name="block_list" msgid="7760188925338078011">"रोकिएका नम्बरहरू"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> अमान्य छ।"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> पहिले नै रोकिएको छ।"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"४८ घण्टाको लागि कल निषेध असक्षम गरियो"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"आपत्कालीन कल गरिएको हुनाले असक्षम गरियो।"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"खाता कलिङ"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"सक्रिय पार्नुहोस्"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"अनुमतिहरू सेट गर्नुहोस्"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"तीव्र डायल सक्षम गर्न, सम्पर्क अनुमति सक्षम गर्नुहोस्।"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"आफ्नो कल लग हेर्न, फोन अनुमति सक्रिय गर्नुहोस्।"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"आफ्नो सम्पर्क हेर्न सम्पर्क अनुमति सक्रिय गर्नुहोस्।"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"आफ्नो भ्वाइस मेल पहुँच गर्न, फोन अनुमति सक्रिय गर्नुहोस्"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"तपाईँको सम्पर्कहरू खोज गर्न सम्पर्क अनुमतिहरू सक्रिय गर्नुहोस्।"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"कल गर्न फोन अनुमति सक्रिय गर्नुहोस्।"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"प्रणाली सेटिङहरूमा लेख्न फोन अनुप्रयोगसँग अनुमति छैन।"</string>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 60027f73f..57be49933 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefoon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefoon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefoonkiezer"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefoon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Oproepgeschiedenis"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> bellen"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Nummer bewerken voor bellen"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Toevoegen aan contacten"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Verwijderen uit oproepgeschiedenis"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Oproepgeschiedenis wissen"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Voicemail verwijderen"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Voicemail delen"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Geen oproepen"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Oproepgeschiedenis"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Onjuist nummer melden"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Nummer kopiëren"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Transcriptie kopiëren"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Nummer blokkeren"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> geblokkeerd"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Blokkeren van nummer opheffen"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Blokkering van <xliff:g id="NUMBER">%1$s</xliff:g> opgeheven"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ONGEDAAN MAKEN"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Verwijderen"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Nummer bewerken vóór bellen"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Oproepgeschiedenis wissen"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Voicemail verwijderen"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Voicemail verwijderd"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ONGED. MKN"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Oproepgeschiedenis wissen?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Hiermee worden alle oproepen uit uw geschiedenis verwijderd"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Hiermee worden alle oproepen uit je geschiedenis verwijderd"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Oproepgeschiedenis wissen…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> voicemails </item>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nieuwe voicemail van <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Kan voicemail niet afspelen"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"In buffer opslaan…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Voicemail laden…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Kan voicemail niet laden"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Alleen oproepen met voicemail"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Alleen inkomende oproepen"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Alleen uitgaande oproepen"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Alleen gemiste oproepen"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visuele voicemail"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Bekijk en beluister je voicemail, zonder dat je een nummer hoeft te bellen. Er kunnen kosten voor gegevensgebruik in rekening worden gebracht."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Instellingen"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Voicemailupdates niet beschikbaar"</string>
- <string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"U heeft nieuwe voicemail. Kan nu niet laden."</string>
- <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Uw voicemail instellen"</string>
+ <string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Je hebt nieuwe voicemail. Kan nu niet laden."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Je voicemail instellen"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio niet beschikbaar"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Instellen"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Bellen met voicemail"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Laagste snelheid"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Lage snelheid"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normale snelheid"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Hoge snelheid"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Hoogste snelheid"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Nummer kiezen"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Nummer kiezen"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Oproepgeschiedenis"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Meer opties"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"toetsenblok"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopiëren"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Alleen uitgaand weergeven"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Alleen inkomend weergeven"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Alleen gemist weergeven"</string>
@@ -96,26 +99,31 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Uitgaand videogesprek"</string>
<string name="type_missed_video" msgid="954396897034220545">"Gemist videogesprek"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Voicemail"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Geweigerde oproep"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Geblokkeerde oproep"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Inkomende oproepen"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Voicemail afspelen"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Contact <xliff:g id="NAME">%1$s</xliff:g> bekijken"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> bellen"</string>
<string name="description_contact_details" msgid="51229793651342809">"Contactgegevens voor <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nieuwe voicemail."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> telefoongesprekken."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videogesprek."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Sms verzenden naar <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Niet-beluisterde voicemail"</string>
<string name="description_start_voice_search" msgid="520539488194946012">"Gesproken zoekopdracht"</string>
- <string name="menu_callNumber" msgid="997146291983360266">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g> bellen"</string>
<string name="unknown" msgid="740067747858270469">"Onbekend"</string>
<string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
<string name="private_num" msgid="6374339738119166953">"Privénummer"</string>
<string name="payphone" msgid="7726415831153618726">"Telefooncel"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sec."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> om <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Kan dit nummer niet bellen"</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Voor het instellen van voicemail, gaat u naar \'Menu\' &gt; \'Instellingen\'."</string>
- <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Als u uw voicemail wilt bellen, moet u eerst de Vliegtuigmodus uitschakelen."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Voor het instellen van voicemail, ga je naar \'Menu\' &gt; \'Instellingen\'."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Als je je voicemail wilt bellen, moet je eerst de Vliegtuigmodus uitschakelen."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"Laden..."</string>
<string name="imei" msgid="3045126336951684285">"IMEI-nummer"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Gesproken zoekopdracht niet beschikbaar"</string>
<string name="call_not_available" msgid="8941576511946492225">"Kan niet bellen omdat de Telefoon-app is uitgeschakeld."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Daarvoor is geen app beschikbaar op dit apparaat"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Geef een naam of telefoonnummer op"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Geen oproepen"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Geen recente voicemails"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Contacten zoeken"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Voeg nummer toe of zoek contacten"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Je oproepgeschiedenis is leeg"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Bellen"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Je hebt geen gemiste oproepen."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Je voicemail-inbox is leeg."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Alleen favorieten weergeven"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Geschiedenis"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Oproepgeschiedenis"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alle"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Gemist"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> blokkeren?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Oproepen van dit nummer worden geblokkeerd en voicemails worden automatisch verwijderd."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Oproepen van dit nummer worden geblokkeerd, maar de beller kan nog wel voicemails achterlaten."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKKEREN"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Blokkering van <xliff:g id="NUMBER">%1$s</xliff:g> opheffen?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Oproepen vanaf dit nummer worden niet langer geblokkeerd."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"BLOKKERING OPHEFFEN"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Snelkeuze"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recent"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Oproepgeschiedenis"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contacten"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Voicemail"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Verwijderd uit favorieten"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Ongedaan maken"</string>
- <string name="search_shortcut_call_number" msgid="7277194656832895870">"Bel <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> bellen"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Nieuw contact maken"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Toevoegen aan bestaand contact"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Toevoegen aan een contact"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Sms verzenden"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Videogesprek starten"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Volledige oproepgeschiedenis bekijken"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Nummer blokkeren"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nieuwe gemiste oproepen"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Met snelkeuze kunt u met één tik op een knop favorieten en nummers kiezen die u vaak belt"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Geen contacten"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Er staat nog niemand in je snelkeuzelijst"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Een favoriet toevoegen"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Je hebt nog geen contacten"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Contact toevoegen"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Tik op de afbeelding om alle nummers te bekijken of blijf de afbeelding aanraken om opnieuw te rangschikken"</string>
<string name="remove_contact" msgid="1080555335283662961">"Verwijderen"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLE CONTACTEN"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videogesprek"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LUISTEREN"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Details weergeven"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Een bericht verzenden"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Oproepdetails"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> bellen"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Oproep gemist van <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Oproep beantwoord van <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Ongelezen voicemail van <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Voicemail van <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Oproep naar <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"in <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Bellen"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> bellen"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videogesprek naar <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videogesprek <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Voicemail beluisteren van <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Voicemail van <xliff:g id="NAMEORNUMBER">^1</xliff:g> afspelen"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Voicemail van <xliff:g id="NAMEORNUMBER">^1</xliff:g> onderbreken"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Voicemail van <xliff:g id="NAMEORNUMBER">^1</xliff:g> verwijderen"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nieuwe voicemails</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nieuwe voicemail</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Contact maken voor <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> toevoegen aan bestaand contact"</string>
<string name="description_details_action" msgid="2433827152749491785">"Oproepgegevens voor <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Verwijderd uit oproepgeschiedenis"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Melden"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Vandaag"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Gisteren"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Ouder"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Snelle reacties"</string>
<string name="call_settings_label" msgid="313434211353070209">"Oproepen"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Oproepen blokkeren"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Oproepblokkering tijdelijk uitgeschakeld"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Nummers importeren"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Je hebt via andere apps al aangegeven dat bepaalde bellers moeten worden doorgeschakeld naar de voicemail."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Nummers bekijken"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importeren"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importeren mislukt"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Blokkeren van nummer opheffen"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Nummer toevoegen"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Oproepen van deze nummers worden geblokkeerd en voicemails worden automatisch verwijderd."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Oproepen van deze nummers worden geblokkeerd, maar de bellers kunnen nog wel voicemail achterlaten."</string>
+ <string name="block_list" msgid="7760188925338078011">"Geblokkeerde nummers"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> is ongeldig."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> is al geblokkeerd."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Oproepblokkering is 48 uur uitgeschakeld"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Uitgeschakeld omdat een noodoproep is geplaatst."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Oproepaccounts"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Inschakelen"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Toestemmingen instellen"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Als je de snelkeuzefunctie wilt inschakelen, schakel je de machtiging voor Contacten in."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Als je je gesprekkenlijst wilt bekijken, schakel je de machtiging voor Telefoon in."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Als je je contacten wilt bekijken, schakel je de machtiging voor Contacten in."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Als je je voicemail wilt beluisteren, schakel je de machtiging voor Telefoon in."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Als je naar contacten wilt zoeken, schakel je de contacttoestemming in."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Als je iemand wilt bellen, schakel je de machtiging voor Telefoon in."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefoon-app heeft geen toestemming om systeeminstellingen te schrijven."</string>
</resources>
diff --git a/res/values-pa-rIN/strings.xml b/res/values-pa-rIN/strings.xml
index 94c5a00b1..126276a68 100644
--- a/res/values-pa-rIN/strings.xml
+++ b/res/values-pa-rIN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"ਡਾਇਲਰ"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ਫ਼ੋਨ"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ਫੋਨ"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ਫੋਨ ਡਾਇਲਪੈਡ"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ਫੋਨ"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"ਕਾਲ ਇਤਿਹਾਸ"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਨੰਬਰ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"ਸੰਪਰਕਾਂ ਵਿੱਚ ਜੋੜੋ"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"ਕਾਲ ਇਤਿਹਾਸ ਵਿੱਚੋਂ ਮਿਟਾਓ"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"ਕਾਲ ਇਤਿਹਾਸ ਹਟਾਓ"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ਵੌਇਸਮੇਲ ਮਿਟਾਓ"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"ਵੌਇਸਮੇਲ ਸ਼ੇਅਰ ਕਰੋ"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"ਕੋਈ ਕਾਲਾਂ ਨਹੀਂ"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"ਕਾਲ ਇਤਿਹਾਸ"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"ਗਲਤ ਨੰਬਰ ਦੀ ਰਿਪੋਰਟ ਕਰੋ"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"ਨੰਬਰ ਕਾਪੀ ਕਰੋ"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ਲਿਪੀ ਬਦਲਣਾ ਕਾਪੀ ਕਰੋ"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"ਨੰਬਰ ਨੂੰ ਬਲੌਕ ਕਰੋ"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ਬਲੌਕ ਕੀਤਾ"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"ਨੰਬਰ ਨੂੰ ਅਨਬਲੌਕ ਕਰੋ"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> ਅਨਬਲੌਕ ਕੀਤਾ"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ਪਹਿਲਾਂ ਵਰਗਾ ਕਰੋ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"ਹਟਾਓ"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"ਕਾਲ ਤੋਂ ਪਹਿਲਾਂ ਨੰਬਰ ਸੰਪਾਦਿਤ ਕਰੋ"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"ਕਾਲ ਇਤਿਹਾਸ ਹਟਾਓ"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ਵੌਇਸਮੇਲ ਮਿਟਾਓ"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ਵੌਇਸਮੇਲ ਮਿਟਾਈ ਗਈ"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ਪਹਿਲਾਂ ਵਰਗਾ ਕਰੋ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ਕੀ ਕਾਲ ਇਤਿਹਾਸ ਹਟਾਉਣਾ ਹੈ?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"ਇਹ ਤੁਹਾਡੇ ਇਤਿਹਾਸ ਤੋਂ ਸਾਰੀਆਂ ਕਾਲਾਂ ਮਿਟਾ ਦੇਵੇਗਾ"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"ਕਾਲ ਇਤਿਹਾਸ ਹਟਾ ਰਿਹਾ ਹੈ…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> ਦੀ ਨਵੀਂ ਵੌਇਸਮੇਲ"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"ਵੌਇਸਮੇਲ ਪਲੇ ਨਹੀਂ ਕਰ ਸਕਿਆ"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"ਬਫਰਿੰਗ..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"ਵੌਇਸਮੇਲ ਲੋਡ ਕਰ ਰਿਹਾ ਹੈ…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"ਵੌਇਸਮੇਲ ਲੋਡ ਨਹੀਂ ਕਰ ਸਕਿਆ"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"ਕੇਵਲ ਵੌਇਸਮੇਲ ਵਾਲੀਆਂ ਕਾਲਾਂ"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"ਕੇਵਲ ਇਨਕਮਿੰਗ ਕਾਲਾਂ"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"ਕੇਵਲ ਆਊਟਗੋਇੰਗ ਕਾਲਾਂ"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"ਕੇਵਲ ਮਿਸਡ ਕਾਲਾਂ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"ਵਿਜੁਅਲ ਵੌਇਸਮੇਲ"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"ਇੱਕ ਨੰਬਰ ਤੇ ਕਾਲ ਕੀਤੇ ਬਿਨਾਂ, ਆਪਣੀ ਵੌਇਸਮੇਲ ਦੇਖੋ ਅਤੇ ਸੁਣੋ। ਡਾਟਾ ਖ਼ਰਚੇ ਲਾਗੂ ਹੋ ਸਕਦੇ ਹਨ।"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"ਸੈਟਿੰਗਾਂ"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"ਵੌਇਸਮੇਲ ਅਪਡੇਟਾਂ ਉਪਲਬਧ ਨਹੀਂ"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"ਨਵੀਂ ਵੌਇਸਮੇਲ ਉਡੀਕ ਰਹੀ ਹੈ। ਹੁਣ ਲੋਡ ਨਹੀਂ ਕਰ ਸਕਦਾ।"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"ਆਪਣੀ ਵੌਇਸਮੇਲ ਸੈਟ ਅਪ ਕਰੋ"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ਔਡੀਓ ਉਪਲਬਧ ਨਹੀਂ"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"ਸੈਟ ਅਪ"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"ਵੌਇਸਮੇਲ ਤੇ ਕਾਲ ਕਰੋ"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ਬਿਲਕੁਲ ਹੌਲੀ ਸਪੀਡ"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ਹੌਲੀ ਸਪੀਡ"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"ਸਧਾਰਨ ਸਪੀਡ"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"ਤੇਜ਼ ਸਪੀਡ"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ਵੱਧ ਤੇਜ਼ ਸਪੀਡ"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"ਨੰਬਰ ਚੁਣੋ"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"ਨੰਬਰ ਚੁਣੋ"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"ਕਾਲ ਇਤਿਹਾਸ"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ਹੋਰ ਚੋਣਾਂ"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ਡਾਇਲ ਪੈਡ"</string>
- <string name="menu_copy" msgid="6108677035381940698">"ਕਾਪੀ ਕਰੋ"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"ਕੇਵਲ ਆਊਟਗੋਇੰਗ ਦਿਖਾਓ"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"ਕੇਵਲ ਇਨਕਮਿੰਗ ਦਿਖਾਓ"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"ਕੇਵਲ ਮਿਸਡ ਦਿਖਾਓ"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"ਆਊਟਗੋਇੰਗ ਵੀਡੀਓ ਕਾਲ"</string>
<string name="type_missed_video" msgid="954396897034220545">"ਮਿਸਡ ਵੀਡੀਓ ਕਾਲ"</string>
<string name="type_voicemail" msgid="5153139450668549908">"ਵੌਇਸਮੇਲ"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"ਅਸਵੀਕਾਰ ਕੀਤੀ ਕਾਲ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"ਬਲੌਕ ਕੀਤੀ ਕਾਲ"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ਇਨਕਮਿੰਗ ਕਾਲਾਂ"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"ਵੌਇਸਮੇਲ ਪਲੇ ਕਰੋ"</string>
<string name="description_view_contact" msgid="5205669345700598415">"ਸੰਪਰਕ <xliff:g id="NAME">%1$s</xliff:g> ਦੇਖੋ"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> ਲਈ ਸੰਪਰਕ ਵੇਰਵੇ"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"ਨਵੀਂ ਵੌਇਸਮੇਲ।"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ਕਾਲਾਂ।"</string>
<string name="description_video_call" msgid="2933838090743214204">"ਵੀਡੀਓ ਕਾਲ।"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ SMS ਭੇਜੋ"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"ਵੌਇਸਮੇਲ"</string>
<string name="private_num" msgid="6374339738119166953">"ਨਿੱਜੀ ਨੰਬਰ"</string>
<string name="payphone" msgid="7726415831153618726">"ਪੇਫੋਨ"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> ਮਿੰਟ <xliff:g id="SECONDS">%s</xliff:g> ਸਕਿੰਟ"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ਨੂੰ <xliff:g id="TIME">%2$s</xliff:g> ਵਜੇ"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ਇਸ ਨੰਬਰ ਤੇ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"ਵੌਇਸਮੇਲ ਸੈਟ ਅਪ ਕਰਨ ਲਈ, ਮੀਨੂ &gt; ਸੈਟਿੰਗਾਂ ਤੇ ਜਾਓ।"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"ਵੌਇਸਮੇਲ ਕਾਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਏਅਰਪਲੇਨ ਮੋਡ ਬੰਦ ਕਰੋ।"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"ਵੌਇਸ ਖੋਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string name="call_not_available" msgid="8941576511946492225">"ਇੱਕ ਫੋਨ ਕਾਲ ਨਹੀਂ ਕਰ ਸਕਦਾ ਕਿਉਂਕਿ ਫੋਨ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਸਮਰੱਥ ਬਣਾਇਆ ਗਿਆ ਹੈ।"</string>
<string name="activity_not_available" msgid="2287665636817987623">"ਉਸ ਲਈ ਇਸ ਡਿਵਾਈਸ ਤੇ ਕੋਈ ਐਪ ਨਹੀਂ"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"ਇੱਕ ਨਾਮ ਜਾਂ ਫੋਨ ਨੰਬਰ ਦਰਜ ਕਰੋ"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"ਕੋਈ ਕਾਲਾਂ ਨਹੀਂ"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"ਕੋਈ ਹਾਲੀਆ ਵੌਇਸਮੇਲਾਂ ਨਹੀਂ"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"ਸੰਪਰਕ ਖੋਜੋ"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"ਨੰਬਰ ਜੋੜੋ ਜਾਂ ਸੰਪਰਕ ਖੋਜੋ"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"ਤੁਹਾਡਾ ਕਾਲ ਇਤਿਹਾਸ ਖਾਲੀ ਹੈ"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"ਇੱਕ ਕਾਲ ਕਰੋ"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"ਤੁਹਾਡੇ ਕੋਲ ਕੋਈ ਵੀ ਮਿਸਡ ਕਾਲਾਂ ਨਹੀਂ ਹਨ।"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ਤੁਹਾਡਾ ਵੌਇਸਮੇਲ ਇਨਬੌਕਸ ਖਾਲੀ ਹੈ।"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"ਕੇਵਲ ਮਨਪਸੰਦ ਦਿਖਾਓ"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ਇਤਿਹਾਸ"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"ਕਾਲ ਇਤਿਹਾਸ"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"ਸਭ"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"ਮਿਸਡ"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"ਵੌਇਸਮੇਲ"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"ਕੀ <xliff:g id="NUMBER">%1$s</xliff:g> ਬਲੌਕ ਕਰਨਾ ਹੈ?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ਇਸ ਨੰਬਰ ਤੋਂ ਕਾਲਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ ਅਤੇ ਵੌਇਸਮੇਲਾਂ ਆਪਣੇ ਆਪ ਮਿਟਾ ਦਿੱਤੀਆਂ ਜਾਣਗੀਆਂ।"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ਇਸ ਨੰਬਰ ਤੋਂ ਕਾਲਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ, ਪਰ ਕਾਲਰ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਲਈ ਵੌਇਸਮੇਲਾਂ ਛੱਡ ਸਕਦਾ ਹੈ।"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ਬਲੌਕ ਕਰੋ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"ਕੀ <xliff:g id="NUMBER">%1$s</xliff:g> ਅਨਲੌਕ ਕਰਨਾ ਹੈ?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"ਇਸ ਨੰਬਰ ਨੂੰ ਇਸ ਤੋਂ ਬਾਅਦ ਤੁਹਾਨੂੰ ਕਾਲ ਕਰਨ ਤੋਂ ਬਲੌਕ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ।"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ਅਨਬਲੌਕ ਕਰੋ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"ਸਪੀਡ ਡਾਇਲ"</string>
- <string name="tab_recents" msgid="929949073851377206">"ਹਾਲੀਆ"</string>
+ <string name="tab_history" msgid="2563144697322434940">"ਕਾਲ ਇਤਿਹਾਸ"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"ਸੰਪਰਕ"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"ਵੌਇਸਮੇਲ"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"ਮਨਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਇਆ ਗਿਆ"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"ਪਹਿਲਾਂ ਵਰਗਾ ਕਰੋ"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"ਨਵਾਂ ਸੰਪਰਕ ਬਣਾਓ"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"ਮੌਜੂਦਾ ਸੰਪਰਕਾਂ ਵਿੱਚ ਜੋੜੋ"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"ਇੱਕ ਸੰਪਰਕ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰੋ"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS ਭੇਜੋ"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ਵੀਡੀਓ ਕਾਲ ਕਰੋ"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"ਪੂਰਾ ਕਾਲ ਇਤਿਹਾਸ ਦੇਖੋ"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"ਨੰਬਰ ਨੂੰ ਬਲੌਕ ਕਰੋ"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ਨਵੀਆਂ ਮਿਸਡ ਕਾਲਾਂ"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"ਸਪੀਡ ਡਾਇਲ ਉਹਨਾਂ ਮਨਪਸੰਦ ਅਤੇ ਨੰਬਰਾਂ ਲਈ ਇੱਕ ਟਚ ਡਾਇਲਿੰਗ ਹੈ ਜਿਹਨਾਂ ਤੇ ਤੁਸੀਂ ਅਕਸਰ ਕਾਲ ਕਰਦੇ ਹੋ।"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"ਅਜੇ ਤੁਹਾਡੇ ਸਪੀਡ ਡਾਇਲ \'ਤੇ ਕੋਈ ਵੀ ਵਿਅਕਤੀ ਨਹੀਂ ਹੈ"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"ਇੱਕ ਮਨਪਸੰਦ ਜੋੜੋ"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਕੋਈ ਸੰਪਰਕ ਨਹੀਂ ਹਨ।"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"ਕੋਈ ਸੰਪਰਕ ਜੋੜੋ"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"ਸਾਰੇ ਨੰਬਰ ਦੇਖਣ ਲਈ ਚਿੱਤਰ ਨੂੰ ਛੋਹਵੋ ਜਾਂ ਪੁਨਰ ਤਰਤੀਬ ਦੇਣ ਲਈ ਛੋਹਵੋ &amp; ਹੋਲਡ ਕਰੋ"</string>
<string name="remove_contact" msgid="1080555335283662961">"ਹਟਾਓ"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ਸਾਰੇ ਸੰਪਰਕ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"ਵੀਡੀਓ ਕਾਲ"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ਸੁਣੋ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"ਵੇਰਵੇ ਦੇਖੋ"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"ਇੱਕ ਸੁਨੇਹਾ ਭੇਜੋ"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"ਕਾਲ ਵੇਰਵੇ"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ਦੀ ਮਿਸਡ ਕਾਲ।"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ਦੀ ਕਾਲ ਦਾ ਜਵਾਬ ਦਿੱਤਾ।"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> , <xliff:g id="TYPEORLOCATION">^2</xliff:g> , <xliff:g id="TIMEOFCALL">^3</xliff:g> , <xliff:g id="PHONEACCOUNT">^4</xliff:g> ਵੱਲੋਂ ਬਿਨਾਂ-ਪੜ੍ਹੀ ਵੌਇਸਮੇਲ।"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ਵੱਲੋਂ ਵੌਇਸਮੇਲ।"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ।"</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> ਤੇ"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"ਕਾਲ ਕਰੋ"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਨੂੰ ਕਾਲ ਕਰੋ"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਨੂੰ ਵੀਡੀਓ ਕਾਲ ਕਰੋ।"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"ਵੀਡੀਓ ਕਾਲ <xliff:g id="NAMEORNUMBER">^1</xliff:g>।"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਦੀ ਵੌਇਸਮੇਲ ਚੁਣੋ"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਤੋਂ ਵੌਇਸਮੇਲ ਪਲੇ ਕਰੋ"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਤੋਂ ਵੌਇਸਮੇਲ ਰੋਕੋ"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਤੋਂ ਵੌਇਸਮੇਲ ਮਿਟਾਓ"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> ਨਵੀਆਂ ਵੌਇਸਮੇਲਾਂ</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ਨਵੀਆਂ ਵੌਇਸਮੇਲਾਂ</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਲਈ ਸੰਪਰਕ ਬਣਾਓ"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਨੂੰ ਮੌਜੂਦਾ ਸੰਪਰਕ ਵਿੱਚ ਜੋੜੋ"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ਲਈ ਕਾਲ ਵੇਰਵੇ"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"ਕਾਲ ਇਤਿਹਾਸ ਵਿੱਚੋਂ ਮਿਟਾਇਆ ਗਿਆ"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"ਰਿਪੋਰਟ"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ਅੱਜ"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"ਕੱਲ੍ਹ"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"ਪੁਰਾਣੇ"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"ਤਤਕਾਲ ਜਵਾਬ"</string>
<string name="call_settings_label" msgid="313434211353070209">"ਕਾਲਾਂ"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"ਕਾਲ ਬਲੌਕ ਕਰੋ"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ਕਾਲ ਬਲੌਕਿੰਗ ਆਰਜ਼ੀ ਤੌਰ ਤੇ ਬੰਦ ਹੈ"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ਕਾਲ ਬਲੌਕਿੰਗ ਅਸਮਰੱਥ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ ਕਿਉਂਕਿ ਤੁਸੀਂ ਇਸ ਫੋਨ ਦੁਆਰਾ ਪਿਛਲੇ 48 ਘੰਟਿਆਂ ਤੋਂ ਐਮਰਜੈਂਸੀ ਸੇਵਾਵਾਂ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਹੋਇਆ ਹੈ। ਇਹ 48 ਘੰਟਿਆਂ ਦਾ ਸਮਾਂ ਪੂਰਾ ਹੋਣ ਤੇੋਂ ਬਾਅਦ ਆਟੋਮੈਟਿਕਲੀ ਮੁੜ-ਸਮਰੱਥ ਹੋ ਜਾਵੇਗੀ।"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"ਆਯਾਤ ਨੰਬਰ"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"ਤੁਹਾਡੇ ਚਿੰਨ੍ਹਿਤ ਕੀਤੇ ਪਿਛਲੇ ਕੁਝ ਕਾਲਰ ਹੋਰ ਐਪਸ ਦੁਆਰਾ ਆਟੋਮੈਟਿਕ ਤੌਰ ਤੇ ਵੌਇਸਮੇਲ ਨੂੰ ਭੇਜੇ ਗਏ ਹਨ।"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ਨੰਬਰ ਵਿਖਾਓ"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ਆਯਾਤ ਕਰੋ"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"ਆਯਾਤ ਅਸਫਲ ਹੋਇਆ"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"ਨੰਬਰ ਨੂੰ ਅਨਬਲੌਕ ਕਰੋ"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"ਨੰਬਰ ਜੋੜੋ"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ਇਹਨਾਂ ਨੰਬਰਾਂ ਤੋਂ ਕਾਲਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ ਅਤੇ ਵੌਇਸਮੇਲਾਂ ਆਪਣੇ ਆਪ ਮਿਟਾ ਦਿੱਤੀਆਂ ਜਾਣਗੀਆਂ।"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ਇਹਨਾਂ ਨੰਬਰਾਂ ਤੋਂ ਕਾਲਾਂ ਬਲੌਕ ਕੀਤੀਆਂ ਜਾਣਗੀਆਂ, ਪਰ ਇਹ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਲਈ ਵੌਇਸਮੇਲਾਂ ਛੱਡ ਸਕਦੇ ਹਨ।"</string>
+ <string name="block_list" msgid="7760188925338078011">"ਬਲੌਕ ਕੀਤੇ ਨੰਬਰ"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ਅਪ੍ਰਮਾਣਿਕ ਹੈ।"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ਪਹਿਲਾਂ ਹੀ ਬਲੌਕ ਕੀਤਾ ਹੋਇਆ ਹੈ।"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ਕਾਲ ਬਲੋੌਕਿੰਗ 48 ਘੰਟਿਆਂ ਲਈ ਅਯੋਗ ਕੀਤੀ ਗਈ"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"ਆਯੋਗ ਕੀਤਾ ਕਿਉਂਕਿ ਇੱਕ ਸੰਕਟ ਕਾਲ ਕੀਤੀ ਗਈ ਸੀ।"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"ਕਾਲਿੰਗ ਖਾਤੇ"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ਚਾਲੂ ਕਰੋ"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"ਅਨੁਮਤੀਆਂ ਸੈੱਟ ਕਰੋ"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"ਸਪੀਡ ਡਾਇਲ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"ਆਪਣਾ ਕਾਲ ਲੌਗ ਵੇਖਣ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਨੂੰ ਵੇਖਣ ਲਈ, ਸੰਪਰਕ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"ਆਪਣੀ ਵੌਇਸਮੇਲ ਐਕਸੈਸ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ,, ਸੰਪਰਕ ਅਨੁਮਤੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ।"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"ਕਾਲ ਕਰਨ ਲਈ, ਫ਼ੋਨ ਅਨੁਮਤੀ ਚਾਲੂ ਕਰੋ।"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"ਫ਼ੋਨ ਐਪ ਦੇ ਕੋਲ ਸਿਸਟਮ ਸੈਟਿੰਗਜ਼ ਵਿੱਚ ਲਿੱਖਣ ਦੀ ਅਨੁਮਤੀ ਨਹੀਂ ਹੁੰਦੀ ਹੈ।"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 5266e249d..18f29ac7b 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Telefon"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Klawiatura telefonu"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historia połączeń"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Zadzwoń do: <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Edytuj numer przed nawiązaniem połączenia"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Dodaj do kontaktów"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Usuń z historii połączeń"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Wyczyść historię połączeń"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Usuń pocztę głosową"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Udostępnij pocztę głosową"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Brak połączeń"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historia połączeń"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Zgłoś niedokładny numer"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopiuj numer"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiuj zapis"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Zablokuj numer"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> zablokowany"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Odblokuj numer"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> odblokowany"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"COFNIJ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Usuń"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Edytuj numer przed połączeniem"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Wyczyść historię połączeń"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Usuń pocztę głosową"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Poczta usunięta"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"COFNIJ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Wyczyścić historię połączeń?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Spowoduje to usunięcie wszystkich połączeń z historii"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Spowoduje to usunięcie wszystkich połączeń z historii."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Czyszczę historię połączeń…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="few"> <xliff:g id="COUNT">%1$d</xliff:g> wiadomości głosowe </item>
@@ -42,24 +49,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nowa poczta głosowa od: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Nie można odtworzyć wiadomości głosowej"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buforowanie..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Wczytuję zawartość poczty głosowej…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nie można wczytać zawartości poczty głosowej"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Tylko połączenia z pocztą głosową"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Tylko połączenia przychodzące"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Tylko połączenia wychodzące"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Tylko połączenia nieodebrane"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Wizualna poczta głosowa"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Sprawdź i odsłuchaj wiadomości głosowe bez dzwonienia pod określony numer. Może zostać naliczona opłata za transfer danych."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Ustawienia"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Brak aktualizacji o wiadomościach głosowych"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Oczekują nowe wiadomości głosowe. Obecnie nie można ich wczytać."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Skonfiguruj swoją pocztę głosową"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Dźwięk jest niedostępny"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Konfiguracja"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Połącz z pocztą"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Najwolniej"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Wolno"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normalnie"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Szybko"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Najszybciej"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Wybierz numer"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Wybierz numer"</string>
@@ -75,7 +79,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historia połączeń"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Więcej opcji"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"klawiatura"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopiuj"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Pokaż tylko wychodzące"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Pokaż tylko przychodzące"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Pokaż tylko nieodebrane"</string>
@@ -89,7 +92,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"Szczegóły połączenia"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Szczegóły nie są dostępne"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Użyj klawiatury tonowej"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Powrót do aktywnego połączenia"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Wróć do aktywnego połączenia"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Dodaj połączenie"</string>
<string name="type_incoming" msgid="6502076603836088532">"Połączenie"</string>
<string name="type_outgoing" msgid="343108709599392641">"Połączenie wychodzące"</string>
@@ -98,12 +101,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Wychodząca rozmowa wideo"</string>
<string name="type_missed_video" msgid="954396897034220545">"Nieodebrana rozmowa wideo"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Poczta głosowa"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Odrzucone połączenie"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Zablokowane połączenie"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Połączenia przychodzące"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Odtwórz pocztę głosową"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Wyświetl kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Połącz z: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Szczegóły kontaktu: <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nowa poczta głosowa."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Połączenia: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"Rozmowa wideo."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Wyślij SMS-a do: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -114,7 +118,11 @@
<string name="voicemail" msgid="3851469869202611441">"Poczta głosowa"</string>
<string name="private_num" msgid="6374339738119166953">"Numer prywatny"</string>
<string name="payphone" msgid="7726415831153618726">"Automat telefoniczny"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Nie można zadzwonić pod ten numer"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Aby skonfigurować pocztę głosową, przejdź do Menu &gt; Ustawienia."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Aby połączyć się z pocztą głosową, najpierw wyłącz tryb samolotowy."</string>
@@ -127,45 +135,70 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Wyszukiwanie głosowe jest niedostępne"</string>
<string name="call_not_available" msgid="8941576511946492225">"Nie można zadzwonić, ponieważ aplikacja Telefon została wyłączona."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Na urządzeniu nie ma aplikacji, która mogłaby wykonać tę czynność"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Wpisz imię i nazwisko lub numer telefonu"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Brak połączeń"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Brak najnowszych wiadomości głosowych"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Wyszukaj kontakty"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Dodaj numer lub wyszukaj kontakty"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Twoja historia połączeń jest pusta"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zadzwoń"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nie masz nieodebranych połączeń."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Skrzynka odbiorcza poczty głosowej jest pusta."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Pokaż tylko ulubione"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historia połączeń"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Wszystkie"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Nieodebrane"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Poczta gł."</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Zablokować numer <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Połączenia z tego numeru będą blokowane, a wiadomości głosowe będą usuwane automatycznie."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Połączenia z tego numeru będą blokowane, ale dzwoniący wciąż będzie mógł zostawiać wiadomości głosowe."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ZABLOKUJ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Odblokować numer <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Ten numer nie będzie już blokowany i będzie mógł do Ciebie dzwonić."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ODBLOKUJ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Szybkie wybieranie"</string>
- <string name="tab_recents" msgid="929949073851377206">"Ostatnie"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historia połączeń"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontakty"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Poczta głosowa"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Usunięto z ulubionych"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Cofnij"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Zadzwoń: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Utwórz nowy kontakt"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Dodaj do istniejącego kontaktu"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Dodaj do kontaktu"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Wyślij SMS-a"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Rozmowa wideo"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Wyświetl pełną historię połączeń"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Zablokuj numer"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Nowe nieodebrane połączenia: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Szybkie wybieranie pozwala jednym kliknięciem zadzwonić pod ulubione lub częste numery"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Brak kontaktów"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Lista szybkiego wybierania jest pusta"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Dodaj do ulubionych"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Nie masz jeszcze żadnych kontaktów"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Dodaj kontakt"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Kliknij obraz, by zobaczyć wszystkie numery, lub kliknij go i przytrzymaj, by zmienić kolejność"</string>
<string name="remove_contact" msgid="1080555335283662961">"Usuń"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"WSZYSTKIE KONTAKTY"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Rozmowa wideo"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"POSŁUCHAJ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Wyświetl szczegóły"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Wyślij wiadomość"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Szczegóły połączenia"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Zadzwoń: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Nieodebrane połączenie: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Odebrane połączenie: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Nieodsłuchana poczta głosowa od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Poczta głosowa od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Połączenie: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"na koncie <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Zadzwoń"</string>
- <string name="description_call_action" msgid="4000549004089776147">"Zadzwoń do <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Rozmowa wideo z: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_call_action" msgid="4000549004089776147">"Zadzwoń: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Rozpocznij rozmowę wideo z: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Posłuchaj wiadomości głosowej od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Odtwórz wiadomości głosowe od <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Wstrzymaj odtwarzanie wiadomości głosowych od <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Usuń wiadomości głosowe od <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> nowe wiadomości głosowe</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> nowych wiadomości głosowych</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nowej wiadomości głosowej</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nowa wiadomość głosowa</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Utwórz kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Dodaj: <xliff:g id="NAMEORNUMBER">^1</xliff:g> do istniejącego kontaktu"</string>
<string name="description_details_action" msgid="2433827152749491785">"Szczegóły połączeń: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Usunięto z historii połączeń"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Zgłoś"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Dzisiaj"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Wczoraj"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Starsze"</string>
@@ -189,5 +222,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Szybkie odpowiedzi"</string>
<string name="call_settings_label" msgid="313434211353070209">"Połączenia"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blokowanie połączeń"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokada połączeń tymczasowo wyłączona"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Zaimportuj numery"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Oznaczyłeś wcześniej niektórych rozmówców, aby byli automatycznie przekierowywani na pocztę głosową przy użyciu innych aplikacji."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Pokaż numery"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importuj"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Nie udało się zaimportować"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Odblokuj numer"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj numer"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Połączenia z tych numerów będą blokowane, a wiadomości głosowe będą usuwane automatycznie."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Połączenia z tych numerów będą blokowane, ale dzwoniący wciąż będą mogli zostawiać wiadomości głosowe."</string>
+ <string name="block_list" msgid="7760188925338078011">"Zablokowane numery"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Numer <xliff:g id="NUMBER">%1$s</xliff:g> jest nieprawidłowy."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Numer <xliff:g id="NUMBER">%1$s</xliff:g> jest już zablokowany."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokada połączeń została wyłączona na 48 godzin"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Wyłączona, ponieważ wykonano połączenie alarmowe."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Konta telefoniczne"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Włącz"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Ustaw uprawnienia"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Aby włączyć szybkie wybieranie, włącz uprawnienie Kontakty."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Aby zobaczyć swój rejestr połączeń, włącz uprawnienie Telefon."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Aby zobaczyć swoje kontakty, włącz uprawnienie Kontakty."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Aby uzyskać dostęp do poczty głosowej, włącz uprawnienie Telefon."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Aby wyszukać kontakty, włącz uprawnienia Kontakty."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Aby nawiązać połączenie, włącz uprawnienie Telefon."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacja Telefon nie ma uprawnień do zapisu w ustawieniach systemowych."</string>
</resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
new file mode 100644
index 000000000..54f700722
--- /dev/null
+++ b/res/values-pt-rBR/strings.xml
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2012 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefone"</string>
+ <string name="launcherActivityLabel" msgid="1129729740601172692">"Telefone"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Teclado numérico do smartphone"</string>
+ <string name="dialerIconLabel" msgid="6500826552823403796">"Telefone"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Histórico de chamadas"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Informar número incorreto"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copiar número"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copiar transcrição"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloquear número"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Número <xliff:g id="NUMBER">%1$s</xliff:g> bloqueado"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Desbloquear número"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Número <xliff:g id="NUMBER">%1$s</xliff:g> desbloqueado"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"DESFAZER"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Excluir"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de chamar"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Limpar histórico de chamadas"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Excluir mensagem de voz"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correio de voz excluído"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESFAZER"</string>
+ <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Limpar histórico de chamadas?"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Esta ação excluirá todas as chamadas do seu histórico"</string>
+ <string name="clearCallLogProgress_title" msgid="3372471156216306132">"Limpando histórico de chamadas…"</string>
+ <plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
+ <item quantity="one"> <xliff:g id="COUNT">%1$d</xliff:g> Correios de voz </item>
+ <item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> Correios de voz </item>
+ </plurals>
+ <string name="notification_action_voicemail_play" msgid="6113133136977996863">"Reproduzir"</string>
+ <string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
+ <string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova mensagem de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
+ <string name="voicemail_playback_error" msgid="3356071912353297599">"Não foi possível repr. correio de voz"</string>
+ <string name="voicemail_fetching_content" msgid="1287895365599580842">"Carregando correio de voz..."</string>
+ <string name="voicemail_fetching_timout" msgid="3959428065511972176">"Não foi possível carregar correio de voz"</string>
+ <string name="call_log_voicemail_header" msgid="3945407886667089173">"Somente chamadas com correio de voz"</string>
+ <string name="call_log_incoming_header" msgid="2787722299753674684">"Somente chamadas recebidas"</string>
+ <string name="call_log_outgoing_header" msgid="761009180766735769">"Somente chamadas de saída"</string>
+ <string name="call_log_missed_header" msgid="8017148056610855956">"Somente chamadas perdidas"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Correio de voz visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Veja e ouça seu correio de voz, sem precisar ligar para um número. Podem ser aplicadas cobranças de dados."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Configurações"</string>
+ <string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"As atualizações do correio de voz não estão disponíveis"</string>
+ <string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Novo correio de voz na espera. Não é possível carregá-lo agora."</string>
+ <string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configure seu correio de voz"</string>
+ <string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"O áudio não está disponível"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurar"</string>
+ <string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Ligar p/ correio voz"</string>
+ <string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
+ <string name="sms_disambig_title" msgid="5846266399240630846">"Escolher número"</string>
+ <string name="call_disambig_title" msgid="4392886850104795739">"Escolher número"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Lembrar desta escolha"</string>
+ <string name="description_search_button" msgid="3660807558587384889">"pesquisar"</string>
+ <string name="description_dial_button" msgid="1274091017188142646">"discar"</string>
+ <string name="description_digits_edittext" msgid="8760207516497016437">"número para discagem"</string>
+ <string name="description_playback_start_stop" msgid="5060732345522492292">"Iniciar ou interromper a reprodução"</string>
+ <string name="description_playback_speakerphone" msgid="6008323900245707504">"Ligar ou desligar o vivavoz"</string>
+ <string name="description_playback_seek" msgid="4509404274968530055">"Procurar posição de reprodução"</string>
+ <string name="description_rate_decrease" msgid="3161652589401708284">"Reduzir a taxa de reprodução"</string>
+ <string name="description_rate_increase" msgid="6324606574127052385">"Aumentar a taxa de reprodução"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Histórico de chamadas"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Mais opções"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado numérico"</string>
+ <string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar apenas enviadas"</string>
+ <string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar apenas recebidas"</string>
+ <string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar apenas perdidas"</string>
+ <string name="menu_show_voicemails_only" msgid="1898421289561435703">"Exibir apenas mensagens de voz"</string>
+ <string name="menu_show_all_calls" msgid="7560347482073345885">"Mostrar todas as chamadas"</string>
+ <string name="add_2sec_pause" msgid="9214012315201040129">"Adicionar pausa de 2 segundos"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Adicionar espera"</string>
+ <string name="dialer_settings_label" msgid="4305043242594150479">"Configurações"</string>
+ <string name="menu_newContact" msgid="1209922412763274638">"Novo contato"</string>
+ <string name="menu_allContacts" msgid="6948308384034051670">"Todos os contatos"</string>
+ <string name="callDetailTitle" msgid="5340227785196217938">"Detalhes da chamada"</string>
+ <string name="toast_call_detail_error" msgid="6947041258280380832">"Os detalhes não estão disponíveis"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Usar teclado multifrequencial"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Retornar para a chamada em espera"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Ad. cham."</string>
+ <string name="type_incoming" msgid="6502076603836088532">"Chamada recebida"</string>
+ <string name="type_outgoing" msgid="343108709599392641">"Chamada efetuada"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Chamada perdida"</string>
+ <string name="type_incoming_video" msgid="82323391702796181">"Videochamada recebida"</string>
+ <string name="type_outgoing_video" msgid="2858140021680755266">"Videochamada realizada"</string>
+ <string name="type_missed_video" msgid="954396897034220545">"Videochamada perdida"</string>
+ <string name="type_voicemail" msgid="5153139450668549908">"Correio de voz"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Chamada recusada"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Chamada bloqueada"</string>
+ <string name="actionIncomingCall" msgid="6028930669817038600">"Chamadas recebidas"</string>
+ <string name="description_call_log_play_button" msgid="651182125650429846">"Reproduzir mensagem de voz"</string>
+ <string name="description_view_contact" msgid="5205669345700598415">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call" msgid="3443678121983852666">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_contact_details" msgid="51229793651342809">"Detalhes de contato para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
+ <string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> chamadas."</string>
+ <string name="description_video_call" msgid="2933838090743214204">"Videochamada."</string>
+ <string name="description_send_text_message" msgid="3118485319691414221">"Enviar SMS para <xliff:g id="NAME">%1$s</xliff:g>"</string>
+ <string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nova mensagem de voz"</string>
+ <string name="description_start_voice_search" msgid="520539488194946012">"Iniciar pesquisa por voz"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="unknown" msgid="740067747858270469">"Desconhecido"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Correio de voz"</string>
+ <string name="private_num" msgid="6374339738119166953">"Número privado"</string>
+ <string name="payphone" msgid="7726415831153618726">"Telefone público"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
+ <string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
+ <string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Não é possível ligar para este número"</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Para configurar o correio de voz, vá para Menu &gt; Configurações."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Para ligar para o correio de voz, primeiro desative o modo avião."</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Carregando…"</string>
+ <string name="imei" msgid="3045126336951684285">"IMEI"</string>
+ <string name="meid" msgid="6210568493746275750">"MEID"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Carregando do cartão SIM..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"Contatos do cartão SIM"</string>
+ <string name="add_contact_not_available" msgid="5547311613368004859">"Nenhum app de contatos disponível"</string>
+ <string name="voice_search_not_available" msgid="2977719040254285301">"A pesquisa por voz não está disponível"</string>
+ <string name="call_not_available" msgid="8941576511946492225">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string>
+ <string name="activity_not_available" msgid="2287665636817987623">"Nenhum app está disponível para essa ação neste dispositivo"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Pesquisar contatos"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Adicionar número ou pesquisar contatos"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Seu histórico de chamadas está vazio"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Fazer uma chamada"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Você não tem chamadas perdidas."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Sua caixa de entrada de correio de voz está vazia."</string>
+ <string name="show_favorites_only" msgid="5520072531022614595">"Mostrar somente favoritos"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Histórico de chamadas"</string>
+ <string name="call_log_all_title" msgid="3566738938889333307">"Todas"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
+ <string name="call_log_voicemail_title" msgid="940422274047025948">"Correio de voz"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Chamadas feitas a partir deste número serão bloqueadas. Correios de voz serão excluídos automaticamente."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Chamadas feitas a partir deste número serão bloqueadas, mas é possível que o autor ainda consiga deixar correios de voz para você."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Desbloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"As chamadas feitas a você por este número não serão mais bloqueadas."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
+ <string name="tab_speed_dial" msgid="7552166276545648893">"Discagem rápida"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Histórico de chamadas"</string>
+ <string name="tab_all_contacts" msgid="1410922767166533690">"Contatos"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Correio de voz"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Removido dos favoritos"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Desfazer"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Criar novo contato"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Adicionar a um contato"</string>
+ <string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Enviar SMS"</string>
+ <string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Fazer videochamada"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
+ <string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Ainda não há ninguém na sua discagem rápida"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Adicionar favorito"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Você ainda não tem contatos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Adicionar um contato"</string>
+ <string name="contact_tooltip" msgid="2019777545923635266">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string>
+ <string name="remove_contact" msgid="1080555335283662961">"Remover"</string>
+ <string name="call_log_action_video_call" msgid="7724301709041128296">"Videochamada"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Enviar uma mensagem"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detalhes da chamada"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Ligar para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_incoming_missed_call" msgid="2381085098795943627">"Chamada perdida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_incoming_answered_call" msgid="7117665748428816544">"Chamada atendida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Correio de voz não lido de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_outgoing_call" msgid="6386364390619734734">"Chamada para <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_phone_account" msgid="1767072759541443861">"em <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
+ <string name="description_call_log_call_action" msgid="3682561657090693134">"Ligar"</string>
+ <string name="description_call_action" msgid="4000549004089776147">"Ligar para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videochamada <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_voicemail_action" msgid="8054891873788903063">"Ouvir mensagem de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reproduzir correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pausar correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Excluir correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> novos correios de voz</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> novos correios de voz</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Criar contato para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Adicionar <xliff:g id="NAMEORNUMBER">^1</xliff:g> a um contato já existente"</string>
+ <string name="description_details_action" msgid="2433827152749491785">"Detalhes de chamada para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="toast_entry_removed" msgid="8010830299576311534">"Excluída do histórico de chamadas"</string>
+ <string name="call_log_header_today" msgid="3225248682434212981">"Hoje"</string>
+ <string name="call_log_header_yesterday" msgid="9139172458834033092">"Ontem"</string>
+ <string name="call_log_header_other" msgid="5769921959940709084">"Antiga"</string>
+ <string name="call_detail_list_header" msgid="3752717059699600861">"Lista de chamadas"</string>
+ <string name="voicemail_speaker_on" msgid="209154030283487068">"Ative o alto-falante."</string>
+ <string name="voicemail_speaker_off" msgid="7390530056413093958">"Desative o alto-falante."</string>
+ <string name="voicemail_play_faster" msgid="3444751008615323006">"Reprodução mais rápida."</string>
+ <string name="voicemail_play_slower" msgid="4544796503902818832">"Reprodução mais lenta."</string>
+ <string name="voicemail_play_start_pause" msgid="3687447935787768983">"Inicie ou pause a reprodução."</string>
+ <string name="list_delimeter" msgid="4571593167738725100">", "</string>
+ <string name="display_options_title" msgid="7812852361055667468">"Opções de exibição"</string>
+ <string name="sounds_and_vibration_title" msgid="1692290115642160845">"Sons e vibração"</string>
+ <string name="accessibility_settings_title" msgid="6068141142874046249">"Acessibilidade"</string>
+ <string name="ringtone_title" msgid="760362035635084653">"Toque do telefone"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Também vibrar para chamadas"</string>
+ <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tons de teclado"</string>
+ <string name="dtmf_tone_length_title" msgid="8581125689808919460">"Duração do tom do teclado"</string>
+ <string-array name="dtmf_tone_length_entries">
+ <item msgid="1036113889050195575">"Normais"</item>
+ <item msgid="6177579030803486015">"Longos"</item>
+ </string-array>
+ <string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respostas rápidas"</string>
+ <string name="call_settings_label" msgid="313434211353070209">"Chamadas"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Bloqueio de chamadas"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueio de chamadas temporiamente desativado"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Anteriormente, você marcou alguns autores de chamada para serem enviados automaticamente para o correio de voz por meio de outros apps."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha na importação"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Chamadas a partir destes números serão bloqueadas. Correios de voz serão excluídos automaticamente."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Chamadas feitas a partir destes números serão bloqueadas, mas é possível que eles ainda consigam deixar correios de voz para você."</string>
+ <string name="block_list" msgid="7760188925338078011">"Números bloqueados"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"O número <xliff:g id="NUMBER">%1$s</xliff:g> é inválido."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bloqueio de chamadas desativado por 48 horas"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desativado porque foi feita uma chamada de emergência."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"Contas de chamadas"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Ativar"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Definir permissões"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"O app Telefone não tem permissão para gravar nas configurações do sistema."</string>
+</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index ac14a0b72..e1a0876b5 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Telefone"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telemóvel"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telemóvel"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Teclado do telemóvel"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefone"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Histórico de chamadas"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Ligar a <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Editar número antes de efectuar a chamada"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Adicionar aos contactos"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Eliminar do histórico de chamadas"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Limpar histórico de chamadas"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Eliminar correio de voz"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Partilhar correio de voz"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Sem chamadas"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Histórico de chamadas"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Denunciar número incorreto"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copiar número"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copiar transcrição"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloquear número"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> bloqueado"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Desbloquear número"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> desbloqueado"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ANULAR"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Eliminar"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar o número antes de efetuar a chamada"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Limpar histórico de chamadas"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Eliminar correio de voz"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correio de voz elim."</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANULAR"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Limpar histórico de chamadas?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Todas as chamadas serão eliminadas do histórico"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"A limpar histórico de chamadas…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g> , <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova msg de correio de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Não foi poss. reprod. o correio de voz"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"A colocar na memória intermédia..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"A carregar o correio de voz..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Não foi poss. carregar o correio de voz"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Apenas chamadas com correio de voz"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Apenas chamadas recebidas"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Apenas chamadas efetuadas"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Apenas chamadas não atendidas"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Correio de voz visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Veja e ouça o seu correio de voz sem ter de telefonar para um número. Podem aplicar-se taxas de dados."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Definições"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Atualizações do correio de voz não disponíveis"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nova mensag. corr. voz a aguardar. Não é poss. carregar agora."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configurar o correio de voz"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Áudio não disponível"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurar"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Chamar correio de voz"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Velocidade mais lenta"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Velocidade reduzida"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Velocidade normal"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Velocidade rápida"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Velocidade mais rápida"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Selecionar número"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Selecionar número"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Histórico de Chamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Mais opções"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar apenas cham. efetuadas"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar apenas cham. recebidas"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar apenas cham. n. atend."</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Videochamada efetuada"</string>
<string name="type_missed_video" msgid="954396897034220545">"Videochamada não atendida"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Correio de voz"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Chamada recusada"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Chamada bloqueada"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Chamadas recebidas"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Reproduzir mensagem de correio de voz"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Ver o contacto <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Ligar a <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Detalhes de contacto para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Novo correio de voz."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> chamadas."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videochamada."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Enviar SMS para <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Correio de voz"</string>
<string name="private_num" msgid="6374339738119166953">"Número particular"</string>
<string name="payphone" msgid="7726415831153618726">"Telefone público"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> seg."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Não é possível ligar para este número"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Para configurar o correio de voz, aceda a Menu &gt; Definições."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Para efetuar uma chamada para o correio de voz, desative primeiro o Modo de avião."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Pesquisa por voz não disponível"</string>
<string name="call_not_available" msgid="8941576511946492225">"Não é possível efetuar uma chamada porque a aplicação Telefone foi desativada."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Não existe nenhuma aplicação para isso neste dispositivo"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Intr. um nome ou um n.º tel."</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Sem chamadas"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Sem mensagens de correio de voz recentes"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Pesquisar contactos"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Adic. n.º ou pesq. contactos"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"O seu histórico de chamadas está vazio"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Efetuar uma chamada"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Não tem chamadas não atendidas."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"A caixa de entrada do correio de voz está vazia."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar apenas os favoritos"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Histórico"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Histórico de Chamadas"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Todas"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Não atendidas"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Corr. Voz"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Pretende bloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"As chamadas a partir deste número serão bloqueadas e as mensagens de correio de voz serão automaticamente eliminadas."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"As chamadas a partir deste número serão bloqueadas, mas o autor da chamada poderá deixar-lhe mensagens de correio de voz."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Pretende desbloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Este número deixará de estar bloqueado e poderá telefonar para si."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Marcação rápida"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recentes"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Histórico de Chamadas"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contactos"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Correio de voz"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Removido dos favoritos"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Anular"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Telefonar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Criar novo contacto"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Adicionar ao contacto existente"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Adicionar a um contacto"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Enviar SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Fazer videochamada"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Ver histórico de chamadas completo"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> chamadas não atendidas novas"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"A marcação rápida é uma marcação de um toque dos favoritos e dos números mais frequentes"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Sem contactos"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Ainda não tem ninguém na marcação rápida"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Adicionar um favorito"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Ainda não tem nenhum contacto"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Adicionar um contacto"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Toque na imagem para ver todos os números ou toque sem soltar para reordenar"</string>
<string name="remove_contact" msgid="1080555335283662961">"Remover"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS OS CONTACTOS"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videochamada"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"OUVIR"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Ver detalhes"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Enviar uma mensagem"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detalhes da chamada"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Telefonar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Chamada não atendida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Chamada atendida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Mensagem de correio de voz não lida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Mensagem de correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Telefonar para <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"em <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Telefonar"</string>
<string name="description_call_action" msgid="4000549004089776147">"Telefonar a <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videochamada para <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Fazer videochamada com <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Ouvir o correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reproduzir mensagem de correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Colocar a mensagem de correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g> em pausa"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Eliminar mensagem de correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> novas mensagens de correio de voz</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nova mensagem de correio de voz</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Criar contacto para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Adicionar <xliff:g id="NAMEORNUMBER">^1</xliff:g> ao contacto existente"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detalhes de chamadas de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Eliminado do histórico de chamadas"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Denunciar"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Hoje"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Ontem"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Mais antigas"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respostas rápidas"</string>
<string name="call_settings_label" msgid="313434211353070209">"Chamadas"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Bloqueio de chamadas"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueio de chamadas tempor. desativado"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Anteriormente, marcou alguns autores de chamadas para serem automaticamente enviados para o correio de voz através de outras aplicações."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha ao importar"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"As chamadas a partir destes números serão bloqueadas e as mensagens de correio de voz serão automaticamente eliminadas."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"As chamadas a partir destes números serão bloqueadas, mas os respetivos autores poderão deixar-lhe mensagens de correio de voz."</string>
+ <string name="block_list" msgid="7760188925338078011">"Números bloqueados"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> é inválido."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bloqueio de chamadas desativado durante 48 horas"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desativado porque foi efetuada uma chamada de emergência."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Contas de chamadas"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Ativar"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Definir autorizações"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Para ativar a marcação rápida, ative a autorização Contactos."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Para ver o registo de chamadas, ative a autorização Telemóvel."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Para ver os seus contactos, ative a autorização Contactos."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Para aceder ao correio de voz, ative a autorização Telemóvel."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar os seus contactos, ative as autorizações Contactos."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Para efetuar uma chamada, ative a autorização Telemóvel."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"A aplicação Telefone não tem autorização para gravar nas definições do sistema."</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index e858734e0..54f700722 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Discador"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefone"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefone"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Teclado numérico do smartphone"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefone"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Histórico de chamadas"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Ligar para <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Editar número antes da chamada"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Adicionar aos contatos"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Excluir do histórico de chamadas"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Limpar histórico de chamadas"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Excluir correio de voz"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Compartilhar correio de voz"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Nenhuma chamada"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Histórico de chamadas"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Informar número incorreto"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copiar número"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copiar transcrição"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Bloquear número"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Número <xliff:g id="NUMBER">%1$s</xliff:g> bloqueado"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Desbloquear número"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Número <xliff:g id="NUMBER">%1$s</xliff:g> desbloqueado"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"DESFAZER"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Excluir"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Editar número antes de chamar"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Limpar histórico de chamadas"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Excluir mensagem de voz"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Correio de voz excluído"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"DESFAZER"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Limpar histórico de chamadas?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Esta ação excluirá todas as chamadas do seu histórico"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Limpando histórico de chamadas…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova mensagem de voz de <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Não foi possível repr. correio de voz"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Armazenar em buffer…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Carregando correio de voz..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Não foi possível carregar correio de voz"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Somente chamadas com correio de voz"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Somente chamadas recebidas"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Somente chamadas de saída"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Somente chamadas perdidas"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Correio de voz visual"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Veja e ouça seu correio de voz, sem precisar ligar para um número. Podem ser aplicadas cobranças de dados."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Configurações"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"As atualizações do correio de voz não estão disponíveis"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Novo correio de voz na espera. Não é possível carregá-lo agora."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configure seu correio de voz"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"O áudio não está disponível"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurar"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Ligar p/ correio voz"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Velocidade mais lenta"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Baixa velocidade"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Velocidade normal"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Velocidade rápida"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Velocidade mais rápida"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Escolher número"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Escolher número"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Histórico de chamadas"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Mais opções"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"teclado numérico"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copiar"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Mostrar apenas enviadas"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Mostrar apenas recebidas"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Mostrar apenas perdidas"</string>
@@ -92,18 +95,19 @@
<string name="type_incoming" msgid="6502076603836088532">"Chamada recebida"</string>
<string name="type_outgoing" msgid="343108709599392641">"Chamada efetuada"</string>
<string name="type_missed" msgid="2720502601640509542">"Chamada perdida"</string>
- <string name="type_incoming_video" msgid="82323391702796181">"Vídeo chamada recebida"</string>
- <string name="type_outgoing_video" msgid="2858140021680755266">"Vídeo chamada realizada"</string>
- <string name="type_missed_video" msgid="954396897034220545">"Vídeo chamada perdida"</string>
+ <string name="type_incoming_video" msgid="82323391702796181">"Videochamada recebida"</string>
+ <string name="type_outgoing_video" msgid="2858140021680755266">"Videochamada realizada"</string>
+ <string name="type_missed_video" msgid="954396897034220545">"Videochamada perdida"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Correio de voz"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Chamada recusada"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Chamada bloqueada"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Chamadas recebidas"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Reproduzir mensagem de voz"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Visualizar contato <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Ligar para <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Detalhes de contato para <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nova mensagem de voz."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> chamadas."</string>
- <string name="description_video_call" msgid="2933838090743214204">"Vídeo chamada."</string>
+ <string name="description_video_call" msgid="2933838090743214204">"Videochamada."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Enviar SMS para <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Nova mensagem de voz"</string>
<string name="description_start_voice_search" msgid="520539488194946012">"Iniciar pesquisa por voz"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Correio de voz"</string>
<string name="private_num" msgid="6374339738119166953">"Número privado"</string>
<string name="payphone" msgid="7726415831153618726">"Telefone público"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> seg"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> m <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> às <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Não é possível ligar para este número"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Para configurar o correio de voz, vá para Menu &gt; Configurações."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Para ligar para o correio de voz, primeiro desative o modo avião."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"A pesquisa por voz não está disponível"</string>
<string name="call_not_available" msgid="8941576511946492225">"Não é possível fazer uma chamada porque o app Telefone foi desativado."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Nenhum app está disponível para essa ação neste dispositivo"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Inserir nome ou núm. telefone"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Nenhuma chamada"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Nenhum correio de voz recente"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Pesquisar contatos"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Adicionar número ou pesquisar contatos"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Seu histórico de chamadas está vazio"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Fazer uma chamada"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Você não tem chamadas perdidas."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Sua caixa de entrada de correio de voz está vazia."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mostrar somente favoritos"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Histórico"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Histórico de chamadas"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Todas"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Perdidas"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Correio de voz"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Bloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Chamadas feitas a partir deste número serão bloqueadas. Correios de voz serão excluídos automaticamente."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Chamadas feitas a partir deste número serão bloqueadas, mas é possível que o autor ainda consiga deixar correios de voz para você."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOQUEAR"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Desbloquear <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"As chamadas feitas a você por este número não serão mais bloqueadas."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DESBLOQUEAR"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Discagem rápida"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recentes"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Histórico de chamadas"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Contatos"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Correio de voz"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Removido dos favoritos"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Desfazer"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Ligar para <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Criar novo contato"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Adicionar a contato já existente"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Adicionar a um contato"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Enviar SMS"</string>
- <string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Fazer vídeo chamada"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Ver todo o histórico de chamadas"</string>
+ <string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Fazer videochamada"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Bloquear número"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> novas chamadas perdidas"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"A discagem rápida é feita com apenas um toque para favoritos e números para os quais você liga com frequência"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Nenhum contato"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Ainda não há ninguém na sua discagem rápida"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Adicionar favorito"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Você ainda não tem contatos"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Adicionar um contato"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Toque na imagem para ver todos os números ou toque e segure para reordenar"</string>
<string name="remove_contact" msgid="1080555335283662961">"Remover"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TODOS OS CONTATOS"</string>
- <string name="call_log_action_video_call" msgid="7724301709041128296">"Vídeo chamada"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"OUVIR"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Ver detalhes"</string>
+ <string name="call_log_action_video_call" msgid="7724301709041128296">"Videochamada"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Enviar uma mensagem"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detalhes da chamada"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Ligar para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Chamada perdida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Chamada atendida de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Correio de voz não lido de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Chamada para <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"em <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Ligar"</string>
<string name="description_call_action" msgid="4000549004089776147">"Ligar para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Vídeo chamada para <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videochamada <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Ouvir mensagem de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Reproduzir correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pausar correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Excluir correio de voz de <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> novos correios de voz</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> novos correios de voz</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Criar contato para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Adicionar <xliff:g id="NAMEORNUMBER">^1</xliff:g> a um contato já existente"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detalhes de chamada para <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Excluída do histórico de chamadas"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Informar"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Hoje"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Ontem"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Antiga"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Respostas rápidas"</string>
<string name="call_settings_label" msgid="313434211353070209">"Chamadas"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Bloqueio de chamadas"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bloqueio de chamadas temporiamente desativado"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importar números"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Anteriormente, você marcou alguns autores de chamada para serem enviados automaticamente para o correio de voz por meio de outros apps."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ver números"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importar"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Falha na importação"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Desbloquear número"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Adicionar número"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Chamadas a partir destes números serão bloqueadas. Correios de voz serão excluídos automaticamente."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Chamadas feitas a partir destes números serão bloqueadas, mas é possível que eles ainda consigam deixar correios de voz para você."</string>
+ <string name="block_list" msgid="7760188925338078011">"Números bloqueados"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"O número <xliff:g id="NUMBER">%1$s</xliff:g> é inválido."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"O número <xliff:g id="NUMBER">%1$s</xliff:g> já está bloqueado."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bloqueio de chamadas desativado por 48 horas"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Desativado porque foi feita uma chamada de emergência."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Contas de chamadas"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Ativar"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Definir permissões"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Para ativar a discagem rápida, ative a permissão para o app Contatos."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Para ver seu registro de chamadas, ative a permissão para o app Telefone."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Para ver seus contatos, ative a permissão para o app Contatos."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Para acessar seu correio de voz, ative a permissão para o app Telefone."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Para pesquisar seus contatos, ative as permissões para \"Contatos\"."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Para fazer uma chamada, ative a permissão para o app Telefone."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"O app Telefone não tem permissão para gravar nas configurações do sistema."</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 86a82b7d8..11208cf69 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Telefon"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Tastatura numerică a telefonului"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Istoricul apelurilor"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Apelaţi <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Modificaţi numărul înainte de apelare"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Adăugaţi la persoane din agendă"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Ștergeți din istoricul apelurilor"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Ștergeți istoricul apelurilor"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ștergeţi mesajul vocal"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Distribuiţi mesajul vocal"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Niciun apel"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Istoricul apelurilor"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Raportați numărul ca incorect"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Copiați numărul"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Copiați transcrierea"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blocați numărul"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> a fost blocat"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Deblocați numărul"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> a fost deblocat"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ANULAȚI"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Ștergeți"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Modificați numărul înainte de apelare"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Ștergeți istoricul apelurilor"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ștergeți mesajul vocal"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Mesaj vocal șters"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ANULAȚI"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Ștergeți istoricul apelurilor?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Astfel vor fi șterse toate apelurile din istoric"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Se șterge istoricul apelurilor…"</string>
@@ -41,28 +48,25 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Mesaj vocal nou de la <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Nu s-a putut reda mesageria vocală"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Se utilizează memoria tampon..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Se încarcă mesageria vocală…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Nu s-a putut încărca mesageria vocală"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Numai apelurile cu mesaje vocale"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Numai apelurile primite"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Numai apelurile efectuate"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Numai apelurile nepreluate"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Mesagerie vocală vizuală"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Vedeți și ascultați mesageria vocală, fără a fi necesar să apelați un număr de telefon. Pot fi aplicate costuri pentru date."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Setări"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Nu sunt disponibile actualizări ale mesageriei vocale"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Mesaj vocal nou în așteptare. Nu poate fi încărcat acum."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Configurați mesageria vocală"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Conținutul audio nu este disponibil"</string>
- <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configuraţi"</string>
+ <string name="voicemail_status_action_configure" msgid="8671796489912239589">"Configurați"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Apel. mesag. vocală"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Viteză minimă"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Viteză redusă"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Viteză normală"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Viteză crescută"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Viteză maximă"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Selectaţi numărul"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Selectaţi numărul"</string>
- <string name="make_primary" msgid="5829291915305113983">"Reţineţi această alegere"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Rețineți această alegere"</string>
<string name="description_search_button" msgid="3660807558587384889">"căutare"</string>
<string name="description_dial_button" msgid="1274091017188142646">"apelaţi"</string>
<string name="description_digits_edittext" msgid="8760207516497016437">"numărul de apelat"</string>
@@ -72,24 +76,23 @@
<string name="description_rate_decrease" msgid="3161652589401708284">"Reduceți viteza redării"</string>
<string name="description_rate_increase" msgid="6324606574127052385">"Măriți viteza redării"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Istoricul apelurilor"</string>
- <string name="action_menu_overflow_description" msgid="2303272250613084574">"Mai multe opţiuni"</string>
+ <string name="action_menu_overflow_description" msgid="2303272250613084574">"Mai multe opțiuni"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"tastatură numerică"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Copiaţi"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Numai apelurile efectuate"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Numai apelurile primite"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Numai apelurile nepreluate"</string>
<string name="menu_show_voicemails_only" msgid="1898421289561435703">"Afişaţi numai mesajele vocale"</string>
<string name="menu_show_all_calls" msgid="7560347482073345885">"Afişaţi toate apelurile"</string>
<string name="add_2sec_pause" msgid="9214012315201040129">"Adăugați o pauză de 2 secunde"</string>
- <string name="add_wait" msgid="3360818652790319634">"Adăugaţi interval de aşteptare"</string>
+ <string name="add_wait" msgid="3360818652790319634">"Adăugați interval de așteptare"</string>
<string name="dialer_settings_label" msgid="4305043242594150479">"Setări"</string>
<string name="menu_newContact" msgid="1209922412763274638">"Intrare nouă în agendă"</string>
<string name="menu_allContacts" msgid="6948308384034051670">"Toată agenda"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detaliile apelului"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Nu sunt disponibile detalii"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Utilizaţi tastatura DTMF"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Tastatura tactilă cu sunet"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Reveniţi la apelul în curs"</string>
- <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Adăugaţi un apel"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Adăugați un apel"</string>
<string name="type_incoming" msgid="6502076603836088532">"Apel de intrare"</string>
<string name="type_outgoing" msgid="343108709599392641">"Apel de ieşire"</string>
<string name="type_missed" msgid="2720502601640509542">"Apel nepreluat"</string>
@@ -97,12 +100,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Apel video efectuat"</string>
<string name="type_missed_video" msgid="954396897034220545">"Apel video nepreluat"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Mesaj vocal"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Apel respins"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Apel blocat"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Apeluri de intrare"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Redaţi mesajul vocal"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Afişaţi persoana din agendă <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Apelaţi pe <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Detalii de contact pentru <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Mesaj vocal nou."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> (de) apeluri."</string>
<string name="description_video_call" msgid="2933838090743214204">"Apel video."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Trimiteți SMS la <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -113,10 +117,14 @@
<string name="voicemail" msgid="3851469869202611441">"Mesagerie vocală"</string>
<string name="private_num" msgid="6374339738119166953">"Număr privat"</string>
<string name="payphone" msgid="7726415831153618726">"Telefon public"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> (de) secunde"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> sec."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> la <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Nu puteți apela acest număr"</string>
- <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Pentru a configura mesageria vocală, accesaţi Meniu &gt; Setări."</string>
- <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Pentru a apela mesageria vocală, mai întâi dezactivaţi modul Avion."</string>
+ <string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Pentru a configura mesageria vocală, accesați Meniu &gt; Setări."</string>
+ <string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Pentru a apela mesageria vocală, mai întâi dezactivați modul Avion."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"Se încarcă..."</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
@@ -126,45 +134,69 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Căutarea vocală nu este disponibilă"</string>
<string name="call_not_available" msgid="8941576511946492225">"Nu se poate efectua un apel telefonic, deoarece aplicația Telefon a fost dezactivată."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Pe dispozitiv nu există nicio aplicație pentru această acțiune"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Introduceți nume sau număr"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Niciun apel"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Niciun mesaj vocal recent"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Căutați persoane de contact"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Adăugați număr/căutați contacte"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Istoricul apelurilor este gol"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Apelați"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nu aveți niciun apel nepreluat."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Nu există mesaje primite în mesageria vocală."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Afișați numai preferate"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Istoric"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Istoricul apelurilor"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Toate"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Nepreluate"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Mesagerie vocală"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blocați <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Apelurile de la acest număr vor fi blocate, iar mesajele vocale vor fi șterse automat."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Apelurile de la acest număr vor fi blocate, dar apelantul va putea totuși să vă lase mesaje vocale."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOCAȚI"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Deblocați <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Acest număr nu va mai fi blocat și va putea să vă apeleze."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"DEBLOCAȚI"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Apelare rapidă"</string>
- <string name="tab_recents" msgid="929949073851377206">"Recente"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Istoricul apelurilor"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Agendă"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Mesagerie vocală"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"S-a eliminat din preferate"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Anulați"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Apelați <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Creați o persoană de contact nouă"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Adăugați la o persoană de contact"</string>
+ <string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Creați o intrare nouă"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Adăugați la o intrare"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Trimiteți SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Inițiați un apel video"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Vedeți istoricul complet al apelurilor"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blocați numărul"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> (de) apeluri nepreluate noi"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Apelarea rapidă este apelarea printr-o singură atingere a numerelor preferate și a numerelor pe care le apelați frecvent"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Nu există persoane de contact"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Nicio persoană de contact setată pentru apelarea rapidă"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Adăugați o persoană de contact preferată"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Nu aveți încă persoane de contact"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Adăugați o persoană de contact"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Atingeți imaginea pentru a vedea toate numerele sau atingeți lung pentru reordonare"</string>
<string name="remove_contact" msgid="1080555335283662961">"Eliminați"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TOATĂ AGENDA"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Apel video"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ASCULTAȚI"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Vedeți detaliile"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Trimiteți un mesaj"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detaliile apelului"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Apelați <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Apel nepreluat de la <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Apel preluat de la <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Mesaj vocal necitit de la <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Mesaj vocal de la <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Apel către <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"pe <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Apelați"</string>
<string name="description_call_action" msgid="4000549004089776147">"Apelați <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Apel video către <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Apelați video <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Ascultați mesajul vocal de la <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Redați mesajul vocal de la <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Întrerupeți mesajul vocal de la <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Ștergeți mesajul vocal de la <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> mesaje vocale noi</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> de mesaje vocale noi</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> mesaj vocal nou</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Creați o persoană de contact pentru <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Adăugați <xliff:g id="NAMEORNUMBER">^1</xliff:g> la o persoană de contact existentă"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detaliile apelului pentru <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"S-a șters din istoricul apelurilor"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Raportați"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Astăzi"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Ieri"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Mai vechi"</string>
@@ -188,5 +220,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Răspunsuri rapide"</string>
<string name="call_settings_label" msgid="313434211353070209">"Apeluri"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blocarea apelurilor"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blocarea apelurilor e dezactivată temporar"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importați numere"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Anterior, ați marcat câțiva apelanți pentru a fi redirecționați automat spre mesageria vocală prin alte aplicații."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Vedeți numerele"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importați"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importul nu a reușit"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Deblocați numărul"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Adăugați un număr"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Apelurile de la aceste numere vor fi blocate, iar mesajele vocale vor fi șterse automat."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Apelurile de la aceste numere vor fi blocate, dar apelanții vor putea totuși să vă lase mesaje vocale."</string>
+ <string name="block_list" msgid="7760188925338078011">"Numere blocate"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> nu este valid."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> este deja blocat."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blocarea apelurilor este dezactivată pentru 48 de ore"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Dezactivată din cauza efectuării unui apel de urgență."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Conturi pentru apelare"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Activați"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Setați permisiunile"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Pentru a activa apelarea rapidă, activați permisiunea Agendă."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Pentru a vedea jurnalul de apeluri, activați permisiunea Telefon."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Pentru a vedea persoanele de contact, activați permisiunea Agendă."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Pentru a accesa mesageria vocală, activați permisiunea Telefon."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Pentru a căuta în persoanele de contact, activați permisiunea Agendă."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Pentru a apela, activați permisiunea Telefon."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplicația Telefon nu are permisiunea să modifice setările de sistem."</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 5088cb2a3..a18828519 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Телефон"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Телефон"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Телефон"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Панель набора номера"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Кнопки"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Журнал звонков."</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Вызов: <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Изменить номер и вызвать"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Добавить в контакты"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Удалить из журнала звонков"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Очистить историю звонков"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Удалить голосовое сообщение"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Поделиться"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Вызовов нет."</string>
- <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Очистить историю звонков?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"История звонков будет удалена."</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Журнал звонков"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Ошибка в номере"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Скопировать номер"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Скопировать транскрипцию"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Заблокировать номер"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> заблокирован"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Разблокировать номер"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> разблокирован"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ОТМЕНИТЬ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Удалить"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Изменить номер и позвонить"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Очистить журнал звонков"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Удалить голосовое сообщение"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Сообщение удалено"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ОТМЕНИТЬ"</string>
+ <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Очистить журнал звонков?"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Журнал звонков будет удален."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Очистка журнала звонков…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="one"> <xliff:g id="COUNT">%1$d</xliff:g> голосовое сообщение </item>
@@ -42,28 +49,25 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Новое гол. сообщение: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Не удалось воспроизвести сообщения"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Буферизация..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Загрузка сообщений…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Не удалось загрузить голосовую почту"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Только звонки с голосовой почтой"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Только входящие звонки"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Только исходящие звонки"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Только пропущенные звонки"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Визуальная голосовая почта"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Просматривайте и прослушивайте голосовые сообщения без лишних звонков. Может взиматься плата за передачу данных."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Настройки"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Не удается загрузить данные голосовой почты"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Не удается загрузить новое голосовое сообщение"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Настройте голосовую почту"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Аудио недоступно"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Настройка"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Получить почту"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Минимальная скорость"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Низкая скорость"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Средняя скорость"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Высокая скорость"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Максимальная скорость"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Выбор номера"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Выбор номера"</string>
- <string name="make_primary" msgid="5829291915305113983">"Запомнить выбранное"</string>
+ <string name="make_primary" msgid="5829291915305113983">"Запомнить выбор"</string>
<string name="description_search_button" msgid="3660807558587384889">"поиск"</string>
<string name="description_dial_button" msgid="1274091017188142646">"набор номера"</string>
<string name="description_digits_edittext" msgid="8760207516497016437">"набираемый номер"</string>
@@ -72,10 +76,9 @@
<string name="description_playback_seek" msgid="4509404274968530055">"Выбрать позицию для воспроизведения"</string>
<string name="description_rate_decrease" msgid="3161652589401708284">"Уменьшить скорость воспроизведения"</string>
<string name="description_rate_increase" msgid="6324606574127052385">"Увеличить скорость воспроизведения"</string>
- <string name="action_menu_call_history_description" msgid="9018442816219748968">"История вызовов"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Журнал звонков"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Ещё"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"Панель набора номера"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Копировать"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Исходящие"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Входящие"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Пропущенные"</string>
@@ -88,9 +91,9 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Все контакты"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Вызов"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Данные недоступны"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Использовать тональный набор"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Вернуться к ожидающему вызову"</string>
- <string name="dialer_addAnotherCall" msgid="4205688819890074468">"+ вызов"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Панель тонального набора"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Вернуться к текущему вызову"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Добавить вызов"</string>
<string name="type_incoming" msgid="6502076603836088532">"Входящий вызов"</string>
<string name="type_outgoing" msgid="343108709599392641">"Исходящий вызов"</string>
<string name="type_missed" msgid="2720502601640509542">"Пропущенный вызов"</string>
@@ -98,12 +101,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Исходящий видеовызов"</string>
<string name="type_missed_video" msgid="954396897034220545">"Пропущенный видеовызов"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Голосовая почта"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Отклоненный вызов"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Заблокированный вызов"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Входящие вызовы"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Прослушать голосовую почту"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Просмотреть данные: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Позвонить: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Сведения о контакте <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Новое голосовое сообщение."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Вызовов: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"Видеовстреча"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Отправить SMS пользователю <xliff:g id="NAME">%1$s</xliff:g>."</string>
@@ -114,7 +118,11 @@
<string name="voicemail" msgid="3851469869202611441">"Голосовая почта"</string>
<string name="private_num" msgid="6374339738119166953">"Скрытый номер"</string>
<string name="payphone" msgid="7726415831153618726">"Телефон-автомат"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> сек."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> мин. <xliff:g id="SECONDS">%s</xliff:g> сек."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> в <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"На этот номер нельзя позвонить."</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Чтобы настроить голосовую почту, выберите \"Меню &gt; Настройки\"."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Сначала отключите режим полета."</string>
@@ -127,45 +135,70 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Голосовой поиск недоступен"</string>
<string name="call_not_available" msgid="8941576511946492225">"Нельзя совершать телефонные звонки, поскольку приложение \"Телефон\" отключено."</string>
<string name="activity_not_available" msgid="2287665636817987623">"На устройстве нет подходящего приложения"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Введите имя или номер телефона"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Вызовов нет."</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Сообщений нет."</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Поиск в контактах"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Найдите контакт или введите номер"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"В журнале пока нет звонков."</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Вызов"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Нет пропущенных вызовов"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Нет входящих голосовых сообщений"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Только часто используемые"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"История"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Журнал звонков"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Все"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропущенные"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Г. почта"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Заблокировать <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Вызовы с этого номера будут блокироваться, а голосовые сообщения – автоматически удаляться."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Вызовы с этого номера будут блокироваться, но абонент сможет оставлять вам голосовые сообщения."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"БЛОКИРОВАТЬ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Разблокировать <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Теперь вы сможете получать звонки с этого номера."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"РАЗБЛОКИРОВАТЬ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Быстрый набор"</string>
- <string name="tab_recents" msgid="929949073851377206">"Недавние"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Журнал звонков"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Контакты"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Голосовая почта"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Контакт удален из избранных"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Отмена"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Позвонить: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Создать контакт"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Добавить к контакту"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Добавить к контакту"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Отправить SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Начать видеовстречу"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Посмотреть весь журнал звонков"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Заблокировать номер"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Пропущенных вызовов: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Настройте быстрый набор, чтобы вам было удобнее звонить на часто используемые номера."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Ничего не найдено."</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Нет номеров для быстрого набора"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Настроить быстрый набор"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Нет контактов"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Добавить контакт"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Коснитесь изображения, чтобы увидеть все номера, или нажмите и удерживайте, чтобы изменить порядок"</string>
<string name="remove_contact" msgid="1080555335283662961">"Удалить"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ВСЕ КОНТАКТЫ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Видеовстреча"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ПРОСЛУШАТЬ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Сведения"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Отправить сообщение"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Сведения о вызове"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Позвонить: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Пропущен вызов от контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>. <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Принят вызов от контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>. <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Непрослушанное сообщение от контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Голосовая почта от контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Вызов контакту <xliff:g id="NAMEORNUMBER">^1</xliff:g>. <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Вызов"</string>
<string name="description_call_action" msgid="4000549004089776147">"Позвонить: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Отправить ответный видеовызов контакту <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Видеовстреча: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Прослушать сообщение от контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Прослушать голосовое сообщение от контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Приостановить голосовое сообщение от контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Удалить голосовое сообщение от контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> новое голосовое сообщение</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> новых голосовых сообщения</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> новых голосовых сообщений</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> нового голосового сообщения</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Добавить контакт: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Добавить \"<xliff:g id="NAMEORNUMBER">^1</xliff:g>\" к контакту"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> – сведения о вызове"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Вызов удален из журнала"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Отчет"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Сегодня"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Вчера"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Предыдущие записи"</string>
@@ -176,7 +209,7 @@
<string name="voicemail_play_slower" msgid="4544796503902818832">"Уменьшить скорость воспроизведения."</string>
<string name="voicemail_play_start_pause" msgid="3687447935787768983">"Начать или приостановить воспроизведение."</string>
<string name="list_delimeter" msgid="4571593167738725100">", "</string>
- <string name="display_options_title" msgid="7812852361055667468">"Упорядочить"</string>
+ <string name="display_options_title" msgid="7812852361055667468">"Отображение контактов"</string>
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Звуки и вибрация"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Специальные возможности"</string>
<string name="ringtone_title" msgid="760362035635084653">"Рингтон"</string>
@@ -189,5 +222,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Быстрые ответы"</string>
<string name="call_settings_label" msgid="313434211353070209">"Вызовы"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Блокировка вызовов"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокировка вызовов временно отключена"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокировка вызовов отключена, поскольку вы недавно набирали номер экстренной службы. Когда с момента звонка пройдет 48 часов, эта функция включится автоматически."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Импортировать номера"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Вы настроили перенаправление вызовов от некоторых абонентов в голосовую почту в других приложениях."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Просмотреть номера"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Импортировать"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ошибка импорта"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Разблокировать номер"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Добавить номер"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Вызовы с этих номеров будут блокироваться, а голосовые сообщения – автоматически удаляться."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Вызовы с этих номеров будут блокироваться, но абоненты смогут оставлять вам голосовые сообщения."</string>
+ <string name="block_list" msgid="7760188925338078011">"Заблокированные номера"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> недействителен."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> уже заблокирован."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокировка вызовов отключена на 48 часов"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Блокировка звонков отключена из-за экстренного вызова"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Аккаунты для звонков"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Включить"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Задать разрешения"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Чтобы настроить быстрый набор, предоставьте приложению разрешение \"Контакты\"."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Чтобы открыть список вызовов, предоставьте приложению разрешение \"Телефон\"."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Чтобы открыть список контактов, предоставьте приложению разрешение \"Контакты\"."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Чтобы получить доступ к голосовой почте, предоставьте приложению разрешение \"Телефон\"."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Для поиска контактов включите разрешение \"Контакты\"."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Чтобы позвонить, предоставьте приложению разрешение \"Телефон\"."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"У приложения \"Телефон\" нет разрешения на изменение системных настроек."</string>
</resources>
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index f1c2f066c..72262a626 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"අංකිත මුහුණ"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"දුරකථනය"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"දුරකථනය"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"දුරකථන ඩයල්පෑඩය"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"දුරකථනය"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"ඇමතුම් ඉතිහාසය"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> අමතන්න"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"ඇමතීමට කලින් අංකය වෙනස් කරන්න"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"සම්බන්ධතා වලට එක් කරන්න"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"ඇමතුම් ඉතිහාසයෙන් මකන්න"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"ඇමතුම් ඉතිහාසය හිස් කරන්න"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"හඬ තැපෑල මකන්න"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"හඬ තැපෑල බෙදාගන්න"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"ඇමතුම් නැත"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"ඇමතුම් ඉතිහාසය"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"වැරදි අංකය වාර්තා කරන්න"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"අංකය පිටපත් කරන්න"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"පිටපත් කිරීම පිටපත් කරන්න"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"අංකය අවහිර කරන්න"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> අවහිරයි"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"අංකය අවහිර නොකරන්න"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> අවහිර නැත"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"අස් කරන්න"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"මකන්න"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"ඇමතුමට පෙර අංකය සංස්කරණය කරන්න"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"ඇමතුම් ඉතිහාසය හිස් කරන්න"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"හඬ තැපෑල මකන්න"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"හඬ තැපෑල මකන ලදී"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"අස් කරන්න"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ඇමතුම් ඉතිහාසය හිස් කරන්නද?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"මෙය ඔබේ ඉතිහාසයෙන් සියලු ඇමතුම් මකනු ඇත"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"ඇමතුම් ඉතිහාසය හිස් කරමින්…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> වෙතින් නව හඬ තැපැලක්"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"හඬ තැපෑල වාදනය කිරීමට නොහැකි විය"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"අන්තරාචයනය වෙමින්..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"හඬ තැපෑල ප්‍රවේශනය වෙමින්…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"හඬ තැපෑල ප්‍රවේශනය කිරීමට නොහැකි විය"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"හඬ තැපෑල සහිත ඇමතුම් පමණි"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"එන ඇමතුම් පමණි"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"පිටතට යන ඇමතුම් පමණි"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"මඟ හැරුණු ඇමතුම් පමණි"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"දෘශ්‍ය හඬ තැපෑල"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"අංකයකට ඇමතීමෙන් තොරව ඔබේ හඬ තැපෑල බලා සවන් දෙන්න. දත්ත ගාස්තු අදාළ විය හැකිය."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"සැකසීම්"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"හඬ තැපැල් යාවත්කාලීන ලබාගත නොහැකිය"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"නව හඬ තැපෑලක් පොරොත්තු වෙමින්. මේ දැන් ප්‍රවේශනය කිරීමට නොහැකිය."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"ඔබේ හඬ තැපෑල පිහිටුවන්න"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ශ්‍රව්‍ය ලබාගත නොහැකිය"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"ස්ථාපනය කරන්න"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"හඬ තැපැල් අමතන්න"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ඉතාමත් මන්දගාමී වේගය"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"මන්දගාමී වේගය"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"සාමාන්‍ය වේගය"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"ඉතා වේගවත්"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"ඉතාමත් වේගවත්"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"අංකය තෝරන්න"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"අංකය තෝරන්න"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"ඇමතුම් ඉතිහාසය"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"තවත් විකල්ප"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ඩයල් පෑඩය"</string>
- <string name="menu_copy" msgid="6108677035381940698">"පිටපත්කරණය"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"පිටතට යන ඒවා පමණක් පෙන්වන්න"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"එන ඒවා පමණක් පෙන්වන්න"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"මඟ හැරුණු ඒවා පමණක් පෙන්වන්න"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"පිටවන වීඩියෝ ඇමතුම"</string>
<string name="type_missed_video" msgid="954396897034220545">"මගහැරුණු වීඩියෝ ඇමතුම"</string>
<string name="type_voicemail" msgid="5153139450668549908">"හඬ තැපෑල"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"ප්‍රතික්ෂේප කළ ඇමතුම"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"අවහිර කළ ඇමතුම"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"එන ඇමතුම්"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"හඬ තැපෑල ධාවනය කිරීම"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> සම්බන්ධතාවය බලන්න"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> අමතන්න"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> සඳහා ඇමතුම් විස්තර"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"නව හඬ තැපෑල."</string>
<string name="description_num_calls" msgid="1601505153694540074">"ඇමතුම් <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"වීඩියෝ ඇමතුම."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g> වෙත SMS යවන්න"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"හඬ තැපෑල"</string>
<string name="private_num" msgid="6374339738119166953">"පුද්ගලික අංකය"</string>
<string name="payphone" msgid="7726415831153618726">"පේෆෝනය"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"මිනි <xliff:g id="MINUTES">%s</xliff:g> තත් <xliff:g id="SECONDS">%s</xliff:g>"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> දින <xliff:g id="TIME">%2$s</xliff:g>ට"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"මෙම අංකයට ඇමතිය නොහැකිය"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"හඬ තැපෑල සකස් කර ගැනීමට, මෙනු &gt; සැකසීම් වෙත යන්න."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"හඬ තැපෑල ඇමතීමට, මුලින්ම ගුවන්යානා ආකාරය වසා දමන්න."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"හඬ සෙවුම ලබාගත නොහැකිය"</string>
<string name="call_not_available" msgid="8941576511946492225">"දුරකථන යෙදුම අබල කර ඇති නිසා දුරකථන ඇමතුම ලබාගැනීම කළ නොහැක."</string>
<string name="activity_not_available" msgid="2287665636817987623">"මෙම උපාංගයෙහි ඒ සඳහා යෙදුමක් නැත"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"නමක් හෝ දුරකථන අංකයක් ඇතුළු කරන්න"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"ඇමතුම් නැත"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"මෑත හඬ තැපැල් නැත"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"සම්බන්ධතා සෙවීම"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"අංකය එක් කරන්න හෝ සම්බන්ධතා සොයන්න"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"ඔබගේ ඇමතුම් ඉතිහාසය හිස්ය"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"ඇමතුමක් සිදු කරන්න"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"ඔබට මඟ හැරුණු ඇමතුම් නැත."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"ඔබේ හඬ තැපැල් එන ලිපි හිස්ය."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"ප්‍රියතමයන් පමණක් පෙන්වන්න"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ඉතිහාසය"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"ඇමතුම් ඉතිහාසය"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"සියලු"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"මග හැරුණේය"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"හඬ තැපෑල"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> අවහිර කරන්නද?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"මෙම අංකය වෙතින් වන ඇමතුම් අවහිර කරනු ඇති අතර හඬ තැපැල් ස්වයංක්‍රියව මකනු ඇත."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"මෙම අංකය වෙතින් වන ඇමතුම් අවහිර කරනු ඇති නමුත්, අමතන්නාට තවම ඔබට හඬ තැපැල් තැබීමට හැකිය."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"අවහිරයි"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> අවහිර නොකරන්නද?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"මෙම අංකය ඔබව ඇමතීමෙන් තවදුරටත් අවහිර කර නැත."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"අවහිර නොකරන්න"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"වේග ඩයල් කිරීම"</string>
- <string name="tab_recents" msgid="929949073851377206">"මෑත"</string>
+ <string name="tab_history" msgid="2563144697322434940">"ඇමතුම් ඉතිහාසය"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"සම්බන්ධතා"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"හඬ තැපෑල"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"ප්‍රියතමයන්ගෙන් ඉවත් කරන්න"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"අස් කරන්න"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> අමතන්න"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"නව සම්බන්ධතාවයක් සාදන්න"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"පවතින සම්බන්ධතාව වෙත එක් කරන්න"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"සම්බන්ධතාවකට එක් කරන්න"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS යවන්න"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"වීඩියෝ ඇමතුමක් ලබාගන්න"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"සම්පූර්ණ ඇමතුම් ඉතිහාසය බලන්න"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"අංකය අවහිර කරන්න"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"නව මඟ හැරුණු ඇමතුම් <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"වේග ඩයලනය යනු ප්‍රියතමයන් සහ ඔබ නිතර අමතන අංක සඳහා එක්-ස්පර්ශ ඩයල් කිරීමකි"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"සබඳතා නැත"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"ඔබගේ වේග ඩයල් එකේ තවමත් කවුරුවත් නැහැ"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"ප්‍රියතම ලෙස එක් කරන්න"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"ඔබ තවමත් සම්බන්ධතා නැහැ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"සම්බන්ධතාවයක් එකතු කරන්න"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"සියලු අංක බැලීමට අනුරුව ස්පර්ශ කරන්න නැතහොත් &amp; යළි ඇණවුම් කිරීමට අල්ලාගෙන සිටින්න"</string>
<string name="remove_contact" msgid="1080555335283662961">"ඉවත් කරන්න"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"සියලු සම්බන්ධතා"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"වීඩියෝ ඇමතුම"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"අහනවා"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"විස්තර බලන්න"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"පණිවිඩයක් යවන්න"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"ඇමතුම් විස්තර"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> අමතන්න"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> වෙතින් ඇමතුමක් මගහැරුණා."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> වෙතින් ඇමතුමකට පිළිතුරු දුන්නා."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> වෙතින් නොකියවූ හඬ තැපෑල."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> වෙතින් හඬ තැපෑල."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g> වෙත ඇමතුමක්."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> හි"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"ඇමතුම"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> අමතන්න"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> වෙත වීඩියෝ ඇමතුම."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>. වීඩියෝ ඇමතුම"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> වෙතින් හඬ තැපෑලට සවන් දෙන්න"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> වෙතින් වන හඬ තැපෑල ධාවනය කරන්න"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> වෙතින් වන හඬ තැපෑල විරාම කරන්න"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> වෙතින් වන හඬ තැපෑල මකන්න"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one">නව හඬ තැපැල් <xliff:g id="COUNT_1">%d</xliff:g></item>
+ <item quantity="other">නව හඬ තැපැල් <xliff:g id="COUNT_1">%d</xliff:g></item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> සඳහා සම්බන්ධතාවක් සාදන්න"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"පවතින සම්බන්ධතාව වෙත <xliff:g id="NAMEORNUMBER">^1</xliff:g> එක් කරන්න"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> සඳහා ඇමතුම් විස්තර"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"ඇමතුම් ඉතිහාසයෙන් මකන ලදී"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"වාර්තා කරන්න"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"අද"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"ඊයේ"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"වඩා පරණ"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"ක්ෂණික ප්‍රතිචාර"</string>
<string name="call_settings_label" msgid="313434211353070209">"ඇමතුම්"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"ඇමතුම් අවහිර කිරීම"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"ඇමතුම් අවහිර කිරීම තාවකාලිකව අක්‍රියයි"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ඔබ පසුගිය පැය 48 ඇතුළත මෙම දුරකථනයෙන් හදිසි අවස්ථා සේවා ඇමතූ බැව්න් ඇමතුම් අවහිර කිරීම අබල කර ඇත. පැය 48ක කාල සීමාව ඉකුත් වූ විට එය ස්වයංක්‍රියව යළි සබල කෙරේ."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"අංක ආයාත කරන්න"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"ඔබ පෙරදී සමහර අමතන්නන් වෙනත් යෙදුම් හරහා ස්වයංක්‍රියව හඬ තැපෑල වෙත යැවීමට ලකුණු කරන ලදී."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"අංක බලන්න"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"ආයාත කරන්න"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"අයාත කිරීම අසාර්ථක විය"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"අංකය අවහිර නොකරන්න"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"අංකයක් එක් කරන්න"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"මෙම අංක වෙතින් වන ඇමතුම් අවහිර කරනු ඇති අතර හඬ තැපැල් ස්වයංක්‍රියව මකනු ඇත."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"මෙම අංක වෙතින් වන ඇමතුම් අවහිර කරනු ඇති නමුත්, ඔවුන්ට තවම ඔබට හඬ තැපැල් තැබීමට හැකිය."</string>
+ <string name="block_list" msgid="7760188925338078011">"අවහිර කළ අංක"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> වලංගු නැත."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> දැනටමත් අවහිර කර ඇත."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"පැය 48ක් සඳහා ඇමතුම් අවහිර කිරීම අබල කරන ලදී"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"හදිසි ඇමතුමක් සිදු කළ නිසා අබල කරන ලදී."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"ගිණුම් ඇමතීම"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ක්‍රියාත්මක කරන්න"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"අවසර සකසන්න"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"වේග ඩයල් කිරීම සබල කිරීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"ඔබේ ඇමතුම් ලොගය බැලීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"ඔබේ සම්බන්ධතා බැලීමට, සම්බන්ධතා අවසරය ක්‍රියාත්මක කරන්න."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"ඔබේ හඬ තැපෑල වෙත ප්‍රවේශ වීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"ඔබේ සම්බන්ධතා සෙවීමට, සම්බන්ධතා අවසර ක්‍රියාත්මක කරන්න."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"ඇමතුමක් ලබා ගැනීමට, දුරකථන අවසරය ක්‍රියාත්මක කරන්න."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"දුරකථන යෙදුමට පද්ධති සැකසීම් වෙත ලිවීමට අවසර නැත."</string>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 8a3a8419a..5ef2aad63 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Vytáčanie"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefón"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefón"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Číselník telefónu"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefón"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"História hovorov"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Zavolať kontakt <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Pred volaním upraviť číslo"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Pridať medzi kontakty"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Odstrániť z histórie hovorov"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Vymazať históriu hovorov"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Odstrániť hlasovú správu"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Zdieľať hlasovú správu"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Žiadne hovory"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"História hovorov"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Nahlásiť nesprávne číslo"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopírovať číslo"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopírovať prepis"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokovať číslo"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> – blokované"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Zrušiť blokovanie čísla"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> – odblokované"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"SPÄŤ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Odstrániť"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Pred volaním upraviť číslo"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Vymazať históriu hovorov?"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Odstrániť hlasovú správu"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Hlas. schránka odstránená"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"SPÄŤ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Chcete vymazať históriu hovorov?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Týmto sa z histórie odstránia všetky hovory"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Týmto z histórie odstránite všetky hovory."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Vymazáva sa história hovorov..."</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="few"> <xliff:g id="COUNT">%1$d</xliff:g> odkazy v hlasovej schránke </item>
@@ -42,24 +49,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nová hlasová správa – <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Hlasovú schránku sa nepodarilo prehrať"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Ukladanie do vyrovnávacej pamäte…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Načítava sa hlasová schránka…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Hlasovú schránku sa nepodarilo načítať"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Iba volania do hlasovej schránky"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Iba prichádzajúce hovory"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Iba odchádzajúce hovory"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Iba zmeškané hovory"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizuálna hlasová schránka"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Zobrazte a vypočujte si svoju hlasovú schránku bez toho, aby ste museli vytáčať číslo. Môžu vám byť účtované poplatky za prenos dát."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Nastavenia"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Aktualizácie hlasovej schránky nie sú k dispozícii"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Nevypočuté hlasové schránky. Momentálne ich nemožno načítať."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Nastavte si hlasovú schránku"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Zvuk nie je k dispozícii"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Nastavenie"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Volať hlas. schránku"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Najnižšia rýchlosť"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Nízka rýchlosť"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normálna rýchlosť"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Vysoká rýchlosť"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Najvyššia rýchlosť"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Zvoľte číslo"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Zvoľte číslo"</string>
@@ -75,7 +79,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"História hovorov"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Ďalšie možnosti"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"číselná klávesnica"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopírovať"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Zobraziť len odchádzajúce"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Zobraziť len prichádzajúce"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Zobraziť len zmeškané"</string>
@@ -98,12 +101,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Odchádzajúci videohovor"</string>
<string name="type_missed_video" msgid="954396897034220545">"Zmeškaný videohovor"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Hlasová schránka"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Odmietnutý hovor"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokovaný hovor"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Prichádzajúce hovory"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Prehrať hlasovú správu"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Zobraziť kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Volať kontakt <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Podrobnosti kontaktu pre <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nová hlasová správa."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Počet volaní: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videohovor"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Poslať SMS kontaktu <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -114,58 +118,87 @@
<string name="voicemail" msgid="3851469869202611441">"Hlasová schránka"</string>
<string name="private_num" msgid="6374339738119166953">"Súkromné číslo"</string>
<string name="payphone" msgid="7726415831153618726">"Telefónny automat"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min. <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> o <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Na toto číslo nie je možné volať"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Ak chcete nastaviť hlasovú schránku, prejdite na položku Menu &gt; Nastavenia."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Ak chcete volať hlasovú schránku, najprv vypnite režim v lietadle."</string>
<string name="contact_list_loading" msgid="5488620820563977329">"Načítava sa…"</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
- <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Prebieha načítavanie z karty SIM..."</string>
- <string name="simContacts_title" msgid="27341688347689769">"Kontakty na karte SIM"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Prebieha načítavanie z SIM karty..."</string>
+ <string name="simContacts_title" msgid="27341688347689769">"Kontakty na SIM karte"</string>
<string name="add_contact_not_available" msgid="5547311613368004859">"Nie je k dispozícii žiadna aplikácia na kontakty"</string>
<string name="voice_search_not_available" msgid="2977719040254285301">"Hlasové vyhľadávanie nie je k dispozícii"</string>
<string name="call_not_available" msgid="8941576511946492225">"Nie je možné volať, pretože aplikácia Telefón bola deaktivovaná."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Na tomto zariadení nie je aplikácia na vykonanie danej akcie"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Zadajte meno alebo tel. číslo"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Žiadne hovory"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Žiadne nedávne hlasové schránky"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Hľadať kontakty"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Pridajte číslo / vyhľadajte v kontaktoch"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"História hovorov je prázdna"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Zavolať"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nemáte žiadne zmeškané hovory."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hlasová schránka je prázdna."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Zobraziť iba obľúbené"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"História"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"História hovorov"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Všetky"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Zmeškané"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Schránka"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blokovať číslo <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Hovory z tohto čísla budú blokované a hlasové správy budú automaticky odstraňované."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Hovory z tohto čísla budú zablokované, ale volajúci stále môže zanechať hlasové správy."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKOVAŤ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Odblokovať číslo <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Prichádzajúce hovory z tohto čísla už nebudú blokované."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ODBLOKOVAŤ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Rýchla voľba"</string>
- <string name="tab_recents" msgid="929949073851377206">"Nedávne"</string>
+ <string name="tab_history" msgid="2563144697322434940">"História hovorov"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontakty"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Hlasová schránka"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Odstránené z obľúbených"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Späť"</string>
- <string name="search_shortcut_call_number" msgid="7277194656832895870">"Volať na číslo <xliff:g id="NUMBER">%s</xliff:g>"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Volať <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Vytvoriť nový kontakt"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Pridať k existujúcemu kontaktu"</string>
- <string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Odoslať správu SMS"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Pridať ku kontaktu"</string>
+ <string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Odoslať SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Uskutočniť videohovor"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Zobraziť úplnú históriu hovorov"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokovať číslo"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Počet nových zmeškaných hovorov: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Rýchla voľba je funkcia umožňujúca jedným klepnutím vytočiť obľúbené osoby a často volané čísla."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Žiadne kontakty"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"V rýchlom vytáčaní zatiaľ nemáte žiadny kontakt"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Pridať obľúbený kontakt"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Zatiaľ nemáte žiadne kontakty"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Pridať kontakt"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Klepnutím na obrázok si môžete zobraziť všetky čísla. Ak naň klepnete a podržíte ho, môžete zmeniť ich poradie."</string>
<string name="remove_contact" msgid="1080555335283662961">"Odstrániť"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VŠETKY KONTAKTY"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videohovor"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"POČÚVAŤ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Zobraziť podrobnosti"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Odoslať správu"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Podrobnosti hovoru"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Zavolať kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Zmeškaný hovor – kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Prijatý hovor – kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Neprečítaná správa v hlasovej schránke od <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Správa v hlasovej schránke od <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Volanie – kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"v rámci účtu <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Volať"</string>
<string name="description_call_action" msgid="4000549004089776147">"Zavolať kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Začať videohovor s kontaktom <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Spustiť videohovor s kontaktom <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Vypočuť si správu v hlasovej schránke od používateľa <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Prehrať hlasovú schránku kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pozastaviť hlasovú schránku kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Odstrániť hlasovú schránku kontaktu <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> nové odkazy v hlasovej schránke</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> nového odkazu v hlasovej schránke</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nových odkazov v hlasovej schránke</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nový odkaz v hlasovej schránke</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Vytvoriť kontakt pre <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Pridať údaj <xliff:g id="NAMEORNUMBER">^1</xliff:g> ku kontaktu"</string>
<string name="description_details_action" msgid="2433827152749491785">"Podrobnosti hovoru pre kontakt <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Odstránené z histórie hovorov"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Nahlásiť"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Dnes"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Včera"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Staršie"</string>
@@ -180,7 +213,7 @@
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Zvuky a vibrovanie"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Dostupnosť"</string>
<string name="ringtone_title" msgid="760362035635084653">"Tón zvonenia telefónu"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Vibrovať aj pri hovoroch"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Pri hovoroch aj vibrovať"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tóny číselnej klávesnice"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Dĺžka zvukov číselnej klávesnice"</string>
<string-array name="dtmf_tone_length_entries">
@@ -189,5 +222,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Rýchle odpovede"</string>
<string name="call_settings_label" msgid="313434211353070209">"Hovory"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blokovanie hovorov"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokovanie hovorov je dočasne vypnuté"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importovať čísla"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"V minulosti ste niektorých volajúcich označili, aby boli automaticky prepojení do hlasovej schránky prostredníctvom ďalších aplikácií."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Zobraziť čísla"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importovať"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import zlyhal"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zrušiť blokovanie čísla"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Pridať číslo"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Hovory z týchto čísel budú blokované a hlasové správy budú automaticky odstraňované."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Hovory z týchto čísel budú blokované, ale volajúci vám budú stále môcť zanechať hlasové správy."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokované čísla"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je neplatné."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Číslo <xliff:g id="NUMBER">%1$s</xliff:g> je už blokované."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokovanie hovorov je deaktivované na 48 hodín"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Deaktivované, pretože ste uskutočnili tiesňové volanie"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Telefónne účty"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Zapnúť"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Nastaviť povolenia"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Ak chcete aktivovať rýchle vytáčanie, zapnite povolenie Kontakty."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Ak si chcete zobraziť denník hovorov, zapnite povolenie Telefón."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Ak si chcete zobraziť kontakty, zapnite povolenie Kontakty."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Ak chcete používať hlasovú schránku, zapnite povolenie Telefón."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Ak chcete hľadať kontakty, zapnite povolenie Kontakty."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Ak chcete volať, zapnite povolenie Telefón."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefónna aplikácia nemá povolenie na zápis do nastavení systému."</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 736e1704e..0ac5bc551 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Telefon"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Številčnica telefona"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Zgodovina klicev"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Pokliči <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Pred klicanjem uredi številko"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Dodaj med stike"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Izbris iz zgodovine klicev"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Izbris zgodovine klicev"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Brisanje sporočil odzivnika"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Skupna raba odzivnika"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Ni klicev"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Zgodovina klicev"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Prijavi netočno številko"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopiranje številke"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiraj prepis"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blokiranje številke"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Številka <xliff:g id="NUMBER">%1$s</xliff:g> je blokirana"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Odblokiranje telefonske številke"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Številka <xliff:g id="NUMBER">%1$s</xliff:g> je odblokirana"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"RAZVELJAVI"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Izbris"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Urejanje številke pred klicem"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Izbriši zgodovino klicev"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Brisanje sporočil iz odzivnika"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Spor. v odziv. izbr."</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"RAZVELJAVI"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Želite izbrisati zgodovino klicev?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"S tem boste iz zgodovine izbrisali vse klice"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Izbris zgodovine klicev …"</string>
@@ -42,24 +49,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g> , <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nova glasovna pošta od <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Sporočil v odzivniku ni mogoče predv."</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Medpomnjenje…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Nalaganje sporočil v odzivniku …"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Sporočil v odzivniku ni mogoče naložiti"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Samo klici z odzivnikom"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Samo dohodni klici"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Samo odhodni klici"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Samo neodgovorjeni klici"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizualno sporočilo v odzivniku"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Ogledujte si in poslušajte sporočila v odzivniku, ne da bi vam bilo treba klicati številko. Morda boste morali plačati stroške prenosa podatkov."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Nastavitve"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Obvestila odzivnika niso na voljo"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"V odzivniku čaka novo sporočilo. Trenutno ga ni mogoče naložiti."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Nastavite odzivnik"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Zvok ni na voljo"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Nastavite odzivnik"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Klicanje glasovne pošte"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Najpočasnejše predvajanje"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Počasno predvajanje"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Običajna hitrost"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Hitro predvajanje"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Najhitrejše predvajanje"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Izberite številko"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Izberite številko"</string>
@@ -75,7 +79,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Zgodovina klicev"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Več možnosti"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"številčnica"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopiraj"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Pokaži samo odhodne"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Pokaži samo dohodne"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Pokaži samo neodgovorjene"</string>
@@ -98,12 +101,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Odhodni videoklic"</string>
<string name="type_missed_video" msgid="954396897034220545">"Zamudili ste videoklic"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Odzivnik"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Zavrnjen klic"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blokiran klic"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Dohodni klici"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Predvajanje sporočil glasovne pošte"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Ogled stika <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Klicanje osebe <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Podrobnosti stika za <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Novo sporočilo v odzivniku."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Št. klicev: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videoklic."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Pošlji SMS prejemniku <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -114,7 +118,11 @@
<string name="voicemail" msgid="3851469869202611441">"Glasovna pošta"</string>
<string name="private_num" msgid="6374339738119166953">"Zasebna številka"</string>
<string name="payphone" msgid="7726415831153618726">"Telefonska govorilnica"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> s"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> s"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ob <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Te številke ni mogoče klicati"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Če želite nastaviti odzivnik, odprite Meni &gt; Nastavitve."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Če želite poklicati odzivnik, najprej izklopite način za letalo."</string>
@@ -127,45 +135,70 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Glasovno iskanje ni na voljo"</string>
<string name="call_not_available" msgid="8941576511946492225">"Ni mogoče opraviti telefonskega klica, ker je aplikacija Telefon onemogočena."</string>
<string name="activity_not_available" msgid="2287665636817987623">"V tej napravi ni aplikacije za to"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Vnesite ime ali telefonsko številko"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Ni klicev"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Ni nedavnih sporočil v odzivniku"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Iskanje stikov"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Dodajte št. ali iščite med st."</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Zgodovina klicev je prazna"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Klicanje"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nimate neodgovorjenih klicev."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Vaš nabiralnik s sporočili v odzivniku je prazen."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Pokaži samo priljubljene"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Zgodovina"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Zgodovina klicev"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Vsi"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Neodgovorjeni"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Odzivnik"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Želite blokirati številko <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Klici s te številke bodo blokirani in sporočila v odzivniku bodo samodejno izbrisana."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Klici s te številke bodo blokirani, klicatelj pa bo morda še vedno lahko pustil sporočila v odzivniku."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKIRAJ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Želite odblokirati številko <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Ta številka ne bo več blokirana in vas bo z nje mogoče klicati."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ODBLOKIRAJ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Hitro izbiranje"</string>
- <string name="tab_recents" msgid="929949073851377206">"Nedavni"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Zgodovina klicev"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Stiki"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Odzivnik"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Odstranjeno iz priljubljenih"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Razveljavi"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Pokliči <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Ustvari nov stik"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Dodaj obstoječemu stiku"</string>
- <string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Pošljite SMS"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Dodaj stiku"</string>
+ <string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Pošlji SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Opravi videoklic"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Prikaz celotne zgodovine klicev"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blokiraj številko"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Št. novih zgrešenih klicev: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Hitro izbiranje je klicanje priljubljenih številk in tistih, ki jih kličete najpogosteje, z enim dotikom."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Ni stikov"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Na seznamu za hitro klicanje nimate še nikogar"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Dodajanje priljubljenega"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Nimate še stikov"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Dodajanje stika"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Dotaknite se slike, če želite videti vse številke, ali pa se je dotaknite in pridržite, če želite spremeniti vrstni red."</string>
<string name="remove_contact" msgid="1080555335283662961">"Odstrani"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"VSI STIKI"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videoklic"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"POSLUŠAJ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Ogled podrobnosti"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Pošljite sporočilo"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Podrobnosti klica"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Kliči osebo/številko <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Neodgovorjen klic od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Odgovorjen klic od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Neprebrano sporočilo v odzivniku za račun <xliff:g id="PHONEACCOUNT">^4</xliff:g> ob <xliff:g id="TIMEOFCALL">^3</xliff:g> od: <xliff:g id="NAMEORNUMBER">^1</xliff:g> – <xliff:g id="TYPEORLOCATION">^2</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Sporočilo v odzivniku za račun <xliff:g id="PHONEACCOUNT">^4</xliff:g> ob <xliff:g id="TIMEOFCALL">^3</xliff:g> od: <xliff:g id="NAMEORNUMBER">^1</xliff:g> – <xliff:g id="TYPEORLOCATION">^2</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Klic za: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"z računom: <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Klic"</string>
<string name="description_call_action" msgid="4000549004089776147">"Klicanje: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videoklic za: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Videoklic: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Poslušajte sporočilo v odzivniku od: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Predvajanje sporočil v odzivniku od osebe/številke <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Zaustavitev prejemanja sporočil v odzivnik od osebe/številke <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Brisanje sporočil iz odzivnika od osebe/številke <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> sporočilo v odzivniku</item>
+ <item quantity="two"><xliff:g id="COUNT_1">%d</xliff:g> sporočili v odzivniku</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> sporočila v odzivniku</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> sporočil v odzivniku</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Ustvarjanja stika za: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Dodajanje tega obstoječemu stiku: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_details_action" msgid="2433827152749491785">"Podrobnosti klica za: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Izbrisano iz zgodovine klicev"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Poročanje"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Danes"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Včeraj"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Starejši"</string>
@@ -189,5 +222,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Hitri odgovori"</string>
<string name="call_settings_label" msgid="313434211353070209">"Klici"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Blokiranje klicev"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blokiranje klicev je začasno izklopljeno"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Uvoz številk"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Označili ste, naj nekatere klicatelje druge aplikacije samodejno preusmerijo v odzivnik."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Ogled številk"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Uvozi"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Uvoz ni uspel"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Odblokiranje telefonske številke"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Dodaj telefonsko številko"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Klici s teh številk bodo blokirani in sporočila v odzivniku bodo samodejno izbrisana."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Klici s teh številk bodo blokirani, klicatelji pa bodo morda še vedno lahko pustil sporočila v odzivniku."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blokirane številke"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Telefonska številka <xliff:g id="NUMBER">%1$s</xliff:g> je neveljavna."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Telefonska številka <xliff:g id="NUMBER">%1$s</xliff:g> je že blokirana."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Blokiranje klicev je onemogočeno za 48 ur"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Onemogočeno zaradi opravljenega klica v sili"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Računi za klicanje"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Vklop"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Nastavi dovoljenja"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Če želite omogočiti hitro klicanje, vklopite dovoljenje za stike."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Če si želite ogledati dnevnik klicev, vklopite dovoljenje za telefon."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Če si želite ogledati stike, vklopite dovoljenje za stike."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Če želite dostopati do sporočil v odzivniku, vklopite dovoljenje za telefon."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Če želite iskati po stikih, vklopite dovoljenje za stike."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Če želite klicati, vklopite dovoljenje za telefon."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacija Telefon nima dovoljenja za pisanje v sistemske nastavitve."</string>
</resources>
diff --git a/res/values-sq-rAL/strings.xml b/res/values-sq-rAL/strings.xml
index c89b41517..7dd2d036d 100644
--- a/res/values-sq-rAL/strings.xml
+++ b/res/values-sq-rAL/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Formuesi i numrit"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefoni"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefoni"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Blloku i formimit të numrave i telefonit"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefoni"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Historiku i telefonatave"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Telefono <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Redakto numrin para telefonatës"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Shto te kontaktet"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Fshi nga historiku i telefonatave"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Pastro historikun e telefonatave"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Fshije postën zanore"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Shpërndaje postën zanore"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Nuk ka asnjë telefonatë"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Historiku i telefonatave"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Raporto numrin e pasaktë"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopjo numrin"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopjo transkriptimin"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blloko numrin"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> u bllokua"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Zhblloko numrin"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> u zhbllokua"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ZHBËJ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Fshi"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Redakto numrin para telefonatës"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Pastro historikun e telefonatave"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Fshije postën zanore"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"U zbulua posta zanore"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ZHBËJ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Të pastrohet historiku i telefonatave?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Kjo do të fshijë të gjitha telefonatat nga historiku yt"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Po pastron historikun e telefonatave…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Postë e re zanore nga <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Posta zanore nuk mund të luhej"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Po ruan në memorien e përkohshme…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Po ngarkon postën zanore…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Posta zanore nuk mund të ngarkohej"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Vetëm telefonatat me mesazhe zanore"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Vetëm telefonatat hyrëse"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Vetëm telefonatat dalëse"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Vetëm telefonatat e humbura"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Posta zanore vizuale"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Shiko dhe dëgjo postën zanore, pa pasur nevojë të telefonosh një numër. mund të zbatohen tarifa për të dhënat."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Cilësimet"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Përditësimet e postës zanore nuk mundësohen"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Posta të reja zanore janë në pritje. Nuk mund të ngarkohen tani."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Konfiguro postën zanore"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audioja nuk mundësohet"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Konfiguro"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Telefono postën zanore"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Shpejtësi më e ulët"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Shpejtësi e ulët"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Shpejtësi normale"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Shpejtësi e lartë"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Shpejtësi më e lartë"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Zgjidh një numër"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Zgjidh një numër"</string>
@@ -72,8 +76,7 @@
<string name="description_rate_increase" msgid="6324606574127052385">"Rrite shpejtësinë e luajtjes"</string>
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historiku i telefonatave"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Opsione të tjera"</string>
- <string name="action_menu_dialpad_button" msgid="1425910318049008136">"blloku i formimit të numrit"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopjo"</string>
+ <string name="action_menu_dialpad_button" msgid="1425910318049008136">"blloku i tasteve"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Shfaq vetëm dalëset"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Shfaq vetëm hyrëset"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Shfaq vetëm të humburat"</string>
@@ -86,8 +89,8 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Të gjitha kontaktet"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Detajet e telefonatës"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Detajet nuk mundësohen"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Përdor bllokun e tasteve me tone të prekjes"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Kthehu te telefonata në vazhdim"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Përdor bllokun e tasteve"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Kthehu te telefonata"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Shto një telefonatë"</string>
<string name="type_incoming" msgid="6502076603836088532">"Telefonatë hyrëse"</string>
<string name="type_outgoing" msgid="343108709599392641">"Telefonatë dalëse"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Telefonatë dalëse me video"</string>
<string name="type_missed_video" msgid="954396897034220545">"Telefonatë e humbur me video"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Posta zanore"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Telefonatë e refuzuar"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Telefonatë e bllokuar"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Telefonatat hyrëse"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Luaj postën zanore"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Shiko kontaktin <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Telefono <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Detajet e kontaktit për <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Postë e re zanore."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> telefonata."</string>
<string name="description_video_call" msgid="2933838090743214204">"Telefonatë me video."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Dërgo SMS te <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Posta zanore"</string>
<string name="private_num" msgid="6374339738119166953">"Numër privat"</string>
<string name="payphone" msgid="7726415831153618726">"Telefon me pagesë"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sekonda"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min. e <xliff:g id="SECONDS">%s</xliff:g> sek."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> në <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Ky numër nuk mund të telefonohet"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Për të konfiguruar postën zanore, shko te \"Menyja\" &gt; \"Cilësimet\"."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Për të shtuar një postë zanore, në fillim çaktivizo modalitetin \"në aeroplan\"."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Kërkimi me zë nuk mundësohet"</string>
<string name="call_not_available" msgid="8941576511946492225">"Telefonata nuk mund të bëhet sepse aplikacioni \"Telefoni\" është i çaktivizuar."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Nuk ka aplikacion për atë në këtë pajisje"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Fut një emër ose një numër telefoni"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Nuk ka asnjë telefonatë"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Nuk ka posta zanore së fundi"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Kërko kontakte"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Shto një numër ose kërko te kontaktet"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Historiku i telefonatave është bosh"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Bëj një telefonatë"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Nuk ke thirrje të humbura."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Kutia hyrëse e postës tënde zanore është bosh."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Shfaq vetëm të preferuarat"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historiku"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Historiku i telefonatave"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Të gjitha"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Të humbura"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Posta zanore"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Blloko <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Telefonatat nga ky numër do të bllokohen dhe mesazhet zanore do të fshihen automatikisht."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Telefonatat nga ky numër do të bllokohen, por telefonuesi mund të jetë ende në gjendje të lërë mesazhe zanore."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLLOKO"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Zhblloko <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Ky numër nuk do të bllokohet më për telefonatat drejt teje."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ZHBLLOKO"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Telefonatë e shpejtë"</string>
- <string name="tab_recents" msgid="929949073851377206">"Të fundit"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Historiku i telefonatave"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktet"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Posta zanore"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"U hoq nga të preferuarat"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Zhbëj"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Telefono <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Krijo një kontakt të ri"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Shto te kontakti ekzistues"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Shto te një kontakt"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Dërgo SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Bëj një telefonatë me video"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Shiko historikun e plotë të telefonatave"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blloko numrin"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> telefonata të reja të humbura"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Telefonata e shpejtë është formim numri me një prekje për të preferuarat dhe për numrat që telefonon më shpesh."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Nuk ka asnjë kontakt"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Askush nuk është ende në thirrjen tënde të shpejtuar"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Shto një të preferuar"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Nuk ke ende kontakte"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Shto një kontakt"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Prek imazhin për të parë të gjithë numrat ose mbaje të shtypur për ta pozicionuar përsëri"</string>
<string name="remove_contact" msgid="1080555335283662961">"Hiq"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TË GJITHA KONTAKTET"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Telefonatë me video"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"DËGJO"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Shiko detajet"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Dërgo një mesazh"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Detajet e telefonatës"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Telefono <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Telefonatë e humbur nga <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Telefonatë e përgjigjur nga <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Postë zanore e palexuar nga <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Postë zanore nga <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Telefonatë për <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"në <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Telefono"</string>
<string name="description_call_action" msgid="4000549004089776147">"Telefono <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Telefonatë me video për <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Telefono me video <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Dëgjo postën zanore nga <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Luaj postën zanore nga <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Ndërprit postën zanore nga <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Fshi postën zanore nga <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> posta të reja zanore</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> postë e re zanore</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Krijo një kontakt për <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Shtoje <xliff:g id="NAMEORNUMBER">^1</xliff:g> te një kontakt ekzistues"</string>
<string name="description_details_action" msgid="2433827152749491785">"Detajet e telefonatës për <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"U fshi nga historiku i telefonatave"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Raporto"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Sot"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Dje"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Më të vjetra"</string>
@@ -177,9 +208,9 @@
<string name="display_options_title" msgid="7812852361055667468">"Opsionet e paraqitjes"</string>
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Tingujt dhe dridhjet"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Qasshmëria"</string>
- <string name="ringtone_title" msgid="760362035635084653">"Toni i ziles i telefonit"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Dridhje edhe për telefonatat"</string>
- <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tonet e bllokut të formimit të numrit"</string>
+ <string name="ringtone_title" msgid="760362035635084653">"Zilja e telefonit"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Edhe dridhje për telefonatat"</string>
+ <string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tingujt e bllokut të tasteve"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Gjatësia e tonit të bllokut të formimit të numrave"</string>
<string-array name="dtmf_tone_length_entries">
<item msgid="1036113889050195575">"Normal"</item>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Përgjigjet e shpejta"</string>
<string name="call_settings_label" msgid="313434211353070209">"Telefonatat"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Bllokimi i telefonatave"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Bllokimi i telefonatave është përkohësisht joaktiv"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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ë."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importo numrat"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Disa telefonues i ke shënuar më parë që të dërgohen automatikisht drejt postës zanore përmes aplikacioneve të tjera."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Shiko numrat"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importo"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Importimi dështoi"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Zhblloko numrin"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Shto një numër"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Telefonatat nga këta numra do të bllokohen dhe mesazhet zanore do të fshihen automatikisht."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Telefonatat nga këta numra do të bllokohen, por mund të jenë ende në gjendje të lënë mesazhe zanore."</string>
+ <string name="block_list" msgid="7760188925338078011">"Numrat e bllokuar"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> është i pavlefshëm."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> është i bllokuar tashmë."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Bllokimi i thirrjeve është çaktivizuar për 48 orë"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Është e çaktivizuar për shkak se është kryer një telefonatë urgjence."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Llogaritë e telefonatave"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktivizo"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Cakto lejet"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Për të aktivizuar thirrjen e shpejtuar, aktivizo lejen e Kontakteve."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Për të parë evidencën e telefonatave, aktivizo lejen e Telefonit."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Për të parë kontaktet, aktivizo lejen e Kontakteve."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Për të pasur qasje në postën zanore, aktivizo lejen e Telefonit."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Për të kërkuar kontaktet, aktivizo lejet e Kontakteve"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Për të kryer një telefonatë, aktivizo lejen e Telefonit."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Aplikacionet e telefonit nuk kanë leje të shkruajnë në cilësimet e sistemit."</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index c03b51a7a..0c5db0835 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Телефон"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Телефон"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Телефон"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Нумеричка тастатура телефона"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Телефон"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Историја позива"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Позови <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Измените број пре позива"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Додај у контакте"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Избриши из историје позива"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Обриши историју позива"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Избриши говорну поруку"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Дели говорну поруку"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Нема позива"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Историја позива"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Пријави нетачан број"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Копирај број"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Копирај транскрипцију"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Блокирај број"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> је блокиран"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Деблокирај број"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> је деблокиран"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ОПОЗОВИ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Избриши"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Измени број пре позива"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Обриши историју позива"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Избриши говорну поруку"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Гов. пошта је избрисана"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ОПОЗОВИ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Желите да обришете историју позива?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ово ће избрисати све позиве из историје"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Брише се историја позива…"</string>
@@ -41,24 +48,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Нова говорна порука од <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Пуштање говорне поште није успело"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Баферовање..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Говорна пошта се учитава…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Учитавање говорне поште није успело"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Само позиви са говорном поштом"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Само долазни позиви"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Само одлазни позиви"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Само пропуштени позиви"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Визуелна говорна пошта"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Прегледајте и слушајте говорну пошту без позивања броја. Можда ће бити наплаћени трошкови за пренос података."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Подешавања"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Ажурирања говорне поште нису доступна"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Имате нову говорну пошту. Тренутно не може да се учита."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Подесите говорну пошту"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Аудио није доступан"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Подеси"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Зови говорну пошту"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Најмања брзина"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Мала брзина"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Нормална брзина"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Велика брзина"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Највећа брзина"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Избор броја"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Избор броја"</string>
@@ -74,7 +78,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Историја позива"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Још опција"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"нумеричка тастатура"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Копирај"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Прикажи само одлазне"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Прикажи само долазне"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Прикажи само пропуштене"</string>
@@ -97,12 +100,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Одлазни видео позив"</string>
<string name="type_missed_video" msgid="954396897034220545">"Пропуштен видео позив"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Говорна пошта"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Одбијен позив"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Блокиран позив"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Долазни позиви"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Пуштање говорне поште"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Прикажи контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Позови корисника <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Детаљи о контакту за <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Нова говорна порука."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> позива."</string>
<string name="description_video_call" msgid="2933838090743214204">"Видео позив."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Слање SMS-а за <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -113,58 +117,86 @@
<string name="voicemail" msgid="3851469869202611441">"Говорна пошта"</string>
<string name="private_num" msgid="6374339738119166953">"Приватан број"</string>
<string name="payphone" msgid="7726415831153618726">"Телефонска говорница"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> сек"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> мин <xliff:g id="SECONDS">%s</xliff:g> сек"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> у <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Није могуће позвати овај број"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Да бисте подесили говорну пошту, идите у Мени &gt; Подешавања."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Да бисте позвали говорну пошту, прво искључите режим авионa."</string>
- <string name="contact_list_loading" msgid="5488620820563977329">"Учитавање…"</string>
+ <string name="contact_list_loading" msgid="5488620820563977329">"Учитава се…"</string>
<string name="imei" msgid="3045126336951684285">"IMEI"</string>
<string name="meid" msgid="6210568493746275750">"MEID"</string>
- <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Учитавање са SIM картице је у току…"</string>
+ <string name="simContacts_emptyLoading" msgid="6700035985448642408">"Учитава се са SIM картице…"</string>
<string name="simContacts_title" msgid="27341688347689769">"Контакти на SIM картици"</string>
<string name="add_contact_not_available" msgid="5547311613368004859">"Нема доступне апликације за контакте"</string>
<string name="voice_search_not_available" msgid="2977719040254285301">"Гласовна претрага није доступна"</string>
<string name="call_not_available" msgid="8941576511946492225">"Није могуће упутити телефонски позив јер је апликација Телефон онемогућена."</string>
<string name="activity_not_available" msgid="2287665636817987623">"На овом уређају нема апликација за то"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Унесите име или број телефона"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Нема позива"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Нема недавних говорних порука"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Претражите контакте"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Додајте број или претражите контакте"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Историја позива је празна"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Позови"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Немате ниједан пропуштен позив."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Пријемно сандуче говорне поште је празно."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Прикажи само омиљене"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Историја"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Историја позива"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Сви"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропуштени"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Говорна пошта"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Желите ли да блокирате <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Позиви са овог броја ће бити блокирани и поруке говорне поште ће се аутоматски брисати."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Позиви са овог броја ће бити блокирани, али позивалац и даље може да вам оставља поруке говорне поште."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"БЛОКИРАЈ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Желите ли да деблокирате <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Деблокираћемо овај број и моћи ће да вам упућује позиве."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ДЕБЛОКИРАЈ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Брзо бирање"</string>
- <string name="tab_recents" msgid="929949073851377206">"Недавни контакти"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Историја позива"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Контакти"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Говорна пошта"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Уклоњено је из омиљених"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Опозови"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Позови <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Направи нови контакт"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Додај постојећем контакту"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Додај у контакт"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Пошаљи SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Упути видео позив"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Приказ пуне историје позива"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Блокирај број"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Нових пропуштених позива: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Брзо бирање је бирање једним додиром за омиљене контакте и бројеве које често зовете"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Нема контаката"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Немате ниједан контакт на брзом бирању"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Додај омиљен контакт"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Још увек немате ниједан контакт"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Додај контакт"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Додирните слику да бисте видели све бројеве или додирните и задржите да бисте променили распоред"</string>
<string name="remove_contact" msgid="1080555335283662961">"Уклони"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"СВИ КОНТАКТИ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Видео позив"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ПУСТИ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Прикажи детаље"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Пошаљи поруку"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Детаљи позива"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Позови <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Пропуштени позив: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Примљени позив: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Непрочитана говорна порука од <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Говорна порука од <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Позвали сте: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"на налогу <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Позови"</string>
<string name="description_call_action" msgid="4000549004089776147">"Позови <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Видео позив за <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Упутите видео позив контакту <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Пусти говорну пошту од <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Репродукуј говорну пошту контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Паузирај говорну пошту контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Избриши говорну пошту контакта <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> нова порука говорне поште</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> нове поруке говорне поште</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> нових порука говорне поште</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Направите контакт за <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Додајте <xliff:g id="NAMEORNUMBER">^1</xliff:g> постојећем контакту"</string>
<string name="description_details_action" msgid="2433827152749491785">"Детаљи позива за <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Избрисано из историје позива"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Пријави"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Данас"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Јуче"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Старији"</string>
@@ -188,5 +220,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Брзи одговори"</string>
<string name="call_settings_label" msgid="313434211353070209">"Позиви"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Блокирање позива"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокирање позива је привремено искључено"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокирање позива је онемогућено зато што сте контактирали службе за помоћ у хитним случајевима са овог телефона у последњих 48 сати. Аутоматски ће бити поново омогућено када истекне период од 48 сати."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Увези бројеве"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Раније сте означили неке позиваоце које аутоматски треба преусмерити на говорну пошту преко других апликација."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Прикажи бројеве"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Увeзи"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Увоз није успео"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Деблокирај број"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Додај број"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Позиви са ових бројева ће бити блокирани и поруке говорне поште ће се аутоматски брисати."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Позиви са ових бројева ће бити блокирани, али позиваоци са ових бројева ће и даље моћи да вам остављају поруке говорне поште."</string>
+ <string name="block_list" msgid="7760188925338078011">"Блокирани бројеви"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> је неважећи."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> је већ блокиран."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокирање позива је онемогућено на 48 сати"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Онемогућено је зато што је упућен хитан позив."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Налози за позивање"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Укључи"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Подеси дозволе"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Да бисте омогућили брзо бирање, укључите дозволу за Контакте."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Да бисте видели евиденцију позива, укључите дозволу за Телефон."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Да бисте видели контакте, укључите дозволу за Контакте."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Да бисте приступили говорној пошти, укључите дозволу за Телефон."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Да бисте претражили контакте, укључите дозволе за Контакте."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Да бисте упутили позив, укључите дозволу за Телефон."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Апликација Телефон нема дозволу за уписивање у системска подешавања."</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 9ccf2c54e..43895c5ac 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Samtal"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefonens knappsats"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Samtalshistorik"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Ring <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Redigera nummer före samtal"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Lägg till i Kontakter"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Radera från samtalshistoriken"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Rensa samtalshistorik"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ta bort röstmeddelande"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Dela röstmeddelande"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Inga samtal"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Samtalshistorik"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Rapportera fel nummer"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopiera nummer"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopiera transkription"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Blockera nummer"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> har blockerats"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Häv blockeringen av numret"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Blockeringen av <xliff:g id="NUMBER">%1$s</xliff:g> har hävts"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ÅNGRA"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Radera"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Redigera nummer före samtal"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Rensa samtalshistorik"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Radera röstmeddelande"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Röstbrevlåda raderad"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ÅNGRA"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Vill du rensa samtalshistoriken?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Alla samtal raderas från historiken"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Rensar samtalshistoriken ..."</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Nytt röstmeddelande från <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Det gick inte att spela upp röstmeddelandet"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buffrar…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Läser in röstmeddelande ..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Det gick inte att läsa in röstmeddelandet"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Endast samtal med röstmeddelande"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Endast inkommande samtal"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Endast utgående samtal"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Endast missade samtal"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visuell röstbrevlåda"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Visa och lyssna på ett röstmeddelande utan att behöva ringa ett nummer. Dataavgifter kan tillkomma."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Inställningar"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Uppdateringar för röstbrevlådan är inte tillgängliga"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Ett nytt röstmeddelande väntar. Det går inte att läsa in det för tillfället."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Konfigurera röstbrevlådan"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Ljud är inte tillgängligt"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Konfigurera"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Ring röstbrevlådan"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Lägsta hastighet"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Låg hastighet"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal hastighet"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Hög hastighet"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Högsta hastigheten"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Välj nummer"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Välj nummer"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Samtalshistorik"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Fler alternativ"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"knappsats"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopiera"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Visa endast utgående samtal"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Visa endast inkommande samtal"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Visa endast missade samtal"</string>
@@ -86,7 +89,7 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Alla kontakter"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Samtalsinfo"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Det finns ingen information"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Använda tonvalstelefon"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Använd tonvalstelefon"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Återvänd till pågående samtal"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Lägg t. samt."</string>
<string name="type_incoming" msgid="6502076603836088532">"Inkommande samtal"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Utgående videosamtal"</string>
<string name="type_missed_video" msgid="954396897034220545">"Missat videosamtal"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Röstmeddelande"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Avvisat samtal"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Blockerat samtal"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Inkommande samtal"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Spela upp röstmeddelande"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Visa kontakten <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Ring <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Kontaktuppgifter för <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Nytt röstmeddelande"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> samtal."</string>
<string name="description_video_call" msgid="2933838090743214204">"Videosamtal."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Skicka sms till <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Röstbrevlåda"</string>
<string name="private_num" msgid="6374339738119166953">"Privat nummer"</string>
<string name="payphone" msgid="7726415831153618726">"Telefonautomat"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sekund"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sek"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> kl. <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Det går inte att ringa det här numret"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Välj Meny &gt; Inställningar om du vill konfigurera röstbrevlådan."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Om du vill ringa röstbrevlådan måste du först inaktivera flygplansläget."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Röstsökning är inte tillgänglig"</string>
<string name="call_not_available" msgid="8941576511946492225">"Det går inte att ringa eftersom appen Telefon har inaktiverats."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Det finns ingen app för detta på enheten"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Ange ett namn eller telefonnummer"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Inga samtal"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Inga nya röstmeddelanden"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Sök efter kontakter"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Ange nummer eller kontakt"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Samtalshistoriken är tom"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Ring ett samtal"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Du har inga missade samtal."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Din röstbrevlåda är tom."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Visa endast favoriter"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historik"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Samtalshistorik"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Alla"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Missade"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Röstbrevlåda"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vill du blockera <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Samtal från det här numret blockeras och röstmeddelanden raderas automatiskt."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Samtal från det här numret blockeras, men det kan fortfarande gå att lämna ett röstmeddelande."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOCKERA"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vill du häva blockeringen av <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Numret är inte längre blockerat från att ringa dig."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"HÄV BLOCKERINGEN"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Kortnummer"</string>
- <string name="tab_recents" msgid="929949073851377206">"Senaste"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Samtalshistorik"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontakter"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Röstbrevlåda"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Borttagen från favoriter"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Ångra"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Ring <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Skapa ny kontakt"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Lägg till i befintlig kontakt"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Lägg till i kontakt"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Skicka sms"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Ring videosamtal"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Visa hela samtalshistoriken"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Blockera nummer"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> nya missade samtal"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Kortnummer är snabbval för favoritkontakter och nummer du ringer till ofta"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Inga kontakter"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Du har ingen kontakt som snabbval ännu"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Lägg till en favorit"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Du har inga kontakter ännu"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Lägg till en kontakt"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Tryck på bilden och visa alla nummer eller tryck länge om du vill ändra ordningen"</string>
<string name="remove_contact" msgid="1080555335283662961">"Ta bort"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ALLA KONTAKTER"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Videosamtal"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LYSSNA"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Visa information"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Skicka ett meddelande"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Samtalsinfo"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Ring <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Missat samtal från <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Besvarat samtal från <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Nytt röstmeddelande från <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Röstmeddelande från <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Ring till <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"på <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Samtal"</string>
<string name="description_call_action" msgid="4000549004089776147">"Ring <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videosamtal till <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Ring videosamtal till <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Lyssna på ett röstmeddelande från <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Spela upp röstmeddelande från <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Pausa röstmeddelande från <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Radera röstmeddelande från <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> nya röstmeddelanden</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> nytt röstmeddelande</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Skapa en kontakt för <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Lägg till <xliff:g id="NAMEORNUMBER">^1</xliff:g> i befintliga kontakter"</string>
<string name="description_details_action" msgid="2433827152749491785">"Samtalsinformation för <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Har raderats från samtalshistoriken"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Rapport"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"I dag"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"I går"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Äldre"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Snabbsvar"</string>
<string name="call_settings_label" msgid="313434211353070209">"Samtal"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Samtalsblockering"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Blockeringen har inaktiverats tillfälligt"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Importera nummer"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Du har tidigare angett via andra appar att vissa inkommande samtal ska skickas till röstbrevlådan automatiskt."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Visa telefonnummer"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Importera"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Det gick inte att importera"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Häv blockeringen av numret"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Lägg till telefonnummer"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Samtal från de här numren blockeras och röstmeddelanden raderas automatiskt."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Samtal från de här numren blockeras, men det kan fortfarande gå att lämna ett röstmeddelande."</string>
+ <string name="block_list" msgid="7760188925338078011">"Blockerade nummer"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> är inte giltigt."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> är redan blockerat."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Samtalsblockeringen har inaktiverats i 48 timmar"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Inaktiverades därför att enheten har använts för ett nödsamtal."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Konton för samtal"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Aktivera"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Ange behörigheter"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Du måste aktivera behörigheten Kontakter för att kunna använda snabbuppringning."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Du måste aktivera behörigheten Telefon för att kunna visa samtalsloggen."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Du måste aktivera behörigheten Kontakter för att kunna visa kontakterna."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Du måste aktivera behörigheten Telefon för att kunna komma åt röstmeddelanden."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Aktivera behörigheter för Kontakter om du vill söka bland kontakterna."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Du måste aktivera behörigheten Telefon för att kunna ringa."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefonappen har inte skrivbehörighet i systeminställningarna."</string>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 833b2f74b..c738dff52 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Kibonyezi"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Simu"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Nambari ya simu"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Vitufe vya Kupiga Simu"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Simu"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Rekodi ya simu zilizopigwa"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Pigia <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Hariri nambari kabla ya kupiga"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Ongeza kwa anwani"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Futa kutoka rekodi ya simu zilizopigwa"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Futa rekodi ya simu zilizopigwa"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Futa ujumbe wa sauti"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Shiriki ujumbe wa sauti"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Hakuna simu zilizopigwa"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Rekodi ya simu zilizopigwa"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Ripoti nambari isiyo sahihi"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Nakili nambari"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Nakili unukuzi"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Zuia nambari"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> imezuiwa"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Ondolea nambari kizuizi"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> imeondolewa kizuizi"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"TENDUA"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Futa"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Badilisha nambari kabla ya kupiga simu"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Futa rekodi ya simu zilizopigwa"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Futa ujumbe wa sauti"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ujumbe wa sauti umefutwa"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"TENDUA"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Je, ungependa kufuta rekodi ya simu zilizopigwa?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Hii itafuta simu zote kutoka rekodi zako"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Inafuta rekodi ya simu zilizopigwa..."</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Barua mpya ya sauti kutoka <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Haikuweza kucheza ujumbe wa sauti"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Inaakibisha..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Inapakia ujumbe wa sauti..."</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Haikuweza kupakia ujumbe wa sauti"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Simu zilizo na ujumbe wa sauti tu"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Simu zinazoingia tu"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Simu zinazotoka tu"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Simu zisizojibiwa tu"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Ujumbe wa sauti unaoonekana"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Tazama na usikilize ujumbe wako wa sauti, bila kupiga simu kwa nambari yoyote. Huenda ukatozwa kwa gharama ya data."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Mipangilio"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Masasisho ya ujumbe wa sauti hayapatikani"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Ujumbe mpya wa sauti unasubiri. Haiwezi kupakia sasa hivi."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Sanidi ujumbe wako wa sauti"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Sauti haipatikana"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Sanidi"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Pigia barua sauti"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Kasi ya taratibu zaidi"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Kasi ya taratibu"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Kasi ya kawaida"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Kasi ya haraka"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Kasi ya haraka zaidi"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"( <xliff:g id="COUNT">%1$d</xliff:g> ) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Chagua nambari"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Chagua nambari"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Historia ya Simu"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Chaguo zaidi"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"kitufe cha kupiga"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Nakili"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Onyesha zinazotoka pekee"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Onyesha zinazoingia pekee"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Onyesha zilizokosa kupokewa pekee"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Hangout ya Video inayotoka"</string>
<string name="type_missed_video" msgid="954396897034220545">"Hangout ya Video ambayo haikupokewa"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Barua za sauti"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Simu iliyokataliwa"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Simu iliyozuiwa"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Simu zinazoingia"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Sikiliza ujumbe wa sauti"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Angalia anwani <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Piga <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Maelezo ya <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Ujumbe mpya wa sauti."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Simu <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"Hangout ya video."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Tuma SMS kwa <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Ujumbe wa sauti"</string>
<string name="private_num" msgid="6374339738119166953">" Nambari isiyojulikana"</string>
<string name="payphone" msgid="7726415831153618726">"Simu ya kulipia"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"Sekunde <xliff:g id="SECONDS">%s</xliff:g>"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"Dak <xliff:g id="MINUTES">%s</xliff:g> sek <xliff:g id="SECONDS">%s</xliff:g>"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> saa <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Haiwezi kupiga simu kwa nambari hii"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Ili kusanidi ujumbe wa sauti, nenda kwa Menyu &gt; Mipangilio."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Kupigia simu ujumbe wa sauti, kwanza zima hali ya ndege."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Kutafuta kwa kutamka hakupatikani"</string>
<string name="call_not_available" msgid="8941576511946492225">"Haiwezi kupiga simu kwa sababu programu ya Simu imezimwa."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Hakuna programu kwa ajili ya hiyo kwenye kifaa hiki"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Andika jina au nambari ya simu"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Hakuna simu zilizopigwa"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Hakuna ujumbe wa sauti wa hivi majuzi"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Tafuta anwani"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Ongeza nambari au utafute anwani"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Rekodi yako ya simu zilizopigwa haina chochote"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Piga simu"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Huna simu ulizokosa kupokea"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Kikasha chako cha ujumbe wa sauti hakina ujumbe."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Onyesha zinazopendwa tu"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Historia"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Rekodi ya Simu Zilizopigwa"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Zote"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Ambazo hazikupokewa"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Ujumbe wa sauti"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Ungependa kuzuia <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Simu zinazopigwa kutoka nambari hii zitazuiwa na ujumbe wa sauti utafutwa kiotomatiki."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Simu zinazopigwa kutoka nambari hii zitazuiwa, lakini mpigaji bado anaweza kukutumia ujumbe wa sauti."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ZUIA"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Ungependa kuondoa kizuizi kwenye <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Simu kutoka kwenye nambari hii hazitazuiwa tena."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ONDOA KIZUIZI"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Unaowasiliana nao zaidi"</string>
- <string name="tab_recents" msgid="929949073851377206">"Zilizotumika majuzi"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Rekodi ya Simu Zilizopigwa"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Anwani zote"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Ujumbe wa sauti"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Imeondolowa kwenye vipendwa"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Tendua"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Piga simu <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Ongeza anwani mpya"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Ongeza kwenye anwani iliyopo"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Ongeza kwenye anwani"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Tuma SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Piga Hangout ya video"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Angalia historia kamili ya simu zilizopigwa"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Zuia nambari"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Simu <xliff:g id="NUMBER">%s</xliff:g> za karibuni ambazo hazikujibiwa"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Unaowasiliana nao zaidi ni upigaji simu wa kugusa mara moja kwa vipendeleo na nambari unazopiga mara kwa mara"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Hakuna anwani"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Hakuna mtu aliye katika orodha yako ya watu unaowasiliana nao zaidi"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Ongeza kipendwa"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Bado huna anwani zozote"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Ongeza anwani"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Gusa picha ili uone nambari zote au gusa na ushikilie ili upange upya"</string>
<string name="remove_contact" msgid="1080555335283662961">"Ondoa"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"ANWANI ZOTE"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Hangout ya Video"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"SIKILIZA"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Angalia maelezo"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Tuma SMS"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Maelezo ya simu"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Piga simu kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Simu ambayo haikupokelewa kutoka kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Simu iliyopokelewa kutoka kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Ujumb wa sauti ambao haujasikilizwa kutoka <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Ujumbe wa sauti kutoka <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Simu iliyopigwa kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"kwenye <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Piga simu"</string>
<string name="description_call_action" msgid="4000549004089776147">"Piga simu kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Hangout ya video kwenda kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Hangout ya video <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Sikiliza ujumbe wa sauti kutoka kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Cheza ujumbe wa sauti kutoka kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Sitisha ujumbe wa sauti kutoka kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Futa ujumbe wa sauti kutoka kwa <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other">Ujumbe <xliff:g id="COUNT_1">%d</xliff:g> mpya wa sauti</item>
+ <item quantity="one">Ujumbe <xliff:g id="COUNT_0">%d</xliff:g> mpya wa sauti</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Unda anwani ya <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Ongeza <xliff:g id="NAMEORNUMBER">^1</xliff:g> kwenye anwani iliyopo"</string>
<string name="description_details_action" msgid="2433827152749491785">"Maelezo ya simu ya <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Ilifutwa kutoka rekodi ya simu zilizopigwa"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Ripoti"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Leo"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Jana"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Nzee zaidi"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Majibu ya haraka"</string>
<string name="call_settings_label" msgid="313434211353070209">"Simu zilizopigwa"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Kuzuia simu"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Kuzuia simu kumezimwa kwa muda"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Leta nambari"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Hapo awali uliwekea alama baadhi ya wanaopiga ili simu zao ziingie kwenye ujumbe wa sauti kiotomatiki kupitia programu nyingine."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Angalia Nambari"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Leta"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Imeshindwa kuingiza"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Ondolea nambari kizuizi"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Ongeza nambari"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Simu zinazopigwa kutoka nambari hizi zitazuiwa na ujumbe wa sauti utafutwa kiotomatiki."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Simu zinazopigwa kutoka nambari hizi zitazuiwa, lakini wapigaji bado wanaweza kukutumia ujumbe wa sauti."</string>
+ <string name="block_list" msgid="7760188925338078011">"Nambari zilizozuiwa"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> si sahihi."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> tayari imezuiwa."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Huduma ya kuzuia simu imezimwa kwa saa 48"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Imezimwa kwa sababu simu ya dharura imepigwa."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Akaunti za simu"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Washa"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Weka ruhusa"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Ili kuwasha kipengele cha unaowasiliana nao zaidi, washa ruhusa ya Anwani."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Ili uone rekodi yako ya nambari za simu, washa ruhusa ya Simu."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Ili uone anwani zako, washa ruhusa ya Anwani."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Ili ufikie ujumbe wako wa sauti, washa ruhusa ya Simu."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Ili utafute anwani zako, washa ruhusa za Anwani."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Ili upige simu, washa ruhusa ya Simu."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Programu ya simu haina ruhusa ya kuandika kwenye mipangilio ya mfumo."</string>
</resources>
diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml
index 711ba0e62..e122bb450 100644
--- a/res/values-ta-rIN/strings.xml
+++ b/res/values-ta-rIN/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"டயலர்"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ஃபோன்"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ஃபோன்"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ஃபோன் டயல்பேடு"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ஃபோன்"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"அழைப்பு வரலாறு"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> ஐ அழை"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"அழைப்பதற்கு முன் எண்ணைத் திருத்து"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"தொடர்புகளில் சேர்"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"அழைப்பு வரலாற்றில் இருந்து நீக்கு"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"அழைப்பு வரலாற்றை அழி"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"குரலஞ்சலை நீக்கு"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"குரலஞ்சலைப் பகிர்"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"அழைப்புகள் இல்லை"</string>
- <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"அழைப்பு வரலாற்றை அழிக்கவா?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"வரலாற்றிலிருந்து இது எல்லா அழைப்புகளையும் நீக்கும்"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"அழைப்பு வரலாறு"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"தவறான எண் எனப் புகாரளி"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"எண்ணை நகலெடு"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"டிரான்ஸ்கிரிப்ஷனை நகலெடு"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"எண்ணைத் தடு"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> தடுக்கப்பட்டது"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"எண்ணை அனுமதி"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> அனுமதிக்கப்பட்டது"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"செயல்தவிர்"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"நீக்கு"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"அழைப்பதற்கு முன் எண்ணை மாற்று"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"அழைப்பு வரலாற்றை அழி"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"குரலஞ்சலை நீக்கு"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"குரலஞ்சல் நீக்கப்பட்டது"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"செயல்தவிர்"</string>
+ <string name="clearCallLogConfirmation_title" msgid="801753155679372984">"அழைப்பு பதிவை அழிக்கவா?"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"பதிவிலிருந்து எல்லா அழைப்புகளும் நீக்கப்படும்"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"அழைப்பு வரலாற்றை அழிக்கிறது…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> குரலஞ்சல்கள் </item>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> இன் புதிய குரலஞ்சல்"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"குரலஞ்சலை இயக்க முடியவில்லை"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"இடையகப்படுத்துகிறது..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"குரலஞ்சலை ஏற்றுகிறது…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"குரலஞ்சலை ஏற்ற முடியவில்லை"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"குரலஞ்சலுடனான அழைப்புகள் மட்டும்"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"உள்வரும் அழைப்புகள் மட்டும்"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"வெளிச்செல்லும் அழைப்புகள் மட்டும்"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"தவறிய அழைப்புகள் மட்டும்"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"விஷூவல் குரலஞ்சல்"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"எண்ணை அழைக்காமலே, குரலஞ்சலைப் பார்க்கலாம் மற்றும் கேட்கலாம். இதற்கு தரவுக் கட்டணங்கள் விதிக்கப்படலாம்."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"அமைப்புகள்"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"குரலஞ்சல் புதுப்பிப்புகள் இல்லை"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"புதிய குரலஞ்சல் காத்திருக்கிறது. தற்போது ஏற்ற முடியாது."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"குரலஞ்சலை அமைக்கவும்"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ஆடியோ இல்லை"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"அமைப்பு"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"குரலஞ்சலில் அழை"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"மிக மெதுவான வேகம்"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"மெதுவான வேகம்"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"இயல்பான வேகம்"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"விரைவான வேகம்"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"மிக விரைவான வேகம்"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"எண்ணைத் தேர்வுசெய்யவும்"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"எண்ணைத் தேர்வுசெய்யவும்"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"அழைப்பு பட்டியல்"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"மேலும் விருப்பங்கள்"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"டயல்பேடு"</string>
- <string name="menu_copy" msgid="6108677035381940698">"நகலெடு"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"வெளிச்செல்லுவதை மட்டும் காட்டு"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"உள்வருவதை மட்டும் காட்டு"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"தவறியதை மட்டும் காட்டு"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"வெளிச்செல்லும் வீடியோ அழைப்பு"</string>
<string name="type_missed_video" msgid="954396897034220545">"தவறிய வீடியோ அழைப்பு"</string>
<string name="type_voicemail" msgid="5153139450668549908">"குரலஞ்சல்"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"நிராகரிக்கப்பட்ட அழைப்பு"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"தடுக்கப்பட்ட அழைப்பு"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"உள்வரும் அழைப்புகள்"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"குரலஞ்சலை இயக்கு"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> தொடர்பைக் காட்டு"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> ஐ அழை"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> க்கான தொடர்பு விவரங்கள்"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"புதிய குரலஞ்சல்."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> அழைப்புகள்."</string>
<string name="description_video_call" msgid="2933838090743214204">"வீடியோ அழைப்பு."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g>க்கு SMS அனுப்பு"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"குரலஞ்சல்"</string>
<string name="private_num" msgid="6374339738119166953">"தனிப்பட்ட எண்"</string>
<string name="payphone" msgid="7726415831153618726">"கட்டணத் தொலைபேசி"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> வி"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> நிமிடம் <xliff:g id="SECONDS">%s</xliff:g> வினாடி"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> அன்று <xliff:g id="TIME">%2$s</xliff:g> மணிக்கு"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"இந்த எண்ணை அழைக்க முடியாது"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"குரலஞ்சலை அமைக்க, செல்க மெனு &gt; அமைப்பு."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"குரலஞ்சலை அழைப்பதற்கு, முதலில் விமானப் பயன்முறையை முடக்கவும்."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"குரல் தேடல் இல்லை"</string>
<string name="call_not_available" msgid="8941576511946492225">"Phone பயன்பாடு முடக்கப்பட்டுள்ளதால், ஃபோன் அழைப்பைச் செய்ய முடியாது."</string>
<string name="activity_not_available" msgid="2287665636817987623">"சாதனத்தில் இந்தச் செயலைச் செய்வதற்கான பயன்பாடு எதுவும் இல்லை"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"பெயர் (அ) ஃபோன் எண்ணை உள்ளிடுக"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"அழைப்புகள் இல்லை"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"சமீபத்திய குரலஞ்சல்கள் இல்லை"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"தொடர்புகளைத் தேடுக"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"எண்ணைச் சேர்க்கவும் அல்லது தொடர்புகளில் தேடவும்"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"அழைப்பு வரலாறு காலியாக உள்ளது"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"அழை"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"தவறிய அழைப்புகள் இல்லை."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"குரலஞ்சல் இன்பாக்ஸ் காலியாக உள்ளது."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"பிடித்தவற்றை மட்டும் காட்டு"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"வரலாறு"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"அழைப்பு வரலாறு"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"எல்லாம்"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"தவறியவை"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"குரலஞ்சல்"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>ஐத் தடுக்கவா?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"இந்த எண்ணின் அழைப்புகள் தடுக்கப்படுவதுடன், அதன் குரலஞ்சல்களும் தானாகவே நீக்கப்படும்."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"இந்த எண்ணின் அழைப்புகள் தடுக்கப்படும், ஆனால் அழைப்பாளரால் இன்னமும் உங்களுக்குக் குரலஞ்சல்களை அனுப்ப முடியும்."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"தடு"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>ஐ அனுமதிக்கவா?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"இனி உங்களை அழைக்க இந்த எண் அனுமதிக்கப்படும்."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"அனுமதி"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"விரைவு டயல்"</string>
- <string name="tab_recents" msgid="929949073851377206">"சமீபத்தியவை"</string>
+ <string name="tab_history" msgid="2563144697322434940">"அழைப்பு வரலாறு"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"தொடர்புகள்"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"குரலஞ்சல்"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"பிடித்தவற்றிலிருந்து அகற்றப்பட்டது"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"செயல்தவிர்"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> ஐ அழை"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"புதிய தொடர்பை உருவாக்கு"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"இருக்கும் தொடர்பில் சேர்"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"தொடர்பில் சேர்"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS அனுப்பு"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"வீடியோவில் அழை"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"அழைப்பு பட்டியல் முழுவதையும் காட்டு"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"எண்ணைத் தடு"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> புதிய தவறிய அழைப்புகள்"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"விரைவு டயல் என்பது பிடித்த மற்றும் நீங்கள் அடிக்கடி அழைக்கும் எண்களை ஒரே தொடுதலின் மூலம் டயல் செய்யும் அம்சமாகும்."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"தொடர்புகள் இல்லை"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"இன்னும் விரைவு டயலில் யாரையும் சேர்க்கவில்லை"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"பிடித்தவராகச் சேர்"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"இதுவரை எந்தத் தொடர்புகளும் இல்லை"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"ஒரு தொடர்பைச் சேர்க்கவும்"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"எல்லா எண்களையும் பார்க்க, படத்தைத் தொடவும் அல்லது மறுவரிசைப்படுத்த தொட்டுப் பிடித்திருக்கவும்"</string>
<string name="remove_contact" msgid="1080555335283662961">"அகற்று"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"எல்லா தொடர்புகளும்"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"வீடியோ அழைப்பு"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"கேள்"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"விவரங்களைக் காட்டு"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"செய்தி அனுப்பவும்"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"அழைப்பு விவரங்கள்"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>ஐ அழை"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"தவறிய அழைப்பு: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"பேசிய அழைப்பு: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"படிக்காத குரலஞ்சல்: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"குரலஞ்சல்: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"அழைத்த அழைப்பு: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> இல்"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"அழை"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>ஐ அழை"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"அழைத்த வீடியோ அழைப்பு: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>ஐ வீடியோவில் அழைக்கும்."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> இன் குரலஞ்சலைக் கேள்"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> இன் குரலஞ்சலை இயக்கும்"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> இன் குரலஞ்சலை இடைநிறுத்தும்"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> இன் குரலஞ்சலை நீக்கும்"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> புதிய குரலஞ்சல்கள்</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> புதிய குரலஞ்சல்</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>க்கான தொடர்பை உருவாக்கும்"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"இருக்கும் தொடர்பில் <xliff:g id="NAMEORNUMBER">^1</xliff:g>ஐச் சேர்க்கும்"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> இன் அழைப்பு விவரங்கள்"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"அழைப்பு வரலாற்றிலிருந்து நீக்கப்பட்டது"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"புகாரளி"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"இன்று"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"நேற்று"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"பழையது"</string>
@@ -174,7 +205,7 @@
<string name="voicemail_play_slower" msgid="4544796503902818832">"மெதுவாக இயக்கு."</string>
<string name="voicemail_play_start_pause" msgid="3687447935787768983">"பிளேபேக்கைத் தொடங்கு அல்லது இடைநிறுத்து."</string>
<string name="list_delimeter" msgid="4571593167738725100">", "</string>
- <string name="display_options_title" msgid="7812852361055667468">"திரை விருப்பங்கள்"</string>
+ <string name="display_options_title" msgid="7812852361055667468">"காட்சி விருப்பத்தேர்வு"</string>
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"ஒலிகளும் அதிர்வும்"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"அணுகல் தன்மை"</string>
<string name="ringtone_title" msgid="760362035635084653">"மொபைலின் ரிங்டோன்"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"விரைவு பதில்கள்"</string>
<string name="call_settings_label" msgid="313434211353070209">"அழைப்புகள்"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"அழைப்புத் தடுப்பு"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"அழைப்புத் தடுப்பு அம்சம் தற்காலிகமாக முடக்கப்பட்டுள்ளது"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"கடந்த 48 மணிநேரத்தில், இந்த ஃபோனிலிருந்து அவசர அழைப்பு எண்ணைத் தொடர்புகொண்டதால் அழைப்புத் தடுப்பு அம்சம் முடக்கப்பட்டுள்ளது. 48 மணிநேரம் கழித்து, இந்த அம்சம் தானாகவே மீண்டும் இயக்கப்படும்."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"எண்களை இறக்கு"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"பிற பயன்பாடுகளின் மூலம் சில அழைப்பாளர்களின் அழைப்புகளை தானாகவே குரலஞ்சலுக்கு அனுப்புமாறு ஏற்கனவே குறித்துள்ளீர்கள்."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"எண்களைக் காட்டு"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"இறக்கு"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"இறக்குவதில் தோல்வி"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"எண்ணை அனுமதி"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"எண்ணைச் சேர்"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"இந்த எண்களின் அழைப்புகள் தடுக்கப்படுவதுடன், அவற்றின் குரலஞ்சல்களும் தானாகவே நீக்கப்படும்."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"இந்த எண்களின் அழைப்புகள் தடுக்கப்படும், ஆனால் அழைப்பாளர்களால் இன்னமும் உங்களுக்குக் குரலஞ்சல்களை அனுப்ப முடியும்."</string>
+ <string name="block_list" msgid="7760188925338078011">"தடுக்கப்பட்ட எண்கள்"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> தவறானது."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ஏற்கனவே தடுக்கப்பட்டுள்ளது."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"அழைப்புத் தடுப்பு 48 மணிநேரத்திற்கு முடக்கப்பட்டுள்ளது"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"அவசர அழைப்பு செய்திருப்பதால், அழைப்புத் தடுப்பு முடக்கப்பட்டது."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"அழைப்பு கணக்குகள்"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"இயக்கு"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"அனுமதிகளை அமை"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"விரைவு டயலை இயக்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"அழைப்புப் பதிவைப் பார்க்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"தொடர்புகளைப் பார்க்க, தொடர்புகள் அனுமதியை இயக்கவும்."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"குரலஞ்சலை அணுக, ஃபோன் அனுமதியை இயக்கவும்."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"தொடர்புகளைத் தேட, தொடர்புகள் அனுமதிகளை இயக்கவும்."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"அழைக்க, ஃபோன் அனுமதியை இயக்கவும்."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"முறைமை அமைப்புகளில் எழுதுவதற்கான அனுமதி ஃபோன் பயன்பாட்டுக்கு இல்லை."</string>
</resources>
diff --git a/res/values-te-rIN/strings.xml b/res/values-te-rIN/strings.xml
index f1f69a97e..421741676 100644
--- a/res/values-te-rIN/strings.xml
+++ b/res/values-te-rIN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"డయలర్"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"ఫోన్"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"ఫోన్"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"ఫోన్ డయల్‌ప్యాడ్"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"ఫోన్"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"కాల్ చరిత్ర"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g>కు కాల్ చేయి"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"కాల్ చేయడానికి ముందు నంబర్‌ను సవరించు"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"పరిచయాలకు జోడించు"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"కాల్ చరిత్ర నుండి తొలగించు"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"కాల్ చరిత్రను క్లియర్ చేయి"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"వాయిస్ మెయిల్‌ను తొలగించు"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"వాయిస్ మెయిల్‌ను భాగస్వామ్యం చేయి"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"కాల్‌లు ఏవీ లేవు"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"కాల్ చరిత్ర"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"సరికాని నంబర్‌ను నివేదించు"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"నంబర్‌ను కాపీ చేయి"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"లిప్యంతరీకరణను కాపీ చేయి"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"నంబర్‌ను బ్లాక్ చేయి"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> బ్లాక్ చేయబడింది"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"నంబర్‌ను అన్‌బ్లాక్ చేయి"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> అన్‌బ్లాక్ చేయబడింది"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"రద్దు చేయి"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"తొలగించు"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"కాల్ చేయడానికి ముందు నంబర్‌ను సవరించు"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"కాల్ చరిత్రను తీసివేయి"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"వాయిస్ మెయిల్‌ను తొలగించు"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"వాయిస్‌‍మెయిల్ తొలగించింది"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"చర్యరద్దు"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"కాల్ చరిత్రను క్లియర్ చేయాలా?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"దీని వలన మీ చరిత్ర నుండి అన్ని కాల్‌లు తొలగించబడతాయి"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"కాల్ చరిత్రను క్లియర్ చేస్తోంది…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> నుండి కొత్త వాయిస్ మెయిల్"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"వాయిస్ మెయిల్‌ను ప్లే చేయడం సాధ్యపడలేదు"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"బఫర్ చేస్తోంది..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"వాయిస్ మెయిల్‌ను లోడ్ చేస్తోంది…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"వాయిస్ మెయిల్‌ను లోడ్ చేయడం సాధ్యపడలేదు"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"వాయిస్ మెయిల్ కాల్‌లు మాత్రమే"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"ఇన్‌కమింగ్ కాల్‌లు మాత్రమే"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"అవుట్‌గోయింగ్ కాల్‌లు మాత్రమే"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"సమాధానం ఇవ్వని కాల్‌లు మాత్రమే"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"దృశ్యమాన వాయిస్ మెయిల్"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"నంబర్‌కు కాల్ చేయకుండానే మీ వాయిస్ మెయిల్‌ని చూడండి మరియు వినండి. డేటా ఛార్జీలు వర్తించవచ్చు."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"సెట్టింగ్‌లు"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"వాయిస్ మెయిల్ నవీకరణలు అందుబాటులో లేవు"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"కొత్త వాయిస్ మెయిల్ వేచి ఉంది. ప్రస్తుతం లోడ్ చేయడం సాధ్యపడదు."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"మీ వాయిస్ మెయిల్‌ను సెటప్ చేయండి"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ఆడియో అందుబాటులో లేదు"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"సెటప్ చేయండి"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"వాయిస్ మెయిల్‌కు కాల్ చేయండి"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"అతి తక్కువ వేగం"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"తక్కువ వేగం"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"సాధారణ వేగం"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"చాలా వేగం"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"అత్యంత వేగం"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"నంబర్‌ను ఎంచుకోండి"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"నంబర్‌ను ఎంచుకోండి"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"కాల్ చరిత్ర"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"మరిన్ని ఎంపికలు"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"డయల్ ప్యాడ్"</string>
- <string name="menu_copy" msgid="6108677035381940698">"కాపీ చేయి"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"అవుట్‌గోయింగ్ మాత్రమే చూపు"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"ఇన్‌కమింగ్ మాత్రమే చూపు"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"సమాధానం ఇవ్వనివి మాత్రమే చూపు"</string>
@@ -87,7 +90,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"కాల్ వివరాలు"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"వివరాలు అందుబాటులో లేవు"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"టచ్ టోన్ కీప్యాడ్‌ను ఉపయోగించండి"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"కాల్‌కు తిరిగి వెళ్లడం ప్రోగ్రెస్‌లో ఉంది"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"ప్రోగ్రెస్‌లో ఉన్న కాల్‌కు వెళ్లు"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"కాల్‌ను జోడించు"</string>
<string name="type_incoming" msgid="6502076603836088532">"ఇన్‌కమింగ్ కాల్"</string>
<string name="type_outgoing" msgid="343108709599392641">"అవుట్‌గోయింగ్ కాల్"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"అవుట్‌గోయింగ్ వీడియో కాల్"</string>
<string name="type_missed_video" msgid="954396897034220545">"సమాధానమివ్వని వీడియో కాల్‌"</string>
<string name="type_voicemail" msgid="5153139450668549908">"వాయిస్ మెయిల్"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"నిరాకరించిన కాల్"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"బ్లాక్ చేసిన కాల్"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"ఇన్‌కమింగ్ కాల్‌లు"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"వాయిస్ మెయిల్ ప్లే చేయండి"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> పరిచయాన్ని వీక్షించండి"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>కు కాల్ చేయండి"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> యొక్క సంప్రదింపు వివరాలు"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"కొత్త వాయిస్ మెయిల్."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> కాల్‌లు."</string>
<string name="description_video_call" msgid="2933838090743214204">"వీడియో కాల్."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g>కి SMS పంపు"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"వాయిస్ మెయిల్"</string>
<string name="private_num" msgid="6374339738119166953">"ప్రైవేట్ నంబర్"</string>
<string name="payphone" msgid="7726415831153618726">"పే ఫోన్"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> నిమి <xliff:g id="SECONDS">%s</xliff:g> సెక"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>కి"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ఈ నంబర్‌కు కాల్ చేయలేరు"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"వాయిస్ మెయిల్ సెటప్ చేయడానికి, మెను &gt; సెట్టింగ్‌లకు వెళ్లండి."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"వాయిస్ మెయిల్ కాల్ చేయడానికి, మొదట ఎయిర్‌ప్లైన్ మోడ్‌ను ఆపివేయండి."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"వాయిస్ శోధన అందుబాటులో లేదు"</string>
<string name="call_not_available" msgid="8941576511946492225">"ఫోన్ అనువర్తనం నిలిపివేయబడినందున ఫోన్ కాల్ చేయలేరు."</string>
<string name="activity_not_available" msgid="2287665636817987623">"ఈ పరికరంలో దాని కోసం అనువర్తనం ఏదీ లేదు"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"పేరు లేదా ఫోన్ నం. నమోదు చేయం."</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"కాల్‌లు ఏవీ లేవు"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"ఇటీవలి వాయిస్ మెయిల్‌లు ఏవీ లేవు"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"పరిచయాలను శోధించండి"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"నంబర్ జోడించండి లేదా పరిచయాల్లో శోధించండి"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"మీ కాల్ చరిత్ర ఖాళీగా ఉంది"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"కాల్ చేయి"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"మీకు మిస్డ్ కాల్‌లు ఏవీ లేవు."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"మీ వాయిస్ మెయిల్ ఇన్‌బాక్స్ ఖాళీగా ఉంది."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"ఇష్టమైనవాటిని మాత్రమే చూపు"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"చరిత్ర"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"కాల్ చరిత్ర"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"అన్నీ"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"సమాధానం ఇవ్వలేదు"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"వాయిస్ మెయిల్"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g>ని బ్లాక్ చేయాలా?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ఈ నంబర్ నుండి కాల్‌లు బ్లాక్ చేయబడతాయి మరియు వాయిస్‌మెయిల్‌లు స్వయంచాలకంగా తొలగించబడతాయి."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ఈ నంబర్ నుండి కాల్‌లు బ్లాక్ చేయబడతాయి, కానీ కాలర్ ఇప్పటికీ మీకు వాయిస్‌మెయిల్‌లు పంపగలరు."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"బ్లాక్ చేయి"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g>ని అన్‌బ్లాక్ చేయాలా?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"ఈ నంబర్ ఇకపై మీకు కాల్ చేయలేకుండా బ్లాక్ చేయబడదు."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"అన్‌బ్లాక్ చేయి"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"స్పీడ్ డయల్"</string>
- <string name="tab_recents" msgid="929949073851377206">"ఇటీవలివి"</string>
+ <string name="tab_history" msgid="2563144697322434940">"కాల్ చరిత్ర"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"పరిచయాలు"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"వాయిస్ మెయిల్"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"ఇష్టమైనవాటి నుండి తీసివేయబడింది"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"చర్య రద్దు చేయి"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g>కు కాల్ చేయండి"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"కొత్త పరిచయాన్ని సృష్టించు"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"ఇప్పటికే ఉన్న పరిచయానికి జోడించు"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"పరిచయానికి జోడించు"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS పంపు"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"వీడియో కాల్ చేయండి"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"పూర్తి కాల్ చరిత్రను వీక్షించండి"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"నంబర్‌ను బ్లాక్ చేయి"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> కొత్త సమాధానం ఇవ్వని కాల్‌లు"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"స్పీడ్ డయల్ అనేది మీరు ఇష్టమైనవిగా జోడించిన మరియు తరచుగా కాల్ చేసే నంబర్‌లకు ఒక్కసారి తాకడం ద్వారా డయల్ చేయగల సదుపాయం"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"పరిచయాలు లేవు"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"మీ స్పీడ్ డయల్‌లో ఇంకా ఎవరూ లేరు"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"ఇష్టమైనదాన్ని జోడించండి"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"మీకు ఇప్పటికీ పరిచయాలేవీ లేవు"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"పరిచయాన్ని జోడించండి"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"అన్ని నంబర్‌లను చూడటానికి చిత్రాన్ని తాకండి లేదా మళ్లీ క్రమం చేయడానికి తాకి, ఉంచండి"</string>
<string name="remove_contact" msgid="1080555335283662961">"తీసివేయి"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"అన్ని పరిచయాలు"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"వీడియో కాల్"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"వినండి"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"వివరాలను వీక్షించండి"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"సందేశాన్ని పంపు"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"కాల్ వివరాలు"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>కి కాల్ చేయి"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g> నుండి <xliff:g id="TIMEOFCALL">^3</xliff:g> <xliff:g id="PHONEACCOUNT">^4</xliff:g>కి మిస్డ్ కాల్ ఇచ్చారు."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g> నుండి <xliff:g id="TIMEOFCALL">^3</xliff:g> <xliff:g id="PHONEACCOUNT">^4</xliff:g>కి చేసిన కాల్‌కి సమాధానం ఇచ్చారు."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> నుండి చదవని వాయిస్ మెయిల్, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> నుండి వాయిస్ మెయిల్, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>కి <xliff:g id="TIMEOFCALL">^3</xliff:g> <xliff:g id="PHONEACCOUNT">^4</xliff:g> నుండి కాల్ చేసారు."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>లో"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"కాల్ చేయి"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>కి కాల్ చేయి"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>కి చేసిన వీడియో కాల్."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>కి వీడియో కాల్."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> నుండి వచ్చిన వాయిస్ మెయిల్‌ను వినండి"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> నుండి వచ్చిన వాయిస్ మెయిల్‌ను ప్లే చేయండి"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> నుండి వచ్చిన వాయిస్ మెయిల్‌ను పాజ్ చేయండి"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> నుండి వచ్చిన వాయిస్ మెయిల్‌ను తొలగించండి"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> కొత్త వాయిస్‌మెయిల్‌లు</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> కొత్త వాయిస్‌మెయిల్</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> కోసం పరిచయాన్ని సృష్టించండి"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>ని ఇప్పటికే ఉన్న పరిచయానికి జోడించండి"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> యొక్క కాల్ వివరాలు"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"కాల్ చరిత్ర నుండి తొలగించబడింది"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"నివేదించు"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ఈ రోజు"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"నిన్న"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"పాతది"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"శీఘ్ర ప్రతిస్పందనలు"</string>
<string name="call_settings_label" msgid="313434211353070209">"కాల్‌లు"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"కాల్ బ్లాక్ చేయడం"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"కాల్ బ్లాకింగ్ తాత్కాలికంగా ఆఫ్ అయ్యింది"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"మీరు గత 48 గంటల వ్యవధిలో ఈ ఫోన్ నుండి అత్యవసర సేవలను సంప్రదించినందున కాల్ బ్లాకింగ్ నిలిపివేయబడింది. 48 గంటల వ్యవధి ముగిసిన తర్వాత ఇది స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"నంబర్‌లను దిగుమతి చేయి"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"మీరు ఇంతకుముందే కొంతమంది కాలర్‌లను స్వయంచాలకంగా ఇతర అనువర్తనాల ద్వారా వాయిస్ మెయిల్‌కి పంపేందుకు గుర్తు పెట్టారు."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"నంబర్‌లను వీక్షించండి"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"దిగుమతి చేయి"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"దిగుమతి విఫలమైంది"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"నంబర్‌ను అన్‌బ్లాక్ చేయి"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"నంబర్‌ను జోడించు"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ఈ నంబర్‌ల నుండి కాల్‌లు బ్లాక్ చేయబడతాయి మరియు వాయిస్‌మెయిల్‌లు స్వయంచాలకంగా తొలగించబడతాయి."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ఈ నంబర్‌ల నుండి కాల్‌లు బ్లాక్ చేయబడతాయి, కానీ వాటి నుండి ఇప్పటికీ వాయిస్‌మెయిల్‌లు పంపబడవచ్చు."</string>
+ <string name="block_list" msgid="7760188925338078011">"బ్లాక్ చేయబడిన నంబర్‌లు"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> చెల్లదు."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ఇప్పటికే బ్లాక్ చేయబడింది."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"48 గంటల పాటు కాల్ బ్లాకింగ్ నిలిపివేయబడింది"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"అత్యవసర కాల్ చేసినందున నిలిపివేయబడింది."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"కాల్ చేసే ఖాతాలు"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"ఆన్ చేయి"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"అనుమతులను సెట్ చేయి"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"స్పీడ్ డయల్‌ను ప్రారంభించడానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"మీ కాల్ లాగ్‌ను చూడటానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"మీ పరిచయాలను చూడటానికి, పరిచయాల అనుమతిని ఆన్ చేయండి."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"మీ వాయిస్ మెయిల్‌ను ప్రాప్యత చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"మీ పరిచయాలను శోధించడానికి, పరిచయాల అనుమతులను ఆన్ చేయండి."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"కాల్ చేయడానికి, ఫోన్ అనుమతిని ఆన్ చేయండి."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"సిస్టమ్ సెట్టింగ్‌లకు వ్రాయడం కోసం ఫోన్ అనువర్తనానికి అనుమతి లేదు."</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 0914e499c..d23f74e05 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"โปรแกรมโทรออก"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"โทรศัพท์"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"โทรศัพท์"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"แป้นกดหมายเลขโทรศัพท์"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"โทรศัพท์"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"ประวัติการโทร"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"โทรหา <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"แก้ไขหมายเลขก่อนโทร"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"เพิ่มในสมุดโทรศัพท์"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"ลบออกจากประวัติการโทร"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"ล้างประวัติการโทร"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"ลบข้อความเสียง"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"แชร์ข้อความเสียง"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"ไม่มีการโทร"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"ประวัติการโทร"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"รายงานหมายเลขที่ไม่ถูกต้อง"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"คัดลอกหมายเลข"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"คัดลอกการถอดเสียงเป็นคำ"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"บล็อกหมายเลข"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"บล็อก <xliff:g id="NUMBER">%1$s</xliff:g> แล้ว"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"เลิกบล็อกหมายเลข"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"เลิกบล็อก <xliff:g id="NUMBER">%1$s</xliff:g> แล้ว"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"เลิกทำ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"ลบ"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"แก้ไขหมายเลขก่อนโทร"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"ล้างประวัติการโทร"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"ลบข้อความเสียง"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"ลบข้อความเสียงแล้ว"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"เลิกทำ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"ล้างประวัติการโทรไหม"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"การดำเนินการนี้จะลบการโทรทั้งหมดออกจากประวัติของคุณ"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"กำลังล้างประวัติการโทร…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"ข้อความเสียงใหม่จาก <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"ไม่สามารถเล่นข้อความเสียงได้"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"กำลังเก็บบัฟเฟอร์…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"กำลังโหลดข้อความเสียง…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"ไม่สามารถโหลดข้อความเสียงได้"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"เฉพาะสายที่มีข้อความเสียง"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"เฉพาะสายเรียกเข้า"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"เฉพาะสายโทรออก"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"เฉพาะสายที่ไม่ได้รับ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"ข้อความเสียงพร้อมภาพ"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"ดูและฟังข้อความเสียง โดยไม่ต้องโทรไปยังหมายเลขใดๆ อาจมีการเรียกเก็บค่าบริการอินเทอร์เน็ต"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"การตั้งค่า"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"ไม่มีการอัปเดตข้อความเสียง"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"มีข้อความเสียงใหม่รออยู่ ไม่สามารถโหลดได้ในขณะนี้"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"ตั้งค่าข้อความเสียง"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"ไม่สามารถใช้เสียงได้"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"ตั้งค่า"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"เรียกข้อความเสียง"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ช้าที่สุด"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ช้า"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"เร็วปกติ"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"เร็ว"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"เร็วที่สุด"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"เลือกหมายเลข"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"เลือกหมายเลข"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"ประวัติการโทร"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"ตัวเลือกเพิ่มเติม"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"แป้นหมายเลข"</string>
- <string name="menu_copy" msgid="6108677035381940698">"คัดลอก"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"แสดงสายที่โทรออกเท่านั้น"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"แสดงสายโทรเข้าเท่านั้น"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"แสดงสายที่ไม่ได้รับเท่านั้น"</string>
@@ -87,7 +90,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"รายละเอียดการโทร"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"ไม่สามารถดึงรายละเอียด"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"ใช้ปุ่มกดสัญญาณเสียง"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"กลับสู่การโทรที่กำลังดำเนินอยู่"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"กลับไปคุยสายต่อ"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"เพิ่มการโทร"</string>
<string name="type_incoming" msgid="6502076603836088532">"สายเรียกเข้า"</string>
<string name="type_outgoing" msgid="343108709599392641">"สายโทรออก"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"สายโทรออกแฮงเอาท์วิดีโอ"</string>
<string name="type_missed_video" msgid="954396897034220545">"ไม่ได้รับแฮงเอาท์วิดีโอ"</string>
<string name="type_voicemail" msgid="5153139450668549908">"ข้อความเสียง"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"สายที่ปฏิเสธ"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"สายที่บล็อก"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"สายโทรเข้า"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"เล่นข้อความเสียง"</string>
<string name="description_view_contact" msgid="5205669345700598415">"ดูรายชื่อติดต่อ <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"โทรหา <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"รายละเอียดรายชื่อติดต่อสำหรับ <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"ข้อความเสียงใหม่"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> สาย"</string>
<string name="description_video_call" msgid="2933838090743214204">"แฮงเอาท์วิดีโอ"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"ส่ง SMS ไปยัง <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"ข้อความเสียง"</string>
<string name="private_num" msgid="6374339738119166953">"หมายเลขส่วนตัว"</string>
<string name="payphone" msgid="7726415831153618726">"โทรศัพท์สาธารณะ"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> นาที <xliff:g id="SECONDS">%s</xliff:g> วินาที"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"วันที่ <xliff:g id="DATE">%1$s</xliff:g> เวลา <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"ไม่สามารถโทรไปยังหมายเลขนี้"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"หากต้องการตั้งค่าข้อความเสียง ให้ไปที่เมนู &gt; การตั้งค่า"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"หากต้องการฟังข้อความเสียง ให้ปิดโหมดใช้งานบนเครื่องบินก่อน"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"การค้นหาด้วยเสียงไม่พร้อมใช้งาน"</string>
<string name="call_not_available" msgid="8941576511946492225">"ไม่สามารถโทรศัพท์ได้เนื่องจากแอปพลิเคชันโทรศัพท์ถูกปิดใช้งาน"</string>
<string name="activity_not_available" msgid="2287665636817987623">"ไม่มีแอปสำหรับการทำงานนั้นบนอุปกรณ์นี้"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"ป้อนชื่อหรือหมายเลขโทรศัพท์"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"ไม่มีการโทร"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"ไม่มีข้อความเสียงล่าสุด"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"ค้นหารายชื่อติดต่อ"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"เพิ่มหมายเลขหรือค้นหาผู้ติดต่อ"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"ประวัติการโทรว่างเปล่า"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"โทรออก"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"คุณไม่มีสายที่ไม่ได้รับ"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"กล่องข้อความเสียงว่างเปล่า"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"แสดงเฉพาะรายชื่อที่ชื่นชอบ"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"ประวัติ"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"ประวัติการโทร"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"ทั้งหมด"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"ไม่ได้รับ"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"ข้อความเสียง"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"บล็อก <xliff:g id="NUMBER">%1$s</xliff:g> ไหม"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"ระบบจะบล็อกสายเรียกเข้าจากหมายเลขนี้และลบข้อความเสียงโดยอัตโนมัติ"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"ระบบจะบล็อกสายเรียกเข้าจากหมายเลขนี้ แต่ผู้โทรอาจยังฝากข้อความเสียงถึงคุณได้อยู่"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"บล็อก"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"เลิกบล็อก <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"หมายเลขนี้จะไม่ถูกบล็อกจากการโทรหาคุณอีกต่อไป"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"เลิกบล็อก"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"การโทรด่วน"</string>
- <string name="tab_recents" msgid="929949073851377206">"ล่าสุด"</string>
+ <string name="tab_history" msgid="2563144697322434940">"ประวัติการโทร"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"รายชื่อติดต่อ"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"ข้อความเสียง"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"ลบจากรายการโปรด"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"เลิกทำ"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"โทร <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"สร้างรายชื่อติดต่อใหม่"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"เพิ่มไปยังรายชื่อติดต่อที่มีอยู่"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"เพิ่มในรายชื่อติดต่อ"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"ส่ง SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ใช้แฮงเอาท์วิดีโอ"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"ดูประวัติการโทรแบบเต็ม"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"บล็อกหมายเลข"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"สายที่ไม่ได้รับใหม่ <xliff:g id="NUMBER">%s</xliff:g> สาย"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"การโทรด่วนเป็นการโทรแบบแตะครั้งเดียวสำหรับรายการโปรดและหมายเลขที่คุณโทรบ่อย"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"ไม่มีรายชื่อติดต่อ"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"ยังไม่ได้กำหนดผู้ใดในการโทรด่วน"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"เพิ่มรายการโปรด"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"คุณยังไม่มีรายชื่อติดต่อ"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"เพิ่มรายชื่อติดต่อ"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"แตะรูปภาพเพื่อดูหมายเลขทั้งหมด หรือแตะค้างไว้เพื่อเรียงลำดับใหม่"</string>
<string name="remove_contact" msgid="1080555335283662961">"ลบ"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"รายชื่อติดต่อทั้งหมด"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"แฮงเอาท์วิดีโอ"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"ฟัง"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"ดูรายละเอียด"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"ส่งข้อความ"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"รายละเอียดการโทร"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"โทรไปที่ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"ไม่ได้รับสายจาก <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"รับสายจาก <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"ข้อความเสียงที่ยังไม่ได้อ่านจาก <xliff:g id="NAMEORNUMBER">^1</xliff:g> ผ่านทาง<xliff:g id="TYPEORLOCATION">^2</xliff:g> เมื่อ <xliff:g id="TIMEOFCALL">^3</xliff:g> <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"ข้อความเสียงจาก <xliff:g id="NAMEORNUMBER">^1</xliff:g> ผ่านทาง<xliff:g id="TYPEORLOCATION">^2</xliff:g> เมื่อ <xliff:g id="TIMEOFCALL">^3</xliff:g> <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"โทรหา <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_phone_account" msgid="1767072759541443861">"บน <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"โทร"</string>
<string name="description_call_action" msgid="4000549004089776147">"โทรไปที่ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"แฮงเอาท์วิดีโอถึง <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"เรียกแฮงเอาท์วิดีโอไปยัง <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"ฟังข้อความเสียงจาก <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"เล่นข้อความเสียงจาก <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"หยุดข้อความเสียงจาก <xliff:g id="NAMEORNUMBER">^1</xliff:g> ชั่วคราว"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"ลบข้อความเสียงจาก <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ข้อความเสียงใหม่</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ข้อความเสียงใหม่</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"สร้างรายชื่อติดต่อสำหรับ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"เพิ่ม <xliff:g id="NAMEORNUMBER">^1</xliff:g> ไปยังรายชื่อติดต่อที่มีอยู่"</string>
<string name="description_details_action" msgid="2433827152749491785">"รายละเอียดการโทรสำหรับ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"ลบออกจากประวัติการโทรแล้ว"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"รายงาน"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"วันนี้"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"เมื่อวานนี้"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"เก่ากว่า"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"คำตอบด่วน"</string>
<string name="call_settings_label" msgid="313434211353070209">"การโทร"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"การบล็อกสายเรียกเข้า"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"การบล็อกสายเรียกเข้าปิดชั่วคราว"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"นำเข้าหมายเลข"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"ก่อนหน้านี้คุณได้ทำเครื่องหมายว่าให้ส่งผู้โทรบางคนไปยังข้อความเสียงโดยอัตโนมัติผ่านแอปอื่นๆ"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"ดูหมายเลข"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"นำเข้า"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"การนำเข้าล้มเหลว"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"เลิกบล็อกหมายเลข"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"เพิ่มหมายเลข"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ระบบจะบล็อกสายเรียกเข้าจากหมายเลขเหล่านี้และลบข้อความเสียงโดยอัตโนมัติ"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ระบบจะบล็อกสายเรียกเข้าจากหมายเลขเหล่านี้ แต่ผู้โทรอาจยังฝากข้อความเสียงถึงคุณได้อยู่"</string>
+ <string name="block_list" msgid="7760188925338078011">"หมายเลขที่ถูกบล็อก"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ไม่ถูกต้อง"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> ถูกบล็อกอยู่แล้ว"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"ปิดการบล็อกสายเรียกเข้า 48 ชั่วโมง"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"ปิดใช้งานเนื่องจากมีการโทรเข้าหมายเลขฉุกเฉิน"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"บัญชีการโทร"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"เปิด"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"ตั้งค่าสิทธิ์"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"หากต้องการเปิดใช้การโทรด่วน ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"หากต้องการดูประวัติการโทร ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"หากต้องการดูรายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"หากต้องการเข้าถึงข้อความเสียง ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"หากต้องการค้นหารายชื่อติดต่อ ให้เปิดสิทธิ์เข้าถึงรายชื่อติดต่อ"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"หากต้องการโทรออก ให้เปิดสิทธิ์เข้าถึงโทรศัพท์"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"แอปโทรศัพท์ไม่ได้รับอนุญาตให้เขียนไปยังการตั้งค่าระบบ"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 54f739c7c..ed20b827d 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Dialer"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telepono"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telepono"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Dialpad ng Telepono"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telepono"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"History ng tawag"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Tawagan si <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"I-edit ang numero bago tumawag"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Idagdag sa mga contact"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"I-delete mula sa history ng tawag"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"I-clear ang history ng tawag"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Tanggalin ang voicemail"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Ibahagi ang voicemail"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Walang mga tawag"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"History ng tawag"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Iulat ang hindi wastong numero"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopyahin ang numero"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopyahin ang transkripsyon"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"I-block ang numero"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Na-block ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Alisin sa pagkaka-block ang numero"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Naalis sa pagkaka-block ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"I-UNDO"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"I-delete"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"I-edit ang numero bago tumawag"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"I-clear ang history ng tawag"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"I-delete ang voicemail"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Na-delete voicemail"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"I-UNDO"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"I-clear ang history ng tawag?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Ide-delete nito ang lahat ng tawag mula sa iyong history"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Idi-delete nito ang lahat ng tawag mula sa iyong history"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Kini-clear ang history ng tawag…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="one"> <xliff:g id="COUNT">%1$d</xliff:g> Voicemail </item>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Bagong voicemail mula kay <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Hindi ma-play ang voicemail"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Nagba-buffer…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Nilo-load ang voicemail…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Hindi ma-load ang voicemail"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Mga tawag lang na may voicemail"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Mga papasok na tawag lang"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Mga papalabas na tawag lang"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Mga hindi nasagot na tawag lang"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Visual voicemail"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Tingnan at pakinggan ang iyong voicemail, nang hindi kinakailangang tumawag sa isang numero. Maaaring may mga singilin para sa data."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Mga setting"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Walang available na mga update sa voicemail"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"May naghihintay na bagong voicemail. Hindi ma-load sa ngayon."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"I-set up ang iyong voicemail"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Hindi available ang audio"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"I-set up"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Tawagan ang voicemail"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Pinakamabagal na takbo"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Mabagal na takbo"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Karaniwang takbo"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Mabilis na takbo"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Pinakamabilis na takbo"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Pumili ng numero"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Pumili ng numero"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"History ng Tawag"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Higit pang mga pagpipilian"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"dial pad"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopyahin"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Ipakita lang ang papalabas"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Ipakita lang ang paparating"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Ipakita lang ang hindi nasagot"</string>
@@ -87,7 +90,7 @@
<string name="callDetailTitle" msgid="5340227785196217938">"Mga detalye ng tawag"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Hindi available ang mga detalye"</string>
<string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Gumamit ng touch tone na keypad"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Kasalukuyang nagaganap ang pabalik na tawag"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Bumalik sa kasalukuyang tawag"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Magdagdag ng tawag"</string>
<string name="type_incoming" msgid="6502076603836088532">"Papasok na tawag"</string>
<string name="type_outgoing" msgid="343108709599392641">"Papalabas na tawag"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Papalabas na video call"</string>
<string name="type_missed_video" msgid="954396897034220545">"Hindi nasagot na video call"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Voicemail"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Tinanggihang tawag"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Naka-block na tawag"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Mga paparating na tawag"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"I-play ang voicemail"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Tingnan ang contact na si <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Tawagan si <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Mga detalye sa pakikipag-ugnayan para kay/sa <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Bagong voicemail."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> (na) tawag."</string>
<string name="description_video_call" msgid="2933838090743214204">"Video call."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Magpadala ng SMS kay <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Voicemail"</string>
<string name="private_num" msgid="6374339738119166953">"Pribadong numero"</string>
<string name="payphone" msgid="7726415831153618726">"Payphone"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sec"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> min <xliff:g id="SECONDS">%s</xliff:g> sec"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ng <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Hindi matawagan ang numerong ito"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Upang mag-set up ng voicemail, pumunta sa Menu &gt; Mga Setting."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Upang tumawag sa voicemail, i-off muna ang Airplane mode."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Hindi available ang paghahanap gamit ang boses"</string>
<string name="call_not_available" msgid="8941576511946492225">"Hindi makagawa ng tawag sa telepono dahil naka-disable ang application na Telepono."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Walang app para doon sa device na ito"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Maglagay ng pangalan o numero ng telepono"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Walang mga tawag"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Walang mga kamakailang voicemail"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Maghanap ng mga contact"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Magdagdag ng numero, maghanap sa contact"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Walang laman ang iyong history ng tawag"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Tumawag"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Wala kang mga hindi nasagot na tawag."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Walang laman ang iyong voicemail inbox."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Mga paborito lang ang ipakita"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"History"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"History ng Tawag"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Lahat"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Di nasagot"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Voicemail"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Gusto mo bang i-block ang <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Iba-block ang mga tawag mula sa numerong ito at awtomatikong ide-delete ang mga voicemail."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Iba-block ang mga tawag mula sa numerong ito, ngunit makakapag-iwan pa rin sa iyo ng mga voicemail ang tumatawag."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"I-BLOCK"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Gusto mo bang alisin sa pagkaka-block ang <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Maaalis na sa pagkaka-block ang numerong ito at maaari ka na nitong matawagan."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ALISIN SA PAGKAKA-BLOCK"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Speed dial"</string>
- <string name="tab_recents" msgid="929949073851377206">"Mga Kamakailan"</string>
+ <string name="tab_history" msgid="2563144697322434940">"History ng Tawag"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Mga Contact"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Voicemail"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Inalis sa mga paborito"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"I-undo"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Tumawag sa <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Gumawa ng bagong contact"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Idagdag sa umiiral nang contact"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Idagdag sa isang contact"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Magpadala ng SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Gumawa ng video call"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Tingnan ang buong kasaysayan ng tawag"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"I-block ang numero"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> (na) bagong hindi nasagot na tawag"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Ang speed dial ay one‑touch na pagda-dial para sa mga paborito at mga numerong madalas mong tinatawag"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Walang mga contact"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Wala pang tao sa iyong speed dial"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Magdagdag ng paborito"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Wala ka pang sinumang mga contact"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Magdagdag ng contact"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Pindutin ang larawan upang makita ang lahat ng numero o pindutin nang matagal upang ayusing muli"</string>
<string name="remove_contact" msgid="1080555335283662961">"Alisin"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"LAHAT NG CONTACT"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Mag-video call"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"MAKINIG"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Tingnan ang mga detalye"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Magpadala ng mensahe"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Mga detalye ng tawag"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Tawagan ang/si <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Hindi nasagot na tawag mula kay/sa <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Nasagot na tawag mula kay/sa <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Hindi pa nababasang voicemail mula sa/kay <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Voicemail mula sa/kay <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Tawag kay/sa <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"sa <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Tumawag"</string>
<string name="description_call_action" msgid="4000549004089776147">"Tawagan ang/si <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Nakipag-video call sa/kay <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"I-video call si/ang <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Makinig sa voicemail mula sa/kay <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"I-play ang voicemail mula sa/kay <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"I-pause ang voicemail mula sa/kay <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"I-delete ang voicemail mula sa/kay <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> bagong voicemail</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> na bagong voicemail</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Gumawa ng contact para kay/sa <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Idagdag si/ang <xliff:g id="NAMEORNUMBER">^1</xliff:g> sa umiiral nang contact"</string>
<string name="description_details_action" msgid="2433827152749491785">"Mga detalye ng tawag para sa/kay <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Na-delete mula sa history ng tawag"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Mag-ulat"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Ngayon"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Kahapon"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Mas Luma"</string>
@@ -174,7 +205,7 @@
<string name="voicemail_play_slower" msgid="4544796503902818832">"Mag-play nang mas mabagal."</string>
<string name="voicemail_play_start_pause" msgid="3687447935787768983">"Simulan o i-pause ang pag-playback."</string>
<string name="list_delimeter" msgid="4571593167738725100">", "</string>
- <string name="display_options_title" msgid="7812852361055667468">"Mga opsyon sa pagpapakita"</string>
+ <string name="display_options_title" msgid="7812852361055667468">"Mga display option"</string>
<string name="sounds_and_vibration_title" msgid="1692290115642160845">"Tunog at pag-vibrate"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Pagiging Naa-access"</string>
<string name="ringtone_title" msgid="760362035635084653">"Ringtone ng telepono"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Mga mabilisang tugon"</string>
<string name="call_settings_label" msgid="313434211353070209">"Mga Tawag"</string>
- <string name="phone_account_settings_label" msgid="5864322009841175294">"Mga account sa pagtawag"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Pagba-block ng tawag"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Pansamantalang na-off ang call blocking"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"I-import ang mga numero"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Minarkahan mo na dati ang ilang tumatawag na awtomatikong ipadala sa voicemail sa pamamagitan ng iba pang mga app."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Tingnan ang Numero"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"I-import"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Hindi nakapag-import"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Alisin sa pagkaka-block ang numero"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Magdagdag ng numero"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Iba-block ang mga tawag mula sa mga numerong ito at awtomatikong ide-delete ang mga voicemail."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Iba-block ang mga tawag mula sa numerong ito, ngunit makakapag-iwan pa rin sila sa iyo ng mga voicemail."</string>
+ <string name="block_list" msgid="7760188925338078011">"Mga naka-block na numero"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Hindi wasto ang <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Naka-block na ang <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Na-disable ang pagba-block ng tawag sa loob ng 48 oras"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Na-disable dahil tumawag para sa emergency."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"Account sa pagtawag"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"I-on"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Magtakda ng mga pahintulot"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Upang i-enable ang speed dial, i-on ang pahintulot ng Mga Contact."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Upang makita ang iyong log ng tawag, i-on ang pahintulot ng Telepono."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Upang makita ang iyong mga contact, i-on ang pahintulot ng Mga Contact."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Upang ma-access ang iyong voicemail, i-on ang pahintulot ng Telepono."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Upang hanapin ang iyong mga contact, i-on ang mga pahintulot sa Mga Contact."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Upang tumawag, i-on ang pahintulot ng Telepono."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Walang pahintulot ang app ng Telepono na mag-write sa mga setting ng system."</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 5ddc5bd2f..0247f2228 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Çevirici"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefon Tuş Takımı"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Çağrı geçmişi"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Ara: <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Önce numarayı düzenle"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Kişilere ekle"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Çağrı geçmişinden sil"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Çağrı geçmişini temizle"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Sesli mesajı sil"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Sesli mesajı paylaş"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Çağrı yok"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Çağrı geçmişi"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Hatalı numarayı bildir"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Numarayı kopyala"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Çeviri yazıyı kopyala"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Numarayı engelle"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon engellendi"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Numaranın engellemesini kaldır"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefonun engellemesi kaldırıldı"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"GERİ AL"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Sil"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Telefon etmeden önce numarayı düzenle"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Çağrı geçmişini temizle"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Sesli mesajı sil"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Sesli mesaj silindi"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"GERİ AL"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Çağrı geçmişi temizlensin mi?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Bu işlem, geçmişinizdeki bütün çağrıları silecek"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Bu işlem, geçmişinizdeki tüm çağrıları silecek"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Çağrı geçmişi temizleniyor…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> Sesli Mesaj </item>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Yeni sesli mesj gönderen: <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Sesli mesaj oynatılamadı"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Arabelleğe alınıyor..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Sesli mesaj yükleniyor…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Sesli mesaj yüklenemedi"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Yalnızca sesli mesaj içeren çağrılar"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Yalnızca gelen çağrılar"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Yalnızca giden çağrılar"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Yalnızca cevapsız çağrılar"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Görsel sesli mesaj"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Herhangi bir numarayı aramak zorunda kalmadan sesli mesajınızı görün ve dinleyin. Bu işlem için veri ücreti alınabilir."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Ayarlar"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Sesli mesaj güncellemesi yok"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Yeni sesli mesaj bekliyor. Şu anda yüklenemiyor."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Sesli mesajınızı yapılandırın"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Ses kullanılamıyor"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Yapılandır"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Sesli mesaj ara"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"En yavaş hız"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Düşük hız"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Normal hız"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Yüksek hız"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"En yüksek hız"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Sayı seçin"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Sayı seçin"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Çağrı Geçmişi"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Diğer seçenekler"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"tuş takımı"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopyala"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Yalnızca gidenleri göster"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Yalnızca gelenleri göster"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Yalnızca cevapsızları göster"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Giden video görüşmesi isteği"</string>
<string name="type_missed_video" msgid="954396897034220545">"Cevapsız video görüşmesi isteği"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Sesli mesaj"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Reddedilen çağrı"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Engellenen çağrı"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Gelen çağrılar"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Sesli mesajı oynat"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Kişiyi görüntüle: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Sesli arama yap: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> için kişi ayrıntıları"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Yeni sesli mesaj."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> çağrı."</string>
<string name="description_video_call" msgid="2933838090743214204">"Video görüşmesi."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Şuraya SMS gönder: <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Sesli Mesaj"</string>
<string name="private_num" msgid="6374339738119166953">"Özel numara"</string>
<string name="payphone" msgid="7726415831153618726">"Ankesörlü telefon"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> sn."</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> dk. <xliff:g id="SECONDS">%s</xliff:g> sn."</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Bu numara aranamaz"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Sesli mesajı yapılandırmak için Menü &gt; Ayarlar\'a gidin."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Sesli mesaja çağrı yapmak için öncelikle Uçak modunu kapatın."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Sesli arama kullanılamaz"</string>
<string name="call_not_available" msgid="8941576511946492225">"Telefon uygulaması devre dışı bırakıldığından telefon edilemiyor."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Bu cihazda bu işlem için uygun uygulama yok"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Bir ad veya telefon numarası girin"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Çağrı yok"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Yeni sesli mesaj yok"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Kişilerde ara"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Numara ekleyin veya kişi arayın"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Çağrı geçmişiniz boş"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Telefon et"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Cevapsız çağirınız yok."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Sesli mesaj gelen kutunuz boş."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Yalnızca favori kişileri göster"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Geçmiş"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Çağrı Geçmişi"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Tümü"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Cevapsız"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Sesli Mesaj"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon engellensin mi?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Bu numaradan gelen çağrılar engellenecek ve sesli mesajlar otomatik olarak silinecektir."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Bu numaradan gelen çağrılar engellenecek, ancak arayan kişi yine de size sesli mesaj bırakabilecektir."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"ENGELLE"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefonun engellemesi kaldırılsın mı?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Bu numaranın artık sizi araması engellenmeyecek."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"ENGELLEMEYİ KALDIR"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Hızlı arama"</string>
- <string name="tab_recents" msgid="929949073851377206">"Son Kişiler"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Çağrı Geçmişi"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kişiler"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Sesli mesaj"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Favorilerden kaldırıldı"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Geri al"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Telefon et: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Yeni kişi oluştur"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Mevcut kişiye ekle"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Bir kişiye ekle"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS gönder"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Video görüşmesi yap"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Tüm çağrı geçmişini görüntüle"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Numarayı engelle"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> yeni cevapsız çağrı"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Hızlı arama, favorilerinizin ve sık kullandığınız numaraların tek tuşla aranmasıdır."</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Kişi yok"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Hızlı arama listenizde henüz kimse yok"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Favori ekle"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Henüz kayıtlı kişi yok"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Kişi ekle"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Tüm numaraları görmek için resme dokunun veya yeniden sıralamak için dokunup basılı tutun"</string>
<string name="remove_contact" msgid="1080555335283662961">"Kaldır"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TÜM KİŞİLER"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Video görüşmesi"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"DİNLE"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Ayrıntıları görüntüle"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"İleti gönder"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Çağrı ayrıntıları"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Telefon et: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Cevapsız çağrı: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Cevaplanan çağrı: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Dinlenmemiş sesli posta: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Sesli posta: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Yapılan çağrı: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> üzerinde"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Telefon et"</string>
<string name="description_call_action" msgid="4000549004089776147">"Telefon et: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> olarak kayıtlı kişiye video görüşmesi isteğinde bulun."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> ile video görüşmesi yap."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Şu numaradan gelen sesli mesajı dinle: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> tarafından kaydedilmiş sesli mesajı çal"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> tarafından kaydedilmiş sesli mesajı duraklat"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> tarafından kaydedilmiş sesli mesajı sil"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> yeni sesli mesaj</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> yeni sesli mesaj</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> için kişi oluştur"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> bilgisini mevcut kişiye ekle"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> için çağrı ayrıntıları"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Çağrı geçmişinden silindi"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Bildir"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Bugün"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Dün"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Daha eski"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Hızlı yanıtlar"</string>
<string name="call_settings_label" msgid="313434211353070209">"Çağrılar"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Çağrı engelleme"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Çağrı engelleme geçici olarak kapalı"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Numaraları içe aktar"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Bazı arayanları, diğer uygulamalar aracılığıyla otomatik olarak sesli mesaj gönderilmesi için önceden işaretlediniz."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Numaraları Görüntüle"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"İçe aktar"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"İçe aktarma başarısız oldu"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Numaranın engellemesini kaldır"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Numara ekle"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Bu numaralardan gelen çağrılar engellenecek ve sesli mesajlar otomatik olarak silinecektir."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Bu numaralardan gelen çağrılar engellenecek, ancak arayan kişiler yine de size sesli mesaj bırakabileceklerdir."</string>
+ <string name="block_list" msgid="7760188925338078011">"Engellenen numaralar"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon geçersiz."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> numaralı telefon zaten engellendi."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Çağrı engelleme 48 saat süreyle devre dışı bırakıldı"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Acil durum çağrısı yapıldığından devre dışı bırakıldı."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Çağrı hesapları"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Aç"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"İzinleri ayarla"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Hızlı aramayı etkinleştirmek için Kişiler iznini açın."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Çağrı günlüğünüzü görmek için Telefon iznini açın."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Kişilerinizi görmek için Kişiler iznini açın."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Sesli mesajınıza erişmek için Telefon iznini açın."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Kişilerinizde arama yapmak için Kişiler izinlerini açın."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Telefon etmek için Telefon iznini açın."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefon uygulamasının sistem ayarlarına yazma izni yok."</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 0a6056781..de35a8a41 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Телефон"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Телефон"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Телефон"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Цифрова клавіатура"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Тел."</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Історія дзвінків"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Набрати <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Редаг. номер перед викл."</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Додати в контакти"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Видалити з історії дзвінків"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Очистити історію дзвінків"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Видалити голосову пошту"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Надіслати голос. повідомлення"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Немає дзвінків"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Історія дзвінків"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Повідомити про неправильний номер"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Копіювати номер"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Копіювати транскрипцію"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Заблокувати номер"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> заблоковано"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Розблокувати номер"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> розблоковано"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"ВІДМІНИТИ"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Видалити"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Редагувати номер перед викликом"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Очистити історію дзвінків"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Видалити голосову пошту"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Видалено"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"ВІДМІНИТИ"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Очистити історію дзвінків?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"З історії буде видалено всі дзвінки"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Очищення історії дзвінків…"</string>
@@ -42,24 +49,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Нова голосова пошта від <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Не вдалося відтворити голосову пошту"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Буферизація..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Завантаження голосової пошти…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Не вдалося завантажити голосову пошту"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Лише виклики з голосовою поштою"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Лише вхідні виклики"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Лише вихідні виклики"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Лише пропущені виклики"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Візуальна голосова пошта"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Переглядайте та слухайте голосову пошту, не телефонуючи. За передавання даних може стягуватися плата."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Налаштування"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Нові повідомлення голосової пошти недоступні"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Є нове повідомлення голосової пошти. Помилка завантаження."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Налаштуйте голосову пошту"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Аудіо недоступне"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Налаштувати"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Дзвон.на голос.пошту"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Найнижча швидкість"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Низька швидкість"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Звичайна швидкість"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Висока швидкість"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Найвища швидкість"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Вибрати номер"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Вибрати номер"</string>
@@ -75,7 +79,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Історія викликів"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Інші варіанти"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"цифрова клавіатура"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Копіювати"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Показувати лише вихідні"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Показувати лише вхідні"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Показувати лише пропущені"</string>
@@ -88,22 +91,23 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Усі контакти"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Деталі виклику"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Деталі недоступні"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Викор. кнопкову клавіат."</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Поверн. до поточн. виклику"</string>
- <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Дод. виклик"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Використовувати тональний набір"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Повернутися до поточного виклику"</string>
+ <string name="dialer_addAnotherCall" msgid="4205688819890074468">"Додати виклик"</string>
<string name="type_incoming" msgid="6502076603836088532">"Вхідний виклик"</string>
<string name="type_outgoing" msgid="343108709599392641">"Вихідний виклик"</string>
- <string name="type_missed" msgid="2720502601640509542">"Пропущ. виклик"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Пропущений виклик"</string>
<string name="type_incoming_video" msgid="82323391702796181">"Вхідний відеодзвінок"</string>
<string name="type_outgoing_video" msgid="2858140021680755266">"Вихідний відеодзвінок"</string>
<string name="type_missed_video" msgid="954396897034220545">"Пропущений відеодзвінок"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Голосова пошта"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Відхилений виклик"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Заблокований виклик"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Вхідні виклики"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Відтворити голосову пошту"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Переглянути контакт <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Дзвонити: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Відомості про контакт <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Нова голосове повідомлення."</string>
<string name="description_num_calls" msgid="1601505153694540074">"Викликів: <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>."</string>
<string name="description_video_call" msgid="2933838090743214204">"Відеодзвінок."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Надіслати SMS контакту <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -111,10 +115,14 @@
<string name="description_start_voice_search" msgid="520539488194946012">"Розпочати голосовий пошук"</string>
<string name="menu_callNumber" msgid="997146291983360266">"Подзвонити на <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Невідомий"</string>
- <string name="voicemail" msgid="3851469869202611441">"Голос. пошта"</string>
+ <string name="voicemail" msgid="3851469869202611441">"Голосова пошта"</string>
<string name="private_num" msgid="6374339738119166953">"Приватний номер"</string>
<string name="payphone" msgid="7726415831153618726">"Таксофон"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> с"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> хв <xliff:g id="SECONDS">%s</xliff:g> с"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> о <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Не можна телефонувати на цей номер"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Щоб налаштувати голосову пошту, перейдіть у Меню &gt; Налаштування."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Щоб перевірити голосову пошту, спочатку вимкніть режим польоту."</string>
@@ -127,45 +135,70 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Голосовий пошук недоступний"</string>
<string name="call_not_available" msgid="8941576511946492225">"Не вдається здійснити дзвінок, оскільки додаток Телефон вимкнено."</string>
<string name="activity_not_available" msgid="2287665636817987623">"На цьому пристрої немає додатка, який може виконати цю дію"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Введіть ім’я чи номер телефону"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Немає дзвінків"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Немає нещодавніх повідомлень голосової пошти"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Пошук серед контактів"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Введіть або знайдіть номер"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Немає історії дзвінків"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Телефонувати"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Немає пропущених дзвінків."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Немає голосової пошти."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Показати лише вибрані"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Історія"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Історія дзвінків"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Усі"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Пропущені"</string>
- <string name="call_log_voicemail_title" msgid="940422274047025948">"Голос.пошта"</string>
+ <string name="call_log_voicemail_title" msgid="940422274047025948">"Голосова пошта"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Заблокувати номер <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Виклики з цього номера блокуватимуться, а голосові повідомлення автоматично видалятимуться."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Виклики з цього номера блокуватимуться, але абонент зможе залишати голосові повідомлення."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"БЛОКУВАТИ"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Розблокувати номер <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Дзвінки з цього номера більше не блокуватимуться."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"РОЗБЛОКУВАТИ"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Швидкий набір"</string>
- <string name="tab_recents" msgid="929949073851377206">"Останні"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Історія дзвінків"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Контакти"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Голосова пошта"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Вилучено з вибраного"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Відмінити"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Набрати <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Створити новий контакт"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Додати до наявного контакта"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Додати в контакти"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Надіслати SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Здійснити відеодзвінок"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Переглянути всю історію дзвінків"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Заблокувати номер"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"Нових пропущених дзвінків: <xliff:g id="NUMBER">%s</xliff:g>"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Швидкий набір – це набір вибраних номерів і номерів, на які ви часто телефонуєте, одним дотиком"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Немає контактів"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Немає номерів для швидкого набору"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Додати номер"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Ще немає контактів"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Додати контакт"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Торкніться зображення, щоб побачити всі номери, або натисніть і утримуйте, щоб змінити порядок"</string>
<string name="remove_contact" msgid="1080555335283662961">"Видалити"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"УСІ КОНТАКТИ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Відеодзвінок"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"СЛУХАТИ"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Переглянути деталі"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Надіслати повідомлення"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Деталі виклику"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>: телефонувати"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Пропущений дзвінок: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Прийнятий дзвінок: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Непрочитане голосове повідомлення: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Голосове повідомлення: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Вихідний дзвінок: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"Обліковий запис: <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Виклик"</string>
<string name="description_call_action" msgid="4000549004089776147">"Телефонувати: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Відеодзвінок: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Запросити контакт <xliff:g id="NAMEORNUMBER">^1</xliff:g> на відеодзвінок."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Слухати голосову пошту: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>: слухати голосову пошту"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>: призупинити голосову пошту"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>: видалити голосову пошту"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> нове повідомлення голосової пошти</item>
+ <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> нові повідомлення голосової пошти</item>
+ <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> нових повідомлень голосової пошти</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> нового повідомлення голосової пошти</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>: створити контакт"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>: додати до наявного контакта"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>: деталі виклику"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Видалено з історії дзвінків"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Повідомити"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Сьогодні"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Учора"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Старіші"</string>
@@ -189,5 +222,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Швидкі відповіді"</string>
<string name="call_settings_label" msgid="313434211353070209">"Дзвінки"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Блокування викликів"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Блокування дзвінків тимчасово вимкнено"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"Блокування дзвінків вимкнено, оскільки ви зверталися з цього телефона в екстрені служби протягом останніх 48 годин. Ця функція автоматично ввімкнеться, коли мине 48 годин."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Імпортувати номери"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Ви позначили абонентів, чиї дзвінки мають автоматично спрямовуватися на голосову пошту через інші додатки."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Переглянути номери"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Імпортувати"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Не вдалось імпортувати"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Розблокувати номер"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Додати номер"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Виклики з цих номерів блокуватимуться, а голосові повідомлення автоматично видалятимуться."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Виклики з цих номерів блокуватимуться, але абоненти зможуть залишати голосові повідомлення."</string>
+ <string name="block_list" msgid="7760188925338078011">"Заблоковані номери"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> недісний."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"Номер <xliff:g id="NUMBER">%1$s</xliff:g> уже заблоковано."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Блокування викликів вимкнено на 48 годин"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Блокування вимкнено, оскільки ви зробили екстрений виклик."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Обл. записи для дзвінків"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Увімкнути"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Налаштувати дозволи"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Щоб активувати швидкий набір, увімкніть дозвіл \"Контакти\"."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Щоб переглянути журнал викликів, увімкніть дозвіл \"Телефон\"."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Щоб переглянути контакти, увімкніть дозвіл \"Контакти\"."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Щоб користуватися голосовою поштою, увімкніть дозвіл \"Телефон\"."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Щоб шукати контакти, увімкніть дозвіл \"Контакти\"."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Щоб зателефонувати, увімкніть дозвіл \"Телефон\"."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Додаток Телефон не має дозволу змінювати системні налаштування."</string>
</resources>
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index 0b2eaf410..8502abc50 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"ڈائلر"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"فون"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"فون"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"فون ڈائل پیڈ"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"فون"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"کال کی سرگزشت"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g> کو کال کریں"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"کال کرنے سے پہلے نمبر میں ترمیم کریں"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"رابطوں میں شامل کریں"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"کال کی سرگزشت سے حذف کریں"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"کال کی سرگزشت صاف کریں"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"صوتی میل حذف کریں"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"صوتی میل کا اشتراک کریں"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"کوئی کالز نہیں ہیں"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"کال کی سرگزشت"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"غلط نمبر کی رپورٹ کریں"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"نمبر کاپی کریں"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"ٹرانسکرپشن کاپی کریں"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"نمبر مسدود کریں"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> مسدود ہو گیا"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"نمبر غیر مسدود کریں"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> غیر مسدود ہو گیا"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"کالعدم کریں"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"حذف کریں"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"کال کرنے سے پہلے نمبر میں ترمیم کریں"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"کال کی سرگزشت صاف کریں"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"صوتی میل حذف کریں"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"صوتی میل حذف ہو گئی"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"کالعدم کریں"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"کال کی سرگزشت صاف کریں؟"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"یہ آپ کی سرگزشت سے سبھی کالز کو حذف کر دے گا"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"کال کی سرگزشت صاف کی جا رہی ہے…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>، <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g> کی جانب سے نیا صوتی میل"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"صوتی میل نہیں چلا سکا"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"بفر کر رہا ہے…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"صوتی میل لوڈ ہو رہا ہے…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"صوتی میل لوڈ نہیں کیا جا سکا"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"صرف صوتی میل والی کالیں"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"صرف آنے والی کالیں"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"صرف باہر جانے والی کالیں"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"صرف چھوٹی ہوئی کالیں"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"بصری صوتی میل"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"اپنی صوتی میل دیکھیں اور سنیں، آپ کو اس نمبر پر کال نہیں کرنی پڑے گی۔ ڈیٹا چارجز کا اطلاق ہو سکتا ہے۔"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"ترتیبات"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"صوتی میل کی اپ ڈیٹس دستیاب نہیں ہیں"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"نئے صوتی میل کے منتظر۔ ابھی لوڈ نہیں کیا جا سکتا۔"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"اپنے صوتی میل کو ترتیب دیں"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"آڈیو دستیاب نہیں ہے"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"ترتیب دیں"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"صوتی میل کو کال کریں"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"سست ترین رفتار"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"سست رفتار"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"معمول کی رفتار"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"تیز رفتار"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"تیز ترین رفتار"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"نمبر منتخب کریں"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"نمبر منتخب کریں"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"کال کی سرگزشت"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"مزید اختیارات"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"ڈائل پیڈ"</string>
- <string name="menu_copy" msgid="6108677035381940698">"کاپی کریں"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"صرف باہر جانے والی دکھائیں"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"صرف آنے والی دکھائیں"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"صرف چھوٹی ہوئی دکھائیں"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"کی جانے والی ویڈیو کال"</string>
<string name="type_missed_video" msgid="954396897034220545">"چھوٹی ہوئی ویڈیو کال"</string>
<string name="type_voicemail" msgid="5153139450668549908">"صوتی میل"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"مسترد شدہ کال"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"مسدود شدہ کال"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"آنے والی کالیں"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"صوتی میل چلائیں"</string>
<string name="description_view_contact" msgid="5205669345700598415">"رابطہ <xliff:g id="NAME">%1$s</xliff:g> دیکھیں"</string>
<string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g> کو کال کریں"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> کیلئے رابطہ کی تفصیلات"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"نیا صوتی میل۔"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> کالیں۔"</string>
<string name="description_video_call" msgid="2933838090743214204">"ویڈیو کال۔"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"‏<xliff:g id="NAME">%1$s</xliff:g> پر SMS بھیجیں"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"صوتی میل"</string>
<string name="private_num" msgid="6374339738119166953">"نجی نمبر"</string>
<string name="payphone" msgid="7726415831153618726">"بامعاوضہ فون"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> منٹ <xliff:g id="SECONDS">%s</xliff:g> سیکنڈ"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> بوقت <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"اس نمبر پر کال نہیں کر سکتے ہیں"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"صوتی میل تشکیل دینے کیلئے، مینو &gt; ترتیبات پر جائیں۔"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"صوتی میل کو کال کرنے کیلئے، پہلے ہوائی جہاز طرز آف کریں۔"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"صوتی تلاش دستیاب نہیں ہے"</string>
<string name="call_not_available" msgid="8941576511946492225">"فون کال نہیں کی جا سکتی ہے کیونکہ فون ایپلیکیشن کو غیر فعال کر دیا گیا ہے۔"</string>
<string name="activity_not_available" msgid="2287665636817987623">"اس آلہ پر اس کیلئے کوئی ایپ نہیں ہے"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"نام یا فون نمبر درج کریں"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"کوئی کالز نہیں ہیں"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"کوئی حالیہ صوتی میلز نہیں ہیں"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"رابطے تلاش کریں"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"نمبر شامل کریں یا رابطے تلاش کریں"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"آپ کی کال کی سرگزشت خالی ہے"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"ایک کال کریں"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"آپ کے پاس کوئی چھوٹی ہوئی کالز نہیں ہیں۔"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"آپ کا صوتی میل ان باکس خالی ہے۔"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"صرف پسندیدہ دکھائیں"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"سرگزشت"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"کال کی سرگزشت"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"سبھی"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"چھوٹی ہوئی"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"صوتی میل"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> مسدود کریں؟"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"اس نمبر سے کالز مسدود ہوجائیں گی اور صوتی میلز خودبخزد جذف ہو جائیں گی۔"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"اس نمبر سے کالز مسدود ہو جائیں گی گی لیکن ممکن ہے کالر پھر بھی آپ کیلئے صوتی میلز چھوڑ پائے۔"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"مسدود کریں"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> غیر مسدود کریں؟"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"اس نمبر پر سے آپ کو کال کرنا مزید مسدود نہیں رہے گا۔"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"غیر مسدود کریں"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"اسپیڈ ڈائل"</string>
- <string name="tab_recents" msgid="929949073851377206">"حالیہ"</string>
+ <string name="tab_history" msgid="2563144697322434940">"کال کی سرگزشت"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"رابطے"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"صوتی میل"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"پسندیدہ سے ہٹا دیا گیا"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"کالعدم کریں"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g> کو کال کریں"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"نیا رابطہ بنائیں"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"موجودہ رابطے میں شامل کریں"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"رابطے میں شامل کریں"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"‏SMS بھیجیں"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"ویڈیو کال کریں"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"کال کی مکمل سرگزشت دیکھیں"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"نمبر مسدود کریں"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> نئی چھوٹی ہوئی کالیں"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"اسپیڈ ڈائل ان پسندیدگیوں اور نمبرز کیلئے جنہیں آپ اکثر کال کرتے ہیں ایک ٹچ ڈائلنگ ہے"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"کوئی رابطے نہیں ہیں"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"آپ کے اسپیڈ ڈائل پر ابھی تک کوئی نہیں ہے"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"ایک پسندیدہ شامل کریں"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"آپ کے پاس ابھی تک کوئی رابطے نہیں ہیں"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"ایک رابطہ شامل کریں"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"سبھی نمبرز دیھکنے کیلئے تصویر ٹچ کریں یا دوبارہ ترتیب دینے کیلئے ٹچ کریں اور دبائے رکھیں"</string>
<string name="remove_contact" msgid="1080555335283662961">"ہٹائیں"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"سبھی رابطے"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"ویڈیو کال"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"سنیں"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"تفصیلات دیکھیں"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"پیغام بھیجیں"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"کال کی تفصیلات"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> کو کال کریں"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g> کی جانب سے چھوٹی ہوئی کال۔"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g> کی جانب سے جواب دی گئی کال۔"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"بغیر پڑھی گئی صوتی میل منجانب <xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g>۔"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"صوتی میل منجانب <xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g>۔"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="NAMEORNUMBER">^1</xliff:g>، <xliff:g id="TYPEORLOCATION">^2</xliff:g>، <xliff:g id="TIMEOFCALL">^3</xliff:g>، <xliff:g id="PHONEACCOUNT">^4</xliff:g> پر کال کریں۔"</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> پر"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"کال کریں"</string>
<string name="description_call_action" msgid="4000549004089776147">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> کو کال کریں"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> کو کی گئی ویڈیو کال۔"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> کو ویڈیو کال کریں۔"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> سے صوتی میل سنیں"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> سے صوتی میل چلائیں"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> سے صوتی میل موقوف کریں"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> سے صوتی میل حذف کریں"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> نئی صوتی میلز</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> نئی صوتی میل </item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> کیلئے رابطہ بنائیں"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> کو موجودہ رابطہ میں شامل کریں"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> کیلئے کال کی تفصیلات"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"کال کی سرگزشت سے حذف کر دیا گیا"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"اطلاع دیں"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"ﺁﺝ"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"گزشتہ کل"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"قدیم تر"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"فوری جوابات"</string>
<string name="call_settings_label" msgid="313434211353070209">"کالز"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"کال مسدود کرنا"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"کال مسدود کرنا عارضی طور پر آف ہے"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"کال مسدود کرنا غیر فعال کر دیا گیا ہے کیونکہ آپ نے پچھلے 48 گھنٹوں میں اس فون سے ہنگامی سروسز کے ساتھ رابطہ کیا تھا۔ جب 48 گھنٹے کا دورانیہ ختم ہوگا تو یہ خودکار طور پر دوبارہ فعال ہو جائے گا۔"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"نمبرز درآمد کریں"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"آپ نے پہلے کچھ کالرز کو خودکار طور پر بذریعہ دیگر ایپس صوتی میل کو بھیجنا نشان زد کیا تھا۔"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"نمبرز دیکھیں"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"درآمد کریں"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"درآمد کرنا ناکام ہوگیا"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"نمبر غیر مسدود کریں"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"نمبر شامل کریں"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"ان نمبرز سے کالز مسدود ہوجائیں گی اور صوتی میلز خودبخود جذف ہو جائیں گی۔"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"ان نمبرز سے کالز مسدود ہو جائیں گی گی لیکن ممکن ہے وہ پھر بھی آپ کیلئے صوتی میلز چھوڑ پائیں۔"</string>
+ <string name="block_list" msgid="7760188925338078011">"مسدود کردہ نمبرز"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> غلط ہے۔"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> پہلے ہی مسدود ہے۔"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"کال مسدود کرنا 48 گھنٹے کیلئے غیر فعال ہو گیا"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"غیر فعال ہو گیا کیونکہ ایک ہنگامی کال کی گئی تھی۔"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"کالنگ اکاؤنٹس"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"آن کریں"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"اجازتیں طے کریں"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"اسپیڈ ڈائل کو فعال کرنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"اپنا کال لاگ دیکھنے کیلئے فون کی اجازت آن کریں۔"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"اپنے رابطے دیکھنے کیلئے رابطوں کی اجازت آن کریں۔"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"اپنی صوتی میل تک رسائی کیلئے فون کی اجازت آن کریں۔"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"اپنے رابطوں کو تلاش کرنے کیلئے رابطوں کی اجازتیں آن کریں۔"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"کال کرنے کیلئے فون کی اجازت آن کریں۔"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"فون ایپ کے پاس سسٹم ترتیبات کو لکھنے کی اجازت نہیں ہے۔"</string>
</resources>
diff --git a/res/values-uz-rUZ/strings.xml b/res/values-uz-rUZ/strings.xml
index 8c3e4266f..b8c0fcb5a 100644
--- a/res/values-uz-rUZ/strings.xml
+++ b/res/values-uz-rUZ/strings.xml
@@ -17,20 +17,27 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Tergich"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Telefon"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Telefon"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Telefon raqam terish paneli"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Telefon"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Qo‘ng‘iroqlar tarixi"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"<xliff:g id="NAME">%s</xliff:g>ga qo‘ng‘iroq qilish"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Qo‘ng‘iroq qilishdan oldin raqamni tahrirlang"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Kontaktlarga qo‘shish"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Qo‘ng‘iroqlar tarixidan o‘chirish"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Qo‘ng‘iroqlar tarixini tozalash"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Ovozli xabarni o‘chirish"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Ovozli xabarni ulashish"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Qo‘ng‘iroqlar yo‘q"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Qo‘ng‘iroqlar tarixi"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Raqam noto‘g‘ri aniqlandi"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Raqamdan nusxa olish"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Transkripsiyadan nusxa olish"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Raqamni bloklash"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami bloklandi"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Raqamni blokdan chiqarish"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami blokdan chiqarildi"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"QAYTARISH"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"O‘chirish"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Qo‘ng‘iroq qilishdan oldin raqamni tahrirlang"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Qo‘ng‘iroqlar tarixini tozalash"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Ovozli xabarni o‘chirish"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ovozli pochta o‘chirildi"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"QAYTARISH"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Qo‘ng‘iroqlar tarixi tozalansinmi?"</string>
- <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Bu barcha qo‘ng‘iroqlar tarixini o‘chirib tashlaydi"</string>
+ <string name="clearCallLogConfirmation" msgid="7899552396101432827">"Barcha qo‘ng‘iroqlar tarixi o‘chib ketadi."</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Qo‘ng‘iroqlar tarixi tozalanmoqda…"</string>
<plurals name="notification_voicemail_title" formatted="false" msgid="9088953961148324851">
<item quantity="other"> <xliff:g id="COUNT">%1$d</xliff:g> ta ovozli xabar </item>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"<xliff:g id="CALLER">%1$s</xliff:g>dan yangi ovozli xabar"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Ovozli xabarni eshitib bo‘lmadi"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Buferga yuklanmoqda…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Ovozli xabar yuklanmoqda…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Ovozli xabarni yuklab bo‘lmadi"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Faqat ovozli xabar qo‘ng‘iroqlari"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Faqat kiruvchi qo‘ng‘iroqlar"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Faqat chiquvchi qo‘ng‘iroqlar"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Faqat javobsiz qo‘ng‘iroqlar"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Vizual ovozli xabar"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Ovozli xabarlarni abonentga qo‘ng‘iroq qilmasdan ko‘rng yoki eshiting. Internet-trafik uchun to‘lov olinishi mumkin."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Sozlamalar"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Yangi ovozli xabarlar yo‘q"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Yangi ovozli xabar kutib turibdi. Uni hozir yuklab bo‘lmaydi."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Ovozli pochtangizni sozlang"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Audio mavjud emas"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Sozlash"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Ovoz xabarga qo‘ng‘."</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Eng sekin tezlik"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Sekin tezlik"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"O‘rtacha tezlik"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Yuqori tezlik"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Eng yuqori tezlik"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Raqamni tanlang"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Raqamni tanlang"</string>
@@ -70,10 +74,9 @@
<string name="description_playback_seek" msgid="4509404274968530055">"Ijro vaziyatini qidirish"</string>
<string name="description_rate_decrease" msgid="3161652589401708284">"Ijro tezligini kamaytirish"</string>
<string name="description_rate_increase" msgid="6324606574127052385">"Ijro tezligini oshirish"</string>
- <string name="action_menu_call_history_description" msgid="9018442816219748968">"Qo‘ng‘iroq tarixi"</string>
+ <string name="action_menu_call_history_description" msgid="9018442816219748968">"Qo‘ng‘iroqlar tarixi"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Qo‘shimcha sozlamalar"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"terish paneli"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Nusxalash"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Chiquvchi qo‘ng‘-ni ko‘rsatish"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Kiruvchi qo‘n-larni ko‘rsatish"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Javobsiz qo‘n-larni ko‘rsatish"</string>
@@ -86,33 +89,38 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Barcha kontaktlar"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Qo‘ng‘roq tafsilotlari"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Tafsilotlar mavjud emas"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Ovozli tegish sensorli tugmatagdan foydalaning"</string>
- <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Qo‘ng‘iroq qaytarilmoqda"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Tovushli raqam tergich"</string>
+ <string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Qo‘ng‘iroqqa qaytish"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Qo‘ng‘iroq qo‘shish"</string>
<string name="type_incoming" msgid="6502076603836088532">"Kiruvchi qo‘ng‘iroq"</string>
<string name="type_outgoing" msgid="343108709599392641">"Chiquvchi qo‘ng‘iroq"</string>
- <string name="type_missed" msgid="2720502601640509542">"Javob berilmagan qo‘ng‘iroq"</string>
+ <string name="type_missed" msgid="2720502601640509542">"Javobsiz qo‘ng‘iroq"</string>
<string name="type_incoming_video" msgid="82323391702796181">"Kiruvchi videoqo‘ng‘iroq"</string>
<string name="type_outgoing_video" msgid="2858140021680755266">"Chiquvchi videoqo‘ng‘iroq"</string>
<string name="type_missed_video" msgid="954396897034220545">"Javobsiz videoqo‘ng‘iroq"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Ovozli xabar"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Rad qilingan qo‘ng‘iroq"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Bloklangan qo‘ng‘iroq"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Kiruvchi qo‘ng‘iroqlar"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Ovozli xabarni eshitish"</string>
<string name="description_view_contact" msgid="5205669345700598415">"<xliff:g id="NAME">%1$s</xliff:g> kontaktini ko‘rish"</string>
- <string name="description_call" msgid="3443678121983852666">"<xliff:g id="NAME">%1$s</xliff:g>ga qo‘ng‘iroq qilish"</string>
+ <string name="description_call" msgid="3443678121983852666">"Qo‘ng‘iroq: <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g> uchun kontakt ma’lumotlari"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Yangi ovozli xabar."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> ta qo‘ng‘iroq."</string>
<string name="description_video_call" msgid="2933838090743214204">"Video qo‘ng‘iroq."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"<xliff:g id="NAME">%1$s</xliff:g>ga SMS yuborish"</string>
<string name="description_call_log_unheard_voicemail" msgid="118101684236996786">"Ochilmagan ovozli xabar"</string>
<string name="description_start_voice_search" msgid="520539488194946012">"Ovozli qidiruvni boshlash"</string>
- <string name="menu_callNumber" msgid="997146291983360266">"<xliff:g id="NUMBER">%s</xliff:g>ga qo‘ng‘iroq qilish"</string>
+ <string name="menu_callNumber" msgid="997146291983360266">"Qo‘ng‘iroq: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="unknown" msgid="740067747858270469">"Noma’lum"</string>
<string name="voicemail" msgid="3851469869202611441">"Ovozli xabar"</string>
<string name="private_num" msgid="6374339738119166953">"Shaxsiy raqam"</string>
<string name="payphone" msgid="7726415831153618726">"Taksofon"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> soniya"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> daq <xliff:g id="SECONDS">%s</xliff:g> son"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Bu raqamga qo‘ng‘iroq qilib bo‘lmaydi"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Ovozli xabarni sozlash uchun \"Menyu\" &gt; \"Sozlamalar\"ga o‘ting."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Ovozli xabar jo‘natish uchun, avval \"Parvoz rejimi\"ni o‘chiring."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Ovozli qidiruv mavjud emas"</string>
<string name="call_not_available" msgid="8941576511946492225">"Telefon ilovasi o‘chirib qo‘yilgani sababli telefon qo‘ng‘iroqlarini amalga oshirib bo‘lmaydi."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Qurilmada buni bajaradigan ilova yo‘q"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Ism yoki tel raqamini kiriting"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Qo‘ng‘iroqlar yo‘q"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Ovozli xabarlar yo‘q"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Kontakt qidirish"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Raqam qo‘shish yoki kontaktlardan qidirish"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Qo‘ng‘iroqlar tarixi bo‘m-bo‘sh"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Qo‘ng‘iroq qilish"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Sizda hech qanday javobsiz qo‘ng‘iroq yo‘q."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ovozli pochta qutisi bo‘m-bo‘sh."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Faqat saralar ko‘rsatilsin"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Tarix"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Qo‘ng‘iroqlar tarixi"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Barchasi"</string>
- <string name="call_log_missed_title" msgid="4541142293870638971">"Javobsiz qo‘n-q"</string>
+ <string name="call_log_missed_title" msgid="4541142293870638971">"Javobsiz"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Ovozli xabar"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami bloklanilsinmi?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Bu raqamdan kelgan qo‘ng‘iroqlar bloklanadi va ovozli xabari avtomatik o‘chiriladi."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Bu raqamdan kelgan qo‘ng‘iroqlar bloklanadi, lekin raqam egasi sizga ovozli xabar qoldira oladi."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"BLOKLASH"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami blokdan chiqarilsinmi?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Ushbu raqamdan endi sizga qo‘ng‘iroq qilinganda bloklanmaydi."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"BLOKDAN CHIQARISH"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Tezkor terish"</string>
- <string name="tab_recents" msgid="929949073851377206">"So‘nggi"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Qo‘ng‘iroqlar tarixi"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Kontaktlar"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Ovozli pochta"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Tanlanganlardan o‘chirilgan"</string>
- <string name="favorite_hidden_undo" msgid="2508998611039406474">"Qaytarish"</string>
- <string name="search_shortcut_call_number" msgid="7277194656832895870">"<xliff:g id="NUMBER">%s</xliff:g>ga qo‘ng‘iroq qilish"</string>
+ <string name="favorite_hidden_undo" msgid="2508998611039406474">"Bekor qilish"</string>
+ <string name="search_shortcut_call_number" msgid="7277194656832895870">"Qo‘ng‘iroq: <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Yangi kontakt yaratish"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Mavjud kontaktga qo‘shish"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Kontaktlarga qo‘shish"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"SMS yuborish"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Videoqo‘ng‘iroq qilish"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"To‘liq qo‘ng‘iroqlar tarixini ko‘rish"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Raqamni bloklash"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> ta javobsiz qo‘ng‘iroq"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Tezkor terish bu – sevimli kontaktlaringiz va ko‘p foydalaniladigan raqamlarga bir marta bosish orqali qo‘ng‘iroq qilish vositasidir"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Kontaktlar yo‘q"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Tezkor raqam tergich ro‘yxatida hech kim yo‘q"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Sevimli kontakt qo‘shing"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Sizda hali hech qanday kontakt yo‘q"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Yangi kontakt qo‘shing"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Barcha raqamlarni ko‘rish uchun rasm ustiga bosing. Joyini o‘zgartirish uchun uni bosib turing."</string>
<string name="remove_contact" msgid="1080555335283662961">"O‘chirish"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"BARCHA KONTAKTLAR"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Video qo‘ng‘iroq"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"TINGLASH"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Tafsilotlarni ko‘rish"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"SMS yuborish"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Qo‘ng‘iroq tafsilotlari"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Qo‘ng‘iroq qilish: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Qo‘ng‘iroq javobsiz qoldirildi: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Qo‘ng‘iroqqa javob berildi: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"O‘qilmagan ovozli xabar (<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>)."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Ovozli xabar (<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>)."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Qo‘ng‘iroq qilindi: <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> orqali"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Qo‘ng‘iroq qilish"</string>
<string name="description_call_action" msgid="4000549004089776147">"Qo‘ng‘iroq qilish: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Videoqo‘ng‘iroq: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Video qo‘ng‘iroq qilish: <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> kontaktidan kelgan ovozli xabarni tinglash"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> tomonidan yuborilgan ovozli xabarni eshitish"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> tomonidan yuborilgan ovozli xabarni pauza qilish"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> tomonidan yuborilgan ovozli xabarni o‘chirish"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ta yangi ovozli xabar</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ta yangi ovozli xabar</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Yangi kontakt yaratish: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Mavjud kontaktlarga qo‘shish: <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_details_action" msgid="2433827152749491785">"<xliff:g id="NAMEORNUMBER">^1</xliff:g> – qo‘ng‘iroq tafsilotlari"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Qo‘ng‘iroqlar tarixidan o‘chirib tashlandi"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Hisobot"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Bugun"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Kecha"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Eskiroq"</string>
@@ -174,11 +205,11 @@
<string name="voicemail_play_slower" msgid="4544796503902818832">"Sekinroq ijro etish."</string>
<string name="voicemail_play_start_pause" msgid="3687447935787768983">"Ijroni boshlash yoki to‘xtatish"</string>
<string name="list_delimeter" msgid="4571593167738725100">", "</string>
- <string name="display_options_title" msgid="7812852361055667468">"Ko‘rsatish sozlamalari"</string>
- <string name="sounds_and_vibration_title" msgid="1692290115642160845">"Ovozlar va tebranish"</string>
+ <string name="display_options_title" msgid="7812852361055667468">"Ko‘rsatish parametrlari"</string>
+ <string name="sounds_and_vibration_title" msgid="1692290115642160845">"Ovoz va tebranish"</string>
<string name="accessibility_settings_title" msgid="6068141142874046249">"Maxsus imkoniyatlar"</string>
- <string name="ringtone_title" msgid="760362035635084653">"Telefon uchun rington"</string>
- <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Qo‘ng‘iroq vaqtida tebranish"</string>
+ <string name="ringtone_title" msgid="760362035635084653">"Telefon ringtoni"</string>
+ <string name="vibrate_on_ring_title" msgid="3362916460327555241">"Chaqiruv vaqtida tebranish"</string>
<string name="dtmf_tone_enable_title" msgid="6571449695997521615">"Tugmalar tovushi"</string>
<string name="dtmf_tone_length_title" msgid="8581125689808919460">"Klaviatura ohangi uzunligi"</string>
<string-array name="dtmf_tone_length_entries">
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Tezkor javoblar"</string>
<string name="call_settings_label" msgid="313434211353070209">"Qo‘ng‘iroqlar"</string>
- <string name="phone_account_settings_label" msgid="5864322009841175294">"Qo‘ng‘iroq uchun hisoblar"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Qo‘ng‘iroqlarni bloklash"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Qo‘ng‘iroqlarni bloklash o‘chirilgan"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Raqamlarni import qilish"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Ba’zi kiruvchi kontaktlaringiz boshqa ilovalar orqali avtomatik ovozli xabar yo‘llaydigan qilib belgilagansiz."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Sonini ko‘rish"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Import qilish"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Import qilib bo‘lmadi"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Raqamni blokdan chiqarish"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Raqam qo‘shish"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Bu raqamlardan kelgan qo‘ng‘iroqlar bloklanadi va ovozli xabarlari avtomatik o‘chiriladi."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Bu raqamlardan kelgan qo‘ng‘iroqlar bloklanadi, lekin raqam egalari sizga ovozli xabar qoldira olishadi."</string>
+ <string name="block_list" msgid="7760188925338078011">"Bloklangan raqamlar"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"Noto‘g‘ri raqam: <xliff:g id="NUMBER">%1$s</xliff:g>."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami allaqachon bloklangan."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Qo‘ng‘iroqlarni bloklash 48 soat muddatga o‘chirildi"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Favqulodda qo‘ng‘iroq amalga oshirilgani uchun o‘chirildi."</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"Qo‘ng‘iroq hisoblari"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Yoqish"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Ruxsatnomalarni sozlash"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Tezkor raqam terish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Qo‘ng‘iroqlaringiz ro‘yxatini ko‘rish uchun “Telefon” ruxsatnomasini yoqing."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Kontaktlaringizni ko‘rish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Ovozli pochtaga kirish uchun “Telefon” ruxsatnomasini yoqing."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Kontaktlarni qidirish uchun “Kontaktlar” ruxsatnomasini yoqing."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Qo‘ng‘iroq qilish uchun “Telefon” ruxsatnomasini yoqing."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Telefon ilovasida tizim sozlamalarini o‘zgartirish uchun ruxsat yo‘q."</string>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index fabc27cc1..0f6508e5d 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Trình quay số"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Điện thoại"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Điện thoại"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Bàn phím số điện thoại"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Điện thoại"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Nhật ký cuộc gọi"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Gọi <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Chỉnh sửa số trước khi gọi"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Thêm vào danh bạ"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Xóa khỏi nhật ký cuộc gọi"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Xóa nhật ký cuộc gọi"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Xóa thư thoại"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Hiển thị thư thoại"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Không có cuộc gọi nào"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Nhật ký cuộc gọi"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Báo cáo số không chính xác"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Sao chép số"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Sao chép bản ghi âm"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Chặn số"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"Đã chặn <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Bỏ chặn số"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"Đã bỏ chặn <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"HOÀN TÁC"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Xóa"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Chỉnh sửa số trước khi gọi"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Xóa nhật ký cuộc gọi"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Xóa thư thoại"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Đã xóa thư thoại"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"HOÀN TÁC"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Xóa nhật ký cuộc gọi?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Thao tác này sẽ xóa tất cả cuộc gọi khỏi nhật ký của bạn"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Đang xóa nhật ký cuộc gọi…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"Thư thoại mới từ <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Không thể phát thư thoại"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Đang lưu tạm vào bộ đệm…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Đang tải thư thoại…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Không thể tải thư thoại"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Chỉ cuộc gọi có thư thoại"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Chỉ cuộc gọi đến"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Chỉ cuộc gọi đi"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Chỉ cuộc gọi nhỡ"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Thư thoại kèm theo hình ảnh"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Xem và nghe thư thoại của bạn mà không phải thực hiện cuộc gọi. Bạn có thể mất phí dữ liệu."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Cài đặt"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Không có cập nhật thư thoại"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Đang chờ thư thoại mới. Không thể tải ngay bây giờ."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Thiết lập thư thoại của bạn"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Không có âm thanh"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Thiết lập"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Gọi thư thoại"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"Tốc độ chậm nhất"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"Tốc độ chậm"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"Tốc độ bình thường"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"Tốc độ nhanh"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Tốc độ nhanh nhất"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Chọn số"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Chọn số"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Nhật ký cuộc gọi"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Tùy chọn khác"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"bàn phím số"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Sao chép"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Chỉ hiển thị cuộc gọi đi"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Chỉ hiển thị cuộc gọi đến"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Chỉ hiển thị cuộc gọi nhỡ"</string>
@@ -86,7 +89,7 @@
<string name="menu_allContacts" msgid="6948308384034051670">"Tất cả liên hệ"</string>
<string name="callDetailTitle" msgid="5340227785196217938">"Chi tiết cuộc gọi"</string>
<string name="toast_call_detail_error" msgid="6947041258280380832">"Không có chi tiết"</string>
- <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Sử dụng bộ tạo xung từ bàn phím"</string>
+ <string name="dialer_useDtmfDialpad" msgid="1707548397435075040">"Sử dụng bàn phím số cảm ứng có âm"</string>
<string name="dialer_returnToInCallScreen" msgid="3719386377550913067">"Quay lại cuộc gọi đang thực hiện"</string>
<string name="dialer_addAnotherCall" msgid="4205688819890074468">"Thêm cuộc gọi"</string>
<string name="type_incoming" msgid="6502076603836088532">"Cuộc gọi đến"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Cuộc gọi điện video đi"</string>
<string name="type_missed_video" msgid="954396897034220545">"Cuộc gọi điện video bị nhỡ"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Thư thoại"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Cuộc gọi bị từ chối"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Cuộc gọi bị chặn"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Cuộc gọi đến"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Phát thư thoại"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Xem thông tin liên hệ của <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Gọi <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Chi tiết liên lạc cho <xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Thư thoại mới."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> cuộc gọi."</string>
<string name="description_video_call" msgid="2933838090743214204">"Gọi điện video."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Gửi SMS cho <xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Thư thoại"</string>
<string name="private_num" msgid="6374339738119166953">"Số cá nhân"</string>
<string name="payphone" msgid="7726415831153618726">"Điện thoại công cộng"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> giây"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> phút <xliff:g id="SECONDS">%s</xliff:g> giây"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> lúc <xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Không thể gọi số này"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Để thiết lập thư thoại, đi tới Menu &gt; Cài đặt."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Để gọi thư thoại, trước tiên hãy tắt chế độ trên Máy bay."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Không có tính năng tìm kiếm bằng giọng nói"</string>
<string name="call_not_available" msgid="8941576511946492225">"Không thể thực hiện cuộc gọi điện thoại vì ứng dụng Điện thoại đã bị tắt."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Không có ứng dụng nào cho thao tác đó trên thiết bị này"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Nhập tên hoặc số điện thoại"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Không có cuộc gọi nào"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Không có thư thoại nào gần đây"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Tìm kiếm liên hệ"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Thêm số hoặc tìm kiếm danh bạ"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Nhật ký cuộc gọi của bạn trống"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Gọi điện"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Bạn không có cuộc gọi nhỡ nào."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Hộp thư thoại đến của bạn trống."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Chỉ hiển thị liên hệ ưa thích"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Lịch sử"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Nhật ký cuộc gọi"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Tất cả"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Bị nhỡ"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Thư thoại"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Chặn <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Các cuộc gọi từ số này sẽ bị chặn và thư thoại sẽ tự động bị xóa."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Các cuộc gọi từ số này sẽ bị chặn nhưng người gọi vẫn có thể để lại thư thoại cho bạn."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"CHẶN"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Bỏ chặn <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Số này sẽ không còn bị chặn gọi cho bạn nữa."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"BỎ CHẶN"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Quay số nhanh"</string>
- <string name="tab_recents" msgid="929949073851377206">"Gần đây"</string>
- <string name="tab_all_contacts" msgid="1410922767166533690">"Địa chỉ liên hệ"</string>
- <string name="favorite_hidden" msgid="5011234945140912047">"Đã xóa khỏi mục yêu thích"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Nhật ký cuộc gọi"</string>
+ <string name="tab_all_contacts" msgid="1410922767166533690">"Danh bạ"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Thư thoại"</string>
+ <string name="favorite_hidden" msgid="5011234945140912047">"Đã xóa khỏi liên hệ yêu thích"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Hoàn tác"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Gọi <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Tạo liên hệ mới"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Thêm vào liên hệ hiện có"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Thêm vào liên hệ"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Gửi SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Gọi điện video"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Xem lịch sử cuộc gọi đầy đủ"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Chặn số"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> cuộc gọi nhỡ mới"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Quay số nhanh là quay số bằng một lần chạm đối với các liên hệ yêu thích và các số bạn thường xuyên gọi"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Không có liên hệ nào"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Chưa có ai trong danh bạ quay số nhanh của bạn"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Thêm liên hệ quay số nhanh yêu thích"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Bạn chưa có bất kỳ liên hệ nào"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Thêm liên hệ"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Chạm vào hình ảnh để xem tất cả các số hoặc chạm và giữ để sắp xếp lại"</string>
<string name="remove_contact" msgid="1080555335283662961">"Xóa"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"TẤT CẢ NGƯỜI LIÊN HỆ"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Cuộc gọi điện video"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"NGHE"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Xem chi tiết"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Gửi tin nhắn"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Chi tiết cuộc gọi"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Gọi <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Cuộc gọi nhỡ từ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Cuộc gọi đã trả lời từ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Thư thoại chưa đọc từ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Thư thoại từ <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Gọi tới <xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"trên <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Gọi"</string>
<string name="description_call_action" msgid="4000549004089776147">"Gọi <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Cuộc gọi điện video tới <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Gọi điện video cho <xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Nghe thư thoại từ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Phát thư thoại từ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Tạm dừng thư thoại từ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Xóa thư thoại từ <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> thư thoại mới</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> thư thoại mới</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Tạo địa chỉ liên hệ cho <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Thêm <xliff:g id="NAMEORNUMBER">^1</xliff:g> vào địa chỉ liên hệ hiện có"</string>
<string name="description_details_action" msgid="2433827152749491785">"Chi tiết cuộc gọi cho <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Đã xóa khỏi nhật ký cuộc gọi"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Báo cáo"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Hôm nay"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Hôm qua"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Cũ hơn"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Trả lời nhanh"</string>
<string name="call_settings_label" msgid="313434211353070209">"Cuộc gọi"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Chặn cuộc gọi"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Tạm thời tắt chặn cuộc gọi"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Nhập số"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Trước đây bạn đã đánh dấu một số người gọi sẽ được tự động gửi tới thư thoại qua các ứng dụng khác."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Xem số"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Nhập"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Nhập không thành công"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Bỏ chặn số"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Thêm số"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Cuộc gọi từ các số này sẽ bị chặn và thư thoại sẽ tự động bị xóa."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Cuộc gọi từ các số này sẽ bị chặn nhưng họ vẫn có thể để lại thư thoại cho bạn."</string>
+ <string name="block_list" msgid="7760188925338078011">"Số bị chặn"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> không hợp lệ."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> đã bị chặn."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Đã tắt tính năng chặn cuộc gọi trong 48 giờ"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Bị tắt vì bạn đã thực hiện cuộc gọi khẩn cấp."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Tài khoản gọi"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Bật"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Đặt quyền"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Để bật quay số nhanh, bật quyền đối với Danh bạ."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Để xem nhật ký cuộc gọi của bạn, bật quyền đối với Điện thoại."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Để xem danh bạ của bạn, bật quyền đối với Danh bạ."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Để truy cập thư thoại của bạn, bật quyền đối với Điện thoại."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Để tìm kiếm liên hệ của bạn, hãy bật quyền đối với Danh bạ."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Để thực hiện cuộc gọi, bật quyền đối với Điện thoại."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Ứng dụng Điện thoại không có quyền ghi vào cài đặt hệ thống."</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 850908ddb..6d860d8a2 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"拨号"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"电话"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"电话"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"电话拨号键盘"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"拨号"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"通话记录"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"呼叫<xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"呼叫之前编辑号码"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"添加到通讯录"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"从通话记录中删除"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"清除通话记录"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"删除语音邮件"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"分享语音邮件"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"没有任何通话"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"通话记录"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"报告错误的号码"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"复制号码"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"复制转录内容"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"屏蔽号码"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"已屏蔽 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"取消屏蔽号码"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"已取消屏蔽 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"撤消"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"删除"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"拨打之前修改号码"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"清除通话记录"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"删除语音邮件"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"语音邮件已删除"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"撤消"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"要清除通话记录吗?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"这会删除您的所有通话记录"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"正在清除通话记录…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>,<xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"来自<xliff:g id="CALLER">%1$s</xliff:g>的新语音邮件"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"无法播放语音邮件"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"正在缓冲…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"正在加载语音邮件…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"无法加载语音邮件"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"只显示语音信箱留言"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"只显示来电"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"只显示外拨电话"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"只显示未接来电"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"可视语音信箱"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"无需拨号就可以查看和收听您的语音邮件。不过,可能会产生额外的数据流量费。"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"设置"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"无法更新语音信箱"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"您有新的语音邮件,但目前无法加载。"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"设置您的语音信箱"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"无法播放音频"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"设置"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"呼叫语音信箱"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"最慢"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"慢速"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"正常速度"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"快速"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"最快"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"选择号码"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"选择号码"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"通话记录"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"更多选项"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"拨号键盘"</string>
- <string name="menu_copy" msgid="6108677035381940698">"复制"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"仅显示外拨电话"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"只显示来电"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"只显示未接来电"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"拨出的视频通话"</string>
<string name="type_missed_video" msgid="954396897034220545">"错过的视频通话"</string>
<string name="type_voicemail" msgid="5153139450668549908">"语音信箱"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"拒接的来电"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"屏蔽的来电"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"来电"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"播放语音邮件"</string>
<string name="description_view_contact" msgid="5205669345700598415">"查看联系人<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"呼叫<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>的详细联系信息"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"有新的语音邮件。"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g>次通话。"</string>
<string name="description_video_call" msgid="2933838090743214204">"视频通话。"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"向<xliff:g id="NAME">%1$s</xliff:g>发送短信"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"语音信箱"</string>
<string name="private_num" msgid="6374339738119166953">"私密号码"</string>
<string name="payphone" msgid="7726415831153618726">"公用电话"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> 分钟 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"无法拨打此号码"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"要设置语音信箱,请转到“菜单”&gt;“设置”。"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"要呼叫语音信箱,请先关闭飞行模式。"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"无法使用语音搜索"</string>
<string name="call_not_available" msgid="8941576511946492225">"“电话”应用已被停用,因此无法拨打电话。"</string>
<string name="activity_not_available" msgid="2287665636817987623">"此设备上没有可执行此操作的应用"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"输入姓名或电话号码"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"没有未接电话"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"最近没有语音邮件"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"搜索联系人"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"添加号码或搜索联系人"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"您没有任何通话记录"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"拨打电话"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"您没有任何未接电话。"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"您未收到任何语音邮件。"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"仅显示收藏的联系人"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"通话记录"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"通话记录"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"未接电话"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"语音邮件"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"要屏蔽 <xliff:g id="NUMBER">%1$s</xliff:g> 吗?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"系统将屏蔽该号码的来电,并将自动删除来电者发送的语音邮件。"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"系统将屏蔽该号码的来电,但来电者可能仍然能够给您发送语音邮件。"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"屏蔽"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"要取消屏蔽 <xliff:g id="NUMBER">%1$s</xliff:g> 吗?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"系统将不再屏蔽此号码的来电。"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"取消屏蔽"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"快速拨号"</string>
- <string name="tab_recents" msgid="929949073851377206">"最近"</string>
+ <string name="tab_history" msgid="2563144697322434940">"通话记录"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"联系人"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"语音邮件"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"已从收藏中移除"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"撤消"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"拨打<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"新建联系人"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"添加到现有联系人"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"添加到联系人"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"发送短信"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"发起视频通话"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"查看全部通话记录"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"屏蔽号码"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g>个新的未接电话"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"使用快速拨号功能,只需轻轻一点即可拨打收藏联系人的电话号码以及经常拨打的电话号码。"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"没有联系人"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"您的快速拨号功能尚未收藏任何联系人"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"添加常用联系人"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"您还没有任何联系人"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"添加联系人"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"触摸图片可查看所有号码,触摸并按住可重新排序"</string>
<string name="remove_contact" msgid="1080555335283662961">"移除"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"所有联系人"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"视频通话"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"听取"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"查看详情"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"发送短信"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"通话详情"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"与<xliff:g id="NAMEORNUMBER">^1</xliff:g>通话"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"<xliff:g id="PHONEACCOUNT">^4</xliff:g> 上 <xliff:g id="TIMEOFCALL">^3</xliff:g>来自<xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="TYPEORLOCATION">^2</xliff:g>)的未接电话。"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"<xliff:g id="PHONEACCOUNT">^4</xliff:g> 上 <xliff:g id="TIMEOFCALL">^3</xliff:g>来自<xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="TYPEORLOCATION">^2</xliff:g>)的已接电话。"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"<xliff:g id="PHONEACCOUNT">^4</xliff:g> 上 <xliff:g id="TIMEOFCALL">^3</xliff:g>来自<xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="TYPEORLOCATION">^2</xliff:g>)的未读语音邮件。"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"<xliff:g id="PHONEACCOUNT">^4</xliff:g> 上 <xliff:g id="TIMEOFCALL">^3</xliff:g>来自<xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="TYPEORLOCATION">^2</xliff:g>)的语音邮件。"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"<xliff:g id="TIMEOFCALL">^3</xliff:g>通过 <xliff:g id="PHONEACCOUNT">^4</xliff:g> 拨打给<xliff:g id="NAMEORNUMBER">^1</xliff:g>(<xliff:g id="TYPEORLOCATION">^2</xliff:g>)的电话。"</string>
<string name="description_phone_account" msgid="1767072759541443861">"通过 <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"拨打电话"</string>
<string name="description_call_action" msgid="4000549004089776147">"呼叫<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"向<xliff:g id="NAMEORNUMBER">^1</xliff:g>发起的视频通话。"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"与<xliff:g id="NAMEORNUMBER">^1</xliff:g>进行视频通话。"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"听取来自<xliff:g id="NAMEORNUMBER">^1</xliff:g>的语音邮件"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"播放来自<xliff:g id="NAMEORNUMBER">^1</xliff:g>的语音邮件"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"暂停来自<xliff:g id="NAMEORNUMBER">^1</xliff:g>的语音邮件"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"删除来自<xliff:g id="NAMEORNUMBER">^1</xliff:g>的语音邮件"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 封新的语音邮件</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 封新的语音邮件</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"为<xliff:g id="NAMEORNUMBER">^1</xliff:g>创建联系人信息"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"将<xliff:g id="NAMEORNUMBER">^1</xliff:g>添加到现有联系人"</string>
<string name="description_details_action" msgid="2433827152749491785">"与<xliff:g id="NAMEORNUMBER">^1</xliff:g>的通话详情"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"已从通话记录中删除"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"报告"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"今天"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"昨天"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"更早"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"快速回复"</string>
<string name="call_settings_label" msgid="313434211353070209">"通话"</string>
- <string name="phone_account_settings_label" msgid="5864322009841175294">"通话帐户"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"来电屏蔽"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"来电拦截功能已暂时关闭"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"来电拦截功能已停用,因为您在过去 48 小时内使用该手机拨打了紧急服务电话。系统会在 48 小时的期限结束后自动重新启用该功能。"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"导入号码"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"您曾通过其他应用将某些来电者设为自动转到语音信箱。"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看号码"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"导入"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"导入失败"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"取消屏蔽号码"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"添加号码"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"系统将屏蔽这些号码的来电,并将自动删除这些来电者发送的语音邮件。"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"系统将屏蔽这些号码的来电,但这些来电者可能仍然能够给您发送语音邮件。"</string>
+ <string name="block_list" msgid="7760188925338078011">"已屏蔽的号码"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> 无效。"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> 已被屏蔽。"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"来电拦截功能将停用 48 小时"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"此功能已停用,因为您拨打了紧急呼救电话。"</string>
+ <string name="phone_account_settings_label" msgid="5864322009841175294">"通话帐号"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"开启"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"设置权限"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"要启用快速拨号功能,请开启“通讯录”权限。"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"要查看您的通话记录,请开启“电话”权限。"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"要查看您的联系人,请开启“通讯录”权限。"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"要使用您的语音信箱,请开启“电话”权限。"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"要搜索您的联系人,请开启“通讯录”权限。"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"要拨打电话,请开启“电话”权限。"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"电话应用不具备写入系统设置的权限。"</string>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index f99d23b77..4b82aef97 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"撥號器"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"電話"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"電話"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"手機撥號盤"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"電話"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"通話記錄"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"打電話給<xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"在撥打前編輯號碼"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"新增至通訊錄"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"從通話記錄中刪除"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"清除通話記錄"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"刪除留言"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"分享留言信箱"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"沒有通話記錄"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"通話記錄"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"報告錯誤號碼"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"複製號碼"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"複製內容轉錄"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"封鎖號碼"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"解除封鎖號碼"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"已解除封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"復原"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"刪除"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"在撥號前編輯號碼"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"清除通話記錄"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"刪除留言"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"已刪除留言信箱"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"復原"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"要清除通話記錄嗎?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"這會刪除所有通話記錄"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"正在清除通話記錄…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g> , <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"來自<xliff:g id="CALLER">%1$s</xliff:g>的新語音留言"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"無法播放留言"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"正在緩衝..."</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"正在載入留言…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"無法載入留言"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"只顯示有留言的來電"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"只顯示來電"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"只顯示撥出電話"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"只顯示未接來電"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"視像留言信箱"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"檢視及聆聽您的語音留言,而無需撥號。可能需要支付數據用量費用。"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"設定"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"無法更新留言"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"有新留言,但目前無法載入。"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"設定您的留言信箱"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"無法使用音效"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"設定"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"致電語音信箱號碼"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"最慢速"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"慢速"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"正常速度"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"快速"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"最快速"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"( <xliff:g id="COUNT">%1$d</xliff:g> ) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"選擇號碼"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"選擇號碼"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"通話記錄"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"更多選項"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"撥號鍵盤"</string>
- <string name="menu_copy" msgid="6108677035381940698">"複製"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"只顯示撥出電話"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"只顯示來電"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"只顯示未接來電"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"撥出的視像通話"</string>
<string name="type_missed_video" msgid="954396897034220545">"未接視像通話"</string>
<string name="type_voicemail" msgid="5153139450668549908">"留言信箱"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"拒絕來電"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"封鎖來電"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"來電"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"播放語音留言"</string>
<string name="description_view_contact" msgid="5205669345700598415">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"致電<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的聯絡人詳細資料"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"新留言。"</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> 次通話次數。"</string>
<string name="description_video_call" msgid="2933838090743214204">"視像通話。"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"向 <xliff:g id="NAME">%1$s</xliff:g> 傳送短訊"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"留言"</string>
<string name="private_num" msgid="6374339738119166953">"私人號碼"</string>
<string name="payphone" msgid="7726415831153618726">"公共電話"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"無法撥打這個電話號碼"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"如要設定留言信箱,請移至 [選單] &gt; [設定]。"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"如要致電留言信箱,請先關閉飛行模式。"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"無法使用語音搜尋"</string>
<string name="call_not_available" msgid="8941576511946492225">"由於「電話」應用程式已停用,因此無法打電話。"</string>
<string name="activity_not_available" msgid="2287665636817987623">"這部裝置上沒有可用的應用程式"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"請輸入姓名或電話號碼"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"沒有通話記錄"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"最近沒有留言"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"搜尋聯絡人"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"新增號碼或搜尋聯絡人"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"您沒有通話記錄"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"撥號"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"您沒有未接來電。"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"您的留言信箱沒有留言。"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的最愛"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"記錄"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"通話記錄"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"留言信箱"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"要封鎖 <xliff:g id="NUMBER">%1$s</xliff:g> 嗎?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"將會封鎖這個號碼的來電,而留言將會自動刪除。"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"將會封鎖這個號碼的來電,但來電可能會轉駁至留言信箱。"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"封鎖"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"要解除封鎖 <xliff:g id="NUMBER">%1$s</xliff:g> 嗎?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"此號碼的來電封鎖將會解除。"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"解除封鎖"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"快速撥號"</string>
- <string name="tab_recents" msgid="929949073851377206">"最近存取的聯絡人"</string>
+ <string name="tab_history" msgid="2563144697322434940">"通話記錄"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"聯絡人"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"留言信箱"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"已從「我的最愛」中移除"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"復原"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"建立新聯絡人"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"加到現有的聯絡人"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"加入到聯絡人"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"傳送短訊"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"進行視像通話"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"查看完整通話記錄"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"封鎖號碼"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> 個新的未接來電"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"使用快速撥號,只需點一下螢幕就能撥出常用電話號碼並致電最愛的親友"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"沒有聯絡人"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"沒有快速撥號聯絡人"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"新增快速撥號聯絡人"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"您沒有聯絡人"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"新增聯絡人"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"輕觸圖像以查看所有電話號碼,或輕觸並按住圖像以重新排序"</string>
<string name="remove_contact" msgid="1080555335283662961">"移除"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"所有聯絡人"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"視像通話"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"收聽"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"查看詳情"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"傳送訊息"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"通話詳細資料"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"致電 <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"未接聽來電:<xliff:g id="NAMEORNUMBER">^1</xliff:g> (<xliff:g id="TIMEOFCALL">^3</xliff:g>,<xliff:g id="TYPEORLOCATION">^2</xliff:g><xliff:g id="PHONEACCOUNT">^4</xliff:g>)。"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"已接聽來電:<xliff:g id="NAMEORNUMBER">^1</xliff:g> (<xliff:g id="TIMEOFCALL">^3</xliff:g>,<xliff:g id="TYPEORLOCATION">^2</xliff:g><xliff:g id="PHONEACCOUNT">^4</xliff:g>)。"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"未收聽的留言來自 <xliff:g id="NAMEORNUMBER">^1</xliff:g> (<xliff:g id="TYPEORLOCATION">^2</xliff:g>),來電時間:<xliff:g id="TIMEOFCALL">^3</xliff:g>,撥打至 <xliff:g id="PHONEACCOUNT">^4</xliff:g>。"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"留言來自 <xliff:g id="NAMEORNUMBER">^1</xliff:g> (<xliff:g id="TYPEORLOCATION">^2</xliff:g>),來電時間:<xliff:g id="TIMEOFCALL">^3</xliff:g>,撥打至 <xliff:g id="PHONEACCOUNT">^4</xliff:g>。"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"致電:<xliff:g id="NAMEORNUMBER">^1</xliff:g> (<xliff:g id="TIMEOFCALL">^3</xliff:g>,<xliff:g id="TYPEORLOCATION">^2</xliff:g><xliff:g id="PHONEACCOUNT">^4</xliff:g>)。"</string>
<string name="description_phone_account" msgid="1767072759541443861">"使用 <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"撥號"</string>
<string name="description_call_action" msgid="4000549004089776147">"致電 <xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"視像通話,通話對象:<xliff:g id="NAMEORNUMBER">^1</xliff:g>。"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"與<xliff:g id="NAMEORNUMBER">^1</xliff:g>進行視像通話。"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"收聽來自「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」的留言信箱"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"播放來自 <xliff:g id="NAMEORNUMBER">^1</xliff:g> 的語音留言"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"暫停來自 <xliff:g id="NAMEORNUMBER">^1</xliff:g> 的語音留言"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"刪除來自 <xliff:g id="NAMEORNUMBER">^1</xliff:g> 的語音留言"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>個新留言</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g>個新留言</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"為<xliff:g id="NAMEORNUMBER">^1</xliff:g>建立聯絡人"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"加入<xliff:g id="NAMEORNUMBER">^1</xliff:g>至現有的聯絡人"</string>
<string name="description_details_action" msgid="2433827152749491785">"與「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」通話的詳細資料"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"已從通話記錄中刪除"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"報告"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"今天"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"昨天"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"較早"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"快速回應"</string>
<string name="call_settings_label" msgid="313434211353070209">"通話"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"來電封鎖"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"暫時關閉來電封鎖功能"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"您在過去 48 小時內曾經使用此手機聯絡緊急服務,因此來電封鎖功能已停用。系統會在 48 小時期限結束後自動重新啟用功能。"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"匯入號碼"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"您早前透過其他應用程式標記部分來電者,將他們的來電自動轉駁至留言信箱。"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看電話號碼"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"匯入"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"匯入失敗"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"解除封鎖號碼"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"新增電話號碼"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"將會封鎖這些號碼的來電,而留言將會自動刪除。"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"將會封鎖這些號碼的來電,但來電可能會轉駁至留言信箱。"</string>
+ <string name="block_list" msgid="7760188925338078011">"已封鎖的號碼"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> 無效。"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>。"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"已停用來電封鎖 (48 小時)"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"已撥打緊急電話,已停用來電封鎖功能。"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"通話帳戶"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"開放權限"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"設定權限"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"如要啟用快速撥號功能,請開放「通訊錄」權限。"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"如要查看通話記錄,請開放「手機」權限。"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"如要查看聯絡人,請開放「通訊錄」權限。"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"如要存取留言信箱,請開放「手機」權限。"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"如要搜尋聯絡人,請開啟「通訊錄」權限。"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"如要撥打電話,請開放「手機」權限。"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"手機應用程式沒有系統設定的寫入權限。"</string>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index c5b7cae4e..0c2289520 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"撥號"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"電話"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"電話"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"電話撥號鍵盤"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"電話"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"通話紀錄"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"撥電話給<xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"撥打電話前編輯號碼"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"新增至通訊錄"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"從通話紀錄中刪除"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"清除通話紀錄"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"刪除語音留言"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"分享語音信箱"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"沒有通話紀錄"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"通話紀錄"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"回報號碼錯誤"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"複製號碼"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"複製留言轉錄內容"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"封鎖號碼"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"已封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"解除封鎖號碼"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"已解除封鎖 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"復原"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"刪除"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"撥打前編輯號碼"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"清除通話紀錄"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"刪除語音留言"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"已刪除語音留言"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"復原"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"清除通話紀錄?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"這項操作會將所有通話從您的紀錄中刪除"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"正在清除通話紀錄…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>、<xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"最新語音留言者:<xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"無法播放語音留言"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"緩衝處理中…"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"正在載入語音留言…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"無法載入語音留言"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"僅顯示語音信箱留言"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"僅顯示來電"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"僅顯示已撥電話"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"僅顯示未接來電"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"具有畫面的語音信箱"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"不必撥號即可查看及聽取您的語音留言 (可能需要額外支付數據傳輸費用)。"</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"設定"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"沒有新的語音留言"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"您有新的語音留言,但目前無法載入。"</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"設定您的語音留言"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"無法存取音訊"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"設定"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"撥打語音信箱號碼"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"最慢速"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"慢速"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"正常速度"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"快速"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"最快速"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"選擇號碼"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"選擇號碼"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"通話紀錄"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"更多選項"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"撥號鍵盤"</string>
- <string name="menu_copy" msgid="6108677035381940698">"複製"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"僅顯示撥出電話"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"僅顯示來電"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"僅顯示未接來電"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"撥出的視訊通話"</string>
<string name="type_missed_video" msgid="954396897034220545">"未接視訊通話來電"</string>
<string name="type_voicemail" msgid="5153139450668549908">"語音信箱"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"拒接的來電"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"封鎖的來電"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"來電"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"播放語音留言"</string>
<string name="description_view_contact" msgid="5205669345700598415">"查看聯絡人<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"撥電話給<xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"「<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>」的聯絡詳細資料"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"新的語音留言。"</string>
<string name="description_num_calls" msgid="1601505153694540074">"通話 <xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> 次。"</string>
<string name="description_video_call" msgid="2933838090743214204">"視訊通話。"</string>
<string name="description_send_text_message" msgid="3118485319691414221">"傳送簡訊給<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"語音留言"</string>
<string name="private_num" msgid="6374339738119166953">"私人號碼"</string>
<string name="payphone" msgid="7726415831153618726">"公用電話"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> 分 <xliff:g id="SECONDS">%s</xliff:g> 秒"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"無法撥打這個號碼"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"如要設定語音信箱,請前往 [選單] &gt; [設定]。"</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"如要聽語音留言,請先關閉飛行模式。"</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"無法使用語音搜尋"</string>
<string name="call_not_available" msgid="8941576511946492225">"「電話」應用程式已遭停用,因此無法撥打電話。"</string>
<string name="activity_not_available" msgid="2287665636817987623">"這個裝置未安裝可執行該操作的應用程式"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"輸入姓名或電話號碼"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"沒有通話紀錄"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"最近沒有語音留言"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"搜尋聯絡人"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"新增號碼或搜尋聯絡人"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"沒有任何通話紀錄"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"撥打電話"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"您沒有任何未接來電。"</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"您沒有任何語音留言。"</string>
<string name="show_favorites_only" msgid="5520072531022614595">"只顯示我的收藏"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"通話紀錄"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"通話紀錄"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"全部"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"未接來電"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"語音留言"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"要封鎖 <xliff:g id="NUMBER">%1$s</xliff:g> 嗎?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"系統會封鎖這組號碼的來電,並自動刪除對方的語音留言。"</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"系統會封鎖這組號碼的來電,但對方仍可錄製語音留言給您。"</string>
+ <string name="block_number_ok" msgid="770551992296781873">"封鎖"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"要解除封鎖 <xliff:g id="NUMBER">%1$s</xliff:g> 嗎?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"系統將不再封鎖這組號碼的來電。"</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"解除封鎖"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"快速撥號"</string>
- <string name="tab_recents" msgid="929949073851377206">"近期通話"</string>
+ <string name="tab_history" msgid="2563144697322434940">"通話紀錄"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"聯絡人"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"語音信箱"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"已從最愛的聯絡人移除"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"復原"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"撥打 <xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"建立新聯絡人"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"新增到現有的聯絡人"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"新增至聯絡人"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"傳送簡訊"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"進行視訊通話"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"查看完整通話紀錄"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"封鎖號碼"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> 通新的未接來電"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"快速撥號功能可讓您輕觸一下即撥打電話給最愛聯絡人和經常通話的號碼"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"沒有聯絡人"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"您的快速撥號功能尚未設定任何聯絡人"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"新增常用聯絡人"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"您尚未加入任何聯絡人"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"新增聯絡人"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"輕觸圖片即可查看所有號碼,輕觸並按住則可重新排序"</string>
<string name="remove_contact" msgid="1080555335283662961">"移除"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"所有聯絡人"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"視訊通話"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"聽取"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"查看詳細資料"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"傳送簡訊"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"通話詳細資料"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"撥號給「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"未接來電:<xliff:g id="NAMEORNUMBER">^1</xliff:g>/<xliff:g id="TYPEORLOCATION">^2</xliff:g>/<xliff:g id="TIMEOFCALL">^3</xliff:g>/<xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"已接來電:<xliff:g id="NAMEORNUMBER">^1</xliff:g>/<xliff:g id="TYPEORLOCATION">^2</xliff:g>/<xliff:g id="TIMEOFCALL">^3</xliff:g>/<xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"您有一則未讀語音留言,來電者:<xliff:g id="NAMEORNUMBER">^1</xliff:g>,<xliff:g id="TYPEORLOCATION">^2</xliff:g>,<xliff:g id="TIMEOFCALL">^3</xliff:g>,<xliff:g id="PHONEACCOUNT">^4</xliff:g>。"</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"您有一則語音留言,來電者:<xliff:g id="NAMEORNUMBER">^1</xliff:g>,<xliff:g id="TYPEORLOCATION">^2</xliff:g>,<xliff:g id="TIMEOFCALL">^3</xliff:g>,<xliff:g id="PHONEACCOUNT">^4</xliff:g>。"</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"撥出通話:<xliff:g id="NAMEORNUMBER">^1</xliff:g>/<xliff:g id="TYPEORLOCATION">^2</xliff:g>/<xliff:g id="TIMEOFCALL">^3</xliff:g>/<xliff:g id="PHONEACCOUNT">^4</xliff:g>"</string>
<string name="description_phone_account" msgid="1767072759541443861">"透過 <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"撥號"</string>
<string name="description_call_action" msgid="4000549004089776147">"撥號給「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"視訊通話,通話對象:<xliff:g id="NAMEORNUMBER">^1</xliff:g>。"</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"與「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」視訊通話。"</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"聽取「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」的語音留言"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"播放來自「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」的語音留言"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"暫停來自「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」的語音留言"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"刪除來自「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」的語音留言"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> 則新的語音留言</item>
+ <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> 則新的語音留言</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"建立「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」的聯絡人資訊"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"將「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」新增到現有的聯絡人"</string>
<string name="description_details_action" msgid="2433827152749491785">"與「<xliff:g id="NAMEORNUMBER">^1</xliff:g>」通話的詳細資料"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"已從通話紀錄中刪除"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"回報"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"今天"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"昨天"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"較舊"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"快速回應"</string>
<string name="call_settings_label" msgid="313434211353070209">"通話"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"來電封鎖"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"來電封鎖功能已暫時關閉"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"由於您曾在過去 48 小時內使用這支手機撥打緊急服務電話,因此來電封鎖功能已停用。此功能停用達 48 小時後,將由系統自動重新啟用。"</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"匯入電話號碼"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"您之前曾將某些來電者標示為自動透過其他應用程式轉到語音信箱。"</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"查看號碼"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"匯入"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"匯入失敗"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"解除封鎖號碼"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"新增號碼"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"系統會封鎖這些號碼的來電,並自動刪除對方的語音留言。"</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"系統會封鎖這些號碼的來電,但對方仍可錄製語音留言給您。"</string>
+ <string name="block_list" msgid="7760188925338078011">"已封鎖的號碼"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> 無效。"</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> 已在封鎖清單中。"</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"來電封鎖功能會停用 48 小時"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"由於您曾撥打緊急電話,因此本功能已停用。"</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"通話帳戶"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"開啟"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"設定權限"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"如要啟用快速撥號,請開啟「聯絡人」存取權限。"</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"如要查看您的通話紀錄,請開啟「電話」存取權限。"</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"如要查看您的聯絡人,請開啟「聯絡人」存取權限。"</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"如要存取您的語音信箱,請開啟「電話」存取權限。"</string>
+ <string name="permission_no_search" msgid="84152933267902056">"如要搜尋您的聯絡人,請開啟「聯絡人」存取權限。"</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"如要撥打電話,請開啟「電話」存取權限。"</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"電話應用程式的權限不足,無法寫入系統設定。"</string>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index c2548867a..989f53366 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -17,18 +17,25 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="applicationLabel" msgid="8490255569343340580">"Ukudayela"</string>
+ <string name="applicationLabel" msgid="7762561155467201526">"Ifoni"</string>
<string name="launcherActivityLabel" msgid="1129729740601172692">"Ifoni"</string>
+ <string name="launcherDialpadActivityLabel" msgid="3959809805046059167">"Iphedi yokudayela yefoni"</string>
<string name="dialerIconLabel" msgid="6500826552823403796">"Ifoni"</string>
- <string name="recentCallsIconLabel" msgid="2639489159797075507">"Umlando wekholi"</string>
- <string name="recentCalls_callNumber" msgid="1756372533999226126">"Shayela <xliff:g id="NAME">%s</xliff:g>"</string>
- <string name="recentCalls_editNumberBeforeCall" msgid="7756171675833267857">"Hlela inombolo ngaphambi kokushaya ucingo"</string>
- <string name="recentCalls_addToContact" msgid="1429899535546487008">"Engeza kothintana nabo"</string>
- <string name="recentCalls_removeFromRecentList" msgid="5551148439199439404">"Susa kusukela kumlando wekholi"</string>
- <string name="recentCalls_deleteAll" msgid="5157887960461979812">"Sula umlando wekholi"</string>
- <string name="recentCalls_trashVoicemail" msgid="7604696960787435655">"Susa imeyili yezwi"</string>
- <string name="recentCalls_shareVoicemail" msgid="1416112847592942840">"Abelana nemeyili yezwi"</string>
- <string name="recentCalls_empty" msgid="8555115547405030734">"Awekho amakholi"</string>
+ <string name="callHistoryIconLabel" msgid="3734413397291301223">"Umlando wekholi"</string>
+ <string name="action_report_number" msgid="4635403959812186162">"Bika inombolo engalungile"</string>
+ <string name="action_copy_number_text" msgid="588249522108594155">"Kopisha inombolo"</string>
+ <string name="copy_transcript_text" msgid="5652787482893879382">"Kopisha ukukhiphela"</string>
+ <string name="action_block_number" msgid="1482657602262262134">"Vimba inombolo"</string>
+ <string name="snackbar_number_blocked" msgid="939830142765936021">"<xliff:g id="NUMBER">%1$s</xliff:g> ivinjiwe"</string>
+ <string name="action_unblock_number" msgid="3043777622269776127">"Vulela inombolo"</string>
+ <string name="snackbar_number_unblocked" msgid="4854738171099045912">"<xliff:g id="NUMBER">%1$s</xliff:g> vulela"</string>
+ <string name="block_number_undo" msgid="591338370336724156">"HLEHLISA"</string>
+ <string name="call_details_delete" msgid="1833359621896346955">"Susa"</string>
+ <string name="action_edit_number_before_call" msgid="3100221149873436485">"Hlela inombolo ngaphambi kwekholi"</string>
+ <string name="call_log_delete_all" msgid="4677609108288680411">"Sula umlando wekholi"</string>
+ <string name="call_log_trash_voicemail" msgid="1283948488625129019">"Susa ivoyisimeyili"</string>
+ <string name="snackbar_voicemail_deleted" msgid="5098542835986188582">"Ivoyisimeyili isusiwe"</string>
+ <string name="snackbar_voicemail_deleted_undo" msgid="3741811385891289167">"HLEHLISA"</string>
<string name="clearCallLogConfirmation_title" msgid="801753155679372984">"Sula umlando wekholi?"</string>
<string name="clearCallLogConfirmation" msgid="7899552396101432827">"Lokhu kuzosusa wonke amakholi kusukela kumlando wakho"</string>
<string name="clearCallLogProgress_title" msgid="3372471156216306132">"Isula umlando wekholi…"</string>
@@ -40,24 +47,21 @@
<string name="notification_voicemail_callers_list" msgid="1153954809339404149">"<xliff:g id="NEWER_CALLERS">%1$s</xliff:g>, <xliff:g id="OLDER_CALLER">%2$s</xliff:g>"</string>
<string name="notification_new_voicemail_ticker" msgid="895342132049452081">"I-imeyli entsha esuka ku <xliff:g id="CALLER">%1$s</xliff:g>"</string>
<string name="voicemail_playback_error" msgid="3356071912353297599">"Ayikwazanga ukudlala ivoyisimeyili"</string>
- <string name="voicemail_buffering" msgid="738287747618697097">"Ukugcina kumthamo"</string>
<string name="voicemail_fetching_content" msgid="1287895365599580842">"Ilayisha ivoyisimeyili…"</string>
<string name="voicemail_fetching_timout" msgid="3959428065511972176">"Ayikwazi ukulayisha ivoyisimeyili"</string>
<string name="call_log_voicemail_header" msgid="3945407886667089173">"Amakholi anevoyisimeyili kuphela"</string>
<string name="call_log_incoming_header" msgid="2787722299753674684">"Amakholi angenayo kuphela"</string>
<string name="call_log_outgoing_header" msgid="761009180766735769">"Amakholi aphumayo kuphela"</string>
<string name="call_log_missed_header" msgid="8017148056610855956">"Amakholi agejiwe kuphela"</string>
+ <string name="visual_voicemail_title" msgid="4574199312906348905">"Ivoyisimeyili ebonakalayo"</string>
+ <string name="visual_voicemail_text" msgid="164967285234132509">"Bona futhi ulalele ivoyisimeyili yakho, ngaphandle kokushayela inombolo. Amanani edatha angahle asebenze."</string>
+ <string name="visual_voicemail_settings" msgid="8090338793118794741">"Izilungiselelo"</string>
<string name="voicemail_status_voicemail_not_available" msgid="5222480147701456390">"Izibuyekezo zevoyisimeyili azitholakali"</string>
<string name="voicemail_status_messages_waiting" msgid="6329544650250068650">"Ivoyisimeyili entsha ilindile. Ayikwazi ukulayisha khona manje."</string>
<string name="voicemail_status_configure_voicemail" msgid="8300808991932816153">"Setha ivoyisimeyili yakho"</string>
<string name="voicemail_status_audio_not_available" msgid="2449801102560158082">"Umsindo awutholakali"</string>
<string name="voicemail_status_action_configure" msgid="8671796489912239589">"Setha"</string>
<string name="voicemail_status_action_call_server" msgid="1824816252288551794">"Shayela ivoyisimeyili"</string>
- <string name="voicemail_speed_slowest" msgid="1733460666177707312">"ijubane elincane kakhulu"</string>
- <string name="voicemail_speed_slower" msgid="1508601287347216244">"ijubane elinensayo"</string>
- <string name="voicemail_speed_normal" msgid="9033988544627228892">"ijubane elijwayelekile"</string>
- <string name="voicemail_speed_faster" msgid="2019965121475935488">"ijubane elisheshayo"</string>
- <string name="voicemail_speed_fastest" msgid="5758712343491183292">"Ijubane eliphezulu kakhudlwane"</string>
<string name="call_log_item_count_and_date" msgid="7641933305703520787">"(<xliff:g id="COUNT">%1$d</xliff:g>) <xliff:g id="DATE">%2$s</xliff:g>"</string>
<string name="sms_disambig_title" msgid="5846266399240630846">"Khetha inombolo"</string>
<string name="call_disambig_title" msgid="4392886850104795739">"Khetha inombolo"</string>
@@ -73,7 +77,6 @@
<string name="action_menu_call_history_description" msgid="9018442816219748968">"Umlando wekholi"</string>
<string name="action_menu_overflow_description" msgid="2303272250613084574">"Izinketho eziningi"</string>
<string name="action_menu_dialpad_button" msgid="1425910318049008136">"okokudayila"</string>
- <string name="menu_copy" msgid="6108677035381940698">"Kopisha"</string>
<string name="menu_show_outgoing_only" msgid="1965570298133301970">"Bonisa eziphumayo kuphela"</string>
<string name="menu_show_incoming_only" msgid="7534206815238877417">"Bonisa okungenayo kuphela"</string>
<string name="menu_show_missed_only" msgid="154473166059743996">"Bonisa okugejiwe kuphela"</string>
@@ -96,12 +99,13 @@
<string name="type_outgoing_video" msgid="2858140021680755266">"Ikholi yevidiyo ephumayo"</string>
<string name="type_missed_video" msgid="954396897034220545">"Ikholi yevidiyo ephuthelwe"</string>
<string name="type_voicemail" msgid="5153139450668549908">"Ivoyisimeyili"</string>
+ <string name="type_rejected" msgid="7783201828312472691">"Ikholi enqatshelwe"</string>
+ <string name="type_blocked" msgid="3521686227115330015">"Ikholi evinjiwe"</string>
<string name="actionIncomingCall" msgid="6028930669817038600">"Amakholi angenayo"</string>
<string name="description_call_log_play_button" msgid="651182125650429846">"Dlala i-imeyli yezwi"</string>
<string name="description_view_contact" msgid="5205669345700598415">"Bheka oxhumana naye <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_call" msgid="3443678121983852666">"Fonela <xliff:g id="NAME">%1$s</xliff:g>"</string>
<string name="description_contact_details" msgid="51229793651342809">"Imininingwane yokuxhumana ka-<xliff:g id="NAMEORNUMBER">%1$s</xliff:g>"</string>
- <string name="description_new_voicemail" msgid="2133792360865517746">"Ivoyisimeyili entsha."</string>
<string name="description_num_calls" msgid="1601505153694540074">"<xliff:g id="NUMBEROFCALLS">%1$s</xliff:g> amakholi."</string>
<string name="description_video_call" msgid="2933838090743214204">"Ikholi yevidiyo."</string>
<string name="description_send_text_message" msgid="3118485319691414221">"Thumela i-SMS ku-<xliff:g id="NAME">%1$s</xliff:g>"</string>
@@ -112,7 +116,11 @@
<string name="voicemail" msgid="3851469869202611441">"Ivoyisimeyili"</string>
<string name="private_num" msgid="6374339738119166953">"Inombolo yangasese"</string>
<string name="payphone" msgid="7726415831153618726">"Ucingo olufakwa imali"</string>
+ <string name="callDetailsShortDurationFormat" msgid="3988146235579303592">"<xliff:g id="SECONDS">%s</xliff:g> isekhondi"</string>
<string name="callDetailsDurationFormat" msgid="6061406028764382234">"<xliff:g id="MINUTES">%s</xliff:g> amaminithi <xliff:g id="SECONDS">%s</xliff:g> amasekhondi"</string>
+ <!-- no translation found for voicemailCallLogToday (682363079840402849) -->
+ <skip />
+ <string name="voicemailCallLogDateTimeFormat" msgid="4388070029056487713">"<xliff:g id="DATE">%1$s</xliff:g> ngo-<xliff:g id="TIME">%2$s</xliff:g>"</string>
<string name="dialog_phone_call_prohibited_message" msgid="5730565540182492608">"Ayikwazi ukushayela le nombolo"</string>
<string name="dialog_voicemail_not_ready_message" msgid="4384716252789515378">"Ukuya emyalezweni wephimbo, yana ezisethweni &gt; zemenyu."</string>
<string name="dialog_voicemail_airplane_mode_message" msgid="530922773669546093">"Ukushayela i-voicemail, vala kuqala imodi Yendiza."</string>
@@ -125,45 +133,68 @@
<string name="voice_search_not_available" msgid="2977719040254285301">"Usesho lwezwi alutholakali"</string>
<string name="call_not_available" msgid="8941576511946492225">"Ayikwazi ukwenza ikholi yefoni ngoba uhlelo lokusebenza lwefoni likhutshaziwe."</string>
<string name="activity_not_available" msgid="2287665636817987623">"Alukho uhlelo lokusebenza lalokho kule divayisi"</string>
- <string name="dialer_hint_find_contact" msgid="1012544667033887519">"Faka igama noma inombolo yefoni"</string>
- <string name="recentMissed_empty" msgid="4901789420356796156">"Awekho amakholi"</string>
- <string name="recentVoicemails_empty" msgid="8582424947259156664">"Awekho amavoyisimeyili wakamuva"</string>
+ <string name="dialer_hint_find_contact" msgid="3574350254520035364">"Sesha oxhumana nabo"</string>
+ <string name="block_number_search_hint" msgid="5409571607043872758">"Engeza inombolo noma useshe oxhumana nabo"</string>
+ <string name="call_log_all_empty" msgid="8357417710416340920">"Umlando wakho wekholi awunalutho"</string>
+ <string name="call_log_all_empty_action" msgid="9093210119068366147">"Yenza ikholi"</string>
+ <string name="call_log_missed_empty" msgid="3927274175205520135">"Awunawo amakholi aphuthelwe."</string>
+ <string name="call_log_voicemail_empty" msgid="8383585074222277550">"Ibhokisi lokungenayo kwakho levoyisimeyili alinalutho."</string>
<string name="show_favorites_only" msgid="5520072531022614595">"Bonisa izintandokazi kuphela"</string>
- <string name="call_log_activity_title" msgid="4612824396355272023">"Umlando"</string>
+ <string name="call_log_activity_title" msgid="7949633151371183580">"Umlando wekholi"</string>
<string name="call_log_all_title" msgid="3566738938889333307">"Konke"</string>
<string name="call_log_missed_title" msgid="4541142293870638971">"Phuthelwe"</string>
<string name="call_log_voicemail_title" msgid="940422274047025948">"Ivoyisimeyili"</string>
+ <string name="block_number_confirmation_title" msgid="6862219558186931304">"Vimba <xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="block_number_confirmation_message_vvm" msgid="5655646611437082611">"Amakholi wangakusasa kusuka kule nombolo azovinyelwa futhi amavoyisimeyili azosuswa ngokuzenzakalela."</string>
+ <string name="block_number_confirmation_message_no_vvm" msgid="4511900601491718173">"Amakholi kusuka kule nombolo azovinjwa, kodwa inkampani yenenethiwekhi ingakwazi ukukushiyela amavoyisimeyili."</string>
+ <string name="block_number_ok" msgid="770551992296781873">"VIMBA"</string>
+ <string name="unblock_number_confirmation_title" msgid="252824779504084354">"Vulela i-<xliff:g id="NUMBER">%1$s</xliff:g>?"</string>
+ <string name="unblock_number_confirmation_message" msgid="8521058345002166692">"Le nombolo ngeke isavinjwa kusuka ekukushayeleni."</string>
+ <string name="unblock_number_ok" msgid="6449899182699684786">"VULELA"</string>
<string name="tab_speed_dial" msgid="7552166276545648893">"Ukudayela okusheshayo"</string>
- <string name="tab_recents" msgid="929949073851377206">"Okwakamuva"</string>
+ <string name="tab_history" msgid="2563144697322434940">"Umlando wekholi"</string>
<string name="tab_all_contacts" msgid="1410922767166533690">"Oxhumana nabo"</string>
+ <string name="tab_voicemail" msgid="155024725947496746">"Ivoyisimeyili"</string>
<string name="favorite_hidden" msgid="5011234945140912047">"Kukhishiwe kusuka kuzintandokazi"</string>
<string name="favorite_hidden_undo" msgid="2508998611039406474">"Hlehlisa"</string>
<string name="search_shortcut_call_number" msgid="7277194656832895870">"Shayela ku-<xliff:g id="NUMBER">%s</xliff:g>"</string>
<string name="search_shortcut_create_new_contact" msgid="1679917465521554093">"Dala oxhumana naye omusha"</string>
- <string name="search_shortcut_add_to_existing_contact" msgid="4403132207405813444">"Engeza koxhumana naye okhona"</string>
+ <string name="search_shortcut_add_to_contact" msgid="4327842393369915751">"Engeza koxhumana naye"</string>
<string name="search_shortcut_send_sms_message" msgid="2569304043345025525">"Thumela i-SMS"</string>
<string name="search_shortcut_make_video_call" msgid="1265971685034465166">"Yenza ikholi yevidiyo"</string>
- <string name="recents_footer_text" msgid="7315554578957453359">"Buka wonke umlando wekholi"</string>
+ <string name="search_shortcut_block_number" msgid="4787156645163436072">"Vimba inombolo"</string>
<string name="num_missed_calls" msgid="8081736535604293886">"<xliff:g id="NUMBER">%s</xliff:g> amakholi amasha owaphuthelwe"</string>
- <string name="speed_dial_empty" msgid="1931474498966072849">"Ukudayela ngokushesha ukudayela kokuthinta okukodwa kwezintandokazi nezinombolo ovamise ukuzishayela"</string>
- <string name="all_contacts_empty" msgid="2299508125100209367">"Abekho oxhumana nabo"</string>
+ <string name="speed_dial_empty" msgid="8838921693673366129">"Akekho umuntu osekudayeleni kwakho okusheshayo okwamanje"</string>
+ <string name="speed_dial_empty_add_favorite_action" msgid="7944893641496695770">"Engeza intandokazi"</string>
+ <string name="all_contacts_empty" msgid="471370638298229686">"Awunabo oxhumana nabo okwamanje"</string>
+ <string name="all_contacts_empty_add_contact_action" msgid="1515782853819374618">"Engeza oxhumana naye"</string>
<string name="contact_tooltip" msgid="2019777545923635266">"Thinta isithombe ukuze ubone zonke izinombolo noma uthinte uphinde ubambe ukuze uhlele kabusha"</string>
<string name="remove_contact" msgid="1080555335283662961">"Susa"</string>
- <string name="favorites_menu_all_contacts" msgid="992506284449891186">"BONKE OXHUMANA NABO"</string>
<string name="call_log_action_video_call" msgid="7724301709041128296">"Ikholi yevidiyo"</string>
- <string name="call_log_action_voicemail" msgid="4978620572562925654">"LALELA"</string>
- <string name="call_log_action_details" msgid="7957138590190911171">"Buka imininingwane"</string>
+ <string name="call_log_action_send_message" msgid="5679719296905285131">"Thumela umlayezo"</string>
+ <string name="call_log_action_details" msgid="701345508704970622">"Imininingwane yekholi"</string>
+ <string name="call_log_action_call" msgid="463690849042459842">"Shayela ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="description_incoming_missed_call" msgid="2381085098795943627">"Ikholi egejiwe kusuka ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_incoming_answered_call" msgid="7117665748428816544">"Phendula ikholi kusuka ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_unread_voicemail" msgid="5826351827625665597">"Ivoyisimeyili engafundiwe kusukela ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
+ <string name="description_read_voicemail" msgid="133974208364152610">"Ivoyisimeyili esuka ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_outgoing_call" msgid="6386364390619734734">"Ikholi eya ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>, <xliff:g id="TYPEORLOCATION">^2</xliff:g>, <xliff:g id="TIMEOFCALL">^3</xliff:g>, <xliff:g id="PHONEACCOUNT">^4</xliff:g>."</string>
<string name="description_phone_account" msgid="1767072759541443861">"ku-<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_call_log_call_action" msgid="3682561657090693134">"Shaya"</string>
<string name="description_call_action" msgid="4000549004089776147">"Shayela ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
- <string name="description_video_call_action" msgid="4303952636480252389">"Ikholi yevidiyo eya ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
+ <string name="description_video_call_action" msgid="7386922428155062213">"Ikholi yevidiyo ka-<xliff:g id="NAMEORNUMBER">^1</xliff:g>."</string>
<string name="description_voicemail_action" msgid="8054891873788903063">"Lalela ivoyisimeyili esuka ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_play" msgid="2689369874037785439">"Dlala ivoyisimeyili kusuka ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_pause" msgid="3905259748756919693">"Misa okwesikhashana ivoyisimeyili kusuka ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_voicemail_delete" msgid="2025472770630153436">"Sula ivoyisimeyili kusuka ku-<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <plurals name="description_voicemail_unread" formatted="false" msgid="8708346053055570332">
+ <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> amavoyisimeyili amasha</item>
+ <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> amavoyisimeyili amasha</item>
+ </plurals>
+ <string name="description_create_new_contact_action" msgid="818755978791008167">"Dalela oxhumana naye u-<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
+ <string name="description_add_to_existing_contact_action" msgid="6081200053494414351">"Engeza u-<xliff:g id="NAMEORNUMBER">^1</xliff:g> koxhumana naye okhona"</string>
<string name="description_details_action" msgid="2433827152749491785">"Imininingwane yekholi ye-<xliff:g id="NAMEORNUMBER">^1</xliff:g>"</string>
<string name="toast_entry_removed" msgid="8010830299576311534">"Isusiwe kusukela kumlando wekholi"</string>
- <string name="call_log_action_report" msgid="4327809827087468864">"Umbiko"</string>
<string name="call_log_header_today" msgid="3225248682434212981">"Namhlanje"</string>
<string name="call_log_header_yesterday" msgid="9139172458834033092">"Izolo"</string>
<string name="call_log_header_other" msgid="5769921959940709084">"Okudala"</string>
@@ -187,5 +218,31 @@
</string-array>
<string name="respond_via_sms_setting_title" msgid="1318281521087951580">"Izimpendulo ezisheshayo"</string>
<string name="call_settings_label" msgid="313434211353070209">"Amakholi"</string>
+ <string name="manage_blocked_numbers_label" msgid="5959801428936629196">"Ukuvimbela ikholi"</string>
+ <string name="blocked_numbers_disabled_emergency_header_label" msgid="7870947220238070418">"Ukuvimbela ikholi kuvalwe isikhashana"</string>
+ <string name="blocked_numbers_disabled_emergency_desc" msgid="7755803249073401381">"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."</string>
+ <string name="import_send_to_voicemail_numbers_label" msgid="1606601823746799926">"Ngenisa izinombolo"</string>
+ <string name="blocked_call_settings_import_description" msgid="8640906226815125906">"Ngaphambilini umake abanye abashayi ukuthi bathunyelwe ngokuzenzakalelayo kuvoyisimeyili ngezinhlelo zokusebenza."</string>
+ <string name="blocked_call_settings_view_numbers_button" msgid="6698986720875955935">"Buka izinombolo"</string>
+ <string name="blocked_call_settings_import_button" msgid="178821255125295473">"Ngenisa"</string>
+ <string name="send_to_voicemail_import_failed" msgid="5547202002133560069">"Ukulanda akuphumelelanga"</string>
+ <string name="description_blocked_number_list_delete" msgid="3240093199107796792">"Vulela inombolo"</string>
+ <string name="addBlockedNumber" msgid="6064812257482886526">"Engeza inombolo"</string>
+ <string name="block_number_footer_message_vvm" msgid="5387302253765439712">"Amakholi kusuka kulezi lzinombolo azovinjwa futhi amavoyisimeyili azosulwa ngokuzenzakalela."</string>
+ <string name="block_number_footer_message_no_vvm" msgid="223238617533822381">"Amakholi kusuka kulezi zinombolo azovinjwa, kodwa angakwazi ukushiya amavoyisimeyili."</string>
+ <string name="block_list" msgid="7760188925338078011">"Izinombolo ezivinjiwe"</string>
+ <string name="invalidNumber" msgid="619058581062192851">"<xliff:g id="NUMBER">%1$s</xliff:g> ayivumelekile."</string>
+ <string name="alreadyBlocked" msgid="282340105563646876">"<xliff:g id="NUMBER">%1$s</xliff:g> isivinjiwe kakade."</string>
+ <string name="call_blocking_disabled_notification_title" msgid="8185193413377920194">"Ukuvimbela ikholi kukhutshaziwe amahora angu-48"</string>
+ <string name="call_blocking_disabled_notification_text" msgid="5330772013626378526">"Kukhutshaziwe ngoba ikholi ephuthumayo yenziwe."</string>
<string name="phone_account_settings_label" msgid="5864322009841175294">"Ama-akhawunti wokushaya"</string>
+ <string name="permission_single_turn_on" msgid="1543391076065465464">"Vula"</string>
+ <string name="permission_multiple_turn_on" msgid="2426278457455950554">"Setha izimvume"</string>
+ <string name="permission_no_speeddial" msgid="6882563445996184051">"Nika amandla ukudayela okusheshayo, vula imvume yoxhumana nabo."</string>
+ <string name="permission_no_calllog" msgid="555711464287041043">"Ukuze ubone irekhodi lakho lamakholi, vuma imvume yefoni."</string>
+ <string name="permission_no_contacts" msgid="6237980143178936279">"Ukuze ubone oxhumana nabo, vula imvume yoxhumana nabo."</string>
+ <string name="permission_no_voicemail" msgid="8306280257799917574">"Ukuze ufinyelele ivoyisimeyili, vula imvume yefoni."</string>
+ <string name="permission_no_search" msgid="84152933267902056">"Ukuze useshe oxhumana nabo, vula izimvume zoxhumana nabo."</string>
+ <string name="permission_place_call" msgid="2101287782615887547">"Ukuze ubeke ikholi, vula imvume yefoni."</string>
+ <string name="toast_cannot_write_system_settings" msgid="5614246168296606709">"Uhlelo lokusebenza lefoni alinayo imvume yokubhalela kuzilungiselelo zesistimu."</string>
</resources>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 8ce3c17ba..75d05ac99 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -22,6 +22,10 @@
<color name="dialer_red_highlight_color">#ff1744</color>
<color name="dialer_green_highlight_color">#00c853</color>
+ <color name="dialer_button_text_color">#fff</color>
+ <color name="dialer_flat_button_text_color">@color/dialer_theme_color</color>
+ <color name="dialer_snackbar_action_text_color">@color/dialer_theme_color</color>
+
<!-- Color for the setting text. -->
<color name="setting_primary_color">@color/dialtacts_primary_text_color</color>
<!-- Color for the setting description text. -->
@@ -30,8 +34,20 @@
<color name="setting_background_color">#ffffff</color>
<color name="setting_button_color">#eee</color>
+ <!-- 54% black -->
+ <color name="call_log_icon_tint">#8a000000</color>
+ <!-- 87% black -->
+ <color name="call_log_primary_color">#de000000</color>
+ <!-- 54% black -->
+ <color name="call_log_detail_color">#8a000000</color>
+ <!-- 87% black -->
+ <color name="call_log_voicemail_transcript_color">#de000000</color>
<!-- 70% black -->
- <color name="call_log_icon_tint">#b3000000</color>
+ <color name="call_log_action_color">#b3000000</color>
+ <!-- 54% black -->
+ <color name="call_log_day_group_heading_color">#8a000000</color>
+ <!-- 87% black-->
+ <color name="call_log_unread_text_color">#de000000</color>
<color name="call_log_list_item_primary_action_icon_tint">@color/call_log_icon_tint</color>
<!-- Color of the text describing an unconsumed missed call. -->
<color name="call_log_missed_call_highlight_color">@color/dialer_red_highlight_color</color>
@@ -92,9 +108,10 @@
<!-- Color for missed call icons. -->
<color name="missed_call">#ff2e58</color>
-
<!-- Color for answered or outgoing call icons. -->
<color name="answered_call">@color/dialer_green_highlight_color</color>
+ <!-- Color for blocked call icons. -->
+ <color name="blocked_call">@color/dialtacts_secondary_text_color</color>
<!-- Color for icons in the actionbar -->
<color name="actionbar_icon_color">#ffffff</color>
@@ -104,4 +121,22 @@
<color name="floating_action_button_touch_tint">#80ffffff</color>
<color name="call_log_action_divider">#eeeeee</color>
+ <color name="divider_line_color">#D8D8D8</color>
+
+ <!-- Colors for blocked numbers list -->
+ <color name="blocked_contact_background">#afafaf</color>
+ <color name="blocked_number_primary_text_color">@color/dialtacts_primary_text_color</color>
+ <color name="blocked_number_secondary_text_color">@color/dialtacts_secondary_text_color</color>
+ <color name="blocked_number_icon_tint">#616161</color>
+ <color name="blocked_number_background">#FFFFFF</color>
+ <color name="blocked_number_accent_color">#42A5F5</color>
+ <color name="blocked_number_block_color">#F44336</color>
+ <color name="blocked_number_header_color">@color/dialer_theme_color</color>
+ <color name="blocked_number_disabled_emergency_header_color">#616161</color>
+ <color name="blocked_number_disabled_emergency_background_color">#E0E0E0</color>
+ <color name="add_blocked_number_icon_color">#bdbdbd</color>
+ <!-- Grey 700 -->
+ <color name="call_detail_footer_text_color">#616161</color>
+ <color name="call_detail_footer_icon_tint">@color/call_detail_footer_text_color</color>
+
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 776cd1150..4865280ff 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -15,6 +15,9 @@
~ limitations under the License
-->
<resources>
+ <dimen name="button_horizontal_padding">16dp</dimen>
+ <dimen name="divider_line_thickness">1dp</dimen>
+
<!--
Drag to remove view (in dp because it is used in conjunction with a statically
sized icon
@@ -39,12 +42,16 @@
<!-- Size of contact photos in the call log and call details. -->
<dimen name="contact_photo_size">40dp</dimen>
<dimen name="call_detail_button_spacing">2dip</dimen>
- <dimen name="call_detail_horizontal_margin">16dp</dimen>
- <dimen name="call_detail_top_margin">36dp</dimen>
- <dimen name="call_detail_bottom_margin">32dp</dimen>
+ <dimen name="call_detail_horizontal_margin">20dp</dimen>
+ <dimen name="call_detail_top_margin">16dp</dimen>
+ <dimen name="call_detail_bottom_margin">16dp</dimen>
<dimen name="call_detail_header_top_margin">20dp</dimen>
<dimen name="call_detail_header_bottom_margin">9dp</dimen>
- <dimen name="call_detail_translation_z">0.5dp</dimen>
+ <dimen name="call_detail_elevation">0.5dp</dimen>
+ <dimen name="call_detail_action_item_padding_horizontal">28dp</dimen>
+ <dimen name="call_detail_action_item_padding_vertical">16dp</dimen>
+ <dimen name="call_detail_action_item_drawable_padding">28dp</dimen>
+ <dimen name="call_detail_action_item_text_size">16sp</dimen>
<dimen name="transcription_top_margin">18dp</dimen>
<dimen name="transcription_bottom_margin">18dp</dimen>
@@ -79,7 +86,7 @@
room to the search box-->
<dimen name="action_bar_height">56dp</dimen>
<dimen name="action_bar_height_large">64dp</dimen>
- <dimen name="action_bar_elevation">2dp</dimen>
+ <dimen name="action_bar_elevation">3dp</dimen>
<dimen name="tab_height">43dp</dimen>
<!-- actionbar height + tab height -->
<dimen name="actionbar_and_tab_height">107dp</dimen>
@@ -96,24 +103,24 @@
<dimen name="search_box_left_padding">8dp</dimen>
<!-- Search box interior padding - right -->
<dimen name="search_box_right_padding">8dp</dimen>
- <!-- Padding around the icon in the search box. -->
- <dimen name="search_box_icon_margin">4dp</dimen>
<dimen name="search_box_search_icon_padding">2dp</dimen>
<dimen name="search_box_collapsed_text_margin_left">22dp</dimen>
<dimen name="search_list_padding_top">16dp</dimen>
<dimen name="search_box_elevation">3dp</dimen>
- <dimen name="call_log_action_height">48dp</dimen>
<dimen name="call_log_action_icon_margin_start">16dp</dimen>
<dimen name="call_log_action_icon_dimen">24dp</dimen>
<dimen name="call_log_action_horizontal_padding">24dp</dimen>
<dimen name="call_log_actions_left_padding">64dp</dimen>
- <dimen name="call_log_primary_text_size">14sp</dimen>
- <dimen name="call_log_secondary_text_size">14sp</dimen>
- <dimen name="call_log_list_item_actions_text_size">12sp</dimen>
+ <dimen name="call_log_actions_top_padding">8dp</dimen>
+ <dimen name="call_log_actions_bottom_padding">8dp</dimen>
+ <dimen name="call_log_primary_text_size">16sp</dimen>
+ <dimen name="call_log_detail_text_size">12sp</dimen>
+ <dimen name="call_log_day_group_heading_size">14sp</dimen>
+ <dimen name="call_log_voicemail_transcription_text_size">14sp</dimen>
<!-- Height of the call log actions section for each call log entry -->
- <dimen name="call_log_action_height">44dp</dimen>
+ <dimen name="call_log_action_height">48dp</dimen>
<dimen name="call_log_day_group_padding_top">15dp</dimen>
<dimen name="call_log_day_group_padding_bottom">9dp</dimen>
@@ -147,4 +154,20 @@
<dimen name="promo_card_line_spacing">4dp</dimen>
<dimen name="voicemail_playback_top_padding">12dp</dimen>
+
+ <!-- Size of entries in blocked numbers list -->
+ <dimen name="blocked_number_container_padding">16dp</dimen>
+ <dimen name="blocked_number_horizontal_margin">16dp</dimen>
+ <dimen name="blocked_number_top_margin">16dp</dimen>
+ <dimen name="blocked_number_bottom_margin">16dp</dimen>
+ <dimen name="blocked_number_add_top_margin">8dp</dimen>
+ <dimen name="blocked_number_add_bottom_margin">8dp</dimen>
+ <dimen name="blocked_number_primary_text_size">16sp</dimen>
+ <dimen name="blocked_number_secondary_text_size">12sp</dimen>
+ <dimen name="blocked_number_delete_icon_size">32dp</dimen>
+ <dimen name="blocked_number_search_text_size">14sp</dimen>
+ <dimen name="blocked_number_settings_description_text_size">14sp</dimen>
+ <dimen name="blocked_number_header_height">48dp</dimen>
+
+ <dimen name="call_type_icon_size">12dp</dimen>
</resources>
diff --git a/res/values/ids.xml b/res/values/ids.xml
index d8f4aa877..f850327ea 100644
--- a/res/values/ids.xml
+++ b/res/values/ids.xml
@@ -15,7 +15,11 @@
-->
<resources>
+ <item type="id" name="call_detail_delete_menu_item" />
<item type="id" name="context_menu_copy_to_clipboard" />
+ <item type="id" name="context_menu_copy_transcript_to_clipboard" />
<item type="id" name="context_menu_edit_before_call" />
+ <item type="id" name="context_menu_block_number" />
<item type="id" name="settings_header_sounds_and_vibration" />
+ <item type="id" name="block_id" />
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5e2476db0..7e87b2fb0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -26,6 +26,9 @@
used in the Launcher icon. -->
<string name="launcherActivityLabel">Phone</string>
+
+ <!-- Title for the activity that dials the phone, when launched directly into the dialpad -->
+ <string name="launcherDialpadActivityLabel">Phone Dialpad</string>
<!-- The description text for the dialer tab.
Note: AccessibilityServices use this attribute to announce what the view represents.
@@ -40,40 +43,52 @@
This is especially valuable for views without textual representation like ImageView.
[CHAR LIMIT=NONE] -->
- <string name="recentCallsIconLabel">Call history</string>
+ <string name="callHistoryIconLabel">Call history</string>
- <!-- Menu item used to call a contact from the call log -->
- <string name="recentCalls_callNumber">Call
- <xliff:g id="name">%s</xliff:g>
- </string>
+ <!-- Text for a menu item to report a call as having been incorrectly identified. [CHAR LIMIT=48] -->
+ <string name="action_report_number">Report inaccurate number</string>
- <!-- Text for a menu item to report a call as having been incorrectly identified.
- [CHAR LIMIT=30] -->
- <string name="call_detail_menu_report">Report inaccurate number</string>
+ <!-- Option displayed in context menu to copy long pressed phone number. [CHAR LIMIT=48] -->
+ <string name="action_copy_number_text">Copy number</string>
+
+ <!-- Option displayed in context menu to copy long pressed voicemail transcription. [CHAR LIMIT=48] -->
+ <string name="copy_transcript_text">Copy transcription</string>
+
+ <!-- Label for action to block a number. [CHAR LIMIT=48] -->
+ <string name="action_block_number">Block number</string>
- <!-- Menu item used to copy a number from the call log to the dialer so it can be edited before calling it -->
- <string name="recentCalls_editNumberBeforeCall">Edit number before call</string>
+ <!-- Text for snackbar to undo blocking a number. [CHAR LIMIT=64] -->
+ <string name="snackbar_number_blocked">
+ <xliff:g id="number" example="(555) 555-5555">%1$s</xliff:g> blocked</string>
- <!-- Menu item used to add a number from the call log to contacts -->
- <string name="recentCalls_addToContact">Add to a contact</string>
+ <!-- Label for action to unblock a number [CHAR LIMIT=48]-->
+ <string name="action_unblock_number">Unblock number</string>
- <!-- Menu item used to remove a single call from the call log -->
- <string name="recentCalls_removeFromRecentList">Delete from call history</string>
+ <!-- Text for snackbar to undo unblocking a number. [CHAR LIMIT=64] -->
+ <string name="snackbar_number_unblocked">
+ <xliff:g id="number" example="(555) 555-5555">%1$s</xliff:g>
+ unblocked</string>
+
+ <!-- Text for undo button in snackbar for blocking/unblocking number. [CHAR LIMIT=10] -->
+ <string name="block_number_undo">UNDO</string>
+
+ <!-- Menu item in call details used to remove a call or voicemail from the call log. -->
+ <string name="call_details_delete">Delete</string>
+
+ <!-- Label for action to edit a number before calling it. [CHAR LIMIT=48] -->
+ <string name="action_edit_number_before_call">Edit number before call</string>
<!-- Menu item used to remove all calls from the call log -->
- <string name="recentCalls_deleteAll">Clear call history</string>
+ <string name="call_log_delete_all">Clear call history</string>
<!-- Menu item used to delete a voicemail. [CHAR LIMIT=30] -->
- <string name="recentCalls_trashVoicemail">Delete voicemail</string>
+ <string name="call_log_trash_voicemail">Delete voicemail</string>
- <!-- Menu item used to share a voicemail. [CHAR LIMIT=30] -->
- <string name="recentCalls_shareVoicemail">Share voicemail</string>
+ <!-- Text for snackbar to undo a voicemail delete. [CHAR LIMIT=30] -->
+ <string name="snackbar_voicemail_deleted">Voicemail deleted</string>
- <!-- Text displayed when the call log is empty. -->
- <string name="recentCalls_empty">Your call log is empty</string>
-
- <!-- Label of the button displayed when the call log is empty. Allows the user to make a call. -->
- <string name="recentCalls_empty_action">Make a call</string>
+ <!-- Text for undo button in snackbar for voicemail deletion. [CHAR LIMIT=10] -->
+ <string name="snackbar_voicemail_deleted_undo">UNDO</string>
<!-- Title of the confirmation dialog for clearing the call log. [CHAR LIMIT=37] -->
<string name="clearCallLogConfirmation_title">Clear call history?</string>
@@ -84,6 +99,28 @@
<!-- Title of the "Clearing call log" progress-dialog [CHAR LIMIT=35] -->
<string name="clearCallLogProgress_title">Clearing call history\u2026</string>
+ <!-- Title used for the activity for placing a call. This name appears
+ in activity disambig dialogs -->
+ <string name="userCallActivityLabel" product="default">Phone</string>
+
+ <!-- Notification strings -->
+ <!-- Missed call notification label, used when there's exactly one missed call -->
+ <string name="notification_missedCallTitle">Missed call</string>
+ <!-- Missed call notification label, used when there are two or more missed calls -->
+ <string name="notification_missedCallsTitle">Missed calls</string>
+ <!-- Missed call notification message used when there are multiple missed calls -->
+ <string name="notification_missedCallsMsg"><xliff:g id="num_missed_calls">%s</xliff:g> missed calls</string>
+ <!-- Message for "call back" Action, which is displayed in the missed call notificaiton.
+ The user will be able to call back to the person or the phone number.
+ [CHAR LIMIT=18] -->
+ <string name="notification_missedCall_call_back">Call back</string>
+ <!-- Message for "reply via sms" action, which is displayed in the missed call notification.
+ The user will be able to send text messages using the phone number.
+ [CHAR LIMIT=18] -->
+ <string name="notification_missedCall_message">Message</string>
+ <!-- DO NOT TRANSLATE. Hardcoded number used for restricted incoming phone numbers. -->
+ <string name="handle_restricted">RESTRICTED</string>
+
<!-- Title of the notification of new voicemails. [CHAR LIMIT=30] -->
<plurals name="notification_voicemail_title">
<item quantity="one">Voicemail</item>
@@ -116,9 +153,6 @@
<!-- Message to show when there is an error playing back the voicemail. [CHAR LIMIT=40] -->
<string name="voicemail_playback_error">Couldn\'t play voicemail</string>
- <!-- Message to display before we have prepared the media player, i.e. before we know duration. [CHAR LIMIT=40] -->
- <string name="voicemail_buffering">Buffering\u2026</string>
-
<!-- Message to display whilst we are waiting for the content to be fetched. [CHAR LIMIT=40] -->
<string name="voicemail_fetching_content">Loading voicemail\u2026</string>
@@ -247,9 +281,6 @@
[CHAR LIMIT=NONE] -->
<string name="action_menu_dialpad_button">dial pad</string>
- <!-- Menu item to copy something [CHAR_LIMIT=10] -->
- <string name="menu_copy">Copy</string>
-
<!-- Menu item used to show only outgoing in the call log. [CHAR LIMIT=30] -->
<string name="menu_show_outgoing_only">Show outgoing only</string>
@@ -299,13 +330,13 @@
is already in progress.) -->
<string name="dialer_addAnotherCall">Add call</string>
- <!-- Title for incoming call details screen -->
+ <!-- Title for incoming call type. [CHAR LIMIT=40] -->
<string name="type_incoming">Incoming call</string>
- <!-- Title for outgoing call details screen -->
+ <!-- Title for outgoing call type. [CHAR LIMIT=40] -->
<string name="type_outgoing">Outgoing call</string>
- <!-- Title for missed call details screen -->
+ <!-- Title for missed call type. [CHAR LIMIT=40] -->
<string name="type_missed">Missed call</string>
<!-- Title for incoming video call in call details screen [CHAR LIMIT=60] -->
@@ -320,6 +351,12 @@
<!-- Title for voicemail details screen -->
<string name="type_voicemail">Voicemail</string>
+ <!-- Title for rejected call type. [CHAR LIMIT=40] -->
+ <string name="type_rejected">Declined call</string>
+
+ <!-- Title for blocked call type. [CHAR LIMIT=40] -->
+ <string name="type_blocked">Blocked call</string>
+
<!-- Description for incoming calls going to voice mail vs. not -->
<string name="actionIncomingCall">Incoming calls</string>
@@ -351,13 +388,6 @@
-->
<string name="description_contact_details">Contact details for <xliff:g id="nameOrNumber">%1$s</xliff:g></string>
- <!-- String indicating a call log entry has an associated voicemail.
-
- Note: AccessibilityServices use this attribute to announce what the view represents.
- This is especially valuable for views without textual representation like ImageView.
- -->
- <string name="description_new_voicemail">New voicemail.</string>
-
<!-- String indicating the number of calls to/from a caller in the call log.
Note: AccessibilityServices use this attribute to announce what the view represents.
@@ -414,6 +444,15 @@
<!-- A nicely formatted call duration displayed when viewing call details. For example "42 min 28 sec" -->
<string name="callDetailsDurationFormat"><xliff:g id="minutes" example="42">%s</xliff:g> min <xliff:g id="seconds" example="28">%s</xliff:g> sec</string>
+ <!-- The string 'Today'. This value is used in the voicemailCallLogDateTimeFormat rather than an
+ explicit date string, e.g. Jul 25, 2014, in the event that a voicemail was created on the
+ current day -->
+ <string name="voicemailCallLogToday">@string/call_log_header_today</string>
+
+ <!-- A format string used for displaying the date and time for a voicemail call log. For example: Jul 25, 2014 at 2:49 PM
+ The date will be replaced by 'Today' for voicemails created on the current day. For example: Today at 2:49 PM -->
+ <string name="voicemailCallLogDateTimeFormat"><xliff:g id="date" example="Jul 25, 2014">%1$s</xliff:g> at <xliff:g id="time" example="2:49 PM">%2$s</xliff:g></string>
+
<!-- Dialog message which is shown when the user tries to make a phone call
to prohibited phone numbers [CHAR LIMIT=NONE] -->
<string name="dialog_phone_call_prohibited_message" msgid="4313552620858880999">Can\'t call this number</string>
@@ -458,7 +497,11 @@
<!-- Hint displayed in dialer search box when there is no query that is currently typed.
[CHAR LIMIT=30] -->
- <string name="dialer_hint_find_contact">Enter a name or phone number</string>
+ <string name="dialer_hint_find_contact">Search contacts</string>
+
+ <!-- Hint displayed in add blocked number search box when there is no query typed.
+ [CHAR LIMIT=45] -->
+ <string name="block_number_search_hint">Add number or search contacts</string>
<!-- String resource for the font-family to use for the call log activity's title
Do not translate. -->
@@ -468,17 +511,23 @@
Do not translate. -->
<string name="view_full_call_history_font_family">sans-serif</string>
+ <!-- Text displayed when the call log is empty. -->
+ <string name="call_log_all_empty">Your call history is empty</string>
+
+ <!-- Label of the button displayed when the call history is empty. Allows the user to make a call. -->
+ <string name="call_log_all_empty_action">Make a call</string>
+
<!-- Text displayed when the list of missed calls is empty -->
- <string name="recentMissed_empty">You have no missed calls.</string>
+ <string name="call_log_missed_empty">You have no missed calls.</string>
<!-- Text displayed when the list of voicemails is empty -->
- <string name="recentVoicemails_empty">Your voicemail inbox is empty.</string>
+ <string name="call_log_voicemail_empty">Your voicemail inbox is empty.</string>
<!-- Menu option to show favorite contacts only -->
<string name="show_favorites_only">Show favorites only</string>
<!-- Title of activity that displays a list of all calls -->
- <string name="call_log_activity_title">History</string>
+ <string name="call_log_activity_title">Call History</string>
<!-- Title for the call log tab containing the list of all voicemails and calls
[CHAR LIMIT=30] -->
@@ -492,12 +541,44 @@
[CHAR LIMIT=30] -->
<string name="call_log_voicemail_title">Voicemail</string>
+ <!-- Confirmation dialog title for blocking a number. [CHAR LIMIT=NONE] -->
+ <string name="block_number_confirmation_title">Block
+ <xliff:g id="number" example="(555) 555-5555">%1$s</xliff:g>?</string>
+
+ <!-- Confirmation dialog message for blocking a number with visual voicemail active.
+ [CHAR LIMIT=NONE] -->
+ <string name="block_number_confirmation_message_vvm">
+ Calls from this number will be blocked and voicemails will be automatically deleted.
+ </string>
+
+ <!-- Confirmation dialog message for blocking a number with no visual voicemail.
+ [CHAR LIMIT=NONE] -->
+ <string name="block_number_confirmation_message_no_vvm">
+ Calls from this number will be blocked, but the caller may still be able to leave you voicemails.
+ </string>
+
+ <!-- Block number alert dialog button [CHAR LIMIT=32] -->
+ <string name="block_number_ok">BLOCK</string>
+
+ <!-- Confirmation dialog for unblocking a number. [CHAR LIMIT=NONE] -->
+ <string name="unblock_number_confirmation_title">Unblock
+ <xliff:g id="number" example="(555) 555-5555">%1$s</xliff:g>?</string>
+
+ <!-- Confirmation dialog message for unblocking a number.
+ [CHAR LIMIT=NONE] -->
+ <string name="unblock_number_confirmation_message">
+ This number will no longer be blocked from calling you.
+ </string>
+
+ <!-- Unblock number alert dialog button [CHAR LIMIT=32] -->
+ <string name="unblock_number_ok">UNBLOCK</string>
+
<!-- Accessibility text for the tab showing recent and favorite contacts who can be called.
[CHAR LIMIT=40] -->
<string name="tab_speed_dial">Speed dial</string>
- <!-- Accessibility text for the tab showing the call log of recent calls. [CHAR LIMIT=40] -->
- <string name="tab_recents">Recents</string>
+ <!-- Accessibility text for the tab showing the call history. [CHAR LIMIT=40] -->
+ <string name="tab_history">Call History</string>
<!-- Accessibility text for the tab showing the user's contacts. [CHAR LIMIT=40] -->
<string name="tab_all_contacts">Contacts</string>
@@ -529,8 +610,8 @@
<!-- Shortcut item used to make a video call directly from search. [CHAR LIMIT=25] -->
<string name="search_shortcut_make_video_call">Make video call</string>
- <!-- Title for the call log list item that brings users to the full call history when clicked -->
- <string name="show_call_history">View full call history</string>
+ <!-- Shortcut item used to block a number directly from search. [CHAR LIMIT=25] -->
+ <string name="search_shortcut_block_number">Block number</string>
<!-- Number of missed calls shown on call card [CHAR LIMIT=40] -->
<string name="num_missed_calls"><xliff:g id="number">%s</xliff:g> new missed calls</string>
@@ -564,7 +645,7 @@
<!-- Button text for a button displayed underneath an entry in the call log, which opens up a
messaging app to send a SMS to the number represented by the call log entry.
[CHAR LIMIT=30] -->
- <string name="call_log_action_send_message">Send Message</string>
+ <string name="call_log_action_send_message">Send a message</string>
<!-- Button text for the button displayed underneath an entry in the call log.
Tapping navigates the user to the call details screen where the user can view details for
@@ -587,6 +668,16 @@
[CHAR LIMIT=NONE] -->
<string name="description_incoming_answered_call">Answered call from <xliff:g id="nameOrNumber" example="John Smith">^1</xliff:g>, <xliff:g id="typeOrLocation" example="Mobile">^2</xliff:g>, <xliff:g id="timeOfCall" example="2 min ago">^3</xliff:g>, <xliff:g id="phoneAccount" example="on SIM 1">^4</xliff:g>.</string>
+ <!-- String describing an "unread" voicemail entry in the voicemails tab.
+ Note: AccessibilityServices use this attribute to announce what the view represents.
+ [CHAR LIMIT=NONE] -->
+ <string name="description_unread_voicemail">Unread voicemail from <xliff:g id="nameOrNumber" example="John Smith">^1</xliff:g>, <xliff:g id="typeOrLocation" example="Mobile">^2</xliff:g>, <xliff:g id="timeOfCall" example="2 min ago">^3</xliff:g>, <xliff:g id="phoneAccount" example="on SIM 1">^4</xliff:g>.</string>
+
+ <!-- String describing a "read" voicemail entry in the voicemails tab.
+ Note: AccessibilityServices use this attribute to announce what the view represents.
+ [CHAR LIMIT=NONE] -->
+ <string name="description_read_voicemail">Voicemail from <xliff:g id="nameOrNumber" example="John Smith">^1</xliff:g>, <xliff:g id="typeOrLocation" example="Mobile">^2</xliff:g>, <xliff:g id="timeOfCall" example="2 min ago">^3</xliff:g>, <xliff:g id="phoneAccount" example="on SIM 1">^4</xliff:g>.</string>
+
<!-- String describing an outgoing call entry in the call log.
Note: AccessibilityServices uses this attribute to announce what the view represents.
[CHAR LIMIT=NONE] -->
@@ -778,6 +869,92 @@
<!-- Label for the call settings section [CHAR LIMIT=30] -->
<string name="call_settings_label">Calls</string>
+ <!-- Label for the blocked numbers settings section [CHAR LIMIT=30] -->
+ <string name="manage_blocked_numbers_label">Call blocking</string>
+
+ <!-- Label for a section describing that call blocking is temporarily disabled because an
+ emergency call was made. [CHAR LIMIT=50] -->
+ <string name="blocked_numbers_disabled_emergency_header_label">
+ Call blocking temporarily off
+ </string>
+
+ <!-- Description that call blocking is temporarily disabled because the user called an
+ emergency number, and explains that call blocking will be re-enabled after a buffer
+ period has passed. [CHAR LIMIT=NONE] -->
+ <string name="blocked_numbers_disabled_emergency_desc">
+ Call blocking has been disabled because you contacted emergency services from this phone
+ within the last 48 hours. It will be automatically reenabled once the 48 hour period
+ expires.
+ </string>
+
+ <!-- Label for fragment to import numbers from contacts marked as send to voicemail.
+ [CHAR_LIMIT=30] -->
+ <string name="import_send_to_voicemail_numbers_label">Import numbers</string>
+
+ <!-- Text informing the user they have previously marked contacts to be sent to voicemail.
+ This will be followed by two buttons, 1) to view who is marked to be sent to voicemail
+ and 2) importing these settings to Dialer's block list. [CHAR LIMIT=NONE] -->
+ <string name="blocked_call_settings_import_description">
+ You previously marked some callers to be automatically sent to voicemail via other apps.
+ </string>
+
+ <!-- Label for button to view numbers of contacts previous marked to be sent to voicemail.
+ [CHAR_LIMIT=20] -->
+ <string name="blocked_call_settings_view_numbers_button">View Numbers</string>
+
+ <!-- Label for button to import settings for sending contacts to voicemail into Dialer's block
+ list. [CHAR_LIMIT=20] -->
+ <string name="blocked_call_settings_import_button">Import</string>
+
+ <!-- Error toast message for when send to voicemail import fails. [CHAR LIMIT=40] -->
+ <string name="send_to_voicemail_import_failed">Import failed</string>
+
+ <!-- String describing the delete icon on a blocked number list item.
+ When tapped, it will show a dialog confirming the unblocking of the number.
+ [CHAR LIMIT=NONE]-->
+ <string name="description_blocked_number_list_delete">Unblock number</string>
+
+ <!-- Button to bring up UI to add a number to the blocked call list. [CHAR LIMIT=40] -->
+ <string name="addBlockedNumber">Add number</string>
+
+ <!-- Footer message of number blocking screen with visual voicemail active.
+ [CHAR LIMIT=NONE] -->
+ <string name="block_number_footer_message_vvm">
+ Calls from these numbers will be blocked and voicemails will be automatically deleted.
+ </string>
+
+ <!-- Footer message of number blocking screen with no visual voicemail.
+ [CHAR LIMIT=NONE] -->
+ <string name="block_number_footer_message_no_vvm">
+ Calls from these numbers will be blocked, but they may still be able to leave you voicemails.
+ </string>
+
+ <!-- Heading for the block list in the "Spam and blocked cal)ls" settings. [CHAR LIMIT=64] -->
+ <string name="block_list">Blocked numbers</string>
+
+ <!-- Error message shown when user tries to add invalid number to the block list.
+ [CHAR LIMIT=64] -->
+ <string name="invalidNumber"><xliff:g id="number" example="(555) 555-5555">%1$s</xliff:g>
+ is invalid.</string>
+
+ <!-- Error message shown when user tries to add a number to the block list that was already
+ blocked. [CHAR LIMIT=64] -->
+ <string name="alreadyBlocked"><xliff:g id="number" example="(555) 555-5555">%1$s</xliff:g>
+ is already blocked.</string>
+
+ <!-- Title of notification telling the user that call blocking has been temporarily disabled.
+ [CHAR LIMIT=56] -->
+ <string name="call_blocking_disabled_notification_title">
+ Call blocking disabled for 48 hours
+ </string>
+
+ <!-- Text for notification which provides the reason that call blocking has been temporarily
+ disabled. Namely, we disable call blocking after an emergency call in case of return
+ phone calls made by emergency services. [CHAR LIMIT=64] -->
+ <string name="call_blocking_disabled_notification_text">
+ Disabled because an emergency call was made.
+ </string>
+
<!-- Label for the phone account settings [CHAR LIMIT=30] -->
<string name="phone_account_settings_label">Calling accounts</string>
@@ -790,30 +967,30 @@
<!-- DO NOT TRANSLATE. Internal key for DTMF tone length preference. -->
<string name="dtmf_tone_length_preference_key" translatable="false">button_dtmf_settings</string>
- <!-- The label of the button used to turn on a single permission -->
+ <!-- The label of the button used to turn on a single permission [CHAR LIMIT=30]-->
<string name="permission_single_turn_on">Turn on</string>
- <!-- The label of the button used to turn on multiple permissions -->
+ <!-- The label of the button used to turn on multiple permissions [CHAR LIMIT=30]-->
<string name="permission_multiple_turn_on">Set permissions</string>
- <!-- Shown as a prompt to turn on the contacts permission to enable speed dial -->
- <string name="permission_no_speeddial">To enable speed dial,\n turn on the Contacts permission.</string>
+ <!-- Shown as a prompt to turn on the contacts permission to enable speed dial [CHAR LIMIT=NONE]-->
+ <string name="permission_no_speeddial">To enable speed dial, turn on the Contacts permission.</string>
- <!-- Shown as a prompt to turn on the phone permission to enable the call log -->
- <string name="permission_no_calllog">To see your call log,\n turn on the Phone permission.</string>
+ <!-- Shown as a prompt to turn on the phone permission to enable the call log [CHAR LIMIT=NONE]-->
+ <string name="permission_no_calllog">To see your call log, turn on the Phone permission.</string>
- <!-- Shown as a prompt to turn on the contacts permission to show all contacts -->
- <string name="permission_no_contacts">To see your contacts,\n turn on the Contacts permission.</string>
+ <!-- Shown as a prompt to turn on the contacts permission to show all contacts [CHAR LIMIT=NONE]-->
+ <string name="permission_no_contacts">To see your contacts, turn on the Contacts permission.</string>
- <!-- Shown as a prompt to turn on the phone permission to show voicemails -->
- <string name="permission_no_voicemail">To access your voicemail,\n turn on the Phone permission.</string>
+ <!-- Shown as a prompt to turn on the phone permission to show voicemails [CHAR LIMIT=NONE]-->
+ <string name="permission_no_voicemail">To access your voicemail, turn on the Phone permission.</string>
- <!-- Shown as a prompt to turn on contacts permissions to allow contact search -->
+ <!-- Shown as a prompt to turn on contacts permissions to allow contact search [CHAR LIMIT=NONE]-->
<string name="permission_no_search">To search your contacts, turn on the Contacts permissions.</string>
- <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed -->
- <string name="permission_place_call">To place a call,\n turn on the Phone permission.</string>
+ <!-- Shown as a prompt to turn on the phone permission to allow a call to be placed [CHAR LIMIT=NONE]-->
+ <string name="permission_place_call">To place a call, turn on the Phone permission.</string>
- <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead.-->
+ <!-- Shown as a message that notifies the user that the Phone app cannot write to system settings, which is why the system settings app is being launched directly instead. [CHAR LIMIT=NONE]-->
<string name="toast_cannot_write_system_settings">Phone app does not have permission to write to system settings.</string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index e3a2f9974..66a45f977 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -15,15 +15,21 @@
~ limitations under the License
-->
<resources>
- <style name="DialtactsTheme"
- parent="android:Theme.Material.Light">
+ <style name="DialtactsTheme" parent="Theme.AppCompat.Light">
<item name="android:textColorPrimary">@color/dialtacts_primary_text_color</item>
<item name="android:textColorSecondary">@color/dialtacts_secondary_text_color</item>
+
+ <!-- Styles that require AppCompat compatibility, remember to update both sets -->
<item name="android:windowActionBarOverlay">true</item>
+ <item name="windowActionBarOverlay">true</item>
<item name="android:windowActionModeOverlay">true</item>
+ <item name="windowActionModeOverlay">true</item>
<item name="android:actionBarStyle">@style/DialtactsActionBarStyle</item>
+ <item name="actionBarStyle">@style/DialtactsActionBarStyle</item>
<!-- Style for the overflow button in the actionbar. -->
<item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflow</item>
+ <item name="actionOverflowButtonStyle">@style/DialtactsActionBarOverflow</item>
+
<!-- Drawable for the back button -->
<item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
<item name="android:windowContentOverlay">@null</item>
@@ -34,13 +40,13 @@
<item name="section_header_background">@drawable/list_title_holo</item>
<item name="list_section_header_height">32dip</item>
<item name="list_item_padding_top">12dp</item>
- <item name="list_item_padding_right">32dp</item>
+ <item name="list_item_padding_right">24dp</item>
<item name="list_item_padding_bottom">12dp</item>
<item name="list_item_padding_left">16dp</item>
<item name="list_item_gap_between_image_and_text">
@dimen/contact_browser_list_item_gap_between_image_and_text
</item>
- <item name="list_item_gap_between_label_and_data">5dip</item>
+ <item name="list_item_gap_between_label_and_data">8dip</item>
<item name="list_item_presence_icon_margin">4dip</item>
<item name="list_item_presence_icon_size">16dip</item>
<item name="list_item_photo_size">@dimen/contact_browser_list_item_photo_size</item>
@@ -77,6 +83,16 @@
<item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
<item name="dialpad_key_button_touch_tint">@color/dialer_dialpad_touch_tint</item>
<item name="android:colorControlActivated">@color/dialer_theme_color</item>
+ <item name="android:colorButtonNormal">@color/dialer_theme_color</item>
+ <item name="android:textAppearanceButton">@style/DialerButtonTextStyle</item>
+
+ <!-- Video call icon -->
+ <item name="list_item_video_call_icon_size">32dip</item>
+ <item name="list_item_video_call_icon_margin">8dip</item>
+ </style>
+
+ <style name="DialerButtonTextStyle" parent="@android:style/TextAppearance.Material.Widget.Button">
+ <item name="android:textColor">#fff</item>
</style>
<!-- Action bar overflow menu icon. -->
@@ -96,13 +112,19 @@
</style>
<style name="DialtactsThemeWithoutActionBarOverlay" parent="DialtactsTheme">
+ <!-- Styles that require AppCompat compatibility, remember to update both sets -->
<item name="android:windowActionBarOverlay">false</item>
+ <item name="windowActionBarOverlay">false</item>
<item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflowWhite</item>
+ <item name="actionOverflowButtonStyle">@style/DialtactsActionBarOverflowWhite</item>
</style>
<!-- Hide the actionbar title during the activity preview -->
<style name="DialtactsActivityTheme" parent="DialtactsTheme">
+ <!-- Styles that require AppCompat compatibility, remember to update both sets -->
<item name="android:actionBarStyle">@style/DialtactsActionBarWithoutTitleStyle</item>
+ <item name="actionBarStyle">@style/DialtactsActionBarWithoutTitleStyle</item>
+
<item name="android:fastScrollThumbDrawable">@drawable/fastscroll_thumb</item>
<item name="android:fastScrollTrackDrawable">@null</item>
</style>
@@ -121,23 +143,49 @@
<item name="android:actionOverflowButtonStyle">@style/DialtactsActionBarOverflowWhite</item>
</style>
- <style name="DialtactsActionBarStyle" parent="android:Widget.Material.ActionBar">
+ <style name="CallDetailActionItemStyle">
+ <item name="android:foreground">?android:attr/selectableItemBackground</item>
+ <item name="android:clickable">true</item>
+ <item name="android:drawablePadding">@dimen/call_detail_action_item_drawable_padding</item>
+ <item name="android:gravity">center_vertical</item>
+ <item name="android:paddingStart">@dimen/call_detail_action_item_padding_horizontal</item>
+ <item name="android:paddingEnd">@dimen/call_detail_action_item_padding_horizontal</item>
+ <item name="android:paddingTop">@dimen/call_detail_action_item_padding_vertical</item>
+ <item name="android:paddingBottom">@dimen/call_detail_action_item_padding_vertical</item>
+ <item name="android:textColor">@color/call_detail_footer_text_color</item>
+ <item name="android:textSize">@dimen/call_detail_action_item_text_size</item>
+ </style>
+
+ <style name="DialtactsActionBarStyle"
+ parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
+ <!-- Styles that require AppCompat compatibility, remember to update both sets -->
<item name="android:background">@color/actionbar_background_color</item>
+ <item name="background">@color/actionbar_background_color</item>
<item name="android:titleTextStyle">@style/DialtactsActionBarTitleText</item>
+ <item name="titleTextStyle">@style/DialtactsActionBarTitleText</item>
<item name="android:height">@dimen/action_bar_height</item>
+ <item name="height">@dimen/action_bar_height</item>
<item name="android:elevation">@dimen/action_bar_elevation</item>
+ <item name="elevation">@dimen/action_bar_elevation</item>
<!-- Empty icon -->
<item name="android:icon">@android:color/transparent</item>
+ <item name="icon">@android:color/transparent</item>
<!-- Shift the title text to the right -->
<item name="android:contentInsetStart">@dimen/actionbar_contentInsetStart</item>
+ <item name="contentInsetStart">@dimen/actionbar_contentInsetStart</item>
</style>
<style name="DialtactsActionBarWithoutTitleStyle" parent="DialtactsActionBarStyle">
+ <!-- Styles that require AppCompat compatibility, remember to update both sets -->
<item name="android:displayOptions"></item>
+ <item name="displayOptions"></item>
<item name="android:height">@dimen/action_bar_height_large</item>
+ <item name="height">@dimen/action_bar_height_large</item>
<!-- Override ActionBar title offset to keep search box aligned left -->
<item name="android:contentInsetStart">0dp</item>
+ <item name="contentInsetStart">0dp</item>
<item name="android:contentInsetEnd">0dp</item>
+ <item name="contentInsetEnd">0dp</item>
</style>
<!-- Text in the action bar at the top of the screen -->
@@ -171,14 +219,19 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:paddingStart">@dimen/call_log_action_horizontal_padding</item>
<item name="android:paddingEnd">@dimen/call_log_action_horizontal_padding</item>
- <item name="android:textColor">?attr/call_log_secondary_text_color</item>
- <item name="android:textSize">@dimen/call_log_list_item_actions_text_size</item>
- <item name="android:fontFamily">"sans-serif-medium"</item>
+ <item name="android:textColor">@color/call_log_action_color</item>
+ <item name="android:textSize">@dimen/call_log_primary_text_size</item>
+ <item name="android:fontFamily">"sans-serif"</item>
<item name="android:focusable">true</item>
<item name="android:singleLine">true</item>
<item name="android:importantForAccessibility">no</item>
</style>
+ <style name="CallLogActionSupportTextStyle" parent="@style/CallLogActionTextStyle">
+ <item name="android:textSize">@dimen/call_log_detail_text_size</item>
+ <item name="android:textColor">@color/call_log_detail_color</item>
+ </style>
+
<style name="CallLogActionIconStyle">
<item name="android:layout_width">@dimen/call_log_action_icon_dimen</item>
<item name="android:layout_height">@dimen/call_log_action_icon_dimen</item>
@@ -203,6 +256,21 @@
<item name="android:textColorLink">@color/dialtacts_theme_color</item>
</style>
+ <style name="ManageBlockedNumbersStyle" parent="SettingsStyle">
+ <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+ <item name="android:windowActionBarOverlay">true</item>
+ <item name="windowActionBarOverlay">true</item>
+ <item name="android:actionBarStyle">@style/ManageBlockedNumbersActionBarStyle</item>
+ <item name="actionBarStyle">@style/ManageBlockedNumbersActionBarStyle</item>
+ <item name="android:fastScrollTrackDrawable">@null</item>
+ </style>
+
+ <style name="ManageBlockedNumbersActionBarStyle" parent="DialtactsActionBarWithoutTitleStyle">
+ <!-- Styles that require AppCompat compatibility, remember to update both sets -->
+ <item name="android:height">@dimen/action_bar_height</item>
+ <item name="height">@dimen/action_bar_height</item>
+ </style>
+
<!-- Inherit from Theme.Material.Light.Dialog instead of Theme.Material.Light.Dialog.Alert
since the Alert dialog is private. They are identical anyway. -->
<style name="AlertDialogTheme" parent="@android:style/Theme.Material.Light.Dialog">
@@ -233,7 +301,7 @@
<style name="PromoCardActionStyle" parent="TextActionStyle">
<item name="android:textColor">@color/promo_card_text</item>
- <item name="android:textSize">@dimen/call_log_list_item_actions_text_size</item>
+ <item name="android:textSize">@dimen/call_log_primary_text_size</item>
</style>
<style name="VoicemailPlaybackLayoutTextStyle">
@@ -246,4 +314,18 @@
<item name="android:background">@drawable/oval_ripple</item>
<item name="android:padding">8dp</item>
</style>
+
+ <style name="DialerFlatButtonStyle" parent="@android:style/Widget.Material.Button">
+ <item name="android:background">?android:attr/selectableItemBackground</item>
+ <item name="android:paddingEnd">@dimen/button_horizontal_padding</item>
+ <item name="android:paddingStart">@dimen/button_horizontal_padding</item>
+ <item name="android:textColor">@color/dialer_flat_button_text_color</item>
+ </style>
+
+ <style name="BlockedNumbersDescriptionTextStyle">
+ <item name="android:lineSpacingMultiplier">1.43</item>
+ <item name="android:paddingTop">8dp</item>
+ <item name="android:paddingBottom">8dp</item>
+ <item name="android:textSize">@dimen/blocked_number_settings_description_text_size</item>
+ </style>
</resources>
diff --git a/src-N/com/android/dialer/SdkSelectionUtils.java b/src-N/com/android/dialer/SdkSelectionUtils.java
new file mode 100644
index 000000000..ae7a63174
--- /dev/null
+++ b/src-N/com/android/dialer/SdkSelectionUtils.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer;
+
+/**
+ * Provides information for the SDK the app is built against.
+ * Specifically, information that change when the TARGET_N_SDK build flag is set in the makefile.
+ * This is not related to the targetSdkVersion value in AndroidManifest.xml.
+ *
+ * Usage case will be branching test code in src/, instead of swapping between src-N and src-pre-N.
+ */
+public class SdkSelectionUtils {
+
+ /**
+ * Whether the app is build against N SDK.
+ *
+ * Since Build.VERSION.SDK_INT remains 23 on N SDK for now, this is currently the only way to
+ * check if we are building with N SDK or other.
+ */
+ public static final boolean TARGET_N_SDK = true;
+}
diff --git a/src-N/com/android/dialer/compat/UserManagerSdkCompat.java b/src-N/com/android/dialer/compat/UserManagerSdkCompat.java
new file mode 100644
index 000000000..9a08d4e71
--- /dev/null
+++ b/src-N/com/android/dialer/compat/UserManagerSdkCompat.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.compat;
+
+import android.content.Context;
+
+/**
+ * UserManagerCompat respecting Sdk requirements
+ */
+public class UserManagerSdkCompat {
+
+ /**
+ * Return whether the calling user is running in an "unlocked" state. A user
+ * is unlocked only after they've entered their credentials (such as a lock
+ * pattern or PIN), and credential-encrypted private app data storage is
+ * available.
+ *
+ * @param context the current context
+ * @return {@code true} if the user is unlocked or context is null, {@code false} otherwise
+ * @throws NullPointerException if context is null
+ */
+ public static boolean isUserUnlocked(Context context) {
+ return android.support.v4.os.UserManagerCompat.isUserUnlocked(context);
+ }
+
+}
diff --git a/src-pre-N/com/android/dialer/SdkSelectionUtils.java b/src-pre-N/com/android/dialer/SdkSelectionUtils.java
new file mode 100644
index 000000000..7e36b332c
--- /dev/null
+++ b/src-pre-N/com/android/dialer/SdkSelectionUtils.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer;
+
+/**
+ * Provides information for the SDK the app is built against.
+ * Specifically, information that change when the TARGET_N_SDK build flag is set in the makefile.
+ * This is not related to the targetSdkVersion value in AndroidManifest.xml.
+ *
+ * Usage case will be branching test code in src/, instead of using src-N/ and src-pre-N/
+ */
+public class SdkSelectionUtils {
+
+ /**
+ * Whether the app is build against N SDK.
+ *
+ * Since Build.VERSION.SDK_INT remains 23 on N SDK for now, this is currently the only way to
+ * check if we are building with N SDK or other.
+ */
+ public static final boolean TARGET_N_SDK = false;
+}
diff --git a/src-pre-N/com/android/dialer/compat/UserManagerSdkCompat.java b/src-pre-N/com/android/dialer/compat/UserManagerSdkCompat.java
new file mode 100644
index 000000000..c79ac2f91
--- /dev/null
+++ b/src-pre-N/com/android/dialer/compat/UserManagerSdkCompat.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+package com.android.dialer.compat;
+
+import android.content.Context;
+import android.util.Log;
+
+/**
+ * UserManagerCompat respecting Sdk requirements
+ */
+public class UserManagerSdkCompat {
+
+ /**
+ * @return {@code true}
+ */
+ public static boolean isUserUnlocked(Context context) {
+ Log.wtf("UserManagerSdkCompat", "Not implemented");
+ return true;
+ }
+
+}
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java
index 56f2cb1dc..56e29a9d7 100644
--- a/src/com/android/dialer/CallDetailActivity.java
+++ b/src/com/android/dialer/CallDetailActivity.java
@@ -16,55 +16,55 @@
package com.android.dialer;
-import android.app.Activity;
-import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
-import android.os.PowerManager;
import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.VoicemailContract.Voicemails;
-import android.telecom.PhoneAccount;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.TelephonyManager;
+import android.support.v7.app.AppCompatActivity;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import android.util.Log;
-import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.MotionEvent;
import android.view.View;
-import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.QuickContactBadge;
import android.widget.TextView;
import android.widget.Toast;
+import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.ClipboardUtils;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
-import com.android.contacts.common.util.PermissionsUtil;
import com.android.contacts.common.GeoUtil;
-import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.interactions.TouchPointManager;
+import com.android.contacts.common.preference.ContactsPreferences;
+import com.android.contacts.common.testing.NeededForTesting;
import com.android.contacts.common.util.UriUtils;
import com.android.dialer.calllog.CallDetailHistoryAdapter;
-import com.android.dialer.calllog.CallLogAsyncTaskUtil.CallLogAsyncTaskListener;
import com.android.dialer.calllog.CallLogAsyncTaskUtil;
+import com.android.dialer.calllog.CallLogAsyncTaskUtil.CallLogAsyncTaskListener;
import com.android.dialer.calllog.CallTypeHelper;
-import com.android.dialer.calllog.ContactInfo;
import com.android.dialer.calllog.ContactInfoHelper;
import com.android.dialer.calllog.PhoneAccountUtils;
-import com.android.dialer.calllog.PhoneNumberDisplayUtil;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
+import com.android.dialer.filterednumber.BlockNumberDialogFragment;
+import com.android.dialer.filterednumber.FilteredNumbersUtil;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
import com.android.dialer.util.DialerUtils;
-import com.android.dialer.util.IntentUtil;
+import com.android.dialer.util.IntentUtil.CallIntentBuilder;
import com.android.dialer.util.PhoneNumberUtil;
import com.android.dialer.util.TelecomUtil;
-
-import java.util.List;
+import com.android.incallui.Call.LogState;
/**
* Displays the details of a specific call log entry.
@@ -72,9 +72,10 @@ import java.util.List;
* This activity can be either started with the URI of a single call log entry, or with the
* {@link #EXTRA_CALL_LOG_IDS} extra to specify a group of call log entries.
*/
-public class CallDetailActivity extends Activity
- implements MenuItem.OnMenuItemClickListener {
- private static final String TAG = "CallDetail";
+public class CallDetailActivity extends AppCompatActivity
+ implements MenuItem.OnMenuItemClickListener, View.OnClickListener,
+ BlockNumberDialogFragment.Callback {
+ private static final String TAG = CallDetailActivity.class.getSimpleName();
/** A long array extra containing ids of call log entries to display. */
public static final String EXTRA_CALL_LOG_IDS = "EXTRA_CALL_LOG_IDS";
@@ -106,31 +107,29 @@ public class CallDetailActivity extends Activity
return;
}
- // We know that all calls are from the same number and the same contact, so pick the
- // first.
- PhoneCallDetails firstDetails = details[0];
- mNumber = TextUtils.isEmpty(firstDetails.number) ?
- null : firstDetails.number.toString();
- final int numberPresentation = firstDetails.numberPresentation;
- final Uri contactUri = firstDetails.contactUri;
- final Uri photoUri = firstDetails.photoUri;
- final PhoneAccountHandle accountHandle = firstDetails.accountHandle;
-
- // Cache the details about the phone number.
- final boolean canPlaceCallsTo =
- PhoneNumberUtil.canPlaceCallsTo(mNumber, numberPresentation);
- mIsVoicemailNumber =
- PhoneNumberUtil.isVoicemailNumber(mContext, accountHandle, mNumber);
- final boolean isSipNumber = PhoneNumberUtil.isSipNumber(mNumber);
+ // All calls are from the same number and same contact, so pick the first detail.
+ mDetails = details[0];
+ mNumber = TextUtils.isEmpty(mDetails.number) ? null : mDetails.number.toString();
+ mPostDialDigits = TextUtils.isEmpty(mDetails.postDialDigits)
+ ? "" : mDetails.postDialDigits;
+ mDisplayNumber = mDetails.displayNumber;
- final CharSequence callLocationOrType = getNumberTypeOrLocation(firstDetails);
+ final CharSequence callLocationOrType = getNumberTypeOrLocation(mDetails);
+
+ final CharSequence displayNumber;
+ if (!TextUtils.isEmpty(mDetails.postDialDigits)) {
+ displayNumber = mDetails.number + mDetails.postDialDigits;
+ } else {
+ displayNumber = mDetails.displayNumber;
+ }
- final CharSequence displayNumber = firstDetails.displayNumber;
final String displayNumberStr = mBidiFormatter.unicodeWrap(
displayNumber.toString(), TextDirectionHeuristics.LTR);
- if (!TextUtils.isEmpty(firstDetails.name)) {
- mCallerName.setText(firstDetails.name);
+ mDetails.nameDisplayOrder = mContactsPreferences.getDisplayOrder();
+
+ if (!TextUtils.isEmpty(mDetails.getPreferredName())) {
+ mCallerName.setText(mDetails.getPreferredName());
mCallerNumber.setText(callLocationOrType + " " + displayNumberStr);
} else {
mCallerName.setText(displayNumberStr);
@@ -142,9 +141,8 @@ public class CallDetailActivity extends Activity
}
}
- mCallButton.setVisibility(canPlaceCallsTo ? View.VISIBLE : View.GONE);
-
- String accountLabel = PhoneAccountUtils.getAccountLabel(mContext, accountHandle);
+ String accountLabel =
+ PhoneAccountUtils.getAccountLabel(mContext, mDetails.accountHandle);
if (!TextUtils.isEmpty(accountLabel)) {
mAccountLabel.setText(accountLabel);
mAccountLabel.setVisibility(View.VISIBLE);
@@ -152,35 +150,33 @@ public class CallDetailActivity extends Activity
mAccountLabel.setVisibility(View.GONE);
}
- mHasEditNumberBeforeCallOption =
- canPlaceCallsTo && !isSipNumber && !mIsVoicemailNumber;
- mHasReportMenuOption = mContactInfoHelper.canReportAsInvalid(
- firstDetails.sourceType, firstDetails.objectId);
- invalidateOptionsMenu();
-
- ListView historyList = (ListView) findViewById(R.id.history);
- historyList.setAdapter(
- new CallDetailHistoryAdapter(mContext, mInflater, mCallTypeHelper, details));
+ final boolean canPlaceCallsTo =
+ PhoneNumberUtil.canPlaceCallsTo(mNumber, mDetails.numberPresentation);
+ mCallButton.setVisibility(canPlaceCallsTo ? View.VISIBLE : View.GONE);
+ mCopyNumberActionItem.setVisibility(canPlaceCallsTo ? View.VISIBLE : View.GONE);
+ mBlockNumberActionItem.setVisibility(canPlaceCallsTo ? View.VISIBLE : View.GONE);
- String lookupKey = contactUri == null ? null
- : UriUtils.getLookupKeyFromUri(contactUri);
+ final boolean isSipNumber = PhoneNumberUtil.isSipNumber(mNumber);
+ final boolean isVoicemailNumber =
+ PhoneNumberUtil.isVoicemailNumber(mContext, mDetails.accountHandle, mNumber);
+ final boolean showEditNumberBeforeCallAction =
+ canPlaceCallsTo && !isSipNumber && !isVoicemailNumber;
+ mEditBeforeCallActionItem.setVisibility(
+ showEditNumberBeforeCallAction ? View.VISIBLE : View.GONE);
+
+ final boolean showReportAction = mContactInfoHelper.canReportAsInvalid(
+ mDetails.sourceType, mDetails.objectId);
+ mReportActionItem.setVisibility(
+ showReportAction ? View.VISIBLE : View.GONE);
- final boolean isBusiness = mContactInfoHelper.isBusiness(firstDetails.sourceType);
+ invalidateOptionsMenu();
- final int contactType =
- mIsVoicemailNumber ? ContactPhotoManager.TYPE_VOICEMAIL :
- isBusiness ? ContactPhotoManager.TYPE_BUSINESS :
- ContactPhotoManager.TYPE_DEFAULT;
+ mHistoryList.setAdapter(
+ new CallDetailHistoryAdapter(mContext, mInflater, mCallTypeHelper, details));
- String nameForDefaultImage;
- if (TextUtils.isEmpty(firstDetails.name)) {
- nameForDefaultImage = firstDetails.displayNumber;
- } else {
- nameForDefaultImage = firstDetails.name.toString();
- }
+ updateFilteredNumberChanges();
+ updateContactPhoto();
- loadContactPhotos(
- contactUri, photoUri, nameForDefaultImage, lookupKey, contactType);
findViewById(R.id.call_detail).setVisibility(View.VISIBLE);
}
@@ -192,7 +188,7 @@ public class CallDetailActivity extends Activity
* @return The phone number type or location.
*/
private CharSequence getNumberTypeOrLocation(PhoneCallDetails details) {
- if (!TextUtils.isEmpty(details.name)) {
+ if (!TextUtils.isEmpty(details.namePrimary)) {
return Phone.getTypeLabel(mResources, details.numberType,
details.numberLabel);
} else {
@@ -202,64 +198,92 @@ public class CallDetailActivity extends Activity
};
private Context mContext;
+ private ContactInfoHelper mContactInfoHelper;
+ private ContactsPreferences mContactsPreferences;
private CallTypeHelper mCallTypeHelper;
+ private ContactPhotoManager mContactPhotoManager;
+ private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
+ private BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
+ private LayoutInflater mInflater;
+ private Resources mResources;
+
+ private PhoneCallDetails mDetails;
+ protected String mNumber;
+ private Uri mVoicemailUri;
+ private String mPostDialDigits = "";
+ private String mDisplayNumber;
+
+ private ListView mHistoryList;
private QuickContactBadge mQuickContactBadge;
private TextView mCallerName;
private TextView mCallerNumber;
private TextView mAccountLabel;
private View mCallButton;
- private ContactInfoHelper mContactInfoHelper;
-
- protected String mNumber;
- private boolean mIsVoicemailNumber;
- private String mDefaultCountryIso;
-
- /* package */ LayoutInflater mInflater;
- /* package */ Resources mResources;
- /** Helper to load contact photos. */
- private ContactPhotoManager mContactPhotoManager;
- private Uri mVoicemailUri;
- private BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
+ private TextView mBlockNumberActionItem;
+ private View mEditBeforeCallActionItem;
+ private View mReportActionItem;
+ private View mCopyNumberActionItem;
- /** Whether we should show "edit number before call" in the options menu. */
- private boolean mHasEditNumberBeforeCallOption;
- private boolean mHasReportMenuOption;
+ private Integer mBlockedNumberId;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
mContext = this;
-
- setContentView(R.layout.call_detail);
-
- mInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
mResources = getResources();
-
+ mContactInfoHelper = new ContactInfoHelper(this, GeoUtil.getCurrentCountryIso(this));
+ mContactsPreferences = new ContactsPreferences(mContext);
mCallTypeHelper = new CallTypeHelper(getResources());
+ mFilteredNumberAsyncQueryHandler =
+ new FilteredNumberAsyncQueryHandler(getContentResolver());
mVoicemailUri = getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+
+ setContentView(R.layout.call_detail);
+ mInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
+
+ mHistoryList = (ListView) findViewById(R.id.history);
+ mHistoryList.addHeaderView(mInflater.inflate(R.layout.call_detail_header, null));
+ mHistoryList.addFooterView(
+ mInflater.inflate(R.layout.call_detail_footer, null), null, false);
+
mQuickContactBadge = (QuickContactBadge) findViewById(R.id.quick_contact_photo);
mQuickContactBadge.setOverlay(null);
- mQuickContactBadge.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
+ if (CompatUtils.hasPrioritizedMimeType()) {
+ mQuickContactBadge.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
+ }
mCallerName = (TextView) findViewById(R.id.caller_name);
mCallerNumber = (TextView) findViewById(R.id.caller_number);
mAccountLabel = (TextView) findViewById(R.id.phone_account_label);
- mDefaultCountryIso = GeoUtil.getCurrentCountryIso(this);
mContactPhotoManager = ContactPhotoManager.getInstance(this);
- mCallButton = (View) findViewById(R.id.call_back_button);
+ mCallButton = findViewById(R.id.call_back_button);
mCallButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- mContext.startActivity(IntentUtil.getCallIntent(mNumber));
+ if (TextUtils.isEmpty(mNumber)) {
+ return;
+ }
+ mContext.startActivity(
+ new CallIntentBuilder(getDialableNumber())
+ .setCallInitiationType(LogState.INITIATION_CALL_DETAILS)
+ .build());
}
});
- mContactInfoHelper = new ContactInfoHelper(this, GeoUtil.getCurrentCountryIso(this));
- getActionBar().setDisplayHomeAsUpEnabled(true);
+ mBlockNumberActionItem = (TextView) findViewById(R.id.call_detail_action_block);
+ mBlockNumberActionItem.setOnClickListener(this);
+ mEditBeforeCallActionItem = findViewById(R.id.call_detail_action_edit_before_call);
+ mEditBeforeCallActionItem.setOnClickListener(this);
+ mReportActionItem = findViewById(R.id.call_detail_action_report);
+ mReportActionItem.setOnClickListener(this);
+
+ mCopyNumberActionItem = findViewById(R.id.call_detail_action_copy);
+ mCopyNumberActionItem.setOnClickListener(this);
if (getIntent().getBooleanExtra(EXTRA_FROM_NOTIFICATION, false)) {
closeSystemDialogs();
@@ -269,15 +293,20 @@ public class CallDetailActivity extends Activity
@Override
public void onResume() {
super.onResume();
+ mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
getCallDetails();
}
- public void getCallDetails() {
- CallLogAsyncTaskUtil.getCallDetails(this, getCallLogEntryUris(), mCallLogAsyncTaskListener);
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent ev) {
+ if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+ TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY());
+ }
+ return super.dispatchTouchEvent(ev);
}
- private boolean hasVoicemail() {
- return mVoicemailUri != null;
+ public void getCallDetails() {
+ CallLogAsyncTaskUtil.getCallDetails(this, getCallLogEntryUris(), mCallLogAsyncTaskListener);
}
/**
@@ -304,72 +333,163 @@ public class CallDetailActivity extends Activity
return uris;
}
- /** Load the contact photos and places them in the corresponding views. */
- private void loadContactPhotos(Uri contactUri, Uri photoUri, String displayName,
- String lookupKey, int contactType) {
-
- final DefaultImageRequest request = new DefaultImageRequest(displayName, lookupKey,
- contactType, true /* isCircular */);
-
- mQuickContactBadge.assignContactUri(contactUri);
- mQuickContactBadge.setContentDescription(
- mResources.getString(R.string.description_contact_details, displayName));
-
- mContactPhotoManager.loadDirectoryPhoto(mQuickContactBadge, photoUri,
- false /* darkTheme */, true /* isCircular */, request);
- }
-
@Override
public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.call_details_options, menu);
- return super.onCreateOptionsMenu(menu);
- }
+ final MenuItem deleteMenuItem = menu.add(
+ Menu.NONE,
+ R.id.call_detail_delete_menu_item,
+ Menu.NONE,
+ R.string.call_details_delete);
+ deleteMenuItem.setIcon(R.drawable.ic_delete_24dp);
+ deleteMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+ deleteMenuItem.setOnMenuItemClickListener(this);
- @Override
- public boolean onPrepareOptionsMenu(Menu menu) {
- // This action deletes all elements in the group from the call log.
- // We don't have this action for voicemails, because you can just use the trash button.
- menu.findItem(R.id.menu_remove_from_call_log)
- .setVisible(!hasVoicemail())
- .setOnMenuItemClickListener(this);
- menu.findItem(R.id.menu_edit_number_before_call)
- .setVisible(mHasEditNumberBeforeCallOption)
- .setOnMenuItemClickListener(this);
- menu.findItem(R.id.menu_trash)
- .setVisible(hasVoicemail())
- .setOnMenuItemClickListener(this);
- menu.findItem(R.id.menu_report)
- .setVisible(mHasReportMenuOption)
- .setOnMenuItemClickListener(this);
- return super.onPrepareOptionsMenu(menu);
+ return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
- case R.id.menu_remove_from_call_log:
- final StringBuilder callIds = new StringBuilder();
- for (Uri callUri : getCallLogEntryUris()) {
- if (callIds.length() != 0) {
- callIds.append(",");
+ case R.id.call_detail_delete_menu_item:
+ if (hasVoicemail()) {
+ CallLogAsyncTaskUtil.deleteVoicemail(
+ this, mVoicemailUri, mCallLogAsyncTaskListener);
+ } else {
+ final StringBuilder callIds = new StringBuilder();
+ for (Uri callUri : getCallLogEntryUris()) {
+ if (callIds.length() != 0) {
+ callIds.append(",");
+ }
+ callIds.append(ContentUris.parseId(callUri));
}
- callIds.append(ContentUris.parseId(callUri));
+ CallLogAsyncTaskUtil.deleteCalls(
+ this, callIds.toString(), mCallLogAsyncTaskListener);
}
- CallLogAsyncTaskUtil.deleteCalls(
- this, callIds.toString(), mCallLogAsyncTaskListener);
break;
- case R.id.menu_edit_number_before_call:
- startActivity(new Intent(Intent.ACTION_DIAL, CallUtil.getCallUri(mNumber)));
+ }
+ return true;
+ }
+
+ @Override
+ public void onClick(View view) {
+ switch(view.getId()) {
+ case R.id.call_detail_action_block:
+ BlockNumberDialogFragment.show(
+ mBlockedNumberId,
+ mNumber,
+ mDetails.countryIso,
+ mDisplayNumber,
+ R.id.call_detail,
+ getFragmentManager(),
+ this);
+ break;
+ case R.id.call_detail_action_copy:
+ ClipboardUtils.copyText(mContext, null, mNumber, true);
break;
- case R.id.menu_trash:
- CallLogAsyncTaskUtil.deleteVoicemail(
- this, mVoicemailUri, mCallLogAsyncTaskListener);
+ case R.id.call_detail_action_edit_before_call:
+ Intent dialIntent = new Intent(Intent.ACTION_DIAL,
+ CallUtil.getCallUri(getDialableNumber()));
+ DialerUtils.startActivityWithErrorToast(mContext, dialIntent);
+ break;
+ default:
+ Log.wtf(TAG, "Unexpected onClick event from " + view);
break;
}
- return true;
+ }
+
+ @Override
+ public void onFilterNumberSuccess() {
+ Logger.logInteraction(InteractionEvent.BLOCK_NUMBER_CALL_DETAIL);
+ updateFilteredNumberChanges();
+ }
+
+ @Override
+ public void onUnfilterNumberSuccess() {
+ Logger.logInteraction(InteractionEvent.UNBLOCK_NUMBER_CALL_DETAIL);
+ updateFilteredNumberChanges();
+ }
+
+ @Override
+ public void onChangeFilteredNumberUndo() {
+ updateFilteredNumberChanges();
+ }
+
+ private void updateFilteredNumberChanges() {
+ if (mDetails == null ||
+ !FilteredNumbersUtil.canBlockNumber(this, mNumber, mDetails.countryIso)) {
+ return;
+ }
+
+ final boolean success = mFilteredNumberAsyncQueryHandler.isBlockedNumber(
+ new OnCheckBlockedListener() {
+ @Override
+ public void onCheckComplete(Integer id) {
+ mBlockedNumberId = id;
+ updateBlockActionItem();
+ }
+ }, mNumber, mDetails.countryIso);
+
+ if (!success) {
+ updateBlockActionItem();
+ }
+ }
+
+ // Loads and displays the contact photo.
+ private void updateContactPhoto() {
+ if (mDetails == null) {
+ return;
+ }
+
+ final boolean isVoicemailNumber =
+ PhoneNumberUtil.isVoicemailNumber(mContext, mDetails.accountHandle, mNumber);
+ final boolean isBusiness = mContactInfoHelper.isBusiness(mDetails.sourceType);
+ int contactType = ContactPhotoManager.TYPE_DEFAULT;
+ if (isVoicemailNumber) {
+ contactType = ContactPhotoManager.TYPE_VOICEMAIL;
+ } else if (isBusiness) {
+ contactType = ContactPhotoManager.TYPE_BUSINESS;
+ }
+
+ final String displayName = TextUtils.isEmpty(mDetails.namePrimary)
+ ? mDetails.displayNumber : mDetails.namePrimary.toString();
+ final String lookupKey = mDetails.contactUri == null
+ ? null : UriUtils.getLookupKeyFromUri(mDetails.contactUri);
+
+ final DefaultImageRequest request =
+ new DefaultImageRequest(displayName, lookupKey, contactType, true /* isCircular */);
+
+ mQuickContactBadge.assignContactUri(mDetails.contactUri);
+ mQuickContactBadge.setContentDescription(
+ mResources.getString(R.string.description_contact_details, displayName));
+
+ mContactPhotoManager.loadDirectoryPhoto(mQuickContactBadge, mDetails.photoUri,
+ false /* darkTheme */, true /* isCircular */, request);
+ }
+
+ private void updateBlockActionItem() {
+ if (mBlockedNumberId == null) {
+ mBlockNumberActionItem.setText(R.string.action_block_number);
+ mBlockNumberActionItem.setCompoundDrawablesRelativeWithIntrinsicBounds(
+ R.drawable.ic_call_detail_block, 0, 0, 0);
+ } else {
+ mBlockNumberActionItem.setText(R.string.action_unblock_number);
+ mBlockNumberActionItem.setCompoundDrawablesRelativeWithIntrinsicBounds(
+ R.drawable.ic_call_detail_unblock, 0, 0, 0);
+ }
+
+ mBlockNumberActionItem.setVisibility(View.VISIBLE);
}
private void closeSystemDialogs() {
sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
}
+
+ private String getDialableNumber() {
+ return mNumber + mPostDialDigits;
+ }
+
+ @NeededForTesting
+ public boolean hasVoicemail() {
+ return mVoicemailUri != null;
+ }
}
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java
index 69cc14673..72753bea4 100644
--- a/src/com/android/dialer/DialtactsActivity.java
+++ b/src/com/android/dialer/DialtactsActivity.java
@@ -16,7 +16,8 @@
package com.android.dialer;
-import android.app.ActionBar;
+import com.google.common.annotations.VisibleForTesting;
+
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.content.ActivityNotFoundException;
@@ -31,9 +32,10 @@ import android.os.Bundle;
import android.os.Trace;
import android.provider.CallLog.Calls;
import android.speech.RecognizerIntent;
+import android.support.design.widget.CoordinatorLayout;
import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
import android.telecom.PhoneAccount;
-import android.telecom.TelecomManager;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -46,18 +48,16 @@ import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnDragListener;
-import android.view.View.OnTouchListener;
import android.view.ViewTreeObserver;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.AbsListView.OnScrollListener;
import android.widget.EditText;
-import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.PopupMenu;
+import android.widget.TextView;
import android.widget.Toast;
-import com.android.contacts.common.activity.TransactionSafeActivity;
import com.android.contacts.common.dialog.ClearFrequentsDialog;
import com.android.contacts.common.interactions.ImportExportDialogFragment;
import com.android.contacts.common.interactions.TouchPointManager;
@@ -81,13 +81,17 @@ import com.android.dialer.list.RegularSearchFragment;
import com.android.dialer.list.SearchFragment;
import com.android.dialer.list.SmartDialSearchFragment;
import com.android.dialer.list.SpeedDialFragment;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.settings.DialerSettingsActivity;
-import com.android.dialer.util.IntentUtil;
import com.android.dialer.util.DialerUtils;
+import com.android.dialer.util.IntentUtil;
+import com.android.dialer.util.IntentUtil.CallIntentBuilder;
+import com.android.dialer.util.TelecomUtil;
import com.android.dialer.widget.ActionBarController;
import com.android.dialer.widget.SearchEditTextLayout;
-import com.android.dialer.widget.SearchEditTextLayout.Callback;
import com.android.dialerbind.DatabaseHelperManager;
+import com.android.dialerbind.ObjectFactory;
import com.android.phone.common.animation.AnimUtils;
import com.android.phone.common.animation.AnimationListenerAdapter;
@@ -118,17 +122,14 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
public static final String SHARED_PREFS_NAME = "com.android.dialer_preferences";
- /** @see #getCallOrigin() */
- private static final String CALL_ORIGIN_DIALTACTS =
- "com.android.dialer.DialtactsActivity";
-
private static final String KEY_IN_REGULAR_SEARCH_UI = "in_regular_search_ui";
private static final String KEY_IN_DIALPAD_SEARCH_UI = "in_dialpad_search_ui";
private static final String KEY_SEARCH_QUERY = "search_query";
private static final String KEY_FIRST_LAUNCH = "first_launch";
private static final String KEY_IS_DIALPAD_SHOWN = "is_dialpad_shown";
- private static final String TAG_DIALPAD_FRAGMENT = "dialpad";
+ @VisibleForTesting
+ public static final String TAG_DIALPAD_FRAGMENT = "dialpad";
private static final String TAG_REGULAR_SEARCH_FRAGMENT = "search";
private static final String TAG_SMARTDIAL_SEARCH_FRAGMENT = "smartdial";
private static final String TAG_FAVORITES_FRAGMENT = "favorites";
@@ -143,7 +144,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
private static final int FAB_SCALE_IN_DELAY_MS = 300;
- private FrameLayout mParentLayout;
+ private CoordinatorLayout mParentLayout;
/**
* Fragment containing the dialpad that slides into view
@@ -188,7 +189,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
};
/**
- * Fragment containing the speed dial list, recents list, and all contacts list.
+ * Fragment containing the speed dial list, call history list, and all contacts list.
*/
private ListsFragment mListsFragment;
@@ -230,6 +231,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
private View mVoiceSearchButton;
private String mSearchQuery;
+ private String mDialpadQuery;
private DialerDatabaseHelper mDialerDatabaseHelper;
private DragDropController mDragDropController;
@@ -369,7 +371,6 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
TouchPointManager.getInstance().setPoint((int) ev.getRawX(), (int) ev.getRawY());
}
return super.dispatchTouchEvent(ev);
-
}
@Override
@@ -388,13 +389,13 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
getWindow().setBackgroundDrawable(null);
Trace.beginSection(TAG + " setup Views");
- final ActionBar actionBar = getActionBar();
+ final ActionBar actionBar = getSupportActionBar();
actionBar.setCustomView(R.layout.search_edittext);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setBackgroundDrawable(null);
- SearchEditTextLayout searchEditTextLayout =
- (SearchEditTextLayout) actionBar.getCustomView().findViewById(R.id.search_view_container);
+ SearchEditTextLayout searchEditTextLayout = (SearchEditTextLayout) actionBar
+ .getCustomView().findViewById(R.id.search_view_container);
searchEditTextLayout.setPreImeKeyListener(mSearchEditTextLayoutListener);
mActionBarController = new ActionBarController(this, searchEditTextLayout);
@@ -468,7 +469,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
mSlideIn.setAnimationListener(mSlideInListener);
mSlideOut.setAnimationListener(mSlideOutListener);
- mParentLayout = (FrameLayout) findViewById(R.id.dialtacts_mainlayout);
+ mParentLayout = (CoordinatorLayout) findViewById(R.id.dialtacts_mainlayout);
mParentLayout.setOnDragListener(new LayoutOnDragListener());
floatingActionButtonContainer.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@@ -527,7 +528,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
// 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
if (mIsDialpadShown) {
- AnalyticsUtil.sendScreenView(mDialpadFragment, this);
+ Logger.logScreenView(ScreenEvent.DIALPAD, this);
}
mIsRestarting = false;
}
@@ -536,15 +537,25 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
mDialerDatabaseHelper.startSmartDialUpdateThread();
mFloatingActionButtonController.align(getFabAlignment(), false /* animate */);
- if (getIntent().hasExtra(EXTRA_SHOW_TAB)) {
+ 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(ListsFragment.TAB_INDEX_VOICEMAIL);
+ } else {
+ mListsFragment.showTab(ListsFragment.TAB_INDEX_HISTORY);
+ }
+ } else if (getIntent().hasExtra(EXTRA_SHOW_TAB)) {
int index = getIntent().getIntExtra(EXTRA_SHOW_TAB, ListsFragment.TAB_INDEX_SPEED_DIAL);
if (index < mListsFragment.getTabCount()) {
mListsFragment.showTab(index);
}
- } else if (Calls.CONTENT_TYPE.equals(getIntent().getType())) {
- mListsFragment.showTab(ListsFragment.TAB_INDEX_RECENTS);
}
+ setSearchBoxHint();
+
Trace.endSection();
}
@@ -590,6 +601,9 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
} else if (fragment instanceof SmartDialSearchFragment) {
mSmartDialSearchFragment = (SmartDialSearchFragment) fragment;
mSmartDialSearchFragment.setOnPhoneNumberPickerActionListener(this);
+ if (!TextUtils.isEmpty(mDialpadQuery)) {
+ mSmartDialSearchFragment.setAddToContactNumber(mDialpadQuery);
+ }
} else if (fragment instanceof SearchFragment) {
mRegularSearchFragment = (RegularSearchFragment) fragment;
mRegularSearchFragment.setOnPhoneNumberPickerActionListener(this);
@@ -640,6 +654,10 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
@Override
public boolean onMenuItemClick(MenuItem item) {
+ if (!isSafeToCommitTransactions()) {
+ return true;
+ }
+
switch (item.getItemId()) {
case R.id.menu_history:
// Use explicit CallLogActivity intent instead of ACTION_VIEW +
@@ -658,14 +676,22 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
// involve querying a {@link ProviderStatusLoader}, which we don't want to do right
// now in Dialtacts for (potential) performance reasons. Compare with how it is
// done in {@link PeopleActivity}.
- ImportExportDialogFragment.show(getFragmentManager(), true,
- DialtactsActivity.class);
+ if (mListsFragment.getCurrentTabIndex() == ListsFragment.TAB_INDEX_SPEED_DIAL) {
+ ImportExportDialogFragment.show(getFragmentManager(), true,
+ DialtactsActivity.class, ImportExportDialogFragment.EXPORT_MODE_FAVORITES);
+ } else {
+ ImportExportDialogFragment.show(getFragmentManager(), true,
+ DialtactsActivity.class, ImportExportDialogFragment.EXPORT_MODE_DEFAULT);
+ }
+ Logger.logScreenView(ScreenEvent.IMPORT_EXPORT_CONTACTS, this);
return true;
case R.id.menu_clear_frequents:
ClearFrequentsDialog.show(getFragmentManager());
+ Logger.logScreenView(ScreenEvent.CLEAR_FREQUENTS, this);
return true;
case R.id.menu_call_settings:
handleMenuSettings();
+ Logger.logScreenView(ScreenEvent.SETTINGS, this);
return true;
}
return false;
@@ -691,6 +717,14 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
}
/**
+ * Update the number of unread voicemails (potentially other tabs) displayed next to the tab
+ * icon.
+ */
+ public void updateTabUnreadCounts() {
+ mListsFragment.updateTabUnreadCounts();
+ }
+
+ /**
* Initiates a fragment transaction to show the dialpad fragment. Animations and other visual
* updates are handled by a callback which is invoked after the dialpad fragment is shown.
* @see #onDialpadShown
@@ -712,7 +746,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
}
mDialpadFragment.setAnimate(animate);
- AnalyticsUtil.sendScreenView(mDialpadFragment);
+ Logger.logScreenView(ScreenEvent.DIALPAD, this);
ft.commit();
if (animate) {
@@ -724,6 +758,9 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
mActionBarController.onDialpadUp();
mListsFragment.getView().animate().alpha(0).withLayer();
+
+ //adjust the title, so the user will know where we're at when the activity start/resumes.
+ setTitle(R.string.launcherDialpadActivityLabel);
}
/**
@@ -750,7 +787,13 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
return;
}
if (clearDialpad) {
+ // Temporarily disable accessibility when we clear the dialpad, since it should be
+ // invisible and should not announce anything.
+ mDialpadFragment.getDigitsWidget().setImportantForAccessibility(
+ View.IMPORTANT_FOR_ACCESSIBILITY_NO);
mDialpadFragment.clearDialpad();
+ mDialpadFragment.getDigitsWidget().setImportantForAccessibility(
+ View.IMPORTANT_FOR_ACCESSIBILITY_AUTO);
}
if (!mIsDialpadShown) {
return;
@@ -776,6 +819,8 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
exitSearchUi();
}
}
+ //reset the title to normal.
+ setTitle(R.string.launcherActivityLabel);
}
/**
@@ -840,6 +885,24 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
}
}
+ public boolean isNearbyPlacesSearchEnabled() {
+ return false;
+ }
+
+ protected int getSearchBoxHint () {
+ return R.string.dialer_hint_find_contact;
+ }
+
+ /**
+ * Sets the hint text for the contacts search box
+ */
+ private void setSearchBoxHint() {
+ SearchEditTextLayout searchEditTextLayout = (SearchEditTextLayout) getSupportActionBar()
+ .getCustomView().findViewById(R.id.search_view_container);
+ ((TextView) searchEditTextLayout.findViewById(R.id.search_box_start_search))
+ .setHint(getSearchBoxHint());
+ }
+
protected OptionsPopupMenu buildOptionsMenu(View invoker) {
final OptionsPopupMenu popupMenu = new OptionsPopupMenu(this, invoker);
popupMenu.inflate(R.menu.dialtacts_options);
@@ -872,7 +935,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
final boolean callKey = Intent.ACTION_CALL_BUTTON.equals(intent.getAction());
if (callKey) {
- getTelecomManager().showInCallScreen(false);
+ TelecomUtil.showInCallScreen(this, false);
return true;
}
@@ -891,11 +954,11 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
return;
}
- final boolean phoneIsInUse = phoneIsInUse();
- if (phoneIsInUse || (intent.getData() != null && isDialIntent(intent))) {
+ final boolean showDialpadChooser = phoneIsInUse() && !DialpadFragment.isAddCallMode(intent);
+ if (showDialpadChooser || (intent.getData() != null && isDialIntent(intent))) {
showDialpadFragment(false);
mDialpadFragment.setStartedFromNewIntent(true);
- if (phoneIsInUse && !mDialpadFragment.isVisible()) {
+ if (showDialpadChooser && !mDialpadFragment.isVisible()) {
mInCallDialpadUp = true;
}
}
@@ -927,16 +990,6 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
}
/**
- * Returns an appropriate call origin for this Activity. May return null when no call origin
- * should be used (e.g. when some 3rd party application launched the screen. Call origin is
- * for remembering the tab in which the user made a phone call, so the external app's DIAL
- * request should not be counted.)
- */
- public String getCallOrigin() {
- return !isDialIntent(getIntent()) ? CALL_ORIGIN_DIALTACTS : null;
- }
-
- /**
* Shows the search fragment
*/
private void enterSearchUi(boolean smartDialSearch, String query, boolean animate) {
@@ -979,12 +1032,13 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
if (smartDialSearch) {
fragment = new SmartDialSearchFragment();
} else {
- fragment = new RegularSearchFragment();
+ fragment = ObjectFactory.newRegularSearchFragment();
fragment.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// Show the FAB when the user touches the lists fragment and the soft
// keyboard is hidden.
+ hideDialpadFragment(true, false);
showFabInSearchUi();
return false;
}
@@ -1006,6 +1060,12 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
mListsFragment.getView().animate().alpha(0).withLayer();
}
mListsFragment.setUserVisibleHint(false);
+
+ if (smartDialSearch) {
+ Logger.logScreenView(ScreenEvent.SMART_DIAL_SEARCH, this);
+ } else {
+ Logger.logScreenView(ScreenEvent.REGULAR_SEARCH, this);
+ }
}
/**
@@ -1103,6 +1163,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
@Override
public void onDialpadQueryChanged(String query) {
+ mDialpadQuery = query;
if (mSmartDialSearchFragment != null) {
mSmartDialSearchFragment.setAddToContactNumber(query);
}
@@ -1162,7 +1223,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
}
private boolean phoneIsInUse() {
- return getTelecomManager().isInCall();
+ return TelecomUtil.isInCall(this);
}
private boolean canIntentBeHandled(Intent intent) {
@@ -1224,29 +1285,25 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
}
@Override
- public void onPickPhoneNumberAction(Uri dataUri) {
- // Specify call-origin so that users will see the previous tab instead of
- // CallLog screen (search UI will be automatically exited).
- PhoneNumberInteraction.startInteractionForPhoneCall(
- DialtactsActivity.this, dataUri, getCallOrigin());
+ public void onPickDataUri(Uri dataUri, boolean isVideoCall, int callInitiationType) {
mClearSearchOnPause = true;
+ PhoneNumberInteraction.startInteractionForPhoneCall(
+ DialtactsActivity.this, dataUri, isVideoCall, callInitiationType);
}
@Override
- public void onCallNumberDirectly(String phoneNumber) {
- onCallNumberDirectly(phoneNumber, false /* isVideoCall */);
- }
-
- @Override
- public void onCallNumberDirectly(String phoneNumber, boolean isVideoCall) {
+ public void onPickPhoneNumber(String phoneNumber, boolean isVideoCall, int callInitiationType) {
if (phoneNumber == null) {
// Invalid phone number, but let the call go through so that InCallUI can show
// an error message.
phoneNumber = "";
}
- Intent intent = isVideoCall ?
- IntentUtil.getVideoCallIntent(phoneNumber, getCallOrigin()) :
- IntentUtil.getCallIntent(phoneNumber, getCallOrigin());
+
+ final Intent intent = new CallIntentBuilder(phoneNumber)
+ .setIsVideoCall(isVideoCall)
+ .setCallInitiationType(callInitiationType)
+ .build();
+
DialerUtils.startActivityWithErrorToast(this, intent);
mClearSearchOnPause = true;
}
@@ -1265,13 +1322,13 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
int tabIndex = mListsFragment.getCurrentTabIndex();
- // Scroll the button from center to end when moving from the Speed Dial to Recents tab.
- // In RTL, scroll when the current tab is Recents instead of Speed Dial, because the order
- // of the tabs is reversed and the ViewPager returns the left tab position during scroll.
+ // Scroll the button from center to end when moving from the Speed Dial to Call History tab.
+ // In RTL, scroll when the current tab is Call History instead, since the order of the tabs
+ // is reversed and the ViewPager returns the left tab position during scroll.
boolean isRtl = DialerUtils.isRtl();
if (!isRtl && tabIndex == ListsFragment.TAB_INDEX_SPEED_DIAL && !mIsLandscape) {
mFloatingActionButtonController.onPageScrolled(positionOffset);
- } else if (isRtl && tabIndex == ListsFragment.TAB_INDEX_RECENTS && !mIsLandscape) {
+ } else if (isRtl && tabIndex == ListsFragment.TAB_INDEX_HISTORY && !mIsLandscape) {
mFloatingActionButtonController.onPageScrolled(1 - positionOffset);
} else if (tabIndex != ListsFragment.TAB_INDEX_SPEED_DIAL) {
mFloatingActionButtonController.onPageScrolled(1);
@@ -1296,10 +1353,6 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
public void onPageScrollStateChanged(int state) {
}
- private TelecomManager getTelecomManager() {
- return (TelecomManager) getSystemService(Context.TELECOM_SERVICE);
- }
-
@Override
public boolean isActionBarShowing() {
return mActionBarController.isActionBarShowing();
@@ -1325,12 +1378,12 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O
@Override
public int getActionBarHideOffset() {
- return getActionBar().getHideOffset();
+ return getSupportActionBar().getHideOffset();
}
@Override
public void setActionBarHideOffset(int offset) {
- getActionBar().setHideOffset(offset);
+ getSupportActionBar().setHideOffset(offset);
}
@Override
diff --git a/src/com/android/dialer/FloatingActionButtonBehavior.java b/src/com/android/dialer/FloatingActionButtonBehavior.java
new file mode 100644
index 000000000..679c9a7c1
--- /dev/null
+++ b/src/com/android/dialer/FloatingActionButtonBehavior.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer;
+
+import android.content.Context;
+import android.support.design.widget.CoordinatorLayout;
+import android.support.design.widget.Snackbar.SnackbarLayout;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.FrameLayout;
+
+/**
+ * Implements custom behavior for the movement of the FAB in response to the Snackbar.
+ * Because we are not using the design framework FloatingActionButton widget, we need to manually
+ * implement the Material Design behavior of having the FAB translate upward and downward with
+ * the appearance and disappearance of a Snackbar.
+ */
+public class FloatingActionButtonBehavior extends CoordinatorLayout.Behavior<FrameLayout> {
+ public FloatingActionButtonBehavior(Context context, AttributeSet attrs) {
+ }
+
+ @Override
+ public boolean layoutDependsOn(CoordinatorLayout parent, FrameLayout child, View dependency) {
+ return dependency instanceof SnackbarLayout;
+ }
+
+ @Override
+ public boolean onDependentViewChanged(CoordinatorLayout parent, FrameLayout child,
+ View dependency) {
+ float translationY = Math.min(0, dependency.getTranslationY() - dependency.getHeight());
+ child.setTranslationY(translationY);
+ return true;
+ }
+}
diff --git a/src/com/android/dialer/PhoneCallDetails.java b/src/com/android/dialer/PhoneCallDetails.java
index 403c4e86c..b332b43cc 100644
--- a/src/com/android/dialer/PhoneCallDetails.java
+++ b/src/com/android/dialer/PhoneCallDetails.java
@@ -16,12 +16,15 @@
package com.android.dialer;
+import com.android.contacts.common.ContactsUtils.UserType;
+import com.android.contacts.common.preference.ContactsPreferences;
import com.android.dialer.calllog.PhoneNumberDisplayUtil;
import android.content.Context;
import android.net.Uri;
import android.provider.CallLog.Calls;
import android.telecom.PhoneAccountHandle;
+import android.text.TextUtils;
/**
* The details of a phone call to be shown in the UI.
@@ -29,6 +32,8 @@ import android.telecom.PhoneAccountHandle;
public class PhoneCallDetails {
// The number of the other party involved in the call.
public CharSequence number;
+ // Post-dial digits associated with the outgoing call.
+ public String postDialDigits;
// The number presenting rules set by the network, e.g., {@link Calls#PRESENTATION_ALLOWED}
public int numberPresentation;
// The formatted version of {@link #number}.
@@ -50,7 +55,14 @@ public class PhoneCallDetails {
// The duration of the call in milliseconds, or 0 for missed calls.
public long duration;
// The name of the contact, or the empty string.
- public CharSequence name;
+ public CharSequence namePrimary;
+ // The alternative name of the contact, e.g. last name first, or the empty string
+ public CharSequence nameAlternative;
+ /**
+ * The user's preference on name display order, last name first or first time first.
+ * {@see ContactsPreferences}
+ */
+ public int nameDisplayOrder;
// The type of phone, e.g., {@link Phone#TYPE_HOME}, 0 if not available.
public int numberType;
// The custom label associated with the phone number in the contact, or the empty string.
@@ -90,6 +102,9 @@ public class PhoneCallDetails {
// Whether the contact number is a voicemail number.
public boolean isVoicemail;
+ /** The {@link UserType} of the contact */
+ public @UserType long contactUserType;
+
/**
* If this is a voicemail, whether the message is read. For other types of calls, this defaults
* to {@code true}.
@@ -105,16 +120,33 @@ public class PhoneCallDetails {
CharSequence number,
int numberPresentation,
CharSequence formattedNumber,
+ CharSequence postDialDigits,
boolean isVoicemail) {
this.number = number;
this.numberPresentation = numberPresentation;
this.formattedNumber = formattedNumber;
this.isVoicemail = isVoicemail;
+ this.postDialDigits = postDialDigits.toString();
this.displayNumber = PhoneNumberDisplayUtil.getDisplayNumber(
context,
this.number,
this.numberPresentation,
this.formattedNumber,
+ this.postDialDigits,
this.isVoicemail).toString();
}
+
+ /**
+ * Returns the preferred name for the call details as specified by the
+ * {@link #nameDisplayOrder}
+ *
+ * @return the preferred name
+ */
+ public CharSequence getPreferredName() {
+ if (nameDisplayOrder == ContactsPreferences.DISPLAY_ORDER_PRIMARY
+ || TextUtils.isEmpty(nameAlternative)) {
+ return namePrimary;
+ }
+ return nameAlternative;
+ }
}
diff --git a/src/com/android/dialer/SpecialCharSequenceMgr.java b/src/com/android/dialer/SpecialCharSequenceMgr.java
index 31aa5c3c7..4303f3e1f 100644
--- a/src/com/android/dialer/SpecialCharSequenceMgr.java
+++ b/src/com/android/dialer/SpecialCharSequenceMgr.java
@@ -32,7 +32,6 @@ import android.os.Looper;
import android.provider.Settings;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
@@ -42,13 +41,15 @@ import android.widget.EditText;
import android.widget.Toast;
import com.android.common.io.MoreCloseables;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.compat.TelephonyManagerCompat;
import com.android.contacts.common.database.NoNullCursorAsyncQueryHandler;
+import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment;
import com.android.contacts.common.widget.SelectPhoneAccountDialogFragment.SelectPhoneAccountListener;
import com.android.dialer.calllog.PhoneAccountUtils;
import com.android.dialer.util.TelecomUtil;
-import java.util.Arrays;
import java.util.ArrayList;
import java.util.List;
@@ -91,13 +92,13 @@ public class SpecialCharSequenceMgr {
private static QueryHandler sPreviousAdnQueryHandler;
public static class HandleAdnEntryAccountSelectedCallback extends SelectPhoneAccountListener{
- final private TelecomManager mTelecomManager;
+ final private Context mContext;
final private QueryHandler mQueryHandler;
final private SimContactQueryCookie mCookie;
- public HandleAdnEntryAccountSelectedCallback(TelecomManager telecomManager,
+ public HandleAdnEntryAccountSelectedCallback(Context context,
QueryHandler queryHandler, SimContactQueryCookie cookie) {
- mTelecomManager = telecomManager;
+ mContext = context;
mQueryHandler = queryHandler;
mCookie = cookie;
}
@@ -105,7 +106,7 @@ public class SpecialCharSequenceMgr {
@Override
public void onPhoneAccountSelected(PhoneAccountHandle selectedAccountHandle,
boolean setDefault) {
- Uri uri = mTelecomManager.getAdnUriForPhoneAccount(selectedAccountHandle);
+ Uri uri = TelecomUtil.getAdnUriForPhoneAccount(mContext, selectedAccountHandle);
handleAdnQuery(mQueryHandler, mCookie, uri);
// TODO: Show error dialog if result isn't valid.
}
@@ -225,7 +226,7 @@ public class SpecialCharSequenceMgr {
// the dialer text field.
// create the async query handler
- final QueryHandler handler = new QueryHandler (context.getContentResolver());
+ final QueryHandler handler = new QueryHandler(context.getContentResolver());
// create the cookie object
final SimContactQueryCookie sc = new SimContactQueryCookie(index - 1, handler,
@@ -245,27 +246,24 @@ public class SpecialCharSequenceMgr {
sc.progressDialog.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
- final TelecomManager telecomManager =
- (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
List<PhoneAccountHandle> subscriptionAccountHandles =
PhoneAccountUtils.getSubscriptionPhoneAccounts(context);
-
+ Context applicationContext = context.getApplicationContext();
boolean hasUserSelectedDefault = subscriptionAccountHandles.contains(
- telecomManager.getDefaultOutgoingPhoneAccount(PhoneAccount.SCHEME_TEL));
+ TelecomUtil.getDefaultOutgoingPhoneAccount(applicationContext,
+ PhoneAccount.SCHEME_TEL));
- if (subscriptionAccountHandles.size() == 1 || hasUserSelectedDefault) {
- Uri uri = telecomManager.getAdnUriForPhoneAccount(null);
+ if (subscriptionAccountHandles.size() <= 1 || hasUserSelectedDefault) {
+ Uri uri = TelecomUtil.getAdnUriForPhoneAccount(applicationContext, null);
handleAdnQuery(handler, sc, uri);
- } else if (subscriptionAccountHandles.size() > 1){
- SelectPhoneAccountListener callback =
- new HandleAdnEntryAccountSelectedCallback(telecomManager, handler, sc);
+ } else {
+ SelectPhoneAccountListener callback = new HandleAdnEntryAccountSelectedCallback(
+ applicationContext, handler, sc);
DialogFragment dialogFragment = SelectPhoneAccountDialogFragment.newInstance(
subscriptionAccountHandles, callback);
dialogFragment.show(((Activity) context).getFragmentManager(),
TAG_SELECT_ACCT_FRAGMENT);
- } else {
- return false;
}
return true;
@@ -299,18 +297,16 @@ public class SpecialCharSequenceMgr {
static boolean handlePinEntry(final Context context, final String input) {
if ((input.startsWith("**04") || input.startsWith("**05")) && input.endsWith("#")) {
- final TelecomManager telecomManager =
- (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
List<PhoneAccountHandle> subscriptionAccountHandles =
PhoneAccountUtils.getSubscriptionPhoneAccounts(context);
boolean hasUserSelectedDefault = subscriptionAccountHandles.contains(
- telecomManager.getDefaultOutgoingPhoneAccount(PhoneAccount.SCHEME_TEL));
+ TelecomUtil.getDefaultOutgoingPhoneAccount(context, PhoneAccount.SCHEME_TEL));
- if (subscriptionAccountHandles.size() == 1 || hasUserSelectedDefault) {
+ if (subscriptionAccountHandles.size() <= 1 || hasUserSelectedDefault) {
// Don't bring up the dialog for single-SIM or if the default outgoing account is
// a subscription account.
return TelecomUtil.handleMmi(context, input, null);
- } else if (subscriptionAccountHandles.size() > 1){
+ } else {
SelectPhoneAccountListener listener =
new HandleMmiAccountSelectedCallback(context, input);
@@ -335,11 +331,17 @@ public class SpecialCharSequenceMgr {
R.string.imei : R.string.meid;
List<String> deviceIds = new ArrayList<String>();
- for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {
- String deviceId = telephonyManager.getDeviceId(slot);
- if (!TextUtils.isEmpty(deviceId)) {
- deviceIds.add(deviceId);
+ if (TelephonyManagerCompat.getPhoneCount(telephonyManager) > 1 &&
+ CompatUtils.isMethodAvailable(TelephonyManagerCompat.TELEPHONY_MANAGER_CLASS,
+ "getDeviceId", Integer.TYPE)) {
+ for (int slot = 0; slot < telephonyManager.getPhoneCount(); slot++) {
+ String deviceId = telephonyManager.getDeviceId(slot);
+ if (!TextUtils.isEmpty(deviceId)) {
+ deviceIds.add(deviceId);
+ }
}
+ } else {
+ deviceIds.add(telephonyManager.getDeviceId());
}
AlertDialog alert = new AlertDialog.Builder(context)
@@ -478,9 +480,9 @@ public class SpecialCharSequenceMgr {
// display the name as a toast
Context context = sc.progressDialog.getContext();
- name = context.getString(R.string.menu_callNumber, name);
- Toast.makeText(context, name, Toast.LENGTH_SHORT)
- .show();
+ CharSequence msg = ContactDisplayUtils.getTtsSpannedPhoneNumber(
+ context.getResources(), R.string.menu_callNumber, name);
+ Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
} finally {
MoreCloseables.closeQuietly(c);
diff --git a/src/com/android/dialer/TransactionSafeActivity.java b/src/com/android/dialer/TransactionSafeActivity.java
new file mode 100644
index 000000000..81e50128d
--- /dev/null
+++ b/src/com/android/dialer/TransactionSafeActivity.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+
+/**
+ * A common superclass that keeps track of whether an {@link Activity} has saved its state yet or
+ * not.
+ */
+public abstract class TransactionSafeActivity extends AppCompatActivity {
+
+ private boolean mIsSafeToCommitTransactions;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mIsSafeToCommitTransactions = true;
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ mIsSafeToCommitTransactions = true;
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ mIsSafeToCommitTransactions = true;
+ }
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ mIsSafeToCommitTransactions = false;
+ }
+
+ /**
+ * Returns true if it is safe to commit {@link FragmentTransaction}s at this time, based on
+ * whether {@link Activity#onSaveInstanceState} has been called or not.
+ *
+ * Make sure that the current activity calls into
+ * {@link super.onSaveInstanceState(Bundle outState)} (if that method is overridden),
+ * so the flag is properly set.
+ */
+ public boolean isSafeToCommitTransactions() {
+ return mIsSafeToCommitTransactions;
+ }
+}
diff --git a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
index 3b488a8ae..ac56332ce 100644
--- a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
+++ b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java
@@ -38,8 +38,6 @@ import java.util.ArrayList;
* Adapter for a ListView containing history items from the details of a call.
*/
public class CallDetailHistoryAdapter extends BaseAdapter {
- /** The top element is a blank header, which is hidden under the rest of the UI. */
- private static final int VIEW_TYPE_HEADER = 0;
/** Each history item shows the detail of a call. */
private static final int VIEW_TYPE_HISTORY_ITEM = 1;
@@ -69,53 +67,37 @@ public class CallDetailHistoryAdapter extends BaseAdapter {
@Override
public int getCount() {
- return mPhoneCallDetails.length + 1;
+ return mPhoneCallDetails.length;
}
@Override
public Object getItem(int position) {
- if (position == 0) {
- return null;
- }
- return mPhoneCallDetails[position - 1];
+ return mPhoneCallDetails[position];
}
@Override
public long getItemId(int position) {
- if (position == 0) {
- return -1;
- }
- return position - 1;
+ return position;
}
@Override
public int getViewTypeCount() {
- return 2;
+ return 1;
}
@Override
public int getItemViewType(int position) {
- if (position == 0) {
- return VIEW_TYPE_HEADER;
- }
return VIEW_TYPE_HISTORY_ITEM;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
- if (position == 0) {
- final View header = convertView == null
- ? mLayoutInflater.inflate(R.layout.call_detail_history_header, parent, false)
- : convertView;
- return header;
- }
-
// Make sure we have a valid convertView to start with
final View result = convertView == null
? mLayoutInflater.inflate(R.layout.call_detail_history_item, parent, false)
: convertView;
- PhoneCallDetails details = mPhoneCallDetails[position - 1];
+ PhoneCallDetails details = mPhoneCallDetails[position];
CallTypeIconsView callTypeIconView =
(CallTypeIconsView) result.findViewById(R.id.call_type_icon);
TextView callTypeTextView = (TextView) result.findViewById(R.id.call_type_text);
diff --git a/src/com/android/dialer/calllog/CallLogActivity.java b/src/com/android/dialer/calllog/CallLogActivity.java
index 97e601630..243eda9b1 100644
--- a/src/com/android/dialer/calllog/CallLogActivity.java
+++ b/src/com/android/dialer/calllog/CallLogActivity.java
@@ -15,7 +15,6 @@
*/
package com.android.dialer.calllog;
-import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
@@ -27,6 +26,7 @@ import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
+import android.support.v7.app.ActionBar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -39,11 +39,12 @@ import com.android.contacts.common.util.PermissionsUtil;
import com.android.contacts.commonbind.analytics.AnalyticsUtil;
import com.android.dialer.DialtactsActivity;
import com.android.dialer.R;
+import com.android.dialer.TransactionSafeActivity;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.util.DialerUtils;
-import com.android.dialer.voicemail.VoicemailStatusHelper;
-import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
-public class CallLogActivity extends Activity implements ViewPager.OnPageChangeListener {
+public class CallLogActivity extends TransactionSafeActivity implements ViewPager.OnPageChangeListener {
private ViewPager mViewPager;
private ViewPagerTabs mViewPagerTabs;
private ViewPagerAdapter mViewPagerAdapter;
@@ -73,9 +74,10 @@ public class CallLogActivity extends Activity implements ViewPager.OnPageChangeL
public Fragment getItem(int position) {
switch (getRtlPosition(position)) {
case TAB_INDEX_ALL:
- return new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL);
+ return new CallLogFragment(
+ CallLogQueryHandler.CALL_TYPE_ALL, true /* isCallLogActivity */);
case TAB_INDEX_MISSED:
- return new CallLogFragment(Calls.MISSED_TYPE);
+ return new CallLogFragment(Calls.MISSED_TYPE, true /* isCallLogActivity */);
}
throw new IllegalStateException("No fragment at position " + position);
}
@@ -121,7 +123,7 @@ public class CallLogActivity extends Activity implements ViewPager.OnPageChangeL
setContentView(R.layout.call_log_activity);
getWindow().setBackgroundDrawable(null);
- final ActionBar actionBar = getActionBar();
+ final ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
@@ -186,6 +188,10 @@ public class CallLogActivity extends Activity implements ViewPager.OnPageChangeL
@Override
public boolean onOptionsItemSelected(MenuItem item) {
+ if (!isSafeToCommitTransactions()) {
+ return true;
+ }
+
switch (item.getItemId()) {
case android.R.id.home:
final Intent intent = new Intent(this, DialtactsActivity.class);
@@ -218,22 +224,7 @@ public class CallLogActivity extends Activity implements ViewPager.OnPageChangeL
}
private void sendScreenViewForChildFragment(int position) {
- AnalyticsUtil.sendScreenView(CallLogFragment.class.getSimpleName(), this,
- getFragmentTagForPosition(position));
- }
-
- /**
- * Returns the fragment located at the given position in the {@link ViewPagerAdapter}. May
- * be null if the position is invalid.
- */
- private String getFragmentTagForPosition(int position) {
- switch (position) {
- case TAB_INDEX_ALL:
- return "All";
- case TAB_INDEX_MISSED:
- return "Missed";
- }
- return null;
+ Logger.logScreenView(ScreenEvent.CALL_LOG_FILTER, this);
}
private int getRtlPosition(int position) {
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 5a87bc8ce..af77d8621 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -16,50 +16,47 @@
package com.android.dialer.calllog;
+import com.google.common.annotations.VisibleForTesting;
+
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.database.Cursor;
import android.net.Uri;
-import android.provider.ContactsContract;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.support.v7.widget.RecyclerView;
import android.os.Bundle;
import android.os.Trace;
-import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.provider.CallLog;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.telecom.PhoneAccountHandle;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
-import android.util.Log;
-import android.view.ContextMenu;
import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View;
import android.view.View.AccessibilityDelegate;
import android.view.ViewGroup;
-import android.view.ViewTreeObserver;
-import android.view.ContextMenu.ContextMenuInfo;
import android.view.accessibility.AccessibilityEvent;
-import com.android.contacts.common.CallUtil;
-import com.android.contacts.common.ClipboardUtils;
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
+import com.android.contacts.common.preference.ContactsPreferences;
import com.android.contacts.common.util.PermissionsUtil;
-import com.android.dialer.DialtactsActivity;
import com.android.dialer.PhoneCallDetails;
import com.android.dialer.R;
+import com.android.dialer.calllog.calllogcache.CallLogCache;
import com.android.dialer.contactinfo.ContactInfoCache;
import com.android.dialer.contactinfo.ContactInfoCache.OnContactInfoChangedListener;
-import com.android.dialer.util.DialerUtils;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.filterednumber.BlockNumberDialogFragment.Callback;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
import com.android.dialer.util.PhoneNumberUtil;
import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
-
-import com.google.common.annotations.VisibleForTesting;
+import com.android.incallui.CallerInfo;
import java.util.HashMap;
@@ -75,16 +72,14 @@ public class CallLogAdapter extends GroupingListAdapter
public void fetchCalls();
}
- private static final int VIEW_TYPE_SHOW_CALL_HISTORY_LIST_ITEM = 10;
private static final int NO_EXPANDED_LIST_ITEM = -1;
+ // ConcurrentHashMap doesn't store null values. Use this value for numbers which aren't blocked.
+ private static final int NOT_BLOCKED = -1;
private static final int VOICEMAIL_PROMO_CARD_POSITION = 0;
- /**
- * View type for voicemail promo card. Note: Numbering starts at 20 to avoid collision
- * with {@link com.android.common.widget.GroupingListAdapter#ITEM_TYPE_IN_GROUP}, and
- * {@link CallLogAdapter#VIEW_TYPE_SHOW_CALL_HISTORY_LIST_ITEM}.
- */
- private static final int VIEW_TYPE_VOICEMAIL_PROMO_CARD = 20;
+
+ protected static final int VIEW_TYPE_NORMAL = 0;
+ private static final int VIEW_TYPE_VOICEMAIL_PROMO_CARD = 1;
/**
* The key for the show voicemail promo card preference which will determine whether the promo
@@ -95,12 +90,13 @@ public class CallLogAdapter extends GroupingListAdapter
protected final Context mContext;
private final ContactInfoHelper mContactInfoHelper;
- private final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
+ protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
private final CallFetcher mCallFetcher;
+ private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
protected ContactInfoCache mContactInfoCache;
- private boolean mIsShowingRecentsTab;
+ private boolean mIsCallLogActivity;
private static final String KEY_EXPANDED_POSITION = "expanded_position";
private static final String KEY_EXPANDED_ROW_ID = "expanded_row_id";
@@ -110,6 +106,9 @@ public class CallLogAdapter extends GroupingListAdapter
// Tracks the rowId of the currently expanded list item, so the position can be updated if there
// are any changes to the call log entries, such as additions or removals.
private long mCurrentlyExpandedRowId = NO_EXPANDED_LIST_ITEM;
+ private int mHiddenPosition = RecyclerView.NO_POSITION;
+ private Uri mHiddenItemUri = null;
+ private boolean mPendingHide = false;
/**
* Hashmap, keyed by call Id, used to track the day group for a call. As call log entries are
@@ -123,19 +122,21 @@ public class CallLogAdapter extends GroupingListAdapter
* its day group. This hashmap provides a means of determining the previous day group without
* having to reverse the cursor to the start of the previous day call log entry.
*/
- private HashMap<Long,Integer> mDayGroups = new HashMap<Long, Integer>();
+ private HashMap<Long, Integer> mDayGroups = new HashMap<>();
private boolean mLoading = true;
private SharedPreferences mPrefs;
- private boolean mShowPromoCard = false;
+ private ContactsPreferences mContactsPreferences;
+
+ protected boolean mShowVoicemailPromoCard = false;
/** Instance of helper class for managing views. */
private final CallLogListItemHelper mCallLogListItemHelper;
- /** Cache for repeated requests to TelecomManager. */
- protected final TelecomCallLogCache mTelecomCallLogCache;
+ /** Cache for repeated requests to Telecom/Telephony. */
+ protected final CallLogCache mCallLogCache;
/** Helper to group call log entries. */
private final CallLogGroupBuilder mCallLogGroupBuilder;
@@ -193,68 +194,6 @@ public class CallLogAdapter extends GroupingListAdapter
}
};
- /**
- * Listener that is triggered to populate the context menu with actions to perform on the call's
- * number, when the call log entry is long pressed.
- */
- private final View.OnCreateContextMenuListener mOnCreateContextMenuListener =
- new View.OnCreateContextMenuListener() {
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v,
- ContextMenuInfo menuInfo) {
- final CallLogListItemViewHolder vh =
- (CallLogListItemViewHolder) v.getTag();
- if (TextUtils.isEmpty(vh.number)) {
- return;
- }
-
- menu.setHeaderTitle(vh.number);
-
- final MenuItem copyItem = menu.add(
- ContextMenu.NONE,
- R.id.context_menu_copy_to_clipboard,
- ContextMenu.NONE,
- R.string.copy_text);
-
- copyItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- ClipboardUtils.copyText(CallLogAdapter.this.mContext, null,
- vh.number, true);
- return true;
- }
- });
-
- // The edit number before call does not show up if any of the conditions apply:
- // 1) Number cannot be called
- // 2) Number is the voicemail number
- // 3) Number is a SIP address
-
- if (!PhoneNumberUtil.canPlaceCallsTo(vh.number, vh.numberPresentation)
- || mTelecomCallLogCache.isVoicemailNumber(vh.accountHandle, vh.number)
- || PhoneNumberUtil.isSipNumber(vh.number)) {
- return;
- }
-
- final MenuItem editItem = menu.add(
- ContextMenu.NONE,
- R.id.context_menu_edit_before_call,
- ContextMenu.NONE,
- R.string.recentCalls_editNumberBeforeCall);
-
- editItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- final Intent intent = new Intent(Intent.ACTION_DIAL,
- CallUtil.getCallUri(vh.number));
- intent.setClass(mContext, DialtactsActivity.class);
- DialerUtils.startActivityWithErrorToast(mContext, intent);
- return true;
- }
- });
- }
- };
-
private void expandViewHolderActions(CallLogListItemViewHolder viewHolder) {
// If another item is expanded, notify it that it has changed. Its actions will be
// hidden when it is re-binded because we change mCurrentlyExpandedPosition below.
@@ -279,6 +218,11 @@ public class CallLogAdapter extends GroupingListAdapter
// function on clicks causes the action views to lose the focus indicator.
CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder) host.getTag();
if (mCurrentlyExpandedPosition != viewHolder.getAdapterPosition()) {
+ if (mVoicemailPlaybackPresenter != null) {
+ // Always reset the voicemail playback state on expand.
+ mVoicemailPlaybackPresenter.resetAll();
+ }
+
expandViewHolderActions((CallLogListItemViewHolder) host.getTag());
}
}
@@ -299,7 +243,7 @@ public class CallLogAdapter extends GroupingListAdapter
CallFetcher callFetcher,
ContactInfoHelper contactInfoHelper,
VoicemailPlaybackPresenter voicemailPlaybackPresenter,
- boolean isShowingRecentsTab) {
+ boolean isCallLogActivity) {
super(context);
mContext = context;
@@ -309,7 +253,7 @@ public class CallLogAdapter extends GroupingListAdapter
if (mVoicemailPlaybackPresenter != null) {
mVoicemailPlaybackPresenter.setOnVoicemailDeletedListener(this);
}
- mIsShowingRecentsTab = isShowingRecentsTab;
+ mIsCallLogActivity = isCallLogActivity;
mContactInfoCache = new ContactInfoCache(
mContactInfoHelper, mOnContactInfoChangedListener);
@@ -320,13 +264,18 @@ public class CallLogAdapter extends GroupingListAdapter
Resources resources = mContext.getResources();
CallTypeHelper callTypeHelper = new CallTypeHelper(resources);
- mTelecomCallLogCache = new TelecomCallLogCache(mContext);
+ mCallLogCache = CallLogCache.getCallLogCache(mContext);
+
PhoneCallDetailsHelper phoneCallDetailsHelper =
- new PhoneCallDetailsHelper(mContext, resources, mTelecomCallLogCache);
+ new PhoneCallDetailsHelper(mContext, resources, mCallLogCache);
mCallLogListItemHelper =
- new CallLogListItemHelper(phoneCallDetailsHelper, resources, mTelecomCallLogCache);
+ new CallLogListItemHelper(phoneCallDetailsHelper, resources, mCallLogCache);
mCallLogGroupBuilder = new CallLogGroupBuilder(this);
+ mFilteredNumberAsyncQueryHandler =
+ new FilteredNumberAsyncQueryHandler(mContext.getContentResolver());
+
mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+ mContactsPreferences = new ContactsPreferences(mContext);
maybeShowVoicemailPromoCard();
}
@@ -369,15 +318,25 @@ public class CallLogAdapter extends GroupingListAdapter
mContactInfoCache.invalidate();
}
- public void startCache() {
+ public void onResume() {
if (PermissionsUtil.hasPermission(mContext, android.Manifest.permission.READ_CONTACTS)) {
mContactInfoCache.start();
}
+ mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
+ }
+
+ public void onPause() {
+ pauseCache();
+
+ if (mHiddenItemUri != null) {
+ CallLogAsyncTaskUtil.deleteVoicemail(mContext, mHiddenItemUri, null);
+ }
}
- public void pauseCache() {
+ @VisibleForTesting
+ /* package */ void pauseCache() {
mContactInfoCache.stop();
- mTelecomCallLogCache.reset();
+ mCallLogCache.reset();
}
@Override
@@ -387,9 +346,7 @@ public class CallLogAdapter extends GroupingListAdapter
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- if (viewType == VIEW_TYPE_SHOW_CALL_HISTORY_LIST_ITEM) {
- return ShowCallHistoryViewHolder.create(mContext, parent);
- } else if (viewType == VIEW_TYPE_VOICEMAIL_PROMO_CARD) {
+ if (viewType == VIEW_TYPE_VOICEMAIL_PROMO_CARD) {
return createVoicemailPromoCardViewHolder(parent);
}
return createCallLogEntryViewHolder(parent);
@@ -408,14 +365,30 @@ public class CallLogAdapter extends GroupingListAdapter
view,
mContext,
mExpandCollapseListener,
- mTelecomCallLogCache,
+ mCallLogCache,
mCallLogListItemHelper,
- mVoicemailPlaybackPresenter);
+ mVoicemailPlaybackPresenter,
+ mFilteredNumberAsyncQueryHandler,
+ new Callback() {
+ @Override
+ public void onFilterNumberSuccess() {
+ Logger.logInteraction(
+ InteractionEvent.BLOCK_NUMBER_CALL_LOG);
+ }
+
+ @Override
+ public void onUnfilterNumberSuccess() {
+ Logger.logInteraction(
+ InteractionEvent.UNBLOCK_NUMBER_CALL_LOG);
+ }
+
+ @Override
+ public void onChangeFilteredNumberUndo() {}
+ });
viewHolder.callLogEntryView.setTag(viewHolder);
viewHolder.callLogEntryView.setAccessibilityDelegate(mAccessibilityDelegate);
- viewHolder.primaryActionView.setOnCreateContextMenuListener(mOnCreateContextMenuListener);
viewHolder.primaryActionView.setTag(viewHolder);
return viewHolder;
@@ -426,15 +399,14 @@ public class CallLogAdapter extends GroupingListAdapter
* TODO: This gets called 20-30 times when Dialer starts up for a single call log entry and
* should not. It invokes cross-process methods and the repeat execution can get costly.
*
- * @param ViewHolder The view corresponding to this entry.
+ * @param viewHolder The view corresponding to this entry.
* @param position The position of the entry.
*/
+ @Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
Trace.beginSection("onBindViewHolder: " + position);
switch (getItemViewType(position)) {
- case VIEW_TYPE_SHOW_CALL_HISTORY_LIST_ITEM:
- break;
case VIEW_TYPE_VOICEMAIL_PROMO_CARD:
bindVoicemailPromoCardViewHolder(viewHolder);
break;
@@ -454,9 +426,9 @@ public class CallLogAdapter extends GroupingListAdapter
protected void bindVoicemailPromoCardViewHolder(ViewHolder viewHolder) {
PromoCardViewHolder promoCardViewHolder = (PromoCardViewHolder) viewHolder;
- promoCardViewHolder.getSettingsTextView().setOnClickListener(
- mVoicemailSettingsActionListener);
- promoCardViewHolder.getOkTextView().setOnClickListener(mOkActionListener);
+ promoCardViewHolder.getSecondaryActionView()
+ .setOnClickListener(mVoicemailSettingsActionListener);
+ promoCardViewHolder.getPrimaryActionView().setOnClickListener(mOkActionListener);
}
/**
@@ -475,14 +447,17 @@ public class CallLogAdapter extends GroupingListAdapter
int count = getGroupSize(position);
final String number = c.getString(CallLogQuery.NUMBER);
+ final String postDialDigits = PhoneNumberDisplayUtil.canShowPostDial()
+ ? c.getString(CallLogQuery.POST_DIAL_DIGITS) : "";
+
final int numberPresentation = c.getInt(CallLogQuery.NUMBER_PRESENTATION);
final PhoneAccountHandle accountHandle = PhoneAccountUtils.getAccount(
c.getString(CallLogQuery.ACCOUNT_COMPONENT_NAME),
c.getString(CallLogQuery.ACCOUNT_ID));
final String countryIso = c.getString(CallLogQuery.COUNTRY_ISO);
- final ContactInfo cachedContactInfo = mContactInfoHelper.getContactInfo(c);
+ final ContactInfo cachedContactInfo = ContactInfoHelper.getContactInfo(c);
final boolean isVoicemailNumber =
- mTelecomCallLogCache.isVoicemailNumber(accountHandle, number);
+ mCallLogCache.isVoicemailNumber(accountHandle, number);
// Note: Binding of the action buttons is done as required in configureActionViews when the
// user expands the actions ViewStub.
@@ -490,13 +465,15 @@ public class CallLogAdapter extends GroupingListAdapter
ContactInfo info = ContactInfo.EMPTY;
if (PhoneNumberUtil.canPlaceCallsTo(number, numberPresentation) && !isVoicemailNumber) {
// Lookup contacts with this number
- info = mContactInfoCache.getValue(number, countryIso, cachedContactInfo);
+ info = mContactInfoCache.getValue(number + postDialDigits,
+ countryIso, cachedContactInfo);
}
CharSequence formattedNumber = info.formattedNumber == null
- ? null : PhoneNumberUtils.createTtsSpannable(info.formattedNumber);
+ ? null : PhoneNumberUtilsCompat.createTtsSpannable(info.formattedNumber);
final PhoneCallDetails details = new PhoneCallDetails(
- mContext, number, numberPresentation, formattedNumber, isVoicemailNumber);
+ mContext, number, numberPresentation, formattedNumber,
+ postDialDigits, isVoicemailNumber);
details.accountHandle = accountHandle;
details.callTypes = getCallTypes(c, count);
details.countryIso = countryIso;
@@ -513,21 +490,25 @@ public class CallLogAdapter extends GroupingListAdapter
details.dataUsage = c.getLong(CallLogQuery.DATA_USAGE);
}
- if (!TextUtils.isEmpty(info.name)) {
+ if (!TextUtils.isEmpty(info.name) || !TextUtils.isEmpty(info.nameAlternative)) {
details.contactUri = info.lookupUri;
- details.name = info.name;
+ details.namePrimary = info.name;
+ details.nameAlternative = info.nameAlternative;
+ details.nameDisplayOrder = mContactsPreferences.getDisplayOrder();
details.numberType = info.type;
details.numberLabel = info.label;
details.photoUri = info.photoUri;
details.sourceType = info.sourceType;
details.objectId = info.objectId;
+ details.contactUserType = info.userType;
}
- CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
+ final CallLogListItemViewHolder views = (CallLogListItemViewHolder) viewHolder;
views.info = info;
views.rowId = c.getLong(CallLogQuery.ID);
// Store values used when the actions ViewStub is inflated on expansion.
views.number = number;
+ views.postDialDigits = details.postDialDigits;
views.displayNumber = details.displayNumber;
views.numberPresentation = numberPresentation;
views.callType = c.getInt(CallLogQuery.CALL_TYPE);
@@ -540,6 +521,8 @@ public class CallLogAdapter extends GroupingListAdapter
details.numberLabel);
// Default case: an item in the call log.
views.primaryActionView.setVisibility(View.VISIBLE);
+ views.workIconView.setVisibility(
+ details.contactUserType == ContactsUtils.USER_TYPE_WORK ? View.VISIBLE : View.GONE);
// Check if the day group has changed and display a header if necessary.
int currentGroup = getDayGroupForCall(views.rowId);
@@ -560,29 +543,28 @@ public class CallLogAdapter extends GroupingListAdapter
}
views.showActions(mCurrentlyExpandedPosition == position);
-
- String nameForDefaultImage = null;
- if (TextUtils.isEmpty(info.name)) {
- nameForDefaultImage = details.displayNumber;
- } else {
- nameForDefaultImage = info.name;
- }
- views.setPhoto(info.photoId, info.photoUri, info.lookupUri, nameForDefaultImage,
- isVoicemailNumber, views.isBusiness);
+ views.updatePhoto();
mCallLogListItemHelper.setPhoneCallDetails(views, details);
}
+ private String getPreferredDisplayName(ContactInfo contactInfo) {
+ if (mContactsPreferences.getDisplayOrder() == ContactsPreferences.DISPLAY_ORDER_PRIMARY ||
+ TextUtils.isEmpty(contactInfo.nameAlternative)) {
+ return contactInfo.name;
+ }
+ return contactInfo.nameAlternative;
+ }
+
@Override
public int getItemCount() {
- return super.getItemCount() + ((isShowingRecentsTab() || mShowPromoCard) ? 1 : 0);
+ return super.getItemCount() + (mShowVoicemailPromoCard ? 1 : 0)
+ - (mHiddenPosition != RecyclerView.NO_POSITION ? 1 : 0);
}
@Override
public int getItemViewType(int position) {
- if (position == getItemCount() - 1 && isShowingRecentsTab()) {
- return VIEW_TYPE_SHOW_CALL_HISTORY_LIST_ITEM;
- } else if (position == VOICEMAIL_PROMO_CARD_POSITION && mShowPromoCard) {
+ if (position == VOICEMAIL_PROMO_CARD_POSITION && mShowVoicemailPromoCard) {
return VIEW_TYPE_VOICEMAIL_PROMO_CARD;
}
return super.getItemViewType(position);
@@ -597,20 +579,87 @@ public class CallLogAdapter extends GroupingListAdapter
*/
@Override
public Object getItem(int position) {
- return super.getItem(position - (mShowPromoCard ? 1 : 0));
+ return super.getItem(position - (mShowVoicemailPromoCard ? 1 : 0)
+ + ((mHiddenPosition != RecyclerView.NO_POSITION && position >= mHiddenPosition)
+ ? 1 : 0));
+ }
+
+ @Override
+ public int getGroupSize(int position) {
+ return super.getGroupSize(position - (mShowVoicemailPromoCard ? 1 : 0));
}
- protected boolean isShowingRecentsTab() {
- return mIsShowingRecentsTab;
+ protected boolean isCallLogActivity() {
+ return mIsCallLogActivity;
}
+ /**
+ * In order to implement the "undo" function, when a voicemail is "deleted" i.e. when the user
+ * clicks the delete button, the deleted item is temporarily hidden from the list. If a user
+ * clicks delete on a second item before the first item's undo option has expired, the first
+ * item is immediately deleted so that only one item can be "undoed" at a time.
+ */
@Override
public void onVoicemailDeleted(Uri uri) {
+ if (mHiddenItemUri == null) {
+ // Immediately hide the currently expanded card.
+ mHiddenPosition = mCurrentlyExpandedPosition;
+ notifyDataSetChanged();
+ } else {
+ // This means that there was a previous item that was hidden in the UI but not
+ // yet deleted from the database (call it a "pending delete"). Delete this previous item
+ // now since it is only possible to do one "undo" at a time.
+ CallLogAsyncTaskUtil.deleteVoicemail(mContext, mHiddenItemUri, null);
+
+ // Set pending hide action so that the current item is hidden only after the previous
+ // item is permanently deleted.
+ mPendingHide = true;
+ }
+
+ collapseExpandedCard();
+
+ // Save the new hidden item uri in case it needs to be deleted from the database when
+ // a user attempts to delete another item.
+ mHiddenItemUri = uri;
+ }
+
+ private void collapseExpandedCard() {
mCurrentlyExpandedRowId = NO_EXPANDED_LIST_ITEM;
mCurrentlyExpandedPosition = RecyclerView.NO_POSITION;
}
/**
+ * When the user clicks "undo", the hidden item is unhidden.
+ */
+ @Override
+ public void onVoicemailDeleteUndo() {
+ mHiddenPosition = RecyclerView.NO_POSITION;
+ mHiddenItemUri = null;
+
+ mPendingHide = false;
+ notifyDataSetChanged();
+ }
+
+ /**
+ * This callback signifies that a database deletion has completed. This means that if there is
+ * an item pending deletion, it will be hidden because the previous item that was in "undo" mode
+ * has been removed from the database. Otherwise it simply resets the hidden state because there
+ * are no pending deletes and thus no hidden items.
+ */
+ @Override
+ public void onVoicemailDeletedInDatabase() {
+ if (mPendingHide) {
+ mHiddenPosition = mCurrentlyExpandedPosition;
+ mPendingHide = false;
+ } else {
+ // There should no longer be any hidden item because it has been deleted from the
+ // database.
+ mHiddenPosition = RecyclerView.NO_POSITION;
+ mHiddenItemUri = null;
+ }
+ }
+
+ /**
* Retrieves the day group of the previous call in the call log. Used to determine if the day
* group has changed and to trigger display of the day group text.
*
@@ -622,8 +671,16 @@ public class CallLogAdapter extends GroupingListAdapter
int startingPosition = cursor.getPosition();
int dayGroup = CallLogGroupBuilder.DAY_GROUP_NONE;
if (cursor.moveToPrevious()) {
- long previousRowId = cursor.getLong(CallLogQuery.ID);
- dayGroup = getDayGroupForCall(previousRowId);
+ // If the previous entry is hidden (deleted in the UI but not in the database), skip it
+ // and check the card above it. A list with the voicemail promo card at the top will be
+ // 1-indexed because the 0th index is the promo card iteself.
+ int previousViewPosition = mShowVoicemailPromoCard ? startingPosition :
+ startingPosition - 1;
+ if (previousViewPosition != mHiddenPosition ||
+ (previousViewPosition == mHiddenPosition && cursor.moveToPrevious())) {
+ long previousRowId = cursor.getLong(CallLogQuery.ID);
+ dayGroup = getDayGroupForCall(previousRowId);
+ }
}
cursor.moveToPosition(startingPosition);
return dayGroup;
@@ -698,11 +755,6 @@ public class CallLogAdapter extends GroupingListAdapter
mContactInfoCache.injectContactInfoForTest(number, countryIso, contactInfo);
}
- @Override
- public void addGroup(int cursorPosition, int size, boolean expanded) {
- super.addGroup(cursorPosition, size, expanded);
- }
-
/**
* Stores the day group associated with a call in the call log.
*
@@ -767,7 +819,7 @@ public class CallLogAdapter extends GroupingListAdapter
private void maybeShowVoicemailPromoCard() {
boolean showPromoCard = mPrefs.getBoolean(SHOW_VOICEMAIL_PROMO_CARD,
SHOW_VOICEMAIL_PROMO_CARD_DEFAULT);
- mShowPromoCard = (mVoicemailPlaybackPresenter != null) && showPromoCard;
+ mShowVoicemailPromoCard = (mVoicemailPlaybackPresenter != null) && showPromoCard;
}
/**
@@ -775,7 +827,7 @@ public class CallLogAdapter extends GroupingListAdapter
*/
private void dismissVoicemailPromoCard() {
mPrefs.edit().putBoolean(SHOW_VOICEMAIL_PROMO_CARD, false).apply();
- mShowPromoCard = false;
+ mShowVoicemailPromoCard = false;
notifyItemRemoved(VOICEMAIL_PROMO_CARD_POSITION);
}
diff --git a/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java b/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
index 22dece57c..bb7bdbd0a 100644
--- a/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
+++ b/src/com/android/dialer/calllog/CallLogAsyncTaskUtil.java
@@ -29,7 +29,9 @@ import android.text.TextUtils;
import android.util.Log;
import com.android.contacts.common.GeoUtil;
+import com.android.dialer.DialtactsActivity;
import com.android.dialer.PhoneCallDetails;
+import com.android.dialer.util.AppCompatConstants;
import com.android.dialer.util.AsyncTaskExecutor;
import com.android.dialer.util.AsyncTaskExecutors;
import com.android.dialer.util.PhoneNumberUtil;
@@ -37,6 +39,9 @@ import com.android.dialer.util.TelecomUtil;
import com.google.common.annotations.VisibleForTesting;
+import java.util.ArrayList;
+import java.util.Arrays;
+
public class CallLogAsyncTaskUtil {
private static String TAG = CallLogAsyncTaskUtil.class.getSimpleName();
@@ -44,12 +49,14 @@ public class CallLogAsyncTaskUtil {
public enum Tasks {
DELETE_VOICEMAIL,
DELETE_CALL,
+ DELETE_BLOCKED_CALL,
MARK_VOICEMAIL_READ,
GET_CALL_DETAILS,
}
- private static class CallDetailQuery {
- static final String[] CALL_LOG_PROJECTION = new String[] {
+ private static final class CallDetailQuery {
+
+ private static final String[] CALL_LOG_PROJECTION_INTERNAL = new String[] {
CallLog.Calls.DATE,
CallLog.Calls.DURATION,
CallLog.Calls.NUMBER,
@@ -63,6 +70,7 @@ public class CallLogAsyncTaskUtil {
CallLog.Calls.DATA_USAGE,
CallLog.Calls.TRANSCRIPTION
};
+ public static final String[] CALL_LOG_PROJECTION;
static final int DATE_COLUMN_INDEX = 0;
static final int DURATION_COLUMN_INDEX = 1;
@@ -76,6 +84,27 @@ public class CallLogAsyncTaskUtil {
static final int FEATURES = 9;
static final int DATA_USAGE = 10;
static final int TRANSCRIPTION_COLUMN_INDEX = 11;
+ static final int POST_DIAL_DIGITS = 12;
+
+ static {
+ ArrayList<String> projectionList = new ArrayList<>();
+ projectionList.addAll(Arrays.asList(CALL_LOG_PROJECTION_INTERNAL));
+ if (PhoneNumberDisplayUtil.canShowPostDial()) {
+ projectionList.add(AppCompatConstants.POST_DIAL_DIGITS);
+ }
+ projectionList.trimToSize();
+ CALL_LOG_PROJECTION = projectionList.toArray(new String[projectionList.size()]);
+ }
+ }
+
+ private static class CallLogDeleteBlockedCallQuery {
+ static final String[] PROJECTION = new String[] {
+ CallLog.Calls._ID,
+ CallLog.Calls.DATE
+ };
+
+ static final int ID_COLUMN_INDEX = 0;
+ static final int DATE_COLUMN_INDEX = 1;
}
public interface CallLogAsyncTaskListener {
@@ -84,6 +113,15 @@ public class CallLogAsyncTaskUtil {
public void onGetCallDetails(PhoneCallDetails[] details);
}
+ public interface OnCallLogQueryFinishedListener {
+ public void onQueryFinished(boolean hasEntry);
+ }
+
+ // Try to identify if a call log entry corresponds to a number which was blocked. We match by
+ // by comparing its creation time to the time it was added in the InCallUi and seeing if they
+ // fall within a certain threshold.
+ private static final int MATCH_BLOCKED_CALL_THRESHOLD_MS = 3000;
+
private static AsyncTaskExecutor sAsyncTaskExecutor;
private static void initTaskExecutor() {
@@ -142,6 +180,8 @@ public class CallLogAsyncTaskUtil {
// Read call log.
final String countryIso = cursor.getString(CallDetailQuery.COUNTRY_ISO_COLUMN_INDEX);
final String number = cursor.getString(CallDetailQuery.NUMBER_COLUMN_INDEX);
+ final String postDialDigits = PhoneNumberDisplayUtil.canShowPostDial()
+ ? cursor.getString(CallDetailQuery.POST_DIAL_DIGITS) : "";
final int numberPresentation =
cursor.getInt(CallDetailQuery.NUMBER_PRESENTATION_COLUMN_INDEX);
@@ -155,19 +195,21 @@ public class CallLogAsyncTaskUtil {
boolean isVoicemail = PhoneNumberUtil.isVoicemailNumber(context, accountHandle, number);
boolean shouldLookupNumber =
PhoneNumberUtil.canPlaceCallsTo(number, numberPresentation) && !isVoicemail;
-
ContactInfo info = ContactInfo.EMPTY;
+
if (shouldLookupNumber) {
ContactInfo lookupInfo = contactInfoHelper.lookupNumber(number, countryIso);
info = lookupInfo != null ? lookupInfo : ContactInfo.EMPTY;
}
PhoneCallDetails details = new PhoneCallDetails(
- context, number, numberPresentation, info.formattedNumber, isVoicemail);
+ context, number, numberPresentation, info.formattedNumber,
+ postDialDigits, isVoicemail);
details.accountHandle = accountHandle;
details.contactUri = info.lookupUri;
- details.name = info.name;
+ details.namePrimary = info.name;
+ details.nameAlternative = info.nameAlternative;
details.numberType = info.type;
details.numberLabel = info.label;
details.photoUri = info.photoUri;
@@ -204,7 +246,7 @@ public class CallLogAsyncTaskUtil {
*
* @param context The context.
* @param callIds String of the callIds to delete from the call log, delimited by commas (",").
- * @param callLogAsyncTaskListenerg The listener to invoke after the entries have been deleted.
+ * @param callLogAsyncTaskListener The listener to invoke after the entries have been deleted.
*/
public static void deleteCalls(
final Context context,
@@ -214,26 +256,82 @@ public class CallLogAsyncTaskUtil {
initTaskExecutor();
}
- sAsyncTaskExecutor.submit(Tasks.DELETE_CALL,
- new AsyncTask<Void, Void, Void>() {
- @Override
- public Void doInBackground(Void... params) {
+ sAsyncTaskExecutor.submit(Tasks.DELETE_CALL, new AsyncTask<Void, Void, Void>() {
+ @Override
+ public Void doInBackground(Void... params) {
+ context.getContentResolver().delete(
+ TelecomUtil.getCallLogUri(context),
+ CallLog.Calls._ID + " IN (" + callIds + ")", null);
+ return null;
+ }
+
+ @Override
+ public void onPostExecute(Void result) {
+ if (callLogAsyncTaskListener != null) {
+ callLogAsyncTaskListener.onDeleteCall();
+ }
+ }
+ });
+ }
+
+ /**
+ * Deletes the last call made by the number within a threshold of the call time added in the
+ * call log, assuming it is a blocked call for which no entry should be shown.
+ *
+ * @param context The context.
+ * @param number Number of blocked call, for which to delete the call log entry.
+ * @param timeAddedMs The time the number was added to InCall, in milliseconds.
+ * @param listener The listener to invoke after looking up for a call log entry matching the
+ * number and time added.
+ */
+ public static void deleteBlockedCall(
+ final Context context,
+ final String number,
+ final long timeAddedMs,
+ final OnCallLogQueryFinishedListener listener) {
+ if (sAsyncTaskExecutor == null) {
+ initTaskExecutor();
+ }
+
+ sAsyncTaskExecutor.submit(Tasks.DELETE_BLOCKED_CALL, new AsyncTask<Void, Void, Long>() {
+ @Override
+ public Long doInBackground(Void... params) {
+ // First, lookup the call log entry of the most recent call with this number.
+ Cursor cursor = context.getContentResolver().query(
+ TelecomUtil.getCallLogUri(context),
+ CallLogDeleteBlockedCallQuery.PROJECTION,
+ CallLog.Calls.NUMBER + "= ?",
+ new String[] { number },
+ CallLog.Calls.DATE + " DESC LIMIT 1");
+
+ // If match is found, delete this call log entry and return the call log entry id.
+ if (cursor.moveToFirst()) {
+ long creationTime =
+ cursor.getLong(CallLogDeleteBlockedCallQuery.DATE_COLUMN_INDEX);
+ if (timeAddedMs > creationTime
+ && timeAddedMs - creationTime < MATCH_BLOCKED_CALL_THRESHOLD_MS) {
+ long callLogEntryId =
+ cursor.getLong(CallLogDeleteBlockedCallQuery.ID_COLUMN_INDEX);
context.getContentResolver().delete(
TelecomUtil.getCallLogUri(context),
- CallLog.Calls._ID + " IN (" + callIds + ")", null);
- return null;
+ CallLog.Calls._ID + " IN (" + callLogEntryId + ")",
+ null);
+ return callLogEntryId;
}
+ }
+ return (long) -1;
+ }
- @Override
- public void onPostExecute(Void result) {
- if (callLogAsyncTaskListener != null) {
- callLogAsyncTaskListener.onDeleteCall();
- }
- }
- });
-
+ @Override
+ public void onPostExecute(Long callLogEntryId) {
+ if (listener != null) {
+ listener.onQueryFinished(callLogEntryId >= 0);
+ }
+ }
+ });
}
+
public static void markVoicemailAsRead(final Context context, final Uri voicemailUri) {
if (sAsyncTaskExecutor == null) {
initTaskExecutor();
@@ -250,6 +348,8 @@ public class CallLogAsyncTaskUtil {
Intent intent = new Intent(context, CallLogNotificationsService.class);
intent.setAction(CallLogNotificationsService.ACTION_MARK_NEW_VOICEMAILS_AS_OLD);
context.startService(intent);
+
+ ((DialtactsActivity) context).updateTabUnreadCounts();
return null;
}
});
@@ -263,21 +363,20 @@ public class CallLogAsyncTaskUtil {
initTaskExecutor();
}
- sAsyncTaskExecutor.submit(Tasks.DELETE_VOICEMAIL,
- new AsyncTask<Void, Void, Void>() {
- @Override
- public Void doInBackground(Void... params) {
- context.getContentResolver().delete(voicemailUri, null, null);
- return null;
- }
+ sAsyncTaskExecutor.submit(Tasks.DELETE_VOICEMAIL, new AsyncTask<Void, Void, Void>() {
+ @Override
+ public Void doInBackground(Void... params) {
+ context.getContentResolver().delete(voicemailUri, null, null);
+ return null;
+ }
- @Override
- public void onPostExecute(Void result) {
- if (callLogAsyncTaskListener != null) {
- callLogAsyncTaskListener.onDeleteVoicemail();
- }
- }
- });
+ @Override
+ public void onPostExecute(Void result) {
+ if (callLogAsyncTaskListener != null) {
+ callLogAsyncTaskListener.onDeleteVoicemail();
+ }
+ }
+ });
}
@VisibleForTesting
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index e7b77646d..41ff7d311 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -16,61 +16,46 @@
package com.android.dialer.calllog;
-import static android.Manifest.permission.READ_CALL_LOG;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ValueAnimator;
import android.app.Activity;
-import android.app.DialogFragment;
import android.app.Fragment;
import android.app.KeyguardManager;
import android.content.ContentResolver;
import android.content.Context;
-import android.content.Intent;
import android.content.pm.PackageManager;
import android.database.ContentObserver;
import android.database.Cursor;
-import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
+import android.os.Message;
import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.ContactsContract;
-import android.provider.VoicemailContract.Status;
-import android.support.v7.widget.RecyclerView;
+import android.support.annotation.Nullable;
+import android.support.v13.app.FragmentCompat;
import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup.LayoutParams;
-import android.widget.ListView;
-import android.widget.TextView;
import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.util.PermissionsUtil;
-import com.android.contacts.common.util.ViewUtil;
import com.android.dialer.R;
-import com.android.dialer.list.ListsFragment.HostInterface;
-import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.EmptyLoader;
import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
-import com.android.dialer.voicemail.VoicemailStatusHelper;
-import com.android.dialer.voicemail.VoicemailStatusHelper.StatusMessage;
-import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
import com.android.dialer.widget.EmptyContentView;
import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
import com.android.dialerbind.ObjectFactory;
-import java.util.List;
+import static android.Manifest.permission.READ_CALL_LOG;
/**
* Displays a list of call log entries. To filter for a particular kind of call
* (all, missed or voicemails), specify it in the constructor.
*/
public class CallLogFragment extends Fragment implements CallLogQueryHandler.Listener,
- CallLogAdapter.CallFetcher, OnEmptyViewActionButtonClickedListener {
+ CallLogAdapter.CallFetcher, OnEmptyViewActionButtonClickedListener,
+ FragmentCompat.OnRequestPermissionsResultCallback {
private static final String TAG = "CallLogFragment";
/**
@@ -89,15 +74,16 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
private static final int READ_CALL_LOG_PERMISSION_REQUEST_CODE = 1;
+ private static final int EVENT_UPDATE_DISPLAY = 1;
+
+ private static final long MILLIS_IN_MINUTE = 60 * 1000;
+
private RecyclerView mRecyclerView;
private LinearLayoutManager mLayoutManager;
private CallLogAdapter mAdapter;
private CallLogQueryHandler mCallLogQueryHandler;
- private VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
private boolean mScrollToTop;
- /** Whether there is at least one voicemail source installed. */
- private boolean mVoicemailSourcesAvailable = false;
private EmptyContentView mEmptyListView;
private KeyguardManager mKeyguardManager;
@@ -106,9 +92,21 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
private boolean mCallLogFetched;
private boolean mVoicemailStatusFetched;
+ private final Handler mDisplayUpdateHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case EVENT_UPDATE_DISPLAY:
+ refreshData();
+ rescheduleDisplayUpdate();
+ break;
+ }
+ }
+ };
+
private final Handler mHandler = new Handler();
- private class CustomContentObserver extends ContentObserver {
+ protected class CustomContentObserver extends ContentObserver {
public CustomContentObserver() {
super(mHandler);
}
@@ -121,7 +119,6 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
// See issue 6363009
private final ContentObserver mCallLogObserver = new CustomContentObserver();
private final ContentObserver mContactsObserver = new CustomContentObserver();
- private final ContentObserver mVoicemailStatusObserver = new CustomContentObserver();
private boolean mRefreshDataRequired = true;
private boolean mHasReadCallLogPermission = false;
@@ -141,10 +138,9 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
private long mDateLimit = NO_DATE_LIMIT;
/*
- * True if this instance of the CallLogFragment is the Recents screen shown in
- * DialtactsActivity.
+ * True if this instance of the CallLogFragment shown in the CallLogActivity.
*/
- private boolean mIsRecentsFragment;
+ private boolean mIsCallLogActivity = false;
public interface HostInterface {
public void showDialpad();
@@ -158,6 +154,11 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
this(filterType, NO_LOG_LIMIT);
}
+ public CallLogFragment(int filterType, boolean isCallLogActivity) {
+ this(filterType, NO_LOG_LIMIT);
+ mIsCallLogActivity = isCallLogActivity;
+ }
+
public CallLogFragment(int filterType, int logLimit) {
this(filterType, logLimit, NO_DATE_LIMIT);
}
@@ -194,8 +195,6 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
mDateLimit = state.getLong(KEY_DATE_LIMIT, mDateLimit);
}
- mIsRecentsFragment = mLogLimit != NO_LOG_LIMIT;
-
final Activity activity = getActivity();
final ContentResolver resolver = activity.getContentResolver();
String currentCountryIso = GeoUtil.getCurrentCountryIso(activity);
@@ -205,13 +204,7 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
resolver.registerContentObserver(CallLog.CONTENT_URI, true, mCallLogObserver);
resolver.registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true,
mContactsObserver);
- resolver.registerContentObserver(Status.CONTENT_URI, true, mVoicemailStatusObserver);
setHasOptionsMenu(true);
-
- if (mCallTypeFilter == Calls.VOICEMAIL_TYPE) {
- mVoicemailPlaybackPresenter = VoicemailPlaybackPresenter
- .getInstance(activity, state);
- }
}
/** Called by the CallLogQueryHandler when the list of calls has been fetched or updated. */
@@ -282,9 +275,17 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
}
@Override
+ public void onVoicemailUnreadCountFetched(Cursor cursor) {}
+
+ @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
View view = inflater.inflate(R.layout.call_log_fragment, container, false);
+ setupView(view, null);
+ return view;
+ }
+ protected void setupView(
+ View view, @Nullable VoicemailPlaybackPresenter voicemailPlaybackPresenter) {
mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(getActivity());
@@ -294,17 +295,14 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
mEmptyListView.setActionClickedListener(this);
String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
- boolean isShowingRecentsTab = mLogLimit != NO_LOG_LIMIT || mDateLimit != NO_DATE_LIMIT;
mAdapter = ObjectFactory.newCallLogAdapter(
getActivity(),
this,
new ContactInfoHelper(getActivity(), currentCountryIso),
- mVoicemailPlaybackPresenter,
- isShowingRecentsTab);
+ voicemailPlaybackPresenter,
+ mIsCallLogActivity);
mRecyclerView.setAdapter(mAdapter);
-
fetchCalls();
- return view;
}
@Override
@@ -336,17 +334,18 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
mRefreshDataRequired = true;
updateEmptyMessage(mCallTypeFilter);
}
+
mHasReadCallLogPermission = hasReadCallLogPermission;
refreshData();
- mAdapter.startCache();
+ mAdapter.onResume();
+
+ rescheduleDisplayUpdate();
}
@Override
public void onPause() {
- if (mVoicemailPlaybackPresenter != null) {
- mVoicemailPlaybackPresenter.onPause();
- }
- mAdapter.pauseCache();
+ cancelDisplayUpdate();
+ mAdapter.onPause();
super.onPause();
}
@@ -359,16 +358,10 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
@Override
public void onDestroy() {
- mAdapter.pauseCache();
mAdapter.changeCursor(null);
- if (mVoicemailPlaybackPresenter != null) {
- mVoicemailPlaybackPresenter.onDestroy();
- }
-
getActivity().getContentResolver().unregisterContentObserver(mCallLogObserver);
getActivity().getContentResolver().unregisterContentObserver(mContactsObserver);
- getActivity().getContentResolver().unregisterContentObserver(mVoicemailStatusObserver);
super.onDestroy();
}
@@ -380,10 +373,6 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
outState.putLong(KEY_DATE_LIMIT, mDateLimit);
mAdapter.onSaveInstanceState(outState);
-
- if (mVoicemailPlaybackPresenter != null) {
- mVoicemailPlaybackPresenter.onSaveInstanceState(outState);
- }
}
@Override
@@ -406,23 +395,23 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
final int messageId;
switch (filterType) {
case Calls.MISSED_TYPE:
- messageId = R.string.recentMissed_empty;
+ messageId = R.string.call_log_missed_empty;
break;
case Calls.VOICEMAIL_TYPE:
- messageId = R.string.recentVoicemails_empty;
+ messageId = R.string.call_log_voicemail_empty;
break;
case CallLogQueryHandler.CALL_TYPE_ALL:
- messageId = R.string.recentCalls_empty;
+ messageId = R.string.call_log_all_empty;
break;
default:
throw new IllegalArgumentException("Unexpected filter type in CallLogFragment: "
+ filterType);
}
mEmptyListView.setDescription(messageId);
- if (mIsRecentsFragment) {
- mEmptyListView.setActionLabel(R.string.recentCalls_empty_action);
- } else {
+ if (mIsCallLogActivity) {
mEmptyListView.setActionLabel(EmptyContentView.NO_LABEL);
+ } else if (filterType == CallLogQueryHandler.CALL_TYPE_ALL) {
+ mEmptyListView.setActionLabel(R.string.call_log_all_empty_action);
}
}
@@ -481,8 +470,11 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
if (!onEntry) {
mCallLogQueryHandler.markMissedCallsAsRead();
}
- CallLogNotificationsHelper.removeMissedCallNotifications(getActivity());
- CallLogNotificationsHelper.updateVoicemailNotifications(getActivity());
+ if (mCallTypeFilter == Calls.VOICEMAIL_TYPE) {
+ CallLogNotificationsHelper.updateVoicemailNotifications(getActivity());
+ } else {
+ CallLogNotificationsHelper.removeMissedCallNotifications(getActivity());
+ }
}
}
@@ -494,9 +486,10 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
}
if (!PermissionsUtil.hasPermission(activity, READ_CALL_LOG)) {
- requestPermissions(new String[] {READ_CALL_LOG}, READ_CALL_LOG_PERMISSION_REQUEST_CODE);
- } else if (mIsRecentsFragment) {
- // Show dialpad if we are the recents fragment.
+ FragmentCompat.requestPermissions(this, new String[] {READ_CALL_LOG},
+ READ_CALL_LOG_PERMISSION_REQUEST_CODE);
+ } else if (!mIsCallLogActivity) {
+ // Show dialpad if we are not in the call log activity.
((HostInterface) activity).showDialpad();
}
}
@@ -511,4 +504,25 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
}
}
}
+
+ /**
+ * Schedules an update to the relative call times (X mins ago).
+ */
+ private void rescheduleDisplayUpdate() {
+ if (!mDisplayUpdateHandler.hasMessages(EVENT_UPDATE_DISPLAY)) {
+ long time = System.currentTimeMillis();
+ // This value allows us to change the display relatively close to when the time changes
+ // from one minute to the next.
+ long millisUtilNextMinute = MILLIS_IN_MINUTE - (time % MILLIS_IN_MINUTE);
+ mDisplayUpdateHandler.sendEmptyMessageDelayed(
+ EVENT_UPDATE_DISPLAY, millisUtilNextMinute);
+ }
+ }
+
+ /**
+ * Cancels any pending update requests to update the relative call times (X mins ago).
+ */
+ private void cancelDisplayUpdate() {
+ mDisplayUpdateHandler.removeMessages(EVENT_UPDATE_DISPLAY);
+ }
}
diff --git a/src/com/android/dialer/calllog/CallLogGroupBuilder.java b/src/com/android/dialer/calllog/CallLogGroupBuilder.java
index 0826aeb4a..194231b90 100644
--- a/src/com/android/dialer/calllog/CallLogGroupBuilder.java
+++ b/src/com/android/dialer/calllog/CallLogGroupBuilder.java
@@ -17,17 +17,16 @@
package com.android.dialer.calllog;
import android.database.Cursor;
-import android.provider.CallLog.Calls;
import android.telephony.PhoneNumberUtils;
import android.text.format.Time;
+import android.text.TextUtils;
import com.android.contacts.common.util.DateUtils;
import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.dialer.util.AppCompatConstants;
import com.google.common.annotations.VisibleForTesting;
-import java.util.Objects;
-
/**
* Groups together calls in the call log. The primary grouping attempts to group together calls
* to and from the same number into a single row on the call log.
@@ -46,9 +45,8 @@ public class CallLogGroupBuilder {
* dialed.
* @param cursorPosition The starting position of the group in the cursor.
* @param size The size of the group.
- * @param expanded Whether the group is expanded; always false for the call log.
*/
- public void addGroup(int cursorPosition, int size, boolean expanded);
+ public void addGroup(int cursorPosition, int size);
/**
* Defines the interface for tracking the day group each call belongs to. Calls in a call
@@ -94,7 +92,7 @@ public class CallLogGroupBuilder {
/**
* Finds all groups of adjacent entries in the call log which should be grouped together and
- * calls {@link GroupCreator#addGroup(int, int, boolean)} on {@link #mGroupCreator} for each of
+ * calls {@link GroupCreator#addGroup(int, int)} on {@link #mGroupCreator} for each of
* them.
* <p>
* For entries that are not grouped with others, we do not need to create a group of size one.
@@ -114,98 +112,79 @@ public class CallLogGroupBuilder {
// Get current system time, used for calculating which day group calls belong to.
long currentTime = System.currentTimeMillis();
-
- int currentGroupSize = 1;
cursor.moveToFirst();
- // The number of the first entry in the group.
- String firstNumber = cursor.getString(CallLogQuery.NUMBER);
- // This is the type of the first call in the group.
- int firstCallType = cursor.getInt(CallLogQuery.CALL_TYPE);
-
- // The account information of the first entry in the group.
- String firstAccountComponentName = cursor.getString(CallLogQuery.ACCOUNT_COMPONENT_NAME);
- String firstAccountId = cursor.getString(CallLogQuery.ACCOUNT_ID);
// Determine the day group for the first call in the cursor.
final long firstDate = cursor.getLong(CallLogQuery.DATE);
final long firstRowId = cursor.getLong(CallLogQuery.ID);
- int currentGroupDayGroup = getDayGroup(firstDate, currentTime);
- mGroupCreator.setDayGroup(firstRowId, currentGroupDayGroup);
+ int groupDayGroup = getDayGroup(firstDate, currentTime);
+ mGroupCreator.setDayGroup(firstRowId, groupDayGroup);
+
+ // Instantiate the group values to those of the first call in the cursor.
+ String groupNumber = cursor.getString(CallLogQuery.NUMBER);
+ String groupPostDialDigits = PhoneNumberDisplayUtil.canShowPostDial()
+ ? cursor.getString(CallLogQuery.POST_DIAL_DIGITS) : "";
+ int groupCallType = cursor.getInt(CallLogQuery.CALL_TYPE);
+ String groupAccountComponentName = cursor.getString(CallLogQuery.ACCOUNT_COMPONENT_NAME);
+ String groupAccountId = cursor.getString(CallLogQuery.ACCOUNT_ID);
+ int groupSize = 1;
+
+ String number;
+ String numberPostDialDigits;
+ int callType;
+ String accountComponentName;
+ String accountId;
while (cursor.moveToNext()) {
- // The number of the current row in the cursor.
- final String currentNumber = cursor.getString(CallLogQuery.NUMBER);
- final int callType = cursor.getInt(CallLogQuery.CALL_TYPE);
- final String currentAccountComponentName = cursor.getString(
- CallLogQuery.ACCOUNT_COMPONENT_NAME);
- final String currentAccountId = cursor.getString(CallLogQuery.ACCOUNT_ID);
-
- final boolean sameNumber = equalNumbers(firstNumber, currentNumber);
- final boolean sameAccountComponentName = Objects.equals(
- firstAccountComponentName,
- currentAccountComponentName);
- final boolean sameAccountId = Objects.equals(
- firstAccountId,
- currentAccountId);
- final boolean sameAccount = sameAccountComponentName && sameAccountId;
-
- final boolean shouldGroup;
- final long currentCallId = cursor.getLong(CallLogQuery.ID);
- final long date = cursor.getLong(CallLogQuery.DATE);
-
- if (!sameNumber || !sameAccount) {
- // Should only group with calls from the same number.
- shouldGroup = false;
- } else if (firstCallType == Calls.VOICEMAIL_TYPE) {
- // never group voicemail.
- shouldGroup = false;
- } else {
- // Incoming, outgoing, and missed calls group together.
- shouldGroup = callType != Calls.VOICEMAIL_TYPE;
- }
-
- if (shouldGroup) {
+ // Obtain the values for the current call to group.
+ number = cursor.getString(CallLogQuery.NUMBER);
+ numberPostDialDigits = PhoneNumberDisplayUtil.canShowPostDial()
+ ? cursor.getString(CallLogQuery.POST_DIAL_DIGITS) : "";
+ callType = cursor.getInt(CallLogQuery.CALL_TYPE);
+ accountComponentName = cursor.getString(CallLogQuery.ACCOUNT_COMPONENT_NAME);
+ accountId = cursor.getString(CallLogQuery.ACCOUNT_ID);
+
+ final boolean isSameNumber = equalNumbers(groupNumber, number);
+ final boolean isSamePostDialDigits = groupPostDialDigits.equals(numberPostDialDigits);
+ final boolean isSameAccount = isSameAccount(
+ groupAccountComponentName, accountComponentName, groupAccountId, accountId);
+
+ // Group with the same number and account. Never group voicemails. Only group blocked
+ // calls with other blocked calls.
+ if (isSameNumber && isSameAccount && isSamePostDialDigits
+ && areBothNotVoicemail(callType, groupCallType)
+ && (areBothNotBlocked(callType, groupCallType)
+ || areBothBlocked(callType, groupCallType))) {
// Increment the size of the group to include the current call, but do not create
- // the group until we find a call that does not match.
- currentGroupSize++;
+ // the group until finding a call that does not match.
+ groupSize++;
} else {
- // The call group has changed, so determine the day group for the new call group.
- // This ensures all calls grouped together in the call log are assigned the same
- // day group.
- currentGroupDayGroup = getDayGroup(date, currentTime);
-
- // Create a group for the previous set of calls, excluding the current one, but do
- // not create a group for a single call.
- if (currentGroupSize > 1) {
- addGroup(cursor.getPosition() - currentGroupSize, currentGroupSize);
- }
+ // The call group has changed. Determine the day group for the new call group.
+ final long date = cursor.getLong(CallLogQuery.DATE);
+ groupDayGroup = getDayGroup(date, currentTime);
+
+ // Create a group for the previous group of calls, which does not include the
+ // current call.
+ mGroupCreator.addGroup(cursor.getPosition() - groupSize, groupSize);
+
// Start a new group; it will include at least the current call.
- currentGroupSize = 1;
- // The current entry is now the first in the group.
- firstNumber = currentNumber;
- firstCallType = callType;
- firstAccountComponentName = currentAccountComponentName;
- firstAccountId = currentAccountId;
+ groupSize = 1;
+
+ // Update the group values to those of the current call.
+ groupNumber = number;
+ groupPostDialDigits = numberPostDialDigits;
+ groupCallType = callType;
+ groupAccountComponentName = accountComponentName;
+ groupAccountId = accountId;
}
// Save the day group associated with the current call.
- mGroupCreator.setDayGroup(currentCallId, currentGroupDayGroup);
- }
- // If the last set of calls at the end of the call log was itself a group, create it now.
- if (currentGroupSize > 1) {
- addGroup(count - currentGroupSize, currentGroupSize);
+ final long currentCallId = cursor.getLong(CallLogQuery.ID);
+ mGroupCreator.setDayGroup(currentCallId, groupDayGroup);
}
- }
- /**
- * Creates a group of items in the cursor.
- * <p>
- * The group is always unexpanded.
- *
- * @see CallLogAdapter#addGroup(int, int, boolean)
- */
- private void addGroup(int cursorPosition, int size) {
- mGroupCreator.addGroup(cursorPosition, size, false);
+ // Create a group for the last set of calls.
+ mGroupCreator.addGroup(count - groupSize, groupSize);
}
@VisibleForTesting
@@ -217,6 +196,10 @@ public class CallLogGroupBuilder {
}
}
+ private boolean isSameAccount(String name1, String name2, String id1, String id2) {
+ return TextUtils.equals(name1, name2) && TextUtils.equals(id1, id2);
+ }
+
@VisibleForTesting
boolean compareSipAddresses(String number1, String number2) {
if (number1 == null || number2 == null) return number1 == number2;
@@ -264,4 +247,19 @@ public class CallLogGroupBuilder {
return DAY_GROUP_OTHER;
}
}
+
+ private boolean areBothNotVoicemail(int callType, int groupCallType) {
+ return callType != AppCompatConstants.CALLS_VOICEMAIL_TYPE
+ && groupCallType != AppCompatConstants.CALLS_VOICEMAIL_TYPE;
+ }
+
+ private boolean areBothNotBlocked(int callType, int groupCallType) {
+ return callType != AppCompatConstants.CALLS_BLOCKED_TYPE
+ && groupCallType != AppCompatConstants.CALLS_BLOCKED_TYPE;
+ }
+
+ private boolean areBothBlocked(int callType, int groupCallType) {
+ return callType == AppCompatConstants.CALLS_BLOCKED_TYPE
+ && groupCallType == AppCompatConstants.CALLS_BLOCKED_TYPE;
+ }
}
diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java
index 1c8e397e4..5d2bc8591 100644
--- a/src/com/android/dialer/calllog/CallLogListItemHelper.java
+++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java
@@ -16,7 +16,6 @@
package com.android.dialer.calllog;
-import android.content.Context;
import android.content.res.Resources;
import android.provider.CallLog.Calls;
import android.text.SpannableStringBuilder;
@@ -24,7 +23,9 @@ import android.text.TextUtils;
import android.util.Log;
import com.android.dialer.PhoneCallDetails;
+import com.android.dialer.util.AppCompatConstants;
import com.android.dialer.R;
+import com.android.dialer.calllog.calllogcache.CallLogCache;
/**
* Helper class to fill in the views of a call log entry.
@@ -36,27 +37,27 @@ import com.android.dialer.R;
private final PhoneCallDetailsHelper mPhoneCallDetailsHelper;
/** Resources to look up strings. */
private final Resources mResources;
- private final TelecomCallLogCache mTelecomCallLogCache;
+ private final CallLogCache mCallLogCache;
/**
* Creates a new helper instance.
*
* @param phoneCallDetailsHelper used to set the details of a phone call
- * @param phoneNumberHelper used to process phone number
+ * @param resources The object from which resources can be retrieved
+ * @param callLogCache A cache for values retrieved from telecom/telephony
*/
public CallLogListItemHelper(
PhoneCallDetailsHelper phoneCallDetailsHelper,
Resources resources,
- TelecomCallLogCache telecomCallLogCache) {
+ CallLogCache callLogCache) {
mPhoneCallDetailsHelper = phoneCallDetailsHelper;
mResources = resources;
- mTelecomCallLogCache = telecomCallLogCache;
+ mCallLogCache = callLogCache;
}
/**
* Sets the name, label, and number for a contact.
*
- * @param context The application context.
* @param views the views to populate
* @param details the details of a phone call needed to fill in the data
*/
@@ -74,6 +75,13 @@ import com.android.dialer.R;
// Cache name or number of caller. Used when setting the content descriptions of buttons
// when the actions ViewStub is inflated.
views.nameOrNumber = getNameOrNumber(details);
+
+ // The call type or Location associated with the call. Use when setting text for a
+ // voicemail log's call button
+ views.callTypeOrLocation = mPhoneCallDetailsHelper.getCallTypeOrLocation(details);
+
+ // Cache country iso. Used for number filtering.
+ views.countryIso = details.countryIso;
}
/**
@@ -157,7 +165,6 @@ import com.android.dialer.R;
*/
public CharSequence getCallDescription(PhoneCallDetails details) {
int lastCallType = getLastCallType(details.callTypes);
- boolean isVoiceMail = lastCallType == Calls.VOICEMAIL_TYPE;
// Get the name or number of the caller.
final CharSequence nameOrNumber = getNameOrNumber(details);
@@ -170,11 +177,6 @@ import com.android.dialer.R;
SpannableStringBuilder callDescription = new SpannableStringBuilder();
- // Prepend the voicemail indication.
- if (isVoiceMail) {
- callDescription.append(mResources.getString(R.string.description_new_voicemail));
- }
-
// Add number of calls if more than one.
if (details.callTypes.length > 1) {
callDescription.append(mResources.getString(R.string.description_num_calls,
@@ -186,8 +188,8 @@ import com.android.dialer.R;
callDescription.append(mResources.getString(R.string.description_video_call));
}
- int stringID = getCallDescriptionStringID(details.callTypes);
- String accountLabel = mTelecomCallLogCache.getAccountLabel(details.accountHandle);
+ int stringID = getCallDescriptionStringID(details.callTypes, details.isRead);
+ String accountLabel = mCallLogCache.getAccountLabel(details.accountHandle);
// Use chosen string resource to build up the message.
CharSequence onAccountLabel = accountLabel == null
@@ -210,21 +212,28 @@ import com.android.dialer.R;
/**
* Determine the appropriate string ID to describe a call for accessibility purposes.
*
- * @param details Call details.
+ * @param callTypes The type of call corresponding to this entry or multiple if this entry
+ * represents multiple calls grouped together.
+ * @param isRead If the entry is a voicemail, {@code true} if the voicemail is read.
* @return String resource ID to use.
*/
- public int getCallDescriptionStringID(int[] callTypes) {
+ public int getCallDescriptionStringID(int[] callTypes, boolean isRead) {
int lastCallType = getLastCallType(callTypes);
int stringID;
- if (lastCallType == Calls.VOICEMAIL_TYPE || lastCallType == Calls.MISSED_TYPE) {
+ if (lastCallType == AppCompatConstants.CALLS_MISSED_TYPE) {
//Message: Missed call from <NameOrNumber>, <TypeOrLocation>, <TimeOfCall>,
//<PhoneAccount>.
stringID = R.string.description_incoming_missed_call;
- } else if (lastCallType == Calls.INCOMING_TYPE) {
+ } else if (lastCallType == AppCompatConstants.CALLS_INCOMING_TYPE) {
//Message: Answered call from <NameOrNumber>, <TypeOrLocation>, <TimeOfCall>,
//<PhoneAccount>.
stringID = R.string.description_incoming_answered_call;
+ } else if (lastCallType == AppCompatConstants.CALLS_VOICEMAIL_TYPE) {
+ //Message: (Unread) [V/v]oicemail from <NameOrNumber>, <TypeOrLocation>, <TimeOfCall>,
+ //<PhoneAccount>.
+ stringID = isRead ? R.string.description_read_voicemail
+ : R.string.description_unread_voicemail;
} else {
//Message: Call to <NameOrNumber>, <TypeOrLocation>, <TimeOfCall>, <PhoneAccount>.
stringID = R.string.description_outgoing_call;
@@ -252,10 +261,10 @@ import com.android.dialer.R;
*/
private CharSequence getNameOrNumber(PhoneCallDetails details) {
final CharSequence recipient;
- if (!TextUtils.isEmpty(details.name)) {
- recipient = details.name;
+ if (!TextUtils.isEmpty(details.getPreferredName())) {
+ recipient = details.getPreferredName();
} else {
- recipient = details.displayNumber;
+ recipient = details.displayNumber + details.postDialDigits;
}
return recipient;
}
diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
index 0fa5e6d33..f76312db1 100644
--- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
+++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java
@@ -18,32 +18,53 @@ package com.android.dialer.calllog;
import android.app.Activity;
import android.content.Context;
-import android.content.res.Resources;
import android.content.Intent;
+import android.content.res.Resources;
import android.net.Uri;
+import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.telecom.PhoneAccountHandle;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
+import android.view.ContextMenu;
+import android.view.MenuItem;
import android.view.View;
-import android.view.ViewGroup;
import android.view.ViewStub;
-import android.widget.QuickContactBadge;
import android.widget.ImageView;
+import android.widget.QuickContactBadge;
import android.widget.TextView;
+import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.ClipboardUtils;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
import com.android.contacts.common.dialog.CallSubjectDialog;
import com.android.contacts.common.testing.NeededForTesting;
import com.android.contacts.common.util.UriUtils;
+import com.android.dialer.DialtactsActivity;
import com.android.dialer.R;
+import com.android.dialer.calllog.calllogcache.CallLogCache;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.filterednumber.BlockNumberDialogFragment;
+import com.android.dialer.filterednumber.FilteredNumbersUtil;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
+import com.android.dialer.service.SpamButtonRenderer;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.PhoneNumberUtil;
-import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
import com.android.dialer.voicemail.VoicemailPlaybackLayout;
+import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
+import com.android.dialerbind.ObjectFactory;
+import com.google.common.collect.Lists;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* This is an object containing references to views contained by the call log list item. This
@@ -52,7 +73,8 @@ import com.android.dialer.voicemail.VoicemailPlaybackLayout;
* This object also contains UI logic pertaining to the view, to isolate it from the CallLogAdapter.
*/
public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
- implements View.OnClickListener {
+ implements View.OnClickListener, MenuItem.OnMenuItemClickListener,
+ View.OnCreateContextMenuListener {
/** The root view of the call log list item */
public final View rootView;
@@ -80,6 +102,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
public View sendMessageView;
public View detailsButtonView;
public View callWithNoteButtonView;
+ public ImageView workIconView;
/**
* The row Id for the first call associated with the call log entry. Used as a key for the
@@ -100,6 +123,11 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
public String number;
/**
+ * The post-dial numbers that are dialed following the phone number.
+ */
+ public String postDialDigits;
+
+ /**
* The formatted phone number to display.
*/
public String displayNumber;
@@ -116,12 +144,24 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
public String numberType;
/**
+ * The country iso for the call. Cached here as the call back
+ * intent is set only when the actions ViewStub is inflated.
+ */
+ public String countryIso;
+
+ /**
* The type of call for the current call log entry. Cached here as the call back
* intent is set only when the actions ViewStub is inflated.
*/
public int callType;
/**
+ * ID for blocked numbers database.
+ * Set when context menu is created, if the number is blocked.
+ */
+ public Integer blockId;
+
+ /**
* The account for the current call log entry. Cached here as the call back
* intent is set only when the actions ViewStub is inflated.
*/
@@ -141,6 +181,12 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
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
+ */
+ public CharSequence callTypeOrLocation;
+
+ /**
* Whether this row is for a business or not.
*/
public boolean isBusiness;
@@ -150,24 +196,29 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
*/
public ContactInfo info;
- private static final int VOICEMAIL_TRANSCRIPTION_MAX_LINES = 10;
-
private final Context mContext;
- private final TelecomCallLogCache mTelecomCallLogCache;
+ private final CallLogCache mCallLogCache;
private final CallLogListItemHelper mCallLogListItemHelper;
private final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
+ private final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
+ private final BlockNumberDialogFragment.Callback mFilteredNumberDialogCallback;
private final int mPhotoSize;
+ private ViewStub mSpamViewStub;
+ private SpamButtonRenderer mSpamButtonRenderer;
+
private View.OnClickListener mExpandCollapseListener;
private boolean mVoicemailPrimaryActionButtonClicked;
private CallLogListItemViewHolder(
Context context,
View.OnClickListener expandCollapseListener,
- TelecomCallLogCache telecomCallLogCache,
+ CallLogCache callLogCache,
CallLogListItemHelper callLogListItemHelper,
VoicemailPlaybackPresenter voicemailPlaybackPresenter,
+ FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler,
+ BlockNumberDialogFragment.Callback filteredNumberDialogCallback,
View rootView,
QuickContactBadge quickContactView,
View primaryActionView,
@@ -179,9 +230,11 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
mContext = context;
mExpandCollapseListener = expandCollapseListener;
- mTelecomCallLogCache = telecomCallLogCache;
+ mCallLogCache = callLogCache;
mCallLogListItemHelper = callLogListItemHelper;
mVoicemailPlaybackPresenter = voicemailPlaybackPresenter;
+ mFilteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler;
+ mFilteredNumberDialogCallback = filteredNumberDialogCallback;
this.rootView = rootView;
this.quickContactView = quickContactView;
@@ -190,6 +243,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
this.callLogEntryView = callLogEntryView;
this.dayGroupHeader = dayGroupHeader;
this.primaryActionButtonView = primaryActionButtonView;
+ this.workIconView = (ImageView) rootView.findViewById(R.id.work_profile_icon);
Resources resources = mContext.getResources();
mPhotoSize = mContext.getResources().getDimensionPixelSize(R.dimen.contact_photo_size);
@@ -198,26 +252,33 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
phoneCallDetailsViews.nameView.setElegantTextHeight(false);
phoneCallDetailsViews.callLocationAndDate.setElegantTextHeight(false);
- quickContactView.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
-
+ quickContactView.setOverlay(null);
+ if (CompatUtils.hasPrioritizedMimeType()) {
+ quickContactView.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
+ }
primaryActionButtonView.setOnClickListener(this);
primaryActionView.setOnClickListener(mExpandCollapseListener);
+ primaryActionView.setOnCreateContextMenuListener(this);
}
public static CallLogListItemViewHolder create(
View view,
Context context,
View.OnClickListener expandCollapseListener,
- TelecomCallLogCache telecomCallLogCache,
+ CallLogCache callLogCache,
CallLogListItemHelper callLogListItemHelper,
- VoicemailPlaybackPresenter voicemailPlaybackPresenter) {
+ VoicemailPlaybackPresenter voicemailPlaybackPresenter,
+ FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler,
+ BlockNumberDialogFragment.Callback filteredNumberDialogCallback) {
return new CallLogListItemViewHolder(
context,
expandCollapseListener,
- telecomCallLogCache,
+ callLogCache,
callLogListItemHelper,
voicemailPlaybackPresenter,
+ filteredNumberAsyncQueryHandler,
+ filteredNumberDialogCallback,
view,
(QuickContactBadge) view.findViewById(R.id.quick_contact_photo),
view.findViewById(R.id.primary_action_view),
@@ -227,17 +288,105 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
(ImageView) view.findViewById(R.id.primary_action_button));
}
+ @Override
+ public void onCreateContextMenu(
+ final ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+ if (TextUtils.isEmpty(number)) {
+ return;
+ }
+
+ if (callType == CallLog.Calls.VOICEMAIL_TYPE) {
+ menu.setHeaderTitle(mContext.getResources().getText(R.string.voicemail));
+ } else {
+ menu.setHeaderTitle(PhoneNumberUtilsCompat.createTtsSpannable(
+ BidiFormatter.getInstance().unicodeWrap(number, TextDirectionHeuristics.LTR)));
+ }
+
+ menu.add(ContextMenu.NONE, R.id.context_menu_copy_to_clipboard, ContextMenu.NONE,
+ R.string.action_copy_number_text)
+ .setOnMenuItemClickListener(this);
+
+ // The edit number before call does not show up if any of the conditions apply:
+ // 1) Number cannot be called
+ // 2) Number is the voicemail number
+ // 3) Number is a SIP address
+
+ if (PhoneNumberUtil.canPlaceCallsTo(number, numberPresentation)
+ && !mCallLogCache.isVoicemailNumber(accountHandle, number)
+ && !PhoneNumberUtil.isSipNumber(number)) {
+ menu.add(ContextMenu.NONE, R.id.context_menu_edit_before_call, ContextMenu.NONE,
+ R.string.action_edit_number_before_call)
+ .setOnMenuItemClickListener(this);
+ }
+
+ if (callType == CallLog.Calls.VOICEMAIL_TYPE
+ && phoneCallDetailsViews.voicemailTranscriptionView.length() > 0) {
+ menu.add(ContextMenu.NONE, R.id.context_menu_copy_transcript_to_clipboard,
+ ContextMenu.NONE, R.string.copy_transcript_text)
+ .setOnMenuItemClickListener(this);
+ }
+
+ if (FilteredNumbersUtil.canBlockNumber(mContext, number, countryIso)) {
+ mFilteredNumberAsyncQueryHandler.isBlockedNumber(
+ new FilteredNumberAsyncQueryHandler.OnCheckBlockedListener() {
+ @Override
+ public void onCheckComplete(Integer id) {
+ blockId = id;
+ int blockTitleId = blockId == null ? R.string.action_block_number
+ : R.string.action_unblock_number;
+ final MenuItem blockItem = menu.add(
+ ContextMenu.NONE,
+ R.id.context_menu_block_number,
+ ContextMenu.NONE,
+ blockTitleId);
+ blockItem.setOnMenuItemClickListener(
+ CallLogListItemViewHolder.this);
+ }
+ }, number, countryIso);
+ }
+
+ Logger.logScreenView(ScreenEvent.CALL_LOG_CONTEXT_MENU, (Activity) mContext);
+ }
+
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.context_menu_block_number:
+ BlockNumberDialogFragment.show(
+ blockId,
+ number,
+ countryIso,
+ displayNumber,
+ R.id.floating_action_button_container,
+ ((Activity) mContext).getFragmentManager(),
+ mFilteredNumberDialogCallback);
+ return true;
+ case R.id.context_menu_copy_to_clipboard:
+ ClipboardUtils.copyText(mContext, null, number, true);
+ return true;
+ case R.id.context_menu_copy_transcript_to_clipboard:
+ ClipboardUtils.copyText(mContext, null,
+ phoneCallDetailsViews.voicemailTranscriptionView.getText(), true);
+ return true;
+ case R.id.context_menu_edit_before_call:
+ final Intent intent = new Intent(
+ Intent.ACTION_DIAL, CallUtil.getCallUri(number));
+ intent.setClass(mContext, DialtactsActivity.class);
+ DialerUtils.startActivityWithErrorToast(mContext, intent);
+ return true;
+ }
+ return false;
+ }
+
/**
* Configures the action buttons in the expandable actions ViewStub. The ViewStub is not
* inflated during initial binding, so click handlers, tags and accessibility text must be set
* here, if necessary.
- *
- * @param callLogItem The call log list item view.
*/
public void inflateActionViewStub() {
ViewStub stub = (ViewStub) rootView.findViewById(R.id.call_log_entry_actions_stub);
if (stub != null) {
- actionsView = (ViewGroup) stub.inflate();
+ actionsView = stub.inflate();
voicemailPlaybackView = (VoicemailPlaybackLayout) actionsView
.findViewById(R.id.voicemail_playback_layout);
@@ -263,6 +412,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
callWithNoteButtonView = actionsView.findViewById(R.id.call_with_note_action);
callWithNoteButtonView.setOnClickListener(this);
+
+ mSpamViewStub = (ViewStub) actionsView.findViewById(R.id.spam_actions_container);
+ mSpamButtonRenderer = ObjectFactory.newSpamButtonRenderer(mContext, mSpamViewStub);
}
bindActionButtons();
@@ -273,25 +425,25 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
// Treat as voicemail list item; show play button if not expanded.
if (!isExpanded) {
primaryActionButtonView.setImageResource(R.drawable.ic_play_arrow_24dp);
+ primaryActionButtonView.setContentDescription(TextUtils.expandTemplate(
+ mContext.getString(R.string.description_voicemail_action),
+ nameOrNumber));
primaryActionButtonView.setVisibility(View.VISIBLE);
} else {
primaryActionButtonView.setVisibility(View.GONE);
}
} else {
// Treat as normal list item; show call button, if possible.
- boolean canPlaceCallToNumber =
- PhoneNumberUtil.canPlaceCallsTo(number, numberPresentation);
-
- if (canPlaceCallToNumber) {
+ if (PhoneNumberUtil.canPlaceCallsTo(number, numberPresentation)) {
boolean isVoicemailNumber =
- mTelecomCallLogCache.isVoicemailNumber(accountHandle, number);
+ mCallLogCache.isVoicemailNumber(accountHandle, number);
if (isVoicemailNumber) {
// Call to generic voicemail number, in case there are multiple accounts.
primaryActionButtonView.setTag(
IntentProvider.getReturnVoicemailCallIntentProvider());
} else {
primaryActionButtonView.setTag(
- IntentProvider.getReturnCallIntentProvider(number));
+ IntentProvider.getReturnCallIntentProvider(number + postDialDigits));
}
primaryActionButtonView.setContentDescription(TextUtils.expandTemplate(
@@ -319,13 +471,21 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
.setText(TextUtils.expandTemplate(
mContext.getString(R.string.call_log_action_call),
nameOrNumber));
+ TextView callTypeOrLocationView = ((TextView) callButtonView.findViewById(
+ R.id.call_type_or_location_text));
+ if (callType == Calls.VOICEMAIL_TYPE && !TextUtils.isEmpty(callTypeOrLocation)) {
+ callTypeOrLocationView.setText(callTypeOrLocation);
+ callTypeOrLocationView.setVisibility(View.VISIBLE);
+ } else {
+ callTypeOrLocationView.setVisibility(View.GONE);
+ }
callButtonView.setVisibility(View.VISIBLE);
} else {
callButtonView.setVisibility(View.GONE);
}
// If one of the calls had video capabilities, show the video call button.
- if (mTelecomCallLogCache.isVideoEnabled() && canPlaceCallToNumber &&
+ if (mCallLogCache.isVideoEnabled() && canPlaceCallToNumber &&
phoneCallDetailsViews.callTypeIcons.isVideoShown()) {
videoCallButtonView.setTag(IntentProvider.getReturnVideoCallIntentProvider(number));
videoCallButtonView.setVisibility(View.VISIBLE);
@@ -334,7 +494,8 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
}
// For voicemail calls, show the voicemail playback layout; hide otherwise.
- if (callType == Calls.VOICEMAIL_TYPE && mVoicemailPlaybackPresenter != null) {
+ if (callType == Calls.VOICEMAIL_TYPE && mVoicemailPlaybackPresenter != null
+ && !TextUtils.isEmpty(voicemailUri)) {
voicemailPlaybackView.setVisibility(View.VISIBLE);
Uri uri = Uri.parse(voicemailUri);
@@ -347,9 +508,13 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
voicemailPlaybackView.setVisibility(View.GONE);
}
- detailsButtonView.setVisibility(View.VISIBLE);
- detailsButtonView.setTag(
- IntentProvider.getCallDetailIntentProvider(rowId, callIds, null));
+ if (callType == Calls.VOICEMAIL_TYPE) {
+ detailsButtonView.setVisibility(View.GONE);
+ } else {
+ detailsButtonView.setVisibility(View.VISIBLE);
+ detailsButtonView.setTag(
+ IntentProvider.getCallDetailIntentProvider(rowId, callIds, null));
+ }
if (info != null && UriUtils.isEncodedContactUri(info.lookupUri)) {
createNewContactButtonView.setTag(IntentProvider.getAddContactIntentProvider(
@@ -364,16 +529,39 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
addToExistingContactButtonView.setVisibility(View.GONE);
}
- sendMessageView.setTag(IntentProvider.getSendSmsIntentProvider(number));
+ if (canPlaceCallToNumber) {
+ sendMessageView.setTag(IntentProvider.getSendSmsIntentProvider(number));
+ sendMessageView.setVisibility(View.VISIBLE);
+ } else {
+ sendMessageView.setVisibility(View.GONE);
+ }
mCallLogListItemHelper.setActionContentDescriptions(this);
boolean supportsCallSubject =
- mTelecomCallLogCache.doesAccountSupportCallSubject(accountHandle);
+ mCallLogCache.doesAccountSupportCallSubject(accountHandle);
boolean isVoicemailNumber =
- mTelecomCallLogCache.isVoicemailNumber(accountHandle, number);
+ mCallLogCache.isVoicemailNumber(accountHandle, number);
callWithNoteButtonView.setVisibility(
supportsCallSubject && !isVoicemailNumber ? View.VISIBLE : View.GONE);
+
+ if(mSpamButtonRenderer != null){
+ List<View> completeLogListItems = Lists.newArrayList(
+ createNewContactButtonView,
+ addToExistingContactButtonView,
+ sendMessageView,
+ callButtonView,
+ callWithNoteButtonView,
+ detailsButtonView,
+ voicemailPlaybackView);
+ List<View> blockedNumberVisibleViews = new ArrayList<>();
+ List<View> spamNumberVisibleViews = Lists.newArrayList(detailsButtonView);
+
+ mSpamButtonRenderer.setCompleteListItemViews(completeLogListItems);
+ mSpamButtonRenderer.setFilteredNumberViews(blockedNumberVisibleViews);
+ mSpamButtonRenderer.setSpamFilteredViews(spamNumberVisibleViews);
+ mSpamButtonRenderer.render(number, countryIso);
+ }
}
/**
@@ -382,7 +570,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
* If the action views have never been shown yet for this view, inflate the view stub.
*/
public void showActions(boolean show) {
- expandVoicemailTranscriptionView(show);
+ showOrHideVoicemailTranscriptionView(show);
if (show) {
// Inflate the view stub if necessary, and wire up the event handlers.
@@ -401,24 +589,23 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
updatePrimaryActionButton(show);
}
- public void expandVoicemailTranscriptionView(boolean isExpanded) {
+ public void showOrHideVoicemailTranscriptionView(boolean isExpanded) {
if (callType != Calls.VOICEMAIL_TYPE) {
return;
}
final TextView view = phoneCallDetailsViews.voicemailTranscriptionView;
- if (TextUtils.isEmpty(view.getText())) {
+ if (!isExpanded || TextUtils.isEmpty(view.getText())) {
+ view.setVisibility(View.GONE);
return;
}
- view.setMaxLines(isExpanded ? VOICEMAIL_TRANSCRIPTION_MAX_LINES : 1);
- view.setSingleLine(!isExpanded);
+ view.setVisibility(View.VISIBLE);
}
- public void setPhoto(long photoId, Uri photoUri, Uri contactUri, String displayName,
- boolean isVoicemail, boolean isBusiness) {
- quickContactView.assignContactUri(contactUri);
- quickContactView.setOverlay(null);
+ public void updatePhoto() {
+ quickContactView.assignContactUri(info.lookupUri);
+ final boolean isVoicemail = mCallLogCache.isVoicemailNumber(accountHandle, number);
int contactType = ContactPhotoManager.TYPE_DEFAULT;
if (isVoicemail) {
contactType = ContactPhotoManager.TYPE_VOICEMAIL;
@@ -426,19 +613,17 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
contactType = ContactPhotoManager.TYPE_BUSINESS;
}
- String lookupKey = null;
- if (contactUri != null) {
- lookupKey = UriUtils.getLookupKeyFromUri(contactUri);
- }
-
- DefaultImageRequest request = new DefaultImageRequest(
+ final String lookupKey = info.lookupUri != null
+ ? UriUtils.getLookupKeyFromUri(info.lookupUri) : null;
+ final String displayName = TextUtils.isEmpty(info.name) ? displayNumber : info.name;
+ final DefaultImageRequest request = new DefaultImageRequest(
displayName, lookupKey, contactType, true /* isCircular */);
- if (photoId == 0 && photoUri != null) {
- ContactPhotoManager.getInstance(mContext).loadPhoto(quickContactView, photoUri,
+ if (info.photoId == 0 && info.photoUri != null) {
+ ContactPhotoManager.getInstance(mContext).loadPhoto(quickContactView, info.photoUri,
mPhotoSize, false /* darkTheme */, true /* isCircular */, request);
} else {
- ContactPhotoManager.getInstance(mContext).loadThumbnail(quickContactView, photoId,
+ ContactPhotoManager.getInstance(mContext).loadThumbnail(quickContactView, info.photoId,
false /* darkTheme */, true /* isCircular */, request);
}
}
@@ -456,7 +641,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
info.lookupUri,
(String) nameOrNumber /* top line of contact view in call subject dialog */,
isBusiness,
- number, /* callable number used for ACTION_CALL intent */
+ number,
TextUtils.isEmpty(info.name) ? null : displayNumber, /* second line of contact
view in dialog. */
numberType, /* phone number type (e.g. mobile) in second line of contact view */
@@ -476,16 +661,19 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
@NeededForTesting
public static CallLogListItemViewHolder createForTest(Context context) {
Resources resources = context.getResources();
- TelecomCallLogCache telecomCallLogCache = new TelecomCallLogCache(context);
+ CallLogCache callLogCache =
+ CallLogCache.getCallLogCache(context);
PhoneCallDetailsHelper phoneCallDetailsHelper = new PhoneCallDetailsHelper(
- context, resources, telecomCallLogCache);
+ context, resources, callLogCache);
CallLogListItemViewHolder viewHolder = new CallLogListItemViewHolder(
context,
null /* expandCollapseListener */,
- telecomCallLogCache,
- new CallLogListItemHelper(phoneCallDetailsHelper, resources, telecomCallLogCache),
+ callLogCache,
+ new CallLogListItemHelper(phoneCallDetailsHelper, resources, callLogCache),
null /* voicemailPlaybackPresenter */,
+ null /* filteredNumberAsyncQueryHandler */,
+ null /* filteredNumberDialogCallback */,
new View(context),
new QuickContactBadge(context),
new View(context),
diff --git a/src/com/android/dialer/calllog/CallLogNotificationsHelper.java b/src/com/android/dialer/calllog/CallLogNotificationsHelper.java
index 367cb78c3..64ccd5f88 100644
--- a/src/com/android/dialer/calllog/CallLogNotificationsHelper.java
+++ b/src/com/android/dialer/calllog/CallLogNotificationsHelper.java
@@ -16,14 +16,127 @@
package com.android.dialer.calllog;
+import static android.Manifest.permission.READ_CALL_LOG;
+import static android.Manifest.permission.READ_CONTACTS;
+
+import android.content.ContentResolver;
+import android.content.ContentUris;
import android.content.Context;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.CallLog.Calls;
+import android.provider.ContactsContract.PhoneLookup;
+import android.support.annotation.Nullable;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.util.Log;
+import com.android.contacts.common.GeoUtil;
+import com.android.contacts.common.util.PermissionsUtil;
+import com.android.dialer.R;
import com.android.dialer.util.TelecomUtil;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* Helper class operating on call log notifications.
*/
public class CallLogNotificationsHelper {
+ private static final String TAG = "CallLogNotifHelper";
+ private static CallLogNotificationsHelper sInstance;
+
+ /** Returns the singleton instance of the {@link CallLogNotificationsHelper}. */
+ public static CallLogNotificationsHelper getInstance(Context context) {
+ if (sInstance == null) {
+ ContentResolver contentResolver = context.getContentResolver();
+ String countryIso = GeoUtil.getCurrentCountryIso(context);
+ sInstance = new CallLogNotificationsHelper(context,
+ createNewCallsQuery(context, contentResolver),
+ createNameLookupQuery(context, contentResolver),
+ new ContactInfoHelper(context, countryIso),
+ countryIso);
+ }
+ return sInstance;
+ }
+
+ private final Context mContext;
+ private final NewCallsQuery mNewCallsQuery;
+ private final NameLookupQuery mNameLookupQuery;
+ private final ContactInfoHelper mContactInfoHelper;
+ private final String mCurrentCountryIso;
+
+ CallLogNotificationsHelper(Context context, NewCallsQuery newCallsQuery,
+ NameLookupQuery nameLookupQuery, ContactInfoHelper contactInfoHelper,
+ String countryIso) {
+ mContext = context;
+ mNewCallsQuery = newCallsQuery;
+ mNameLookupQuery = nameLookupQuery;
+ mContactInfoHelper = contactInfoHelper;
+ mCurrentCountryIso = countryIso;
+ }
+
+ /**
+ * Get all voicemails with the "new" flag set to 1.
+ *
+ * @return A list of NewCall objects where each object represents a new voicemail.
+ */
+ @Nullable
+ public List<NewCall> getNewVoicemails() {
+ return mNewCallsQuery.query(Calls.VOICEMAIL_TYPE);
+ }
+
+ /**
+ * Get all missed calls with the "new" flag set to 1.
+ *
+ * @return A list of NewCall objects where each object represents a new missed call.
+ */
+ @Nullable
+ public List<NewCall> getNewMissedCalls() {
+ return mNewCallsQuery.query(Calls.MISSED_TYPE);
+ }
+
+ /**
+ * Given a number and number information (presentation and country ISO), get the best name
+ * for display. If the name is empty but we have a special presentation, display that.
+ * Otherwise attempt to look it up in the database or the cache.
+ * If that fails, fall back to displaying the number.
+ */
+ public String getName(@Nullable String number, int numberPresentation,
+ @Nullable String countryIso) {
+ String name = PhoneNumberDisplayUtil.getDisplayName(
+ mContext,
+ number,
+ numberPresentation,
+ false).toString();
+ if (!TextUtils.isEmpty(name)) {
+ return name;
+ }
+
+ // Look it up in the database.
+ name = mNameLookupQuery.query(number);
+ if (!TextUtils.isEmpty(name)) {
+ return name;
+ }
+
+ if (countryIso == null) {
+ countryIso = mCurrentCountryIso;
+ }
+
+ // Look it up in the cache
+ ContactInfo contactInfo = mContactInfoHelper.lookupNumber(number, countryIso);
+
+ if (contactInfo != null && !TextUtils.isEmpty(contactInfo.name)) {
+ return contactInfo.name;
+ }
+
+ if (!TextUtils.isEmpty(number)) {
+ // If we cannot lookup the contact, use the number instead.
+ return PhoneNumberUtils.formatNumber(number, countryIso);
+ }
+ return mContext.getResources().getString(R.string.unknown);
+ }
+
/** Removes the missed call notifications. */
public static void removeMissedCallNotifications(Context context) {
TelecomUtil.cancelMissedCallsNotification(context);
@@ -33,4 +146,188 @@ public class CallLogNotificationsHelper {
public static void updateVoicemailNotifications(Context context) {
CallLogNotificationsService.updateVoicemailNotifications(context, null);
}
+
+ /** Information about a new voicemail. */
+ public static final class NewCall {
+ public final Uri callsUri;
+ public final Uri voicemailUri;
+ public final String number;
+ public final int numberPresentation;
+ public final String accountComponentName;
+ public final String accountId;
+ public final String transcription;
+ public final String countryIso;
+ public final long dateMs;
+
+ public NewCall(
+ Uri callsUri,
+ Uri voicemailUri,
+ String number,
+ int numberPresentation,
+ String accountComponentName,
+ String accountId,
+ String transcription,
+ String countryIso,
+ long dateMs) {
+ this.callsUri = callsUri;
+ this.voicemailUri = voicemailUri;
+ this.number = number;
+ this.numberPresentation = numberPresentation;
+ this.accountComponentName = accountComponentName;
+ this.accountId = accountId;
+ this.transcription = transcription;
+ this.countryIso = countryIso;
+ this.dateMs = dateMs;
+ }
+ }
+
+ /** Allows determining the new calls for which a notification should be generated. */
+ public interface NewCallsQuery {
+ /**
+ * Returns the new calls of a certain type for which a notification should be generated.
+ */
+ @Nullable
+ public List<NewCall> query(int type);
+ }
+
+ /** Create a new instance of {@link NewCallsQuery}. */
+ public static NewCallsQuery createNewCallsQuery(Context context,
+ ContentResolver contentResolver) {
+
+ return new DefaultNewCallsQuery(context.getApplicationContext(), contentResolver);
+ }
+
+ /**
+ * Default implementation of {@link NewCallsQuery} that looks up the list of new calls to
+ * notify about in the call log.
+ */
+ private static final class DefaultNewCallsQuery implements NewCallsQuery {
+ private static final String[] PROJECTION = {
+ Calls._ID,
+ Calls.NUMBER,
+ Calls.VOICEMAIL_URI,
+ Calls.NUMBER_PRESENTATION,
+ Calls.PHONE_ACCOUNT_COMPONENT_NAME,
+ Calls.PHONE_ACCOUNT_ID,
+ Calls.TRANSCRIPTION,
+ Calls.COUNTRY_ISO,
+ Calls.DATE
+ };
+ private static final int ID_COLUMN_INDEX = 0;
+ private static final int NUMBER_COLUMN_INDEX = 1;
+ private static final int VOICEMAIL_URI_COLUMN_INDEX = 2;
+ private static final int NUMBER_PRESENTATION_COLUMN_INDEX = 3;
+ private static final int PHONE_ACCOUNT_COMPONENT_NAME_COLUMN_INDEX = 4;
+ private static final int PHONE_ACCOUNT_ID_COLUMN_INDEX = 5;
+ private static final int TRANSCRIPTION_COLUMN_INDEX = 6;
+ private static final int COUNTRY_ISO_COLUMN_INDEX = 7;
+ private static final int DATE_COLUMN_INDEX = 8;
+
+ private final ContentResolver mContentResolver;
+ private final Context mContext;
+
+ private DefaultNewCallsQuery(Context context, ContentResolver contentResolver) {
+ mContext = context;
+ mContentResolver = contentResolver;
+ }
+
+ @Override
+ @Nullable
+ public List<NewCall> query(int type) {
+ if (!PermissionsUtil.hasPermission(mContext, READ_CALL_LOG)) {
+ Log.w(TAG, "No READ_CALL_LOG permission, returning null for calls lookup.");
+ return null;
+ }
+ final String selection = String.format("%s = 1 AND %s = ?", Calls.NEW, Calls.TYPE);
+ final String[] selectionArgs = new String[]{ Integer.toString(type) };
+ try (Cursor cursor = mContentResolver.query(Calls.CONTENT_URI_WITH_VOICEMAIL,
+ PROJECTION, selection, selectionArgs, Calls.DEFAULT_SORT_ORDER)) {
+ if (cursor == null) {
+ return null;
+ }
+ List<NewCall> newCalls = new ArrayList<>();
+ while (cursor.moveToNext()) {
+ newCalls.add(createNewCallsFromCursor(cursor));
+ }
+ return newCalls;
+ } catch (RuntimeException e) {
+ Log.w(TAG, "Exception when querying Contacts Provider for calls lookup");
+ return null;
+ }
+ }
+
+ /** Returns an instance of {@link NewCall} created by using the values of the cursor. */
+ private NewCall createNewCallsFromCursor(Cursor cursor) {
+ String voicemailUriString = cursor.getString(VOICEMAIL_URI_COLUMN_INDEX);
+ Uri callsUri = ContentUris.withAppendedId(
+ Calls.CONTENT_URI_WITH_VOICEMAIL, cursor.getLong(ID_COLUMN_INDEX));
+ Uri voicemailUri = voicemailUriString == null ? null : Uri.parse(voicemailUriString);
+ return new NewCall(
+ callsUri,
+ voicemailUri,
+ cursor.getString(NUMBER_COLUMN_INDEX),
+ cursor.getInt(NUMBER_PRESENTATION_COLUMN_INDEX),
+ cursor.getString(PHONE_ACCOUNT_COMPONENT_NAME_COLUMN_INDEX),
+ cursor.getString(PHONE_ACCOUNT_ID_COLUMN_INDEX),
+ cursor.getString(TRANSCRIPTION_COLUMN_INDEX),
+ cursor.getString(COUNTRY_ISO_COLUMN_INDEX),
+ cursor.getLong(DATE_COLUMN_INDEX));
+ }
+ }
+
+ /** Allows determining the name associated with a given phone number. */
+ public interface NameLookupQuery {
+ /**
+ * Returns the name associated with the given number in the contacts database, or null if
+ * the number does not correspond to any of the contacts.
+ * <p>
+ * If there are multiple contacts with the same phone number, it will return the name of one
+ * of the matching contacts.
+ */
+ @Nullable
+ public String query(@Nullable String number);
+ }
+
+ /** Create a new instance of {@link NameLookupQuery}. */
+ public static NameLookupQuery createNameLookupQuery(Context context,
+ ContentResolver contentResolver) {
+ return new DefaultNameLookupQuery(context.getApplicationContext(), contentResolver);
+ }
+
+ /**
+ * Default implementation of {@link NameLookupQuery} that looks up the name of a contact in the
+ * contacts database.
+ */
+ private static final class DefaultNameLookupQuery implements NameLookupQuery {
+ private static final String[] PROJECTION = { PhoneLookup.DISPLAY_NAME };
+ private static final int DISPLAY_NAME_COLUMN_INDEX = 0;
+
+ private final ContentResolver mContentResolver;
+ private final Context mContext;
+
+ private DefaultNameLookupQuery(Context context, ContentResolver contentResolver) {
+ mContext = context;
+ mContentResolver = contentResolver;
+ }
+
+ @Override
+ @Nullable
+ public String query(@Nullable String number) {
+ if (!PermissionsUtil.hasPermission(mContext, READ_CONTACTS)) {
+ Log.w(TAG, "No READ_CONTACTS permission, returning null for name lookup.");
+ return null;
+ }
+ try (Cursor cursor = mContentResolver.query(
+ Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number)),
+ PROJECTION, null, null, null)) {
+ if (cursor == null || !cursor.moveToFirst()) {
+ return null;
+ }
+ return cursor.getString(DISPLAY_NAME_COLUMN_INDEX);
+ } catch (RuntimeException e) {
+ Log.w(TAG, "Exception when querying Contacts Provider for name lookup");
+ return null;
+ }
+ }
+ }
}
diff --git a/src/com/android/dialer/calllog/CallLogNotificationsService.java b/src/com/android/dialer/calllog/CallLogNotificationsService.java
index 9a67b61b6..4ff9576ca 100644
--- a/src/com/android/dialer/calllog/CallLogNotificationsService.java
+++ b/src/com/android/dialer/calllog/CallLogNotificationsService.java
@@ -26,15 +26,16 @@ import com.android.contacts.common.util.PermissionsUtil;
import com.android.dialer.util.TelecomUtil;
/**
- * Provides operations for managing notifications.
+ * Provides operations for managing call-related notifications.
* <p>
* It handles the following actions:
* <ul>
- * <li>{@link #ACTION_MARK_NEW_VOICEMAILS_AS_OLD}: marks all the new voicemails in the call log as
- * old; this is called when a notification is dismissed.</li>
- * <li>{@link #ACTION_UPDATE_NOTIFICATIONS}: updates the content of the new items notification; it
- * may include an optional extra {@link #EXTRA_NEW_VOICEMAIL_URI}, containing the URI of the new
- * voicemail that has triggered this update (if any).</li>
+ * <li>Updating voicemail notifications</li>
+ * <li>Marking new voicemails as old</li>
+ * <li>Updating missed call notifications</li>
+ * <li>Marking new missed calls as old</li>
+ * <li>Calling back from a missed call</li>
+ * <li>Sending an SMS from a missed call</li>
* </ul>
*/
public class CallLogNotificationsService extends IntentService {
@@ -45,21 +46,62 @@ public class CallLogNotificationsService extends IntentService {
"com.android.dialer.calllog.ACTION_MARK_NEW_VOICEMAILS_AS_OLD";
/**
- * Action to update the notifications.
+ * Action to update voicemail notifications.
* <p>
* May include an optional extra {@link #EXTRA_NEW_VOICEMAIL_URI}.
*/
- public static final String ACTION_UPDATE_NOTIFICATIONS =
- "com.android.dialer.calllog.UPDATE_NOTIFICATIONS";
+ public static final String ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS =
+ "com.android.dialer.calllog.UPDATE_VOICEMAIL_NOTIFICATIONS";
/**
- * Extra to included with {@link #ACTION_UPDATE_NOTIFICATIONS} to identify the new voicemail
- * that triggered an update.
+ * Extra to included with {@link #ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS} to identify the new
+ * voicemail that triggered an update.
* <p>
* It must be a {@link Uri}.
*/
public static final String EXTRA_NEW_VOICEMAIL_URI = "NEW_VOICEMAIL_URI";
+ /**
+ * Action to update the missed call notifications.
+ * <p>
+ * Includes optional extras {@link #EXTRA_MISSED_CALL_NUMBER} and
+ * {@link #EXTRA_MISSED_CALL_COUNT}.
+ */
+ public static final String ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS =
+ "com.android.dialer.calllog.UPDATE_MISSED_CALL_NOTIFICATIONS";
+
+ /** Action to mark all the new missed calls as old. */
+ public static final String ACTION_MARK_NEW_MISSED_CALLS_AS_OLD =
+ "com.android.dialer.calllog.ACTION_MARK_NEW_MISSED_CALLS_AS_OLD";
+
+ /** Action to call back a missed call. */
+ public static final String ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION =
+ "com.android.dialer.calllog.CALL_BACK_FROM_MISSED_CALL_NOTIFICATION";
+
+ public static final String ACTION_SEND_SMS_FROM_MISSED_CALL_NOTIFICATION =
+ "com.android.dialer.calllog.SEND_SMS_FROM_MISSED_CALL_NOTIFICATION";
+
+ /**
+ * Extra to be included with {@link #ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS},
+ * {@link #ACTION_SEND_SMS_FROM_MISSED_CALL_NOTIFICATION} and
+ * {@link #ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION} to identify the number to display,
+ * call or text back.
+ * <p>
+ * It must be a {@link String}.
+ */
+ public static final String EXTRA_MISSED_CALL_NUMBER = "MISSED_CALL_NUMBER";
+
+ /**
+ * Extra to be included with {@link #ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS} to represent the
+ * number of missed calls.
+ * <p>
+ * It must be a {@link Integer}
+ */
+ public static final String EXTRA_MISSED_CALL_COUNT =
+ "MISSED_CALL_COUNT";
+
+ public static final int UNKNOWN_MISSED_CALL_COUNT = -1;
+
private VoicemailQueryHandler mVoicemailQueryHandler;
public CallLogNotificationsService() {
@@ -67,12 +109,6 @@ public class CallLogNotificationsService extends IntentService {
}
@Override
- public void onCreate() {
- super.onCreate();
- mVoicemailQueryHandler = new VoicemailQueryHandler(this, getContentResolver());
- }
-
- @Override
protected void onHandleIntent(Intent intent) {
if (intent == null) {
Log.d(TAG, "onHandleIntent: could not handle null intent");
@@ -83,13 +119,38 @@ public class CallLogNotificationsService extends IntentService {
return;
}
- if (ACTION_MARK_NEW_VOICEMAILS_AS_OLD.equals(intent.getAction())) {
- mVoicemailQueryHandler.markNewVoicemailsAsOld();
- } else if (ACTION_UPDATE_NOTIFICATIONS.equals(intent.getAction())) {
- Uri voicemailUri = (Uri) intent.getParcelableExtra(EXTRA_NEW_VOICEMAIL_URI);
- DefaultVoicemailNotifier.getInstance(this).updateNotification(voicemailUri);
- } else {
- Log.d(TAG, "onHandleIntent: could not handle: " + intent);
+ String action = intent.getAction();
+ switch (action) {
+ case ACTION_MARK_NEW_VOICEMAILS_AS_OLD:
+ if (mVoicemailQueryHandler == null) {
+ mVoicemailQueryHandler = new VoicemailQueryHandler(this, getContentResolver());
+ }
+ mVoicemailQueryHandler.markNewVoicemailsAsOld();
+ break;
+ case ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS:
+ Uri voicemailUri = (Uri) intent.getParcelableExtra(EXTRA_NEW_VOICEMAIL_URI);
+ DefaultVoicemailNotifier.getInstance(this).updateNotification(voicemailUri);
+ break;
+ case ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS:
+ int count = intent.getIntExtra(EXTRA_MISSED_CALL_COUNT,
+ UNKNOWN_MISSED_CALL_COUNT);
+ String number = intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER);
+ MissedCallNotifier.getInstance(this).updateMissedCallNotification(count, number);
+ break;
+ case ACTION_MARK_NEW_MISSED_CALLS_AS_OLD:
+ CallLogNotificationsHelper.removeMissedCallNotifications(this);
+ break;
+ case ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION:
+ MissedCallNotifier.getInstance(this).callBackFromMissedCall(
+ intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER));
+ break;
+ case ACTION_SEND_SMS_FROM_MISSED_CALL_NOTIFICATION:
+ MissedCallNotifier.getInstance(this).sendSmsFromMissedCall(
+ intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER));
+ break;
+ default:
+ Log.d(TAG, "onHandleIntent: could not handle: " + intent);
+ break;
}
}
@@ -103,7 +164,8 @@ public class CallLogNotificationsService extends IntentService {
public static void updateVoicemailNotifications(Context context, Uri voicemailUri) {
if (TelecomUtil.hasReadWriteVoicemailPermissions(context)) {
Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
- serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_NOTIFICATIONS);
+ serviceIntent.setAction(
+ CallLogNotificationsService.ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS);
// If voicemailUri is null, then notifications for all voicemails will be updated.
if (voicemailUri != null) {
serviceIntent.putExtra(
@@ -112,4 +174,21 @@ public class CallLogNotificationsService extends IntentService {
context.startService(serviceIntent);
}
}
+
+ /**
+ * Updates notifications for any new missed calls.
+ *
+ * @param context A valid context.
+ * @param count The number of new missed calls.
+ * @param number The phone number of the newest missed call.
+ */
+ public static void updateMissedCallNotifications(Context context, int count,
+ String number) {
+ Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
+ serviceIntent.setAction(
+ CallLogNotificationsService.ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS);
+ serviceIntent.putExtra(EXTRA_MISSED_CALL_COUNT, count);
+ serviceIntent.putExtra(EXTRA_MISSED_CALL_NUMBER, number);
+ context.startService(serviceIntent);
+ }
}
diff --git a/src/com/android/dialer/calllog/CallLogQuery.java b/src/com/android/dialer/calllog/CallLogQuery.java
index 2b43c2857..905a4b789 100644
--- a/src/com/android/dialer/calllog/CallLogQuery.java
+++ b/src/com/android/dialer/calllog/CallLogQuery.java
@@ -18,11 +18,19 @@ package com.android.dialer.calllog;
import android.provider.CallLog.Calls;
+import com.android.dialer.compat.DialerCompatUtils;
+import com.android.dialer.util.AppCompatConstants;
+
+import com.google.common.collect.Lists;
+
+import java.util.List;
+
/**
* The query for the call log table.
*/
public final class CallLogQuery {
- public static final String[] _PROJECTION = new String[] {
+
+ private static final String[] _PROJECTION_INTERNAL = new String[] {
Calls._ID, // 0
Calls.NUMBER, // 1
Calls.DATE, // 2
@@ -46,7 +54,6 @@ public final class CallLogQuery {
Calls.FEATURES, // 20
Calls.DATA_USAGE, // 21
Calls.TRANSCRIPTION, // 22
- Calls.CACHED_PHOTO_URI // 23
};
public static final int ID = 0;
@@ -72,5 +79,33 @@ public final class CallLogQuery {
public static final int FEATURES = 20;
public static final int DATA_USAGE = 21;
public static final int TRANSCRIPTION = 22;
- public static final int CACHED_PHOTO_URI = 23;
+
+ // Indices for columns that may not be available, depending on the Sdk Version
+ /**
+ * Only available in versions >= M
+ * Call {@link DialerCompatUtils#isCallsCachedPhotoUriCompatible()} prior to use
+ */
+ public static int CACHED_PHOTO_URI = -1;
+
+ /**
+ * Only available in versions > M
+ * Call {@link PhoneNumberDisplayUtil#canShowPostDial()} prior to use
+ */
+ public static int POST_DIAL_DIGITS = -1;
+
+ public static final String[] _PROJECTION;
+
+ static {
+ List<String> projectionList = Lists.newArrayList(_PROJECTION_INTERNAL);
+ if (DialerCompatUtils.isCallsCachedPhotoUriCompatible()) {
+ projectionList.add(Calls.CACHED_PHOTO_URI);
+ CACHED_PHOTO_URI = projectionList.size() - 1;
+ }
+ if (PhoneNumberDisplayUtil.canShowPostDial()) {
+ projectionList.add(AppCompatConstants.POST_DIAL_DIGITS);
+ POST_DIAL_DIGITS = projectionList.size() - 1;
+ }
+ _PROJECTION = projectionList.toArray(new String[projectionList.size()]);
+ }
+
}
diff --git a/src/com/android/dialer/calllog/CallLogQueryHandler.java b/src/com/android/dialer/calllog/CallLogQueryHandler.java
index 60bdcff46..4cb835bda 100644
--- a/src/com/android/dialer/calllog/CallLogQueryHandler.java
+++ b/src/com/android/dialer/calllog/CallLogQueryHandler.java
@@ -26,6 +26,7 @@ import android.database.sqlite.SQLiteDiskIOException;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteFullException;
import android.net.Uri;
+import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -34,8 +35,10 @@ import android.provider.VoicemailContract.Status;
import android.provider.VoicemailContract.Voicemails;
import android.util.Log;
+import com.android.contacts.common.compat.SdkVersionOverride;
import com.android.contacts.common.database.NoNullCursorAsyncQueryHandler;
import com.android.contacts.common.util.PermissionsUtil;
+import com.android.dialer.util.AppCompatConstants;
import com.android.dialer.util.TelecomUtil;
import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
@@ -46,8 +49,6 @@ import java.util.List;
/** Handles asynchronous queries to the call log. */
public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
- private static final String[] EMPTY_STRING_ARRAY = new String[0];
-
private static final String TAG = "CallLogQueryHandler";
private static final int NUM_LOGS_TO_DISPLAY = 1000;
@@ -59,6 +60,8 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
private static final int UPDATE_MARK_MISSED_CALL_AS_READ_TOKEN = 56;
/** The token for the query to fetch voicemail status messages. */
private static final int QUERY_VOICEMAIL_STATUS_TOKEN = 57;
+ /** The token for the query to fetch the number of unread voicemails. */
+ private static final int QUERY_VOICEMAIL_UNREAD_COUNT_TOKEN = 58;
private final int mLogLimit;
@@ -147,36 +150,42 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
}
}
+ public void fetchVoicemailUnreadCount() {
+ if (TelecomUtil.hasReadWriteVoicemailPermissions(mContext)) {
+ startQuery(QUERY_VOICEMAIL_UNREAD_COUNT_TOKEN, null, Voicemails.CONTENT_URI,
+ new String[] { Voicemails._ID }, Voicemails.IS_READ + "=0", null, null);
+ }
+ }
+
/** Fetches the list of calls in the call log. */
private void fetchCalls(int token, int callType, boolean newOnly, long newerThan) {
- // We need to check for NULL explicitly otherwise entries with where READ is NULL
- // may not match either the query or its negation.
- // We consider the calls that are not yet consumed (i.e. IS_READ = 0) as "new".
StringBuilder where = new StringBuilder();
List<String> selectionArgs = Lists.newArrayList();
+ // Always hide blocked calls.
+ where.append("(").append(Calls.TYPE).append(" != ?)");
+ selectionArgs.add(Integer.toString(AppCompatConstants.CALLS_BLOCKED_TYPE));
+
// Ignore voicemails marked as deleted
- where.append(Voicemails.DELETED);
- where.append(" = 0");
+ if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
+ >= Build.VERSION_CODES.M) {
+ where.append(" AND (").append(Voicemails.DELETED).append(" = 0)");
+ }
if (newOnly) {
- where.append(" AND ");
- where.append(Calls.NEW);
- where.append(" = 1");
+ where.append(" AND (").append(Calls.NEW).append(" = 1)");
}
if (callType > CALL_TYPE_ALL) {
- where.append(" AND ");
- where.append(String.format("(%s = ?)", Calls.TYPE));
+ where.append(" AND (").append(Calls.TYPE).append(" = ?)");
selectionArgs.add(Integer.toString(callType));
} else {
where.append(" AND NOT ");
- where.append("(" + Calls.TYPE + " = " + Calls.VOICEMAIL_TYPE + ")");
+ where.append("(" + Calls.TYPE + " = " + AppCompatConstants.CALLS_VOICEMAIL_TYPE + ")");
}
if (newerThan > 0) {
- where.append(" AND ");
- where.append(String.format("(%s > ?)", Calls.DATE));
+ where.append(" AND (").append(Calls.DATE).append(" > ?)");
selectionArgs.add(Long.toString(newerThan));
}
@@ -185,9 +194,8 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
Uri uri = TelecomUtil.getCallLogUri(mContext).buildUpon()
.appendQueryParameter(Calls.LIMIT_PARAM_KEY, Integer.toString(limit))
.build();
- startQuery(token, null, uri,
- CallLogQuery._PROJECTION, selection, selectionArgs.toArray(EMPTY_STRING_ARRAY),
- Calls.DEFAULT_SORT_ORDER);
+ startQuery(token, null, uri, CallLogQuery._PROJECTION, selection, selectionArgs.toArray(
+ new String[selectionArgs.size()]), Calls.DEFAULT_SORT_ORDER);
}
/** Cancel any pending fetch request. */
@@ -243,6 +251,8 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
}
} else if (token == QUERY_VOICEMAIL_STATUS_TOKEN) {
updateVoicemailStatus(cursor);
+ } else if (token == QUERY_VOICEMAIL_UNREAD_COUNT_TOKEN) {
+ updateVoicemailUnreadCount(cursor);
} else {
Log.w(TAG, "Unknown query completed: ignoring: " + token);
}
@@ -273,11 +283,21 @@ public class CallLogQueryHandler extends NoNullCursorAsyncQueryHandler {
}
}
+ private void updateVoicemailUnreadCount(Cursor statusCursor) {
+ final Listener listener = mListener.get();
+ if (listener != null) {
+ listener.onVoicemailUnreadCountFetched(statusCursor);
+ }
+ }
+
/** Listener to completion of various queries. */
public interface Listener {
/** Called when {@link CallLogQueryHandler#fetchVoicemailStatus()} completes. */
void onVoicemailStatusFetched(Cursor statusCursor);
+ /** Called when {@link CallLogQueryHandler#fetchVoicemailUnreadCount()} completes. */
+ void onVoicemailUnreadCountFetched(Cursor cursor);
+
/**
* Called when {@link CallLogQueryHandler#fetchCalls(int)} complete.
* Returns true if takes ownership of cursor.
diff --git a/src/com/android/dialer/calllog/CallTypeHelper.java b/src/com/android/dialer/calllog/CallTypeHelper.java
index 36c0975bd..acc114c5c 100644
--- a/src/com/android/dialer/calllog/CallTypeHelper.java
+++ b/src/com/android/dialer/calllog/CallTypeHelper.java
@@ -17,9 +17,9 @@
package com.android.dialer.calllog;
import android.content.res.Resources;
-import android.provider.CallLog.Calls;
import com.android.dialer.R;
+import com.android.dialer.util.AppCompatConstants;
/**
* Helper class to perform operations related to call types.
@@ -39,6 +39,10 @@ public class CallTypeHelper {
private final CharSequence mMissedVideoName;
/** Name used to identify voicemail calls. */
private final CharSequence mVoicemailName;
+ /** Name used to identify rejected calls. */
+ private final CharSequence mRejectedName;
+ /** Name used to identify blocked calls. */
+ private final CharSequence mBlockedName;
/** Color used to identify new missed calls. */
private final int mNewMissedColor;
/** Color used to identify new voicemail calls. */
@@ -53,6 +57,8 @@ public class CallTypeHelper {
mOutgoingVideoName = resources.getString(R.string.type_outgoing_video);
mMissedVideoName = resources.getString(R.string.type_missed_video);
mVoicemailName = resources.getString(R.string.type_voicemail);
+ mRejectedName = resources.getString(R.string.type_rejected);
+ mBlockedName = resources.getString(R.string.type_blocked);
mNewMissedColor = resources.getColor(R.color.call_log_missed_call_highlight_color);
mNewVoicemailColor = resources.getColor(R.color.call_log_voicemail_highlight_color);
}
@@ -60,30 +66,36 @@ public class CallTypeHelper {
/** Returns the text used to represent the given call type. */
public CharSequence getCallTypeText(int callType, boolean isVideoCall) {
switch (callType) {
- case Calls.INCOMING_TYPE:
+ case AppCompatConstants.CALLS_INCOMING_TYPE:
if (isVideoCall) {
return mIncomingVideoName;
} else {
return mIncomingName;
}
- case Calls.OUTGOING_TYPE:
+ case AppCompatConstants.CALLS_OUTGOING_TYPE:
if (isVideoCall) {
return mOutgoingVideoName;
} else {
return mOutgoingName;
}
- case Calls.MISSED_TYPE:
+ case AppCompatConstants.CALLS_MISSED_TYPE:
if (isVideoCall) {
return mMissedVideoName;
} else {
return mMissedName;
}
- case Calls.VOICEMAIL_TYPE:
+ case AppCompatConstants.CALLS_VOICEMAIL_TYPE:
return mVoicemailName;
+ case AppCompatConstants.CALLS_REJECTED_TYPE:
+ return mRejectedName;
+
+ case AppCompatConstants.CALLS_BLOCKED_TYPE:
+ return mBlockedName;
+
default:
return mMissedName;
}
@@ -92,18 +104,18 @@ public class CallTypeHelper {
/** Returns the color used to highlight the given call type, null if not highlight is needed. */
public Integer getHighlightedColor(int callType) {
switch (callType) {
- case Calls.INCOMING_TYPE:
+ case AppCompatConstants.CALLS_INCOMING_TYPE:
// New incoming calls are not highlighted.
return null;
- case Calls.OUTGOING_TYPE:
+ case AppCompatConstants.CALLS_OUTGOING_TYPE:
// New outgoing calls are not highlighted.
return null;
- case Calls.MISSED_TYPE:
+ case AppCompatConstants.CALLS_MISSED_TYPE:
return mNewMissedColor;
- case Calls.VOICEMAIL_TYPE:
+ case AppCompatConstants.CALLS_VOICEMAIL_TYPE:
return mNewVoicemailColor;
default:
@@ -115,7 +127,8 @@ public class CallTypeHelper {
}
public static boolean isMissedCallType(int callType) {
- return (callType != Calls.INCOMING_TYPE && callType != Calls.OUTGOING_TYPE &&
- callType != Calls.VOICEMAIL_TYPE);
+ return (callType != AppCompatConstants.CALLS_INCOMING_TYPE
+ && callType != AppCompatConstants.CALLS_OUTGOING_TYPE
+ && callType != AppCompatConstants.CALLS_VOICEMAIL_TYPE);
}
}
diff --git a/src/com/android/dialer/calllog/CallTypeIconsView.java b/src/com/android/dialer/calllog/CallTypeIconsView.java
index 31d4f4b0e..cfd8f9748 100644
--- a/src/com/android/dialer/calllog/CallTypeIconsView.java
+++ b/src/com/android/dialer/calllog/CallTypeIconsView.java
@@ -23,13 +23,13 @@ import android.graphics.Canvas;
import android.graphics.PorterDuff;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
-import android.provider.CallLog.Calls;
import android.util.AttributeSet;
import android.view.View;
import com.android.contacts.common.testing.NeededForTesting;
import com.android.contacts.common.util.BitmapUtil;
import com.android.dialer.R;
+import com.android.dialer.util.AppCompatConstants;
import com.google.common.collect.Lists;
import java.util.List;
@@ -106,14 +106,16 @@ public class CallTypeIconsView extends View {
private Drawable getCallTypeDrawable(int callType) {
switch (callType) {
- case Calls.INCOMING_TYPE:
+ case AppCompatConstants.CALLS_INCOMING_TYPE:
return mResources.incoming;
- case Calls.OUTGOING_TYPE:
+ case AppCompatConstants.CALLS_OUTGOING_TYPE:
return mResources.outgoing;
- case Calls.MISSED_TYPE:
+ case AppCompatConstants.CALLS_MISSED_TYPE:
return mResources.missed;
- case Calls.VOICEMAIL_TYPE:
+ case AppCompatConstants.CALLS_VOICEMAIL_TYPE:
return mResources.voicemail;
+ case AppCompatConstants.CALLS_BLOCKED_TYPE:
+ return mResources.blocked;
default:
// It is possible for users to end up with calls with unknown call types in their
// call history, possibly due to 3rd party call log implementations (e.g. to
@@ -150,29 +152,22 @@ public class CallTypeIconsView extends View {
private static class Resources {
- /**
- * Drawable representing an incoming answered call.
- */
+ // Drawable representing an incoming answered call.
public final Drawable incoming;
- /**
- * Drawable respresenting an outgoing call.
- */
+ // Drawable respresenting an outgoing call.
public final Drawable outgoing;
- /**
- * Drawable representing an incoming missed call.
- */
+ // Drawable representing an incoming missed call.
public final Drawable missed;
- /**
- * Drawable representing a voicemail.
- */
+ // Drawable representing a voicemail.
public final Drawable voicemail;
- /**
- * Drawable repesenting a video call.
- */
+ // Drawable representing a blocked call.
+ public final Drawable blocked;
+
+ // Drawable repesenting a video call.
public final Drawable videoCall;
/**
@@ -204,21 +199,26 @@ public class CallTypeIconsView extends View {
voicemail = r.getDrawable(R.drawable.ic_call_voicemail_holo_dark);
- // Get the video call icon, scaled to match the height of the call arrows.
- // We want the video call icon to be the same height as the call arrows, while keeping
- // the same width aspect ratio.
- Bitmap videoIcon = BitmapFactory.decodeResource(context.getResources(),
- R.drawable.ic_videocam_24dp);
- int scaledHeight = missed.getIntrinsicHeight();
- int scaledWidth = (int) ((float) videoIcon.getWidth() *
- ((float) missed.getIntrinsicHeight() /
- (float) videoIcon.getHeight()));
- Bitmap scaled = Bitmap.createScaledBitmap(videoIcon, scaledWidth, scaledHeight, false);
- videoCall = new BitmapDrawable(context.getResources(), scaled);
+ blocked = getScaledBitmap(context, R.drawable.ic_block_24dp);
+ blocked.setColorFilter(r.getColor(R.color.blocked_call), PorterDuff.Mode.MULTIPLY);
+
+ videoCall = getScaledBitmap(context, R.drawable.ic_videocam_24dp);
videoCall.setColorFilter(r.getColor(R.color.dialtacts_secondary_text_color),
PorterDuff.Mode.MULTIPLY);
iconMargin = r.getDimensionPixelSize(R.dimen.call_log_icon_margin);
}
+
+ // Gets the icon, scaled to the height of the call type icons. This helps display all the
+ // icons to be the same height, while preserving their width aspect ratio.
+ private Drawable getScaledBitmap(Context context, int resourceId) {
+ Bitmap icon = BitmapFactory.decodeResource(context.getResources(), resourceId);
+ int scaledHeight =
+ context.getResources().getDimensionPixelSize(R.dimen.call_type_icon_size);
+ int scaledWidth = (int) ((float) icon.getWidth()
+ * ((float) scaledHeight / (float) icon.getHeight()));
+ Bitmap scaledIcon = Bitmap.createScaledBitmap(icon, scaledWidth, scaledHeight, false);
+ return new BitmapDrawable(context.getResources(), scaledIcon);
+ }
}
}
diff --git a/src/com/android/dialer/calllog/ContactInfo.java b/src/com/android/dialer/calllog/ContactInfo.java
index 357c832cf..40d963e4e 100644
--- a/src/com/android/dialer/calllog/ContactInfo.java
+++ b/src/com/android/dialer/calllog/ContactInfo.java
@@ -19,6 +19,7 @@ package com.android.dialer.calllog;
import android.net.Uri;
import android.text.TextUtils;
+import com.android.contacts.common.ContactsUtils.UserType;
import com.android.contacts.common.util.UriUtils;
import com.google.common.base.Objects;
@@ -34,6 +35,7 @@ public class ContactInfo {
*/
public String lookupKey;
public String name;
+ public String nameAlternative;
public int type;
public String label;
public String number;
@@ -45,6 +47,7 @@ public class ContactInfo {
public Uri photoUri;
public boolean isBadData;
public String objectId;
+ public @UserType long userType;
public static ContactInfo EMPTY = new ContactInfo();
@@ -70,6 +73,7 @@ public class ContactInfo {
ContactInfo other = (ContactInfo) obj;
if (!UriUtils.areEqual(lookupUri, other.lookupUri)) return false;
if (!TextUtils.equals(name, other.name)) return false;
+ if (!TextUtils.equals(nameAlternative, other.nameAlternative)) return false;
if (type != other.type) return false;
if (!TextUtils.equals(label, other.label)) return false;
if (!TextUtils.equals(number, other.number)) return false;
@@ -78,14 +82,18 @@ public class ContactInfo {
if (photoId != other.photoId) return false;
if (!UriUtils.areEqual(photoUri, other.photoUri)) return false;
if (!TextUtils.equals(objectId, other.objectId)) return false;
+ if (userType != other.userType) return false;
return true;
}
@Override
public String toString() {
- return Objects.toStringHelper(this).add("lookupUri", lookupUri).add("name", name).add(
- "type", type).add("label", label).add("number", number).add("formattedNumber",
- formattedNumber).add("normalizedNumber", normalizedNumber).add("photoId", photoId)
- .add("photoUri", photoUri).add("objectId", objectId).toString();
+ return Objects.toStringHelper(this).add("lookupUri", lookupUri).add("name", name)
+ .add("nameAlternative", nameAlternative)
+ .add("type", type).add("label", label)
+ .add("number", number).add("formattedNumber",formattedNumber)
+ .add("normalizedNumber", normalizedNumber).add("photoId", photoId)
+ .add("photoUri", photoUri).add("objectId", objectId)
+ .add("userType",userType).toString();
}
}
diff --git a/src/com/android/dialer/calllog/ContactInfoHelper.java b/src/com/android/dialer/calllog/ContactInfoHelper.java
index 2e07a03b1..7f08fdc18 100644
--- a/src/com/android/dialer/calllog/ContactInfoHelper.java
+++ b/src/com/android/dialer/calllog/ContactInfoHelper.java
@@ -25,14 +25,17 @@ import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.DisplayNameSources;
import android.provider.ContactsContract.PhoneLookup;
+import android.support.annotation.Nullable;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.util.Log;
+import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.util.Constants;
import com.android.contacts.common.util.PermissionsUtil;
import com.android.contacts.common.util.PhoneNumberHelper;
import com.android.contacts.common.util.UriUtils;
+import com.android.dialer.compat.DialerCompatUtils;
import com.android.dialer.service.CachedNumberLookupService;
import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
import com.android.dialer.util.TelecomUtil;
@@ -41,8 +44,6 @@ import com.android.dialerbind.ObjectFactory;
import org.json.JSONException;
import org.json.JSONObject;
-import java.util.List;
-
/**
* Utility class to look up the contact information for a given number.
*/
@@ -71,34 +72,27 @@ public class ContactInfoHelper {
* @param number the number to look up
* @param countryIso the country associated with this number
*/
+ @Nullable
public ContactInfo lookupNumber(String number, String countryIso) {
if (TextUtils.isEmpty(number)) {
return null;
}
- final ContactInfo info;
- // Determine the contact info.
+ ContactInfo info;
+
if (PhoneNumberHelper.isUriNumber(number)) {
- // This "number" is really a SIP address.
- ContactInfo sipInfo = queryContactInfoForSipAddress(number);
- if (sipInfo == null || sipInfo == ContactInfo.EMPTY) {
- // Check whether the "username" part of the SIP address is
- // actually the phone number of a contact.
+ // The number is a SIP address..
+ info = lookupContactFromUri(getContactInfoLookupUri(number));
+ if (info == null || info == ContactInfo.EMPTY) {
+ // If lookup failed, check if the "username" of the SIP address is a phone number.
String username = PhoneNumberHelper.getUsernameFromUriNumber(number);
if (PhoneNumberUtils.isGlobalPhoneNumber(username)) {
- sipInfo = queryContactInfoForPhoneNumber(username, countryIso);
+ info = queryContactInfoForPhoneNumber(username, countryIso);
}
}
- info = sipInfo;
} else {
// Look for a contact that has the given phone number.
- ContactInfo phoneInfo = queryContactInfoForPhoneNumber(number, countryIso);
-
- if (phoneInfo == null || phoneInfo == ContactInfo.EMPTY) {
- // Check whether the phone number has been saved as an "Internet call" number.
- phoneInfo = queryContactInfoForSipAddress(number);
- }
- info = phoneInfo;
+ info = queryContactInfoForPhoneNumber(number, countryIso);
}
final ContactInfo updatedInfo;
@@ -159,67 +153,83 @@ public class ContactInfoHelper {
* The {@link ContactInfo#formattedNumber} field is always set to {@code null} in the returned
* value.
*/
- private ContactInfo lookupContactFromUri(Uri uri) {
+ public ContactInfo lookupContactFromUri(Uri uri) {
if (uri == null) {
return null;
}
if (!PermissionsUtil.hasContactsPermissions(mContext)) {
return ContactInfo.EMPTY;
}
- final ContactInfo info;
- Cursor phonesCursor =
- mContext.getContentResolver().query(uri, PhoneQuery._PROJECTION, null, null, null);
-
- if (phonesCursor != null) {
- try {
- if (phonesCursor.moveToFirst()) {
- info = new ContactInfo();
- long contactId = phonesCursor.getLong(PhoneQuery.PERSON_ID);
- String lookupKey = phonesCursor.getString(PhoneQuery.LOOKUP_KEY);
- info.lookupKey = lookupKey;
- info.lookupUri = Contacts.getLookupUri(contactId, lookupKey);
- info.name = phonesCursor.getString(PhoneQuery.NAME);
- info.type = phonesCursor.getInt(PhoneQuery.PHONE_TYPE);
- info.label = phonesCursor.getString(PhoneQuery.LABEL);
- info.number = phonesCursor.getString(PhoneQuery.MATCHED_NUMBER);
- info.normalizedNumber = phonesCursor.getString(PhoneQuery.NORMALIZED_NUMBER);
- info.photoId = phonesCursor.getLong(PhoneQuery.PHOTO_ID);
- info.photoUri =
- UriUtils.parseUriOrNull(phonesCursor.getString(PhoneQuery.PHOTO_URI));
- info.formattedNumber = null;
- } else {
- info = ContactInfo.EMPTY;
- }
- } finally {
- phonesCursor.close();
+
+ Cursor phoneLookupCursor = null;
+ try {
+ phoneLookupCursor = mContext.getContentResolver().query(uri,
+ PhoneQuery.PHONE_LOOKUP_PROJECTION, null, null, null);
+ } catch (NullPointerException e) {
+ // Trap NPE from pre-N CP2
+ return null;
+ }
+ if (phoneLookupCursor == null) {
+ return null;
+ }
+
+ try {
+ if (!phoneLookupCursor.moveToFirst()) {
+ return ContactInfo.EMPTY;
}
- } else {
- // Failed to fetch the data, ignore this request.
- info = null;
+ String lookupKey = phoneLookupCursor.getString(PhoneQuery.LOOKUP_KEY);
+ ContactInfo contactInfo = createPhoneLookupContactInfo(phoneLookupCursor, lookupKey);
+ contactInfo.nameAlternative = lookUpDisplayNameAlternative(mContext, lookupKey);
+ return contactInfo;
+ } finally {
+ phoneLookupCursor.close();
}
+ }
+
+ private ContactInfo createPhoneLookupContactInfo(Cursor phoneLookupCursor, String lookupKey) {
+ ContactInfo info = new ContactInfo();
+ info.lookupKey = lookupKey;
+ info.lookupUri = Contacts.getLookupUri(phoneLookupCursor.getLong(PhoneQuery.PERSON_ID),
+ lookupKey);
+ info.name = phoneLookupCursor.getString(PhoneQuery.NAME);
+ info.type = phoneLookupCursor.getInt(PhoneQuery.PHONE_TYPE);
+ info.label = phoneLookupCursor.getString(PhoneQuery.LABEL);
+ info.number = phoneLookupCursor.getString(PhoneQuery.MATCHED_NUMBER);
+ info.normalizedNumber = phoneLookupCursor.getString(PhoneQuery.NORMALIZED_NUMBER);
+ info.photoId = phoneLookupCursor.getLong(PhoneQuery.PHOTO_ID);
+ info.photoUri = UriUtils.parseUriOrNull(phoneLookupCursor.getString(PhoneQuery.PHOTO_URI));
+ info.formattedNumber = null;
+ info.userType = ContactsUtils.determineUserType(null,
+ phoneLookupCursor.getLong(PhoneQuery.PERSON_ID));
+
return info;
}
- /**
- * Determines the contact information for the given SIP address.
- * <p>
- * It returns the contact info if found.
- * <p>
- * If no contact corresponds to the given SIP address, returns {@link ContactInfo#EMPTY}.
- * <p>
- * If the lookup fails for some other reason, it returns null.
- */
- private ContactInfo queryContactInfoForSipAddress(String sipAddress) {
- if (TextUtils.isEmpty(sipAddress)) {
+ public static String lookUpDisplayNameAlternative(Context context, String lookupKey) {
+ if (lookupKey == null) {
return null;
}
- final ContactInfo info;
- // "contactNumber" is a SIP address, so use the PhoneLookup table with the SIP parameter.
- Uri.Builder uriBuilder = PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI.buildUpon();
- uriBuilder.appendPath(Uri.encode(sipAddress));
- uriBuilder.appendQueryParameter(PhoneLookup.QUERY_PARAMETER_SIP_ADDRESS, "1");
- return lookupContactFromUri(uriBuilder.build());
+ final Uri uri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey);
+
+ Cursor cursor = null;
+ try {
+ cursor = context.getContentResolver().query(uri,
+ PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION, null, null, null);
+
+ if (cursor != null && cursor.moveToFirst()) {
+ return cursor.getString(PhoneQuery.NAME_ALTERNATIVE);
+ }
+ } catch (IllegalArgumentException e) {
+ // Thrown for work profile queries. For those, we don't support
+ // alternative display names.
+ } finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+
+ return null;
}
/**
@@ -235,21 +245,8 @@ public class ContactInfoHelper {
if (TextUtils.isEmpty(number)) {
return null;
}
- String contactNumber = number;
- if (!TextUtils.isEmpty(countryIso)) {
- // Normalize the number: this is needed because the PhoneLookup query below does not
- // accept a country code as an input.
- String numberE164 = PhoneNumberUtils.formatNumberToE164(number, countryIso);
- if (!TextUtils.isEmpty(numberE164)) {
- // Only use it if the number could be formatted to E164.
- contactNumber = numberE164;
- }
- }
- // The "contactNumber" is a regular phone number, so use the PhoneLookup table.
- Uri uri = Uri.withAppendedPath(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
- Uri.encode(contactNumber));
- ContactInfo info = lookupContactFromUri(uri);
+ ContactInfo info = lookupContactFromUri(getContactInfoLookupUri(number));
if (info != null && info != ContactInfo.EMPTY) {
info.formattedNumber = formatPhoneNumber(number, null, countryIso);
} else if (mCachedNumberLookupService != null) {
@@ -345,7 +342,8 @@ public class ContactInfoHelper {
final Uri updatedPhotoUriContactsOnly =
UriUtils.nullForNonContactsUri(updatedInfo.photoUri);
- if (!UriUtils.areEqual(updatedPhotoUriContactsOnly, callLogInfo.photoUri)) {
+ if (DialerCompatUtils.isCallsCachedPhotoUriCompatible() &&
+ !UriUtils.areEqual(updatedPhotoUriContactsOnly, callLogInfo.photoUri)) {
values.put(Calls.CACHED_PHOTO_URI,
UriUtils.uriToString(updatedPhotoUriContactsOnly));
needsUpdate = true;
@@ -364,8 +362,10 @@ public class ContactInfoHelper {
values.put(Calls.CACHED_MATCHED_NUMBER, updatedInfo.number);
values.put(Calls.CACHED_NORMALIZED_NUMBER, updatedInfo.normalizedNumber);
values.put(Calls.CACHED_PHOTO_ID, updatedInfo.photoId);
- values.put(Calls.CACHED_PHOTO_URI, UriUtils.uriToString(
- UriUtils.nullForNonContactsUri(updatedInfo.photoUri)));
+ if (DialerCompatUtils.isCallsCachedPhotoUriCompatible()) {
+ values.put(Calls.CACHED_PHOTO_URI, UriUtils.uriToString(
+ UriUtils.nullForNonContactsUri(updatedInfo.photoUri)));
+ }
values.put(Calls.CACHED_FORMATTED_NUMBER, updatedInfo.formattedNumber);
needsUpdate = true;
}
@@ -393,6 +393,34 @@ public class ContactInfoHelper {
}
}
+ public static Uri getContactInfoLookupUri(String number) {
+ return getContactInfoLookupUri(number, -1);
+ }
+
+ public static Uri getContactInfoLookupUri(String number, long directoryId) {
+ // Get URI for the number in the PhoneLookup table, with a parameter to indicate whether
+ // the number is a SIP number.
+ Uri uri = PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI;
+ if (!ContactsUtils.FLAG_N_FEATURE) {
+ if (directoryId != -1) {
+ // ENTERPRISE_CONTENT_FILTER_URI in M doesn't support directory lookup
+ uri = PhoneLookup.CONTENT_FILTER_URI;
+ } else {
+ // b/25900607 in M. PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI, encodes twice.
+ number = Uri.encode(number);
+ }
+ }
+ Uri.Builder builder = uri.buildUpon()
+ .appendPath(number)
+ .appendQueryParameter(PhoneLookup.QUERY_PARAMETER_SIP_ADDRESS,
+ String.valueOf(PhoneNumberHelper.isUriNumber(number)));
+ if (directoryId != -1) {
+ builder.appendQueryParameter(ContactsContract.DIRECTORY_PARAM_KEY,
+ String.valueOf(directoryId));
+ }
+ return builder.build();
+ }
+
/**
* Returns the contact information stored in an entry of the call log.
*
@@ -400,17 +428,22 @@ public class ContactInfoHelper {
*/
public static ContactInfo getContactInfo(Cursor c) {
ContactInfo info = new ContactInfo();
-
info.lookupUri = UriUtils.parseUriOrNull(c.getString(CallLogQuery.CACHED_LOOKUP_URI));
info.name = c.getString(CallLogQuery.CACHED_NAME);
info.type = c.getInt(CallLogQuery.CACHED_NUMBER_TYPE);
info.label = c.getString(CallLogQuery.CACHED_NUMBER_LABEL);
String matchedNumber = c.getString(CallLogQuery.CACHED_MATCHED_NUMBER);
- info.number = matchedNumber == null ? c.getString(CallLogQuery.NUMBER) : matchedNumber;
+ String postDialDigits = PhoneNumberDisplayUtil.canShowPostDial()
+ ? c.getString(CallLogQuery.POST_DIAL_DIGITS) : "";
+ info.number = (matchedNumber == null) ?
+ c.getString(CallLogQuery.NUMBER) + postDialDigits : matchedNumber;
+
info.normalizedNumber = c.getString(CallLogQuery.CACHED_NORMALIZED_NUMBER);
info.photoId = c.getLong(CallLogQuery.CACHED_PHOTO_ID);
- info.photoUri = UriUtils.nullForNonContactsUri(
- UriUtils.parseUriOrNull(c.getString(CallLogQuery.CACHED_PHOTO_URI)));
+ info.photoUri = DialerCompatUtils.isCallsCachedPhotoUriCompatible() ?
+ UriUtils.nullForNonContactsUri(
+ UriUtils.parseUriOrNull(c.getString(CallLogQuery.CACHED_PHOTO_URI)))
+ : null;
info.formattedNumber = c.getString(CallLogQuery.CACHED_FORMATTED_NUMBER);
return info;
@@ -439,6 +472,4 @@ public class ContactInfoHelper {
return mCachedNumberLookupService != null
&& mCachedNumberLookupService.canReportAsInvalid(sourceType, objectId);
}
-
-
}
diff --git a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
index a6d165e3a..db8229538 100644
--- a/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
+++ b/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
@@ -19,36 +19,41 @@ package com.android.dialer.calllog;
import static android.Manifest.permission.READ_CALL_LOG;
import static android.Manifest.permission.READ_CONTACTS;
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.TelephonyManagerCompat;
+import com.google.common.collect.Maps;
+
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
+import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
-import android.database.Cursor;
import android.net.Uri;
-import android.provider.CallLog.Calls;
-import android.provider.ContactsContract.PhoneLookup;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
-import com.android.common.io.MoreCloseables;
-import com.android.contacts.common.util.PermissionsUtil;
+import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.dialer.DialtactsActivity;
import com.android.dialer.R;
-import com.android.dialer.calllog.PhoneAccountUtils;
+import com.android.dialer.calllog.CallLogNotificationsHelper.NewCall;
+import com.android.dialer.filterednumber.FilteredNumbersUtil;
import com.android.dialer.list.ListsFragment;
-import com.google.common.collect.Maps;
+import java.util.Iterator;
+import java.util.List;
import java.util.Map;
/**
- * VoicemailNotifier that shows a notification in the status bar.
+ * Shows a voicemail notification in the status bar.
*/
public class DefaultVoicemailNotifier {
- public static final String TAG = "DefaultVoicemailNotifier";
+ public static final String TAG = "VoicemailNotifier";
/** The tag used to identify notifications from this class. */
private static final String NOTIFICATION_TAG = "DefaultVoicemailNotifier";
@@ -59,30 +64,18 @@ public class DefaultVoicemailNotifier {
private static DefaultVoicemailNotifier sInstance;
private final Context mContext;
- private final NotificationManager mNotificationManager;
- private final NewCallsQuery mNewCallsQuery;
- private final NameLookupQuery mNameLookupQuery;
/** Returns the singleton instance of the {@link DefaultVoicemailNotifier}. */
- public static synchronized DefaultVoicemailNotifier getInstance(Context context) {
+ public static DefaultVoicemailNotifier getInstance(Context context) {
if (sInstance == null) {
- NotificationManager notificationManager =
- (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
ContentResolver contentResolver = context.getContentResolver();
- sInstance = new DefaultVoicemailNotifier(context, notificationManager,
- createNewCallsQuery(context, contentResolver),
- createNameLookupQuery(context, contentResolver));
+ sInstance = new DefaultVoicemailNotifier(context);
}
return sInstance;
}
- private DefaultVoicemailNotifier(Context context,
- NotificationManager notificationManager, NewCallsQuery newCallsQuery,
- NameLookupQuery nameLookupQuery) {
+ private DefaultVoicemailNotifier(Context context) {
mContext = context;
- mNotificationManager = notificationManager;
- mNewCallsQuery = newCallsQuery;
- mNameLookupQuery = nameLookupQuery;
}
/**
@@ -96,16 +89,17 @@ public class DefaultVoicemailNotifier {
public void updateNotification(Uri newCallUri) {
// Lookup the list of new voicemails to include in the notification.
// TODO: Move this into a service, to avoid holding the receiver up.
- final NewCall[] newCalls = mNewCallsQuery.query();
+ final List<NewCall> newCalls =
+ CallLogNotificationsHelper.getInstance(mContext).getNewVoicemails();
if (newCalls == null) {
// Query failed, just return.
return;
}
- if (newCalls.length == 0) {
+ if (newCalls.isEmpty()) {
// No voicemails to notify about: clear the notification.
- clearNotification();
+ getNotificationManager().cancel(NOTIFICATION_TAG, NOTIFICATION_ID);
return;
}
@@ -122,23 +116,25 @@ public class DefaultVoicemailNotifier {
NewCall callToNotify = null;
// Iterate over the new voicemails to determine all the information above.
- for (NewCall newCall : newCalls) {
+ Iterator<NewCall> itr = newCalls.iterator();
+ while (itr.hasNext()) {
+ NewCall newCall = itr.next();
+
+ // Skip notifying for numbers which are blocked.
+ if (FilteredNumbersUtil.shouldBlockVoicemail(
+ mContext, newCall.number, newCall.countryIso, newCall.dateMs)) {
+ itr.remove();
+
+ // Delete the voicemail.
+ mContext.getContentResolver().delete(newCall.voicemailUri, null, null);
+ continue;
+ }
+
// Check if we already know the name associated with this number.
String name = names.get(newCall.number);
if (name == null) {
- name = PhoneNumberDisplayUtil.getDisplayName(
- mContext,
- newCall.number,
- newCall.numberPresentation,
- /* isVoicemail */ false).toString();
- // If we cannot lookup the contact, use the number instead.
- if (TextUtils.isEmpty(name)) {
- // Look it up in the database.
- name = mNameLookupQuery.query(newCall.number);
- if (TextUtils.isEmpty(name)) {
- name = newCall.number;
- }
- }
+ name = CallLogNotificationsHelper.getInstance(mContext).getName(newCall.number,
+ newCall.numberPresentation, newCall.countryIso);
names.put(newCall.number, name);
// This is a new caller. Add it to the back of the list of callers.
if (TextUtils.isEmpty(callers)) {
@@ -155,10 +151,15 @@ public class DefaultVoicemailNotifier {
}
}
+ // All the potential new voicemails have been removed, e.g. if they were spam.
+ if (newCalls.isEmpty()) {
+ return;
+ }
+
// If there is only one voicemail, set its transcription as the "long text".
String transcription = null;
- if (newCalls.length == 1) {
- transcription = newCalls[0].transcription;
+ if (newCalls.size() == 1) {
+ transcription = newCalls.get(0).transcription;
}
if (newCallUri != null && callToNotify == null) {
@@ -167,24 +168,41 @@ public class DefaultVoicemailNotifier {
// Determine the title of the notification and the icon for it.
final String title = resources.getQuantityString(
- R.plurals.notification_voicemail_title, newCalls.length, newCalls.length);
+ R.plurals.notification_voicemail_title, newCalls.size(), newCalls.size());
// TODO: Use the photo of contact if all calls are from the same person.
final int icon = android.R.drawable.stat_notify_voicemail;
+ Uri ringtoneUri = null;
+ int notificationDefaults = 0;
+ if (callToNotify != null) {
+ PhoneAccountHandle accountHandle = new PhoneAccountHandle(
+ ComponentName.unflattenFromString(callToNotify.accountComponentName),
+ callToNotify.accountId);
+ ringtoneUri = TelephonyManagerCompat
+ .getVoicemailRingtoneUri(getTelephonyManager(), accountHandle);
+ if (ContactsUtils.FLAG_N_FEATURE) {
+ notificationDefaults = TelephonyManagerCompat.isVoicemailVibrationEnabled(
+ getTelephonyManager(), accountHandle)
+ ? Notification.DEFAULT_VIBRATE : 0;
+ } else {
+ notificationDefaults = Notification.DEFAULT_ALL;
+ }
+ }
+
Notification.Builder notificationBuilder = new Notification.Builder(mContext)
.setSmallIcon(icon)
.setContentTitle(title)
.setContentText(callers)
.setStyle(new Notification.BigTextStyle().bigText(transcription))
.setColor(resources.getColor(R.color.dialer_theme_color))
- .setDefaults(callToNotify != null ? Notification.DEFAULT_ALL : 0)
+ .setSound(ringtoneUri)
+ .setDefaults(notificationDefaults)
.setDeleteIntent(createMarkNewVoicemailsAsOldIntent())
.setAutoCancel(true);
// Determine the intent to fire when the notification is clicked on.
final Intent contentIntent;
// Open the call log.
- // TODO: Send to recents tab in Dialer instead.
contentIntent = new Intent(mContext, DialtactsActivity.class);
contentIntent.putExtra(DialtactsActivity.EXTRA_SHOW_TAB, ListsFragment.TAB_INDEX_VOICEMAIL);
notificationBuilder.setContentIntent(PendingIntent.getActivity(
@@ -192,11 +210,15 @@ public class DefaultVoicemailNotifier {
// The text to show in the ticker, describing the new event.
if (callToNotify != null) {
- notificationBuilder.setTicker(resources.getString(
- R.string.notification_new_voicemail_ticker, names.get(callToNotify.number)));
+ CharSequence msg = ContactDisplayUtils.getTtsSpannedPhoneNumber(
+ resources,
+ R.string.notification_new_voicemail_ticker,
+ names.get(callToNotify.number));
+ notificationBuilder.setTicker(msg);
}
- mNotificationManager.notify(NOTIFICATION_TAG, NOTIFICATION_ID, notificationBuilder.build());
+ getNotificationManager().notify(NOTIFICATION_TAG, NOTIFICATION_ID,
+ notificationBuilder.build());
}
/** Creates a pending intent that marks all new voicemails as old. */
@@ -206,182 +228,11 @@ public class DefaultVoicemailNotifier {
return PendingIntent.getService(mContext, 0, intent, 0);
}
- public void clearNotification() {
- mNotificationManager.cancel(NOTIFICATION_TAG, NOTIFICATION_ID);
- }
-
- /** Information about a new voicemail. */
- private static final class NewCall {
- public final Uri callsUri;
- public final Uri voicemailUri;
- public final String number;
- public final int numberPresentation;
- public final String accountComponentName;
- public final String accountId;
- public final String transcription;
-
- public NewCall(
- Uri callsUri,
- Uri voicemailUri,
- String number,
- int numberPresentation,
- String accountComponentName,
- String accountId,
- String transcription) {
- this.callsUri = callsUri;
- this.voicemailUri = voicemailUri;
- this.number = number;
- this.numberPresentation = numberPresentation;
- this.accountComponentName = accountComponentName;
- this.accountId = accountId;
- this.transcription = transcription;
- }
- }
-
- /** Allows determining the new calls for which a notification should be generated. */
- public interface NewCallsQuery {
- /**
- * Returns the new calls for which a notification should be generated.
- */
- public NewCall[] query();
+ private NotificationManager getNotificationManager() {
+ return (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
}
- /** Create a new instance of {@link NewCallsQuery}. */
- public static NewCallsQuery createNewCallsQuery(Context context,
- ContentResolver contentResolver) {
- return new DefaultNewCallsQuery(context.getApplicationContext(), contentResolver);
- }
-
- /**
- * Default implementation of {@link NewCallsQuery} that looks up the list of new calls to
- * notify about in the call log.
- */
- private static final class DefaultNewCallsQuery implements NewCallsQuery {
- private static final String[] PROJECTION = {
- Calls._ID,
- Calls.NUMBER,
- Calls.VOICEMAIL_URI,
- Calls.NUMBER_PRESENTATION,
- Calls.PHONE_ACCOUNT_COMPONENT_NAME,
- Calls.PHONE_ACCOUNT_ID,
- Calls.TRANSCRIPTION
- };
- private static final int ID_COLUMN_INDEX = 0;
- private static final int NUMBER_COLUMN_INDEX = 1;
- private static final int VOICEMAIL_URI_COLUMN_INDEX = 2;
- private static final int NUMBER_PRESENTATION_COLUMN_INDEX = 3;
- private static final int PHONE_ACCOUNT_COMPONENT_NAME_COLUMN_INDEX = 4;
- private static final int PHONE_ACCOUNT_ID_COLUMN_INDEX = 5;
- private static final int TRANSCRIPTION_COLUMN_INDEX = 6;
-
- private final ContentResolver mContentResolver;
- private final Context mContext;
-
- private DefaultNewCallsQuery(Context context, ContentResolver contentResolver) {
- mContext = context;
- mContentResolver = contentResolver;
- }
-
- @Override
- public NewCall[] query() {
- if (!PermissionsUtil.hasPermission(mContext, READ_CALL_LOG)) {
- Log.w(TAG, "No READ_CALL_LOG permission, returning null for calls lookup.");
- return null;
- }
- final String selection = String.format("%s = 1 AND %s = ?", Calls.NEW, Calls.TYPE);
- final String[] selectionArgs = new String[]{ Integer.toString(Calls.VOICEMAIL_TYPE) };
- Cursor cursor = null;
- try {
- cursor = mContentResolver.query(Calls.CONTENT_URI_WITH_VOICEMAIL, PROJECTION,
- selection, selectionArgs, Calls.DEFAULT_SORT_ORDER);
- if (cursor == null) {
- return null;
- }
- NewCall[] newCalls = new NewCall[cursor.getCount()];
- while (cursor.moveToNext()) {
- newCalls[cursor.getPosition()] = createNewCallsFromCursor(cursor);
- }
- return newCalls;
- } catch (RuntimeException e) {
- Log.w(TAG, "Exception when querying Contacts Provider for calls lookup");
- return null;
- } finally {
- MoreCloseables.closeQuietly(cursor);
- }
- }
-
- /** Returns an instance of {@link NewCall} created by using the values of the cursor. */
- private NewCall createNewCallsFromCursor(Cursor cursor) {
- String voicemailUriString = cursor.getString(VOICEMAIL_URI_COLUMN_INDEX);
- Uri callsUri = ContentUris.withAppendedId(
- Calls.CONTENT_URI_WITH_VOICEMAIL, cursor.getLong(ID_COLUMN_INDEX));
- Uri voicemailUri = voicemailUriString == null ? null : Uri.parse(voicemailUriString);
- return new NewCall(
- callsUri,
- voicemailUri,
- cursor.getString(NUMBER_COLUMN_INDEX),
- cursor.getInt(NUMBER_PRESENTATION_COLUMN_INDEX),
- cursor.getString(PHONE_ACCOUNT_COMPONENT_NAME_COLUMN_INDEX),
- cursor.getString(PHONE_ACCOUNT_ID_COLUMN_INDEX),
- cursor.getString(TRANSCRIPTION_COLUMN_INDEX));
- }
- }
-
- /** Allows determining the name associated with a given phone number. */
- public interface NameLookupQuery {
- /**
- * Returns the name associated with the given number in the contacts database, or null if
- * the number does not correspond to any of the contacts.
- * <p>
- * If there are multiple contacts with the same phone number, it will return the name of one
- * of the matching contacts.
- */
- public String query(String number);
- }
-
- /** Create a new instance of {@link NameLookupQuery}. */
- public static NameLookupQuery createNameLookupQuery(Context context,
- ContentResolver contentResolver) {
- return new DefaultNameLookupQuery(context.getApplicationContext(), contentResolver);
- }
-
- /**
- * Default implementation of {@link NameLookupQuery} that looks up the name of a contact in the
- * contacts database.
- */
- private static final class DefaultNameLookupQuery implements NameLookupQuery {
- private static final String[] PROJECTION = { PhoneLookup.DISPLAY_NAME };
- private static final int DISPLAY_NAME_COLUMN_INDEX = 0;
-
- private final ContentResolver mContentResolver;
- private final Context mContext;
-
- private DefaultNameLookupQuery(Context context, ContentResolver contentResolver) {
- mContext = context;
- mContentResolver = contentResolver;
- }
-
- @Override
- public String query(String number) {
- if (!PermissionsUtil.hasPermission(mContext, READ_CONTACTS)) {
- Log.w(TAG, "No READ_CONTACTS permission, returning null for name lookup.");
- return null;
- }
- Cursor cursor = null;
- try {
- cursor = mContentResolver.query(
- Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number)),
- PROJECTION, null, null, null);
- if (cursor == null || !cursor.moveToFirst()) return null;
- return cursor.getString(DISPLAY_NAME_COLUMN_INDEX);
- } catch (RuntimeException e) {
- Log.w(TAG, "Exception when querying Contacts Provider for name lookup");
- return null;
- } finally {
- if (cursor != null) {
- cursor.close();
- }
- }
- }
+ private TelephonyManager getTelephonyManager() {
+ return (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
}
}
diff --git a/src/com/android/dialer/calllog/GroupingListAdapter.java b/src/com/android/dialer/calllog/GroupingListAdapter.java
index 8d3ab4545..70190df30 100644
--- a/src/com/android/dialer/calllog/GroupingListAdapter.java
+++ b/src/com/android/dialer/calllog/GroupingListAdapter.java
@@ -22,78 +22,28 @@ import android.database.Cursor;
import android.database.DataSetObserver;
import android.os.Handler;
import android.support.v7.widget.RecyclerView;
-import android.util.Log;
import android.util.SparseIntArray;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-
-import com.android.contacts.common.testing.NeededForTesting;
/**
- * Maintains a list that groups adjacent items sharing the same value of a "group-by" field.
+ * Maintains a list that groups items into groups of consecutive elements which are disjoint,
+ * that is, an item can only belong to one group. This is leveraged for grouping calls in the
+ * call log received from or made to the same phone number.
*
- * The list has three types of elements: stand-alone, group header and group child. Groups are
- * collapsible and collapsed by default. This is used by the call log to group related entries.
+ * There are two integers stored as metadata for every list item in the adapter.
*/
abstract class GroupingListAdapter extends RecyclerView.Adapter {
- private static final int GROUP_METADATA_ARRAY_INITIAL_SIZE = 16;
- private static final int GROUP_METADATA_ARRAY_INCREMENT = 128;
- private static final long GROUP_OFFSET_MASK = 0x00000000FFFFFFFFL;
- private static final long GROUP_SIZE_MASK = 0x7FFFFFFF00000000L;
- private static final long EXPANDED_GROUP_MASK = 0x8000000000000000L;
-
- public static final int ITEM_TYPE_STANDALONE = 0;
- public static final int ITEM_TYPE_GROUP_HEADER = 1;
- public static final int ITEM_TYPE_IN_GROUP = 2;
-
- /**
- * Information about a specific list item: is it a group, if so is it expanded.
- * Otherwise, is it a stand-alone item or a group member.
- */
- protected static class PositionMetadata {
- int itemType;
- boolean isExpanded;
- int cursorPosition;
- int childCount;
- private int groupPosition;
- private int listPosition = -1;
- }
-
private Context mContext;
private Cursor mCursor;
/**
- * Count of list items.
- */
- private int mCount;
-
- private int mRowIdColumnIndex;
-
- /**
- * Count of groups in the list.
- */
- private int mGroupCount;
-
- /**
- * Information about where these groups are located in the list, how large they are
- * and whether they are expanded.
- */
- private long[] mGroupMetadata;
-
- private SparseIntArray mPositionCache = new SparseIntArray();
- private int mLastCachedListPosition;
- private int mLastCachedCursorPosition;
- private int mLastCachedGroup;
-
- /**
- * A reusable temporary instance of PositionMetadata
+ * SparseIntArray, which maps the cursor position of the first element of a group to the size
+ * of the group. The index of a key in this map corresponds to the list position of that group.
*/
- private PositionMetadata mPositionMetadata = new PositionMetadata();
+ private SparseIntArray mGroupMetadata;
+ private int mItemCount;
protected ContentObserver mChangeObserver = new ContentObserver(new Handler()) {
-
@Override
public boolean deliverSelfNotifications() {
return true;
@@ -106,7 +56,6 @@ abstract class GroupingListAdapter extends RecyclerView.Adapter {
};
protected DataSetObserver mDataSetObserver = new DataSetObserver() {
-
@Override
public void onChanged() {
notifyDataSetChanged();
@@ -115,7 +64,7 @@ abstract class GroupingListAdapter extends RecyclerView.Adapter {
public GroupingListAdapter(Context context) {
mContext = context;
- resetCache();
+ reset();
}
/**
@@ -126,18 +75,6 @@ abstract class GroupingListAdapter extends RecyclerView.Adapter {
protected abstract void onContentChanged();
- /**
- * Cache should be reset whenever the cursor changes or groups are expanded or collapsed.
- */
- private void resetCache() {
- mCount = -1;
- mLastCachedListPosition = -1;
- mLastCachedCursorPosition = -1;
- mLastCachedGroup = -1;
- mPositionMetadata.listPosition = -1;
- mPositionCache.clear();
- }
-
public void changeCursor(Cursor cursor) {
if (cursor == mCursor) {
return;
@@ -148,288 +85,73 @@ abstract class GroupingListAdapter extends RecyclerView.Adapter {
mCursor.unregisterDataSetObserver(mDataSetObserver);
mCursor.close();
}
+
+ // Reset whenever the cursor is changed.
+ reset();
mCursor = cursor;
- resetCache();
- findGroups();
if (cursor != null) {
+ addGroups(mCursor);
+
+ // Calculate the item count by subtracting group child counts from the cursor count.
+ mItemCount = mGroupMetadata.size();
+
cursor.registerContentObserver(mChangeObserver);
cursor.registerDataSetObserver(mDataSetObserver);
- mRowIdColumnIndex = cursor.getColumnIndexOrThrow("_id");
notifyDataSetChanged();
}
}
- @NeededForTesting
- public Cursor getCursor() {
- return mCursor;
- }
-
- /**
- * Scans over the entire cursor looking for duplicate phone numbers that need
- * to be collapsed.
- */
- private void findGroups() {
- mGroupCount = 0;
- mGroupMetadata = new long[GROUP_METADATA_ARRAY_INITIAL_SIZE];
-
- if (mCursor == null) {
- return;
- }
-
- addGroups(mCursor);
- }
-
/**
- * Records information about grouping in the list. Should be called by the overridden
- * {@link #addGroups} method.
+ * Records information about grouping in the list.
+ * Should be called by the overridden {@link #addGroups} method.
*/
- protected void addGroup(int cursorPosition, int size, boolean expanded) {
- if (mGroupCount >= mGroupMetadata.length) {
- int newSize = idealLongArraySize(
- mGroupMetadata.length + GROUP_METADATA_ARRAY_INCREMENT);
- long[] array = new long[newSize];
- System.arraycopy(mGroupMetadata, 0, array, 0, mGroupCount);
- mGroupMetadata = array;
- }
-
- long metadata = ((long)size << 32) | cursorPosition;
- if (expanded) {
- metadata |= EXPANDED_GROUP_MASK;
+ public void addGroup(int cursorPosition, int groupSize) {
+ int lastIndex = mGroupMetadata.size() - 1;
+ if (lastIndex < 0 || cursorPosition <= mGroupMetadata.keyAt(lastIndex)) {
+ mGroupMetadata.put(cursorPosition, groupSize);
+ } else {
+ // Optimization to avoid binary search if adding groups in ascending cursor position.
+ mGroupMetadata.append(cursorPosition, groupSize);
}
- mGroupMetadata[mGroupCount++] = metadata;
- }
-
- // Copy/paste from ArrayUtils
- private int idealLongArraySize(int need) {
- return idealByteArraySize(need * 8) / 8;
- }
-
- // Copy/paste from ArrayUtils
- private int idealByteArraySize(int need) {
- for (int i = 4; i < 32; i++)
- if (need <= (1 << i) - 12)
- return (1 << i) - 12;
-
- return need;
}
@Override
public int getItemCount() {
- if (mCursor == null) {
- return 0;
- }
-
- if (mCount != -1) {
- return mCount;
- }
-
- int cursorPosition = 0;
- int count = 0;
- for (int i = 0; i < mGroupCount; i++) {
- long metadata = mGroupMetadata[i];
- int offset = (int)(metadata & GROUP_OFFSET_MASK);
- boolean expanded = (metadata & EXPANDED_GROUP_MASK) != 0;
- int size = (int)((metadata & GROUP_SIZE_MASK) >> 32);
-
- count += (offset - cursorPosition);
-
- if (expanded) {
- count += size + 1;
- } else {
- count++;
- }
-
- cursorPosition = offset + size;
- }
-
- mCount = count + mCursor.getCount() - cursorPosition;
- return mCount;
+ return mItemCount;
}
/**
- * Figures out whether the item at the specified position represents a
- * stand-alone element, a group or a group child. Also computes the
- * corresponding cursor position.
+ * Given the position of a list item, returns the size of the group of items corresponding to
+ * that position.
*/
- public void obtainPositionMetadata(PositionMetadata metadata, int position) {
- // If the description object already contains requested information, just return
- if (metadata.listPosition == position) {
- return;
- }
-
- int listPosition = 0;
- int cursorPosition = 0;
- int firstGroupToCheck = 0;
-
- // Check cache for the supplied position. What we are looking for is
- // the group descriptor immediately preceding the supplied position.
- // Once we have that, we will be able to tell whether the position
- // is the header of the group, a member of the group or a standalone item.
- if (mLastCachedListPosition != -1) {
- if (position <= mLastCachedListPosition) {
-
- // Have SparceIntArray do a binary search for us.
- int index = mPositionCache.indexOfKey(position);
-
- // If we get back a positive number, the position corresponds to
- // a group header.
- if (index < 0) {
-
- // We had a cache miss, but we did obtain valuable information anyway.
- // The negative number will allow us to compute the location of
- // the group header immediately preceding the supplied position.
- index = ~index - 1;
-
- if (index >= mPositionCache.size()) {
- index--;
- }
- }
-
- // A non-negative index gives us the position of the group header
- // corresponding or preceding the position, so we can
- // search for the group information at the supplied position
- // starting with the cached group we just found
- if (index >= 0) {
- listPosition = mPositionCache.keyAt(index);
- firstGroupToCheck = mPositionCache.valueAt(index);
- long descriptor = mGroupMetadata[firstGroupToCheck];
- cursorPosition = (int)(descriptor & GROUP_OFFSET_MASK);
- }
- } else {
-
- // If we haven't examined groups beyond the supplied position,
- // we will start where we left off previously
- firstGroupToCheck = mLastCachedGroup;
- listPosition = mLastCachedListPosition;
- cursorPosition = mLastCachedCursorPosition;
- }
- }
-
- for (int i = firstGroupToCheck; i < mGroupCount; i++) {
- long group = mGroupMetadata[i];
- int offset = (int)(group & GROUP_OFFSET_MASK);
-
- // Move pointers to the beginning of the group
- listPosition += (offset - cursorPosition);
- cursorPosition = offset;
-
- if (i > mLastCachedGroup) {
- mPositionCache.append(listPosition, i);
- mLastCachedListPosition = listPosition;
- mLastCachedCursorPosition = cursorPosition;
- mLastCachedGroup = i;
- }
-
- // Now we have several possibilities:
- // A) The requested position precedes the group
- if (position < listPosition) {
- metadata.itemType = ITEM_TYPE_STANDALONE;
- metadata.cursorPosition = cursorPosition - (listPosition - position);
- metadata.childCount = 1;
- return;
- }
-
- boolean expanded = (group & EXPANDED_GROUP_MASK) != 0;
- int size = (int) ((group & GROUP_SIZE_MASK) >> 32);
-
- // B) The requested position is a group header
- if (position == listPosition) {
- metadata.itemType = ITEM_TYPE_GROUP_HEADER;
- metadata.groupPosition = i;
- metadata.isExpanded = expanded;
- metadata.childCount = size;
- metadata.cursorPosition = offset;
- return;
- }
-
- if (expanded) {
- // C) The requested position is an element in the expanded group
- if (position < listPosition + size + 1) {
- metadata.itemType = ITEM_TYPE_IN_GROUP;
- metadata.cursorPosition = cursorPosition + (position - listPosition) - 1;
- return;
- }
-
- // D) The element is past the expanded group
- listPosition += size + 1;
- } else {
-
- // E) The element is past the collapsed group
- listPosition++;
- }
-
- // Move cursor past the group
- cursorPosition += size;
+ public int getGroupSize(int listPosition) {
+ if (listPosition < 0 || listPosition >= mGroupMetadata.size()) {
+ return 0;
}
- // The required item is past the last group
- metadata.itemType = ITEM_TYPE_STANDALONE;
- metadata.cursorPosition = cursorPosition + (position - listPosition);
- metadata.childCount = 1;
- }
-
- /**
- * Returns true if the specified position in the list corresponds to a
- * group header.
- */
- public boolean isGroupHeader(int position) {
- obtainPositionMetadata(mPositionMetadata, position);
- return mPositionMetadata.itemType == ITEM_TYPE_GROUP_HEADER;
+ return mGroupMetadata.valueAt(listPosition);
}
/**
- * Given a position of a groups header in the list, returns the size of
- * the corresponding group.
+ * Given the position of a list item, returns the the first item in the group of items
+ * corresponding to that position.
*/
- public int getGroupSize(int position) {
- obtainPositionMetadata(mPositionMetadata, position);
- return mPositionMetadata.childCount;
- }
-
- /**
- * Mark group as expanded if it is collapsed and vice versa.
- */
- @NeededForTesting
- public void toggleGroup(int position) {
- obtainPositionMetadata(mPositionMetadata, position);
- if (mPositionMetadata.itemType != ITEM_TYPE_GROUP_HEADER) {
- throw new IllegalArgumentException("Not a group at position " + position);
- }
-
- if (mPositionMetadata.isExpanded) {
- mGroupMetadata[mPositionMetadata.groupPosition] &= ~EXPANDED_GROUP_MASK;
- } else {
- mGroupMetadata[mPositionMetadata.groupPosition] |= EXPANDED_GROUP_MASK;
- }
- resetCache();
- notifyDataSetChanged();
- }
-
- public int getItemViewType(int position) {
- obtainPositionMetadata(mPositionMetadata, position);
- return mPositionMetadata.itemType;
- }
-
- public Object getItem(int position) {
- if (mCursor == null) {
+ public Object getItem(int listPosition) {
+ if (mCursor == null || listPosition < 0 || listPosition >= mGroupMetadata.size()) {
return null;
}
- obtainPositionMetadata(mPositionMetadata, position);
- if (mCursor.moveToPosition(mPositionMetadata.cursorPosition)) {
+ int cursorPosition = mGroupMetadata.keyAt(listPosition);
+ if (mCursor.moveToPosition(cursorPosition)) {
return mCursor;
} else {
return null;
}
}
- public long getItemId(int position) {
- Object item = getItem(position);
- if (item != null) {
- return mCursor.getLong(mRowIdColumnIndex);
- } else {
- return -1;
- }
+ private void reset() {
+ mItemCount = 0;
+ mGroupMetadata = new SparseIntArray();
}
}
diff --git a/src/com/android/dialer/calllog/IntentProvider.java b/src/com/android/dialer/calllog/IntentProvider.java
index a11d00bc2..773436be4 100644
--- a/src/com/android/dialer/calllog/IntentProvider.java
+++ b/src/com/android/dialer/calllog/IntentProvider.java
@@ -21,17 +21,17 @@ import android.content.ContentUris;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
-import android.provider.CallLog.Calls;
import android.provider.ContactsContract;
import android.telecom.PhoneAccountHandle;
+import com.android.contacts.common.CallUtil;
import com.android.contacts.common.model.Contact;
import com.android.contacts.common.model.ContactLoader;
import com.android.dialer.CallDetailActivity;
-import com.android.dialer.DialtactsActivity;
-import com.android.dialer.PhoneCallDetails;
import com.android.dialer.util.IntentUtil;
+import com.android.dialer.util.IntentUtil.CallIntentBuilder;
import com.android.dialer.util.TelecomUtil;
+import com.android.incallui.Call.LogState;
import java.util.ArrayList;
@@ -55,7 +55,10 @@ public abstract class IntentProvider {
return new IntentProvider() {
@Override
public Intent getIntent(Context context) {
- return IntentUtil.getCallIntent(number, accountHandle);
+ return new CallIntentBuilder(number)
+ .setPhoneAccountHandle(accountHandle)
+ .setCallInitiationType(LogState.INITIATION_CALL_LOG)
+ .build();
}
};
}
@@ -69,7 +72,11 @@ public abstract class IntentProvider {
return new IntentProvider() {
@Override
public Intent getIntent(Context context) {
- return IntentUtil.getVideoCallIntent(number, accountHandle);
+ return new CallIntentBuilder(number)
+ .setPhoneAccountHandle(accountHandle)
+ .setCallInitiationType(LogState.INITIATION_CALL_LOG)
+ .setIsVideoCall(true)
+ .build();
}
};
}
@@ -78,7 +85,9 @@ public abstract class IntentProvider {
return new IntentProvider() {
@Override
public Intent getIntent(Context context) {
- return IntentUtil.getVoicemailIntent();
+ return new CallIntentBuilder(CallUtil.getVoicemailUri())
+ .setCallInitiationType(LogState.INITIATION_CALL_LOG)
+ .build();
}
};
}
diff --git a/src/com/android/dialer/calllog/MissedCallNotificationReceiver.java b/src/com/android/dialer/calllog/MissedCallNotificationReceiver.java
new file mode 100644
index 000000000..86d6cb9fb
--- /dev/null
+++ b/src/com/android/dialer/calllog/MissedCallNotificationReceiver.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.calllog;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.telecom.TelecomManager;
+import android.util.Log;
+
+import com.android.dialer.calllog.CallLogNotificationsService;
+
+/**
+ * Receives broadcasts that should trigger a refresh of the missed call notification. This includes
+ * both an explicit broadcast from Telecom and a reboot.
+ */
+public class MissedCallNotificationReceiver extends BroadcastReceiver {
+ //TODO: Use compat class for these methods.
+ public static final String ACTION_SHOW_MISSED_CALLS_NOTIFICATION =
+ "android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION";
+
+ public static final String EXTRA_NOTIFICATION_COUNT =
+ "android.telecom.extra.NOTIFICATION_COUNT";
+
+ public static final String EXTRA_NOTIFICATION_PHONE_NUMBER =
+ "android.telecom.extra.NOTIFICATION_PHONE_NUMBER";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (!ACTION_SHOW_MISSED_CALLS_NOTIFICATION.equals(action)) {
+ return;
+ }
+
+ int count = intent.getIntExtra(EXTRA_NOTIFICATION_COUNT,
+ CallLogNotificationsService.UNKNOWN_MISSED_CALL_COUNT);
+ String number = intent.getStringExtra(EXTRA_NOTIFICATION_PHONE_NUMBER);
+ CallLogNotificationsService.updateMissedCallNotifications(context, count, number);
+ }
+}
diff --git a/src/com/android/dialer/calllog/MissedCallNotifier.java b/src/com/android/dialer/calllog/MissedCallNotifier.java
new file mode 100644
index 000000000..8811baff8
--- /dev/null
+++ b/src/com/android/dialer/calllog/MissedCallNotifier.java
@@ -0,0 +1,271 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.calllog;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.os.AsyncTask;
+import android.provider.CallLog.Calls;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.dialer.calllog.CallLogNotificationsHelper.NewCall;
+import com.android.dialer.DialtactsActivity;
+import com.android.dialer.list.ListsFragment;
+import com.android.dialer.util.DialerUtils;
+import com.android.dialer.util.IntentUtil;
+import com.android.dialer.util.IntentUtil.CallIntentBuilder;
+import com.android.dialer.R;
+
+import java.util.List;
+
+/**
+ * Creates a notification for calls that the user missed (neither answered nor rejected).
+ *
+ */
+public class MissedCallNotifier {
+ public static final String TAG = "MissedCallNotifier";
+
+ /** The tag used to identify notifications from this class. */
+ private static final String NOTIFICATION_TAG = "MissedCallNotifier";
+ /** The identifier of the notification of new missed calls. */
+ private static final int NOTIFICATION_ID = 1;
+ /** Preference file key for number of missed calls. */
+ private static final String MISSED_CALL_COUNT = "missed_call_count";
+
+ private static MissedCallNotifier sInstance;
+ private Context mContext;
+
+ /** Returns the singleton instance of the {@link MissedCallNotifier}. */
+ public static MissedCallNotifier getInstance(Context context) {
+ if (sInstance == null) {
+ sInstance = new MissedCallNotifier(context);
+ }
+ return sInstance;
+ }
+
+ private MissedCallNotifier(Context context) {
+ mContext = context;
+ }
+
+ public void updateMissedCallNotification(int count, String number) {
+ final int titleResId;
+ final String expandedText; // The text in the notification's line 1 and 2.
+
+ final List<NewCall> newCalls =
+ CallLogNotificationsHelper.getInstance(mContext).getNewMissedCalls();
+
+ if (count == CallLogNotificationsService.UNKNOWN_MISSED_CALL_COUNT) {
+ if (newCalls == null) {
+ // If the intent did not contain a count, and we are unable to get a count from the
+ // call log, then no notification can be shown.
+ return;
+ }
+ count = newCalls.size();
+ }
+
+ if (count == 0) {
+ // No voicemails to notify about: clear the notification.
+ clearMissedCalls();
+ return;
+ }
+
+ // The call log has been updated, use that information preferentially.
+ boolean useCallLog = newCalls != null && newCalls.size() == count;
+ NewCall newestCall = useCallLog ? newCalls.get(0) : null;
+ long timeMs = useCallLog ? newestCall.dateMs : System.currentTimeMillis();
+
+ // Display the first line of the notification:
+ // 1 missed call: <caller name || handle>
+ // More than 1 missed call: <number of calls> + "missed calls"
+ if (count == 1) {
+ titleResId = R.string.notification_missedCallTitle;
+
+ //TODO: look up caller ID that is not in contacts.
+ expandedText = CallLogNotificationsHelper.getInstance(mContext)
+ .getName(useCallLog ? newestCall.number : number,
+ useCallLog ? newestCall.numberPresentation
+ : Calls.PRESENTATION_ALLOWED,
+ useCallLog ? newestCall.countryIso : null);
+ } else {
+ titleResId = R.string.notification_missedCallsTitle;
+ expandedText =
+ mContext.getString(R.string.notification_missedCallsMsg, count);
+ }
+
+ // Create a public viewable version of the notification, suitable for display when sensitive
+ // notification content is hidden.
+ Notification.Builder publicBuilder = new Notification.Builder(mContext);
+ publicBuilder.setSmallIcon(android.R.drawable.stat_notify_missed_call)
+ .setColor(mContext.getResources().getColor(R.color.dialer_theme_color))
+ // Show "Phone" for notification title.
+ .setContentTitle(mContext.getText(R.string.userCallActivityLabel))
+ // Notification details shows that there are missed call(s), but does not reveal
+ // the missed caller information.
+ .setContentText(mContext.getText(titleResId))
+ .setContentIntent(createCallLogPendingIntent())
+ .setAutoCancel(true)
+ .setWhen(timeMs)
+ .setDeleteIntent(createClearMissedCallsPendingIntent());
+
+ // Create the notification suitable for display when sensitive information is showing.
+ Notification.Builder builder = new Notification.Builder(mContext);
+ builder.setSmallIcon(android.R.drawable.stat_notify_missed_call)
+ .setColor(mContext.getResources().getColor(R.color.dialer_theme_color))
+ .setContentTitle(mContext.getText(titleResId))
+ .setContentText(expandedText)
+ .setContentIntent(createCallLogPendingIntent())
+ .setAutoCancel(true)
+ .setWhen(timeMs)
+ .setDeleteIntent(createClearMissedCallsPendingIntent())
+ // Include a public version of the notification to be shown when the missed call
+ // notification is shown on the user's lock screen and they have chosen to hide
+ // sensitive notification information.
+ .setPublicVersion(publicBuilder.build());
+
+ // Add additional actions when there is only 1 missed call, like call-back and SMS.
+ if (count == 1) {
+ if (!TextUtils.isEmpty(number)
+ && !TextUtils.equals(
+ number, mContext.getString(R.string.handle_restricted))) {
+ builder.addAction(R.drawable.ic_phone_24dp,
+ mContext.getString(R.string.notification_missedCall_call_back),
+ createCallBackPendingIntent(number));
+
+ if (!PhoneNumberHelper.isUriNumber(number)) {
+ builder.addAction(R.drawable.ic_message_24dp,
+ mContext.getString(R.string.notification_missedCall_message),
+ createSendSmsFromNotificationPendingIntent(number));
+ }
+ }
+ //TODO: add photo
+ }
+
+ Notification notification = builder.build();
+ configureLedOnNotification(notification);
+
+ Log.i(TAG, "Adding missed call notification.");
+ getNotificationMgr().notify(NOTIFICATION_TAG, NOTIFICATION_ID, notification);
+ }
+
+ private void clearMissedCalls() {
+ AsyncTask.execute(new Runnable() {
+ @Override
+ public void run() {
+ // Clear the list of new missed calls from the call log.
+ ContentValues values = new ContentValues();
+ values.put(Calls.NEW, 0);
+ values.put(Calls.IS_READ, 1);
+ StringBuilder where = new StringBuilder();
+ where.append(Calls.NEW);
+ where.append(" = 1 AND ");
+ where.append(Calls.TYPE);
+ where.append(" = ?");
+ try {
+ mContext.getContentResolver().update(Calls.CONTENT_URI, values,
+ where.toString(), new String[]{ Integer.toString(Calls.
+ MISSED_TYPE) });
+ } catch (IllegalArgumentException e) {
+ Log.w(TAG, "ContactsProvider update command failed", e);
+ }
+ getNotificationMgr().cancel(NOTIFICATION_TAG, NOTIFICATION_ID);
+ }
+ });
+ }
+
+ /**
+ * Trigger an intent to make a call from a missed call number.
+ */
+ public void callBackFromMissedCall(String number) {
+ closeSystemDialogs(mContext);
+ CallLogNotificationsHelper.removeMissedCallNotifications(mContext);
+ DialerUtils.startActivityWithErrorToast(
+ mContext,
+ new CallIntentBuilder(number)
+ .build()
+ .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+ }
+
+ /**
+ * Trigger an intent to send an sms from a missed call number.
+ */
+ public void sendSmsFromMissedCall(String number) {
+ closeSystemDialogs(mContext);
+ CallLogNotificationsHelper.removeMissedCallNotifications(mContext);
+ DialerUtils.startActivityWithErrorToast(
+ mContext,
+ IntentUtil.getSendSmsIntent(number).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+ }
+
+ /**
+ * Creates a new pending intent that sends the user to the call log.
+ *
+ * @return The pending intent.
+ */
+ private PendingIntent createCallLogPendingIntent() {
+ Intent contentIntent = new Intent(mContext, DialtactsActivity.class);
+ contentIntent.putExtra(DialtactsActivity.EXTRA_SHOW_TAB, ListsFragment.TAB_INDEX_HISTORY);
+ return PendingIntent.getActivity(
+ mContext, 0, contentIntent,PendingIntent.FLAG_UPDATE_CURRENT);
+ }
+
+ /** Creates a pending intent that marks all new missed calls as old. */
+ private PendingIntent createClearMissedCallsPendingIntent() {
+ Intent intent = new Intent(mContext, CallLogNotificationsService.class);
+ intent.setAction(CallLogNotificationsService.ACTION_MARK_NEW_MISSED_CALLS_AS_OLD);
+ return PendingIntent.getService(mContext, 0, intent, 0);
+ }
+
+ private PendingIntent createCallBackPendingIntent(String number) {
+ Intent intent = new Intent(mContext, CallLogNotificationsService.class);
+ intent.setAction(
+ CallLogNotificationsService.ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION);
+ intent.putExtra(CallLogNotificationsService.EXTRA_MISSED_CALL_NUMBER, number);
+ return PendingIntent.getService(mContext, 0, intent, 0);
+ }
+
+ private PendingIntent createSendSmsFromNotificationPendingIntent(String number) {
+ Intent intent = new Intent(mContext, CallLogNotificationsService.class);
+ intent.setAction(
+ CallLogNotificationsService.ACTION_SEND_SMS_FROM_MISSED_CALL_NOTIFICATION);
+ intent.putExtra(CallLogNotificationsService.EXTRA_MISSED_CALL_NUMBER, number);
+ return PendingIntent.getService(mContext, 0, intent, 0);
+ }
+
+ /**
+ * Configures a notification to emit the blinky notification light.
+ */
+ private void configureLedOnNotification(Notification notification) {
+ notification.flags |= Notification.FLAG_SHOW_LIGHTS;
+ notification.defaults |= Notification.DEFAULT_LIGHTS;
+ }
+
+ /**
+ * Closes open system dialogs and the notification shade.
+ */
+ private void closeSystemDialogs(Context context) {
+ context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
+ }
+
+ private NotificationManager getNotificationMgr() {
+ return (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+ }
+}
diff --git a/src/com/android/dialer/calllog/PhoneAccountUtils.java b/src/com/android/dialer/calllog/PhoneAccountUtils.java
index 143d13e86..8c3985b3f 100644
--- a/src/com/android/dialer/calllog/PhoneAccountUtils.java
+++ b/src/com/android/dialer/calllog/PhoneAccountUtils.java
@@ -18,11 +18,14 @@ package com.android.dialer.calllog;
import android.content.ComponentName;
import android.content.Context;
+import android.support.annotation.Nullable;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
import android.text.TextUtils;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.dialer.util.TelecomUtil;
+
import java.util.ArrayList;
import java.util.List;
@@ -34,13 +37,11 @@ public class PhoneAccountUtils {
* Return a list of phone accounts that are subscription/SIM accounts.
*/
public static List<PhoneAccountHandle> getSubscriptionPhoneAccounts(Context context) {
- final TelecomManager telecomManager =
- (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
-
List<PhoneAccountHandle> subscriptionAccountHandles = new ArrayList<PhoneAccountHandle>();
- List<PhoneAccountHandle> accountHandles = telecomManager.getCallCapablePhoneAccounts();
+ final List<PhoneAccountHandle> accountHandles =
+ TelecomUtil.getCallCapablePhoneAccounts(context);
for (PhoneAccountHandle accountHandle : accountHandles) {
- PhoneAccount account = telecomManager.getPhoneAccount(accountHandle);
+ PhoneAccount account = TelecomUtil.getPhoneAccount(context, accountHandle);
if (account.hasCapabilities(PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION)) {
subscriptionAccountHandles.add(accountHandle);
}
@@ -51,7 +52,9 @@ public class PhoneAccountUtils {
/**
* Compose PhoneAccount object from component name and account id.
*/
- public static PhoneAccountHandle getAccount(String componentString, String accountId) {
+ @Nullable
+ public static PhoneAccountHandle getAccount(@Nullable String componentString,
+ @Nullable String accountId) {
if (TextUtils.isEmpty(componentString) || TextUtils.isEmpty(accountId)) {
return null;
}
@@ -62,7 +65,9 @@ public class PhoneAccountUtils {
/**
* Extract account label from PhoneAccount object.
*/
- public static String getAccountLabel(Context context, PhoneAccountHandle accountHandle) {
+ @Nullable
+ public static String getAccountLabel(Context context,
+ @Nullable PhoneAccountHandle accountHandle) {
PhoneAccount account = getAccountOrNull(context, accountHandle);
if (account != null && account.getLabel() != null) {
return account.getLabel().toString();
@@ -73,10 +78,8 @@ public class PhoneAccountUtils {
/**
* Extract account color from PhoneAccount object.
*/
- public static int getAccountColor(Context context, PhoneAccountHandle accountHandle) {
- TelecomManager telecomManager =
- (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
- final PhoneAccount account = telecomManager.getPhoneAccount(accountHandle);
+ public static int getAccountColor(Context context, @Nullable PhoneAccountHandle accountHandle) {
+ final PhoneAccount account = TelecomUtil.getPhoneAccount(context, accountHandle);
// For single-sim devices the PhoneAccount will be NO_HIGHLIGHT_COLOR by default, so it is
// safe to always use the account highlight color.
@@ -89,10 +92,8 @@ public class PhoneAccountUtils {
* @return {@code true} if call subjects are supported, {@code false} otherwise.
*/
public static boolean getAccountSupportsCallSubject(Context context,
- PhoneAccountHandle accountHandle) {
- TelecomManager telecomManager =
- (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
- final PhoneAccount account = telecomManager.getPhoneAccount(accountHandle);
+ @Nullable PhoneAccountHandle accountHandle) {
+ final PhoneAccount account = TelecomUtil.getPhoneAccount(context, accountHandle);
return account == null ? false :
account.hasCapabilities(PhoneAccount.CAPABILITY_CALL_SUBJECT);
@@ -102,14 +103,12 @@ public class PhoneAccountUtils {
* Retrieve the account metadata, but if the account does not exist or the device has only a
* single registered and enabled account, return null.
*/
- static PhoneAccount getAccountOrNull(Context context,
- PhoneAccountHandle accountHandle) {
- TelecomManager telecomManager =
- (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
- final PhoneAccount account = telecomManager.getPhoneAccount(accountHandle);
- if (telecomManager.getCallCapablePhoneAccounts().size() <= 1) {
+ @Nullable
+ private static PhoneAccount getAccountOrNull(Context context,
+ @Nullable PhoneAccountHandle accountHandle) {
+ if (TelecomUtil.getCallCapablePhoneAccounts(context).size() <= 1) {
return null;
}
- return account;
+ return TelecomUtil.getPhoneAccount(context, accountHandle);
}
}
diff --git a/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java b/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
index df5fe0606..e6b850872 100644
--- a/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
+++ b/src/com/android/dialer/calllog/PhoneCallDetailsHelper.java
@@ -16,13 +16,15 @@
package com.android.dialer.calllog;
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.Lists;
+
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
-import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.support.v4.content.ContextCompat;
import android.telecom.PhoneAccount;
import android.text.TextUtils;
import android.text.format.DateUtils;
@@ -33,17 +35,17 @@ import com.android.contacts.common.testing.NeededForTesting;
import com.android.contacts.common.util.PhoneNumberHelper;
import com.android.dialer.PhoneCallDetails;
import com.android.dialer.R;
+import com.android.dialer.calllog.calllogcache.CallLogCache;
import com.android.dialer.util.DialerUtils;
-import com.android.dialer.util.PhoneNumberUtil;
-
-import com.google.common.collect.Lists;
import java.util.ArrayList;
+import java.util.Calendar;
/**
* Helper class to fill in the views in {@link PhoneCallDetailsViews}.
*/
public class PhoneCallDetailsHelper {
+
/** The maximum number of icons will be shown to represent the call types in a group. */
private static final int MAX_CALL_TYPE_ICONS = 3;
@@ -51,7 +53,13 @@ public class PhoneCallDetailsHelper {
private final Resources mResources;
/** The injected current time in milliseconds since the epoch. Used only by tests. */
private Long mCurrentTimeMillisForTest;
- private final TelecomCallLogCache mTelecomCallLogCache;
+
+ private CharSequence mPhoneTypeLabelForTest;
+
+ private final CallLogCache mCallLogCache;
+
+ /** Calendar used to construct dates */
+ private final Calendar mCalendar;
/**
* List of items to be concatenated together for accessibility descriptions
@@ -68,10 +76,11 @@ public class PhoneCallDetailsHelper {
public PhoneCallDetailsHelper(
Context context,
Resources resources,
- TelecomCallLogCache telecomCallLogCache) {
+ CallLogCache callLogCache) {
mContext = context;
mResources = resources;
- mTelecomCallLogCache = telecomCallLogCache;
+ mCallLogCache = callLogCache;
+ mCalendar = Calendar.getInstance();
}
/** Fills the call details views with content. */
@@ -107,12 +116,12 @@ public class PhoneCallDetailsHelper {
setCallCountAndDate(views, callCount, callLocationAndDate);
// Set the account label if it exists.
- String accountLabel = mTelecomCallLogCache.getAccountLabel(details.accountHandle);
+ String accountLabel = mCallLogCache.getAccountLabel(details.accountHandle);
if (accountLabel != null) {
views.callAccountLabel.setVisibility(View.VISIBLE);
views.callAccountLabel.setText(accountLabel);
- int color = PhoneAccountUtils.getAccountColor(mContext, details.accountHandle);
+ int color = mCallLogCache.getAccountColor(details.accountHandle);
if (color == PhoneAccount.NO_HIGHLIGHT_COLOR) {
int defaultColor = R.color.dialtacts_secondary_text_color;
views.callAccountLabel.setTextColor(mContext.getResources().getColor(defaultColor));
@@ -125,22 +134,19 @@ public class PhoneCallDetailsHelper {
final CharSequence nameText;
final CharSequence displayNumber = details.displayNumber;
- if (TextUtils.isEmpty(details.name)) {
+ if (TextUtils.isEmpty(details.getPreferredName())) {
nameText = displayNumber;
// We have a real phone number as "nameView" so make it always LTR
views.nameView.setTextDirection(View.TEXT_DIRECTION_LTR);
} else {
- nameText = details.name;
+ nameText = details.getPreferredName();
}
views.nameView.setText(nameText);
- if (isVoicemail && !TextUtils.isEmpty(details.transcription)) {
- views.voicemailTranscriptionView.setText(details.transcription);
- views.voicemailTranscriptionView.setVisibility(View.VISIBLE);
- } else {
- views.voicemailTranscriptionView.setText(null);
- views.voicemailTranscriptionView.setVisibility(View.GONE);
+ if (isVoicemail) {
+ views.voicemailTranscriptionView.setText(TextUtils.isEmpty(details.transcription) ? null
+ : details.transcription);
}
// Bold if not read
@@ -148,10 +154,13 @@ public class PhoneCallDetailsHelper {
views.nameView.setTypeface(typeface);
views.voicemailTranscriptionView.setTypeface(typeface);
views.callLocationAndDate.setTypeface(typeface);
+ views.callLocationAndDate.setTextColor(ContextCompat.getColor(mContext, details.isRead ?
+ R.color.call_log_detail_color : R.color.call_log_unread_text_color));
}
/**
- * Builds a string containing the call location and date.
+ * Builds a string containing the call location and date. For voicemail logs only the call date
+ * is returned because location information is displayed in the call action button
*
* @param details The call details.
* @return The call location and date string.
@@ -159,15 +168,18 @@ public class PhoneCallDetailsHelper {
private CharSequence getCallLocationAndDate(PhoneCallDetails details) {
mDescriptionItems.clear();
- // Get type of call (ie mobile, home, etc) if known, or the caller's location.
- CharSequence callTypeOrLocation = getCallTypeOrLocation(details);
+ if (details.callTypes[0] != Calls.VOICEMAIL_TYPE) {
+ // Get type of call (ie mobile, home, etc) if known, or the caller's location.
+ CharSequence callTypeOrLocation = getCallTypeOrLocation(details);
- // Only add the call type or location if its not empty. It will be empty for unknown
- // callers.
- if (!TextUtils.isEmpty(callTypeOrLocation)) {
- mDescriptionItems.add(callTypeOrLocation);
+ // Only add the call type or location if its not empty. It will be empty for unknown
+ // callers.
+ if (!TextUtils.isEmpty(callTypeOrLocation)) {
+ mDescriptionItems.add(callTypeOrLocation);
+ }
}
- // The date of this call, relative to the current time.
+
+ // The date of this call
mDescriptionItems.add(getCallDate(details));
// Create a comma separated list from the call type or location, and call date.
@@ -178,6 +190,7 @@ public class PhoneCallDetailsHelper {
* For a call, if there is an associated contact for the caller, return the known call type
* (e.g. mobile, home, work). If there is no associated contact, attempt to use the caller's
* location if known.
+ *
* @param details Call details to use.
* @return Type of call (mobile/home) if known, or the location of the caller (if known).
*/
@@ -186,43 +199,94 @@ public class PhoneCallDetailsHelper {
// Only show a label if the number is shown and it is not a SIP address.
if (!TextUtils.isEmpty(details.number)
&& !PhoneNumberHelper.isUriNumber(details.number.toString())
- && !mTelecomCallLogCache.isVoicemailNumber(details.accountHandle, details.number)) {
+ && !mCallLogCache.isVoicemailNumber(details.accountHandle, details.number)) {
- if (TextUtils.isEmpty(details.name) && !TextUtils.isEmpty(details.geocode)) {
+ if (TextUtils.isEmpty(details.namePrimary) && !TextUtils.isEmpty(details.geocode)) {
numberFormattedLabel = details.geocode;
} else if (!(details.numberType == Phone.TYPE_CUSTOM
&& TextUtils.isEmpty(details.numberLabel))) {
// Get type label only if it will not be "Custom" because of an empty number label.
- numberFormattedLabel = Phone.getTypeLabel(
- mResources, details.numberType, details.numberLabel);
+ numberFormattedLabel = MoreObjects.firstNonNull(mPhoneTypeLabelForTest,
+ Phone.getTypeLabel(mResources, details.numberType, details.numberLabel));
}
}
- if (!TextUtils.isEmpty(details.name) && TextUtils.isEmpty(numberFormattedLabel)) {
+ if (!TextUtils.isEmpty(details.namePrimary) && TextUtils.isEmpty(numberFormattedLabel)) {
numberFormattedLabel = details.displayNumber;
}
return numberFormattedLabel;
}
+ @NeededForTesting
+ public void setPhoneTypeLabelForTest(CharSequence phoneTypeLabel) {
+ this.mPhoneTypeLabelForTest = phoneTypeLabel;
+ }
+
/**
- * Get the call date/time of the call, relative to the current time.
- * e.g. 3 minutes ago
+ * Get the call date/time of the call. For the call log this is relative to the current time.
+ * e.g. 3 minutes ago. For voicemail, see {@link #getGranularDateTime(PhoneCallDetails)}
+ *
* @param details Call details to use.
* @return String representing when the call occurred.
*/
public CharSequence getCallDate(PhoneCallDetails details) {
- return DateUtils.getRelativeTimeSpanString(details.date,
- getCurrentTimeMillis(),
- DateUtils.MINUTE_IN_MILLIS,
- DateUtils.FORMAT_ABBREV_RELATIVE);
+ if (details.callTypes[0] == Calls.VOICEMAIL_TYPE) {
+ return getGranularDateTime(details);
+ }
+
+ return DateUtils.getRelativeTimeSpanString(details.date, getCurrentTimeMillis(),
+ DateUtils.MINUTE_IN_MILLIS, DateUtils.FORMAT_ABBREV_RELATIVE);
+ }
+
+ /**
+ * Get the granular version of the call date/time of the call. The result is always in the form
+ * 'DATE at TIME'. The date value changes based on when the call was created.
+ *
+ * If created today, DATE is 'Today'
+ * If created this year, DATE is 'MMM dd'
+ * Otherwise, DATE is 'MMM dd, yyyy'
+ *
+ * TIME is the localized time format, e.g. 'hh:mm a' or 'HH:mm'
+ *
+ * @param details Call details to use
+ * @return String representing when the call occurred
+ */
+ public CharSequence getGranularDateTime(PhoneCallDetails details) {
+ return mResources.getString(R.string.voicemailCallLogDateTimeFormat,
+ getGranularDate(details.date),
+ DateUtils.formatDateTime(mContext, details.date, DateUtils.FORMAT_SHOW_TIME));
+ }
+
+ /**
+ * Get the granular version of the call date. See {@link #getGranularDateTime(PhoneCallDetails)}
+ */
+ private String getGranularDate(long date) {
+ if (DateUtils.isToday(date)) {
+ return mResources.getString(R.string.voicemailCallLogToday);
+ }
+ return DateUtils.formatDateTime(mContext, date, DateUtils.FORMAT_SHOW_DATE
+ | DateUtils.FORMAT_ABBREV_MONTH
+ | (shouldShowYear(date) ? DateUtils.FORMAT_SHOW_YEAR : DateUtils.FORMAT_NO_YEAR));
+ }
+
+ /**
+ * Determines whether the year should be shown for the given date
+ *
+ * @return {@code true} if date is within the current year, {@code false} otherwise
+ */
+ private boolean shouldShowYear(long date) {
+ mCalendar.setTimeInMillis(getCurrentTimeMillis());
+ int currentYear = mCalendar.get(Calendar.YEAR);
+ mCalendar.setTimeInMillis(date);
+ return currentYear != mCalendar.get(Calendar.YEAR);
}
/** Sets the text of the header view for the details page of a phone call. */
@NeededForTesting
public void setCallDetailsHeader(TextView nameView, PhoneCallDetails details) {
final CharSequence nameText;
- if (!TextUtils.isEmpty(details.name)) {
- nameText = details.name;
+ if (!TextUtils.isEmpty(details.namePrimary)) {
+ nameText = details.namePrimary;
} else if (!TextUtils.isEmpty(details.displayNumber)) {
nameText = details.displayNumber;
} else {
diff --git a/src/com/android/dialer/calllog/PhoneNumberDisplayUtil.java b/src/com/android/dialer/calllog/PhoneNumberDisplayUtil.java
index 5030efd48..09b42e9f6 100644
--- a/src/com/android/dialer/calllog/PhoneNumberDisplayUtil.java
+++ b/src/com/android/dialer/calllog/PhoneNumberDisplayUtil.java
@@ -17,10 +17,9 @@
package com.android.dialer.calllog;
import android.content.Context;
-import android.content.res.Resources;
+import android.os.Build;
import android.provider.CallLog.Calls;
import android.text.TextUtils;
-import android.util.Log;
import com.android.dialer.R;
import com.android.dialer.util.PhoneNumberUtil;
@@ -67,6 +66,7 @@ public class PhoneNumberDisplayUtil {
CharSequence number,
int presentation,
CharSequence formattedNumber,
+ CharSequence postDialDigits,
boolean isVoicemail) {
final CharSequence displayName = getDisplayName(context, number, presentation, isVoicemail);
if (!TextUtils.isEmpty(displayName)) {
@@ -76,9 +76,18 @@ public class PhoneNumberDisplayUtil {
if (!TextUtils.isEmpty(formattedNumber)) {
return formattedNumber;
} else if (!TextUtils.isEmpty(number)) {
- return number;
+ return number.toString() + postDialDigits;
} else {
- return "";
+ return context.getResources().getString(R.string.unknown);
}
}
+
+ /**
+ * Returns whether we can expect the post-dial digits to be in the call log.
+ *
+ * These digits will be present in versions N+.
+ */
+ public static boolean canShowPostDial() {
+ return Build.VERSION.SDK_INT > Build.VERSION_CODES.M;
+ }
}
diff --git a/src/com/android/dialer/calllog/PhoneQuery.java b/src/com/android/dialer/calllog/PhoneQuery.java
index 719052204..200b5e1f4 100644
--- a/src/com/android/dialer/calllog/PhoneQuery.java
+++ b/src/com/android/dialer/calllog/PhoneQuery.java
@@ -16,13 +16,19 @@
package com.android.dialer.calllog;
+import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.PhoneLookup;
/**
- * The query to look up the {@link ContactInfo} for a given number in the Call Log.
+ * The queries to look up the {@link ContactInfo} for a given number in the Call Log.
*/
final class PhoneQuery {
- public static final String[] _PROJECTION = new String[] {
+
+ /**
+ * Projection to look up the ContactInfo. Does not include DISPLAY_NAME_ALTERNATIVE as that
+ * column isn't available in ContactsCommon.PhoneLookup
+ */
+ public static final String[] PHONE_LOOKUP_PROJECTION = new String[] {
PhoneLookup._ID,
PhoneLookup.DISPLAY_NAME,
PhoneLookup.TYPE,
@@ -42,4 +48,13 @@ final class PhoneQuery {
public static final int PHOTO_ID = 6;
public static final int LOOKUP_KEY = 7;
public static final int PHOTO_URI = 8;
+
+ /**
+ * Projection to look up a contact's DISPLAY_NAME_ALTERNATIVE
+ */
+ public static final String[] DISPLAY_NAME_ALTERNATIVE_PROJECTION = new String[] {
+ Contacts.DISPLAY_NAME_ALTERNATIVE,
+ };
+
+ public static final int NAME_ALTERNATIVE = 0;
}
diff --git a/src/com/android/dialer/calllog/PromoCardViewHolder.java b/src/com/android/dialer/calllog/PromoCardViewHolder.java
index 4c9602759..f5a7501fc 100644
--- a/src/com/android/dialer/calllog/PromoCardViewHolder.java
+++ b/src/com/android/dialer/calllog/PromoCardViewHolder.java
@@ -15,14 +15,17 @@
*/
package com.android.dialer.calllog;
-import com.android.dialer.R;
-
+import android.content.Context;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.View;
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.dialer.R;
+
/**
- * View holder class for a promo card which will appear in the voicemail tab.
+ * Generic ViewHolder class for a promo card with a primary and secondary action.
+ * Example: the promo card which appears in the voicemail tab.
*/
public class PromoCardViewHolder extends RecyclerView.ViewHolder {
public static PromoCardViewHolder create(View rootView) {
@@ -30,14 +33,15 @@ public class PromoCardViewHolder extends RecyclerView.ViewHolder {
}
/**
- * The "Settings" button view.
+ * The primary action button view.
*/
- private View mSettingsTextView;
+ private View mPrimaryActionView;
/**
+ * The secondary action button view.
* The "Ok" button view.
*/
- private View mOkTextView;
+ private View mSecondaryActionView;
/**
* Creates an instance of the {@link ViewHolder}.
@@ -47,25 +51,33 @@ public class PromoCardViewHolder extends RecyclerView.ViewHolder {
private PromoCardViewHolder(View rootView) {
super(rootView);
- mSettingsTextView = rootView.findViewById(R.id.settings_action);
- mOkTextView = rootView.findViewById(R.id.ok_action);
+ mPrimaryActionView = rootView.findViewById(R.id.primary_action);
+ mSecondaryActionView = rootView.findViewById(R.id.secondary_action);
}
- /**
- * Retrieves the "Settings" button.
+ /**
+ * Retrieves the "primary" action button (eg. "OK").
*
* @return The view.
*/
- public View getSettingsTextView() {
- return mSettingsTextView;
+ public View getPrimaryActionView() {
+ return mPrimaryActionView;
}
/**
- * Retrieves the "Ok" button.
+ * Retrieves the "secondary" action button (eg. "Cancel" or "More Info").
*
* @return The view.
*/
- public View getOkTextView() {
- return mOkTextView;
+ public View getSecondaryActionView() {
+ return mSecondaryActionView;
+ }
+
+ @NeededForTesting
+ public static PromoCardViewHolder createForTest(Context context) {
+ PromoCardViewHolder viewHolder = new PromoCardViewHolder(new View(context));
+ viewHolder.mPrimaryActionView = new View(context);
+ viewHolder.mSecondaryActionView = new View(context);
+ return viewHolder;
}
}
diff --git a/src/com/android/dialer/calllog/ShowCallHistoryViewHolder.java b/src/com/android/dialer/calllog/ShowCallHistoryViewHolder.java
deleted file mode 100644
index af36a4d33..000000000
--- a/src/com/android/dialer/calllog/ShowCallHistoryViewHolder.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.calllog;
-
-import android.content.Context;
-import android.content.Intent;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import com.android.dialer.R;
-
-public final class ShowCallHistoryViewHolder extends RecyclerView.ViewHolder {
-
- private ShowCallHistoryViewHolder(final Context context, View view) {
- super(view);
- view.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- final Intent intent = new Intent(context, CallLogActivity.class);
- context.startActivity(intent);
- }
- });
- }
-
- public static ShowCallHistoryViewHolder create(Context context, ViewGroup parent) {
- LayoutInflater inflater = LayoutInflater.from(context);
- View view = inflater.inflate(R.layout.show_call_history_list_item, parent, false);
- return new ShowCallHistoryViewHolder(context, view);
- }
-}
diff --git a/src/com/android/dialer/calllog/VisualVoicemailCallLogFragment.java b/src/com/android/dialer/calllog/VisualVoicemailCallLogFragment.java
new file mode 100644
index 000000000..311ff7dc5
--- /dev/null
+++ b/src/com/android/dialer/calllog/VisualVoicemailCallLogFragment.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.calllog;
+
+import android.database.ContentObserver;
+import android.os.Bundle;
+import android.provider.CallLog;
+import android.provider.VoicemailContract;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.dialer.R;
+import com.android.dialer.list.ListsFragment;
+import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
+
+public class VisualVoicemailCallLogFragment extends CallLogFragment {
+
+ private VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
+ private final ContentObserver mVoicemailStatusObserver = new CustomContentObserver();
+
+ public VisualVoicemailCallLogFragment() {
+ 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
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) {
+ View view = inflater.inflate(R.layout.call_log_fragment, container, false);
+ setupView(view, mVoicemailPlaybackPresenter);
+ return view;
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mVoicemailPlaybackPresenter.onResume();
+ }
+
+ @Override
+ public void onPause() {
+ mVoicemailPlaybackPresenter.onPause();
+ super.onPause();
+ }
+
+ @Override
+ public void onDestroy() {
+ mVoicemailPlaybackPresenter.onDestroy();
+ getActivity().getContentResolver().unregisterContentObserver(mVoicemailStatusObserver);
+ super.onDestroy();
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ mVoicemailPlaybackPresenter.onSaveInstanceState(outState);
+ }
+
+ @Override
+ public void fetchCalls() {
+ super.fetchCalls();
+ ((ListsFragment) getParentFragment()).updateTabUnreadCounts();
+ }
+}
diff --git a/src/com/android/dialer/calllog/VoicemailQueryHandler.java b/src/com/android/dialer/calllog/VoicemailQueryHandler.java
index 26f9bd172..c6e644c32 100644
--- a/src/com/android/dialer/calllog/VoicemailQueryHandler.java
+++ b/src/com/android/dialer/calllog/VoicemailQueryHandler.java
@@ -59,7 +59,8 @@ public class VoicemailQueryHandler extends AsyncQueryHandler {
if (token == UPDATE_MARK_VOICEMAILS_AS_OLD_TOKEN) {
if (mContext != null) {
Intent serviceIntent = new Intent(mContext, CallLogNotificationsService.class);
- serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_NOTIFICATIONS);
+ serviceIntent.setAction(
+ CallLogNotificationsService.ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS);
mContext.startService(serviceIntent);
} else {
Log.w(TAG, "Unknown update completed: ignoring: " + token);
diff --git a/src/com/android/dialer/calllog/calllogcache/CallLogCache.java b/src/com/android/dialer/calllog/calllogcache/CallLogCache.java
new file mode 100644
index 000000000..dc1217cf5
--- /dev/null
+++ b/src/com/android/dialer/calllog/calllogcache/CallLogCache.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.calllogcache;
+
+import android.content.Context;
+import android.telecom.PhoneAccountHandle;
+
+import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.dialer.calllog.CallLogAdapter;
+
+/**
+ * This is the base class for the CallLogCaches.
+ *
+ * Keeps a cache of recently made queries to the Telecom/Telephony processes. The aim of this cache
+ * is to reduce the number of cross-process requests to TelecomManager, which can negatively affect
+ * performance.
+ *
+ * This is designed with the specific use case of the {@link CallLogAdapter} in mind.
+ */
+public abstract class CallLogCache {
+ // TODO: Dialer should be fixed so as not to check isVoicemail() so often but at the time of
+ // this writing, that was a much larger undertaking than creating this cache.
+
+ protected final Context mContext;
+
+ private boolean mHasCheckedForVideoEnabled;
+ private boolean mIsVideoEnabled;
+
+ public CallLogCache(Context context) {
+ mContext = context;
+ }
+
+ /**
+ * Return the most compatible version of the TelecomCallLogCache.
+ */
+ public static CallLogCache getCallLogCache(Context context) {
+ if (CompatUtils.isClassAvailable("android.telecom.PhoneAccountHandle")) {
+ return new CallLogCacheLollipopMr1(context);
+ }
+ return new CallLogCacheLollipop(context);
+ }
+
+ public void reset() {
+ mHasCheckedForVideoEnabled = false;
+ mIsVideoEnabled = false;
+ }
+
+ /**
+ * Returns true if the given number is the number of the configured voicemail. To be able to
+ * mock-out this, it is not a static method.
+ */
+ public abstract boolean isVoicemailNumber(PhoneAccountHandle accountHandle,
+ CharSequence number);
+
+ public boolean isVideoEnabled() {
+ if (!mHasCheckedForVideoEnabled) {
+ mIsVideoEnabled = CallUtil.isVideoEnabled(mContext);
+ mHasCheckedForVideoEnabled = true;
+ }
+ return mIsVideoEnabled;
+ }
+
+ /**
+ * Extract account label from PhoneAccount object.
+ */
+ public abstract String getAccountLabel(PhoneAccountHandle accountHandle);
+
+ /**
+ * Extract account color from PhoneAccount object.
+ */
+ public abstract int getAccountColor(PhoneAccountHandle accountHandle);
+
+ /**
+ * Determines if the PhoneAccount supports specifying a call subject (i.e. calling with a note)
+ * for outgoing calls.
+ *
+ * @param accountHandle The PhoneAccount handle.
+ * @return {@code true} if calling with a note is supported, {@code false} otherwise.
+ */
+ public abstract boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle);
+}
diff --git a/src/com/android/dialer/calllog/calllogcache/CallLogCacheLollipop.java b/src/com/android/dialer/calllog/calllogcache/CallLogCacheLollipop.java
new file mode 100644
index 000000000..770cc9d3e
--- /dev/null
+++ b/src/com/android/dialer/calllog/calllogcache/CallLogCacheLollipop.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.calllog.calllogcache;
+
+import android.content.Context;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+
+/**
+ * This is a compatibility class for the CallLogCache for versions of dialer before Lollipop Mr1
+ * (the introduction of phone accounts).
+ *
+ * This class should not be initialized directly and instead be acquired from
+ * {@link CallLogCache#getCallLogCache}.
+ */
+class CallLogCacheLollipop extends CallLogCache {
+ private String mVoicemailNumber;
+
+ /* package */ CallLogCacheLollipop(Context context) {
+ super(context);
+ }
+
+ @Override
+ public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) {
+ if (TextUtils.isEmpty(number)) {
+ return false;
+ }
+
+ String numberString = number.toString();
+
+ if (!TextUtils.isEmpty(mVoicemailNumber)) {
+ return PhoneNumberUtils.compare(numberString, mVoicemailNumber);
+ }
+
+ if (PhoneNumberUtils.isVoiceMailNumber(numberString)) {
+ mVoicemailNumber = numberString;
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public String getAccountLabel(PhoneAccountHandle accountHandle) {
+ return null;
+ }
+
+ @Override
+ public int getAccountColor(PhoneAccountHandle accountHandle) {
+ return PhoneAccount.NO_HIGHLIGHT_COLOR;
+ }
+
+ @Override
+ public boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle) {
+ return false;
+ }
+}
diff --git a/src/com/android/dialer/calllog/TelecomCallLogCache.java b/src/com/android/dialer/calllog/calllogcache/CallLogCacheLollipopMr1.java
index 7071669e5..d1e3f7bcf 100644
--- a/src/com/android/dialer/calllog/TelecomCallLogCache.java
+++ b/src/com/android/dialer/calllog/calllogcache/CallLogCacheLollipopMr1.java
@@ -14,67 +14,50 @@
* limitations under the License
*/
-package com.android.dialer.calllog;
+package com.android.dialer.calllog.calllogcache;
import android.content.Context;
-import android.provider.CallLog;
-import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
import android.text.TextUtils;
-import android.util.Log;
import android.util.Pair;
-import com.android.contacts.common.CallUtil;
-import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.dialer.calllog.PhoneAccountUtils;
import com.android.dialer.util.PhoneNumberUtil;
-import com.google.common.collect.Sets;
import java.util.HashMap;
import java.util.Map;
-import java.util.Set;
/**
- * Keeps a cache of recently made queries to the Telecom process. The aim of this cache is to
- * reduce the number of cross-process requests to TelecomManager, which can negatively affect
- * performance.
+ * This is the CallLogCache for versions of dialer Lollipop Mr1 and above with support for
+ * multi-SIM devices.
*
- * This is designed with the specific use case of the {@link CallLogAdapter} in mind.
+ * This class should not be initialized directly and instead be acquired from
+ * {@link CallLogCache#getCallLogCache}.
*/
-public class TelecomCallLogCache {
- private final Context mContext;
-
+class CallLogCacheLollipopMr1 extends CallLogCache {
// Maps from a phone-account/number pair to a boolean because multiple numbers could return true
// for the voicemail number if those numbers are not pre-normalized.
- // TODO: Dialer should be fixed so as not to check isVoicemail() so often but at the time of
- // this writing, that was a much larger undertaking than creating this cache.
private final Map<Pair<PhoneAccountHandle, CharSequence>, Boolean> mVoicemailQueryCache =
new HashMap<>();
private final Map<PhoneAccountHandle, String> mPhoneAccountLabelCache = new HashMap<>();
private final Map<PhoneAccountHandle, Integer> mPhoneAccountColorCache = new HashMap<>();
private final Map<PhoneAccountHandle, Boolean> mPhoneAccountCallWithNoteCache = new HashMap<>();
- private boolean mHasCheckedForVideoEnabled;
- private boolean mIsVideoEnabled;
-
- public TelecomCallLogCache(Context context) {
- mContext = context;
+ /* package */ CallLogCacheLollipopMr1(Context context) {
+ super(context);
}
+ @Override
public void reset() {
mVoicemailQueryCache.clear();
mPhoneAccountLabelCache.clear();
mPhoneAccountColorCache.clear();
mPhoneAccountCallWithNoteCache.clear();
- mHasCheckedForVideoEnabled = false;
- mIsVideoEnabled = false;
+ super.reset();
}
- /**
- * Returns true if the given number is the number of the configured voicemail. To be able to
- * mock-out this, it is not a static method.
- */
+ @Override
public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) {
if (TextUtils.isEmpty(number)) {
return false;
@@ -91,9 +74,7 @@ public class TelecomCallLogCache {
}
}
- /**
- * Extract account label from PhoneAccount object.
- */
+ @Override
public String getAccountLabel(PhoneAccountHandle accountHandle) {
if (mPhoneAccountLabelCache.containsKey(accountHandle)) {
return mPhoneAccountLabelCache.get(accountHandle);
@@ -104,9 +85,7 @@ public class TelecomCallLogCache {
}
}
- /**
- * Extract account color from PhoneAccount object.
- */
+ @Override
public int getAccountColor(PhoneAccountHandle accountHandle) {
if (mPhoneAccountColorCache.containsKey(accountHandle)) {
return mPhoneAccountColorCache.get(accountHandle);
@@ -117,20 +96,7 @@ public class TelecomCallLogCache {
}
}
- public boolean isVideoEnabled() {
- if (!mHasCheckedForVideoEnabled) {
- mIsVideoEnabled = CallUtil.isVideoEnabled(mContext);
- }
- return mIsVideoEnabled;
- }
-
- /**
- * Determines if the PhoneAccount supports specifying a call subject (i.e. calling with a note)
- * for outgoing calls.
- *
- * @param accountHandle The PhoneAccount handle.
- * @return {@code true} if calling with a note is supported, {@code false} otherwise.
- */
+ @Override
public boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle) {
if (mPhoneAccountCallWithNoteCache.containsKey(accountHandle)) {
return mPhoneAccountCallWithNoteCache.get(accountHandle);
diff --git a/src/com/android/dialer/compat/CallAudioStateCompat.java b/src/com/android/dialer/compat/CallAudioStateCompat.java
new file mode 100644
index 000000000..51009d042
--- /dev/null
+++ b/src/com/android/dialer/compat/CallAudioStateCompat.java
@@ -0,0 +1,331 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.compat;
+
+import android.os.Build;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.telecom.CallAudioState;
+
+import com.android.contacts.common.compat.SdkVersionOverride;
+
+import java.util.Locale;
+
+/**
+ * Compatibility class for {@link CallAudioState}
+ */
+public class CallAudioStateCompat {
+
+ /**
+ * Direct the audio stream through the device's earpiece.
+ */
+ public static final int ROUTE_EARPIECE = CallAudioState.ROUTE_EARPIECE;
+
+ /**
+ * Direct the audio stream through Bluetooth.
+ */
+ public static final int ROUTE_BLUETOOTH = CallAudioState.ROUTE_BLUETOOTH;
+
+ /**
+ * Direct the audio stream through a wired headset.
+ */
+ public static final int ROUTE_WIRED_HEADSET = CallAudioState.ROUTE_WIRED_HEADSET;
+
+ /**
+ * Direct the audio stream through the device's speakerphone.
+ */
+ public static final int ROUTE_SPEAKER = CallAudioState.ROUTE_SPEAKER;
+
+ /**
+ * Direct the audio stream through the device's earpiece or wired headset if one is connected.
+ */
+ public static final int ROUTE_WIRED_OR_EARPIECE = CallAudioState.ROUTE_WIRED_OR_EARPIECE;
+
+ private final CallAudioStateImpl mCallAudioState;
+
+ /**
+ * Constructor for a {@link CallAudioStateCompat} object.
+ *
+ * @param muted {@code true} if the call is muted, {@code false} otherwise.
+ * @param route The current audio route being used. Allowed values: {@link #ROUTE_EARPIECE}
+ * {@link #ROUTE_BLUETOOTH} {@link #ROUTE_WIRED_HEADSET} {@link #ROUTE_SPEAKER}
+ * @param supportedRouteMask Bit mask of all routes supported by this call. This should be a
+ * bitwise combination of the following values: {@link #ROUTE_EARPIECE} {@link #ROUTE_BLUETOOTH}
+ * {@link #ROUTE_WIRED_HEADSET} {@link #ROUTE_SPEAKER}
+ */
+ public CallAudioStateCompat(boolean muted, int route, int supportedRouteMask) {
+ if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
+ < Build.VERSION_CODES.M) {
+ mCallAudioState = new CallAudioStateBase(muted, route, supportedRouteMask);
+ } else {
+ mCallAudioState = new CallAudioStateMarshmallow(muted, route, supportedRouteMask);
+ }
+ }
+
+ /**
+ * @return {@code true} if the call is muted, {@code false} otherwise.
+ */
+ public boolean isMuted() {
+ return mCallAudioState.isMuted();
+ }
+
+ /**
+ * @return The current audio route being used.
+ */
+ public int getRoute() {
+ return mCallAudioState.getRoute();
+ }
+
+ /**
+ * @return Bit mask of all routes supported by this call.
+ */
+ public int getSupportedRouteMask() {
+ return mCallAudioState.getSupportedRouteMask();
+ }
+
+ /**
+ * Converts the provided audio route into a human readable string representation.
+ *
+ * @param route to convert into a string.
+ * @return String representation of the provided audio route.
+ */
+ public static String audioRouteToString(int route) {
+ if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M)
+ < Build.VERSION_CODES.M) {
+ return CallAudioStateBase.audioRouteToString(route);
+ }
+ return CallAudioStateMarshmallow.audioRouteToString(route);
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ CallAudioStateCompat that = (CallAudioStateCompat) o;
+
+ return mCallAudioState.equals(that.mCallAudioState);
+
+ }
+
+ @Override
+ public int hashCode() {
+ return mCallAudioState.hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return mCallAudioState.toString();
+ }
+
+ private interface CallAudioStateImpl {
+ boolean isMuted();
+ int getRoute();
+ int getSupportedRouteMask();
+ }
+
+ /**
+ * CallAudioStateImpl to use if the Sdk version is lower than
+ * {@link android.os.Build.VERSION_CODES.M}
+ *
+ * Coped from {@link android.telecom.CallAudioState}
+ *
+ * Encapsulates the telecom audio state, including the current audio routing, supported audio
+ * routing and mute.
+ */
+ private static class CallAudioStateBase implements CallAudioStateImpl, Parcelable {
+
+ /**
+ * Bit mask of all possible audio routes.
+ */
+ private static final int ROUTE_ALL = ROUTE_EARPIECE | ROUTE_BLUETOOTH | ROUTE_WIRED_HEADSET
+ | ROUTE_SPEAKER;
+
+ private final boolean isMuted;
+ private final int route;
+ private final int supportedRouteMask;
+
+ /**
+ * Constructor for a {@link CallAudioStateBase} object.
+ *
+ * @param muted {@code true} if the call is muted, {@code false} otherwise.
+ * @param route The current audio route being used. Allowed values: {@link #ROUTE_EARPIECE}
+ * {@link #ROUTE_BLUETOOTH}, {@link #ROUTE_WIRED_HEADSET}, {@link #ROUTE_SPEAKER}
+ * @param supportedRouteMask Bit mask of all routes supported by this call. This should be a
+ * bitwise combination of the following values: {@link #ROUTE_EARPIECE},
+ * {@link #ROUTE_BLUETOOTH}, {@link #ROUTE_WIRED_HEADSET}, {@link #ROUTE_SPEAKER}
+ */
+ public CallAudioStateBase(boolean muted, int route, int supportedRouteMask) {
+ this.isMuted = muted;
+ this.route = route;
+ this.supportedRouteMask = supportedRouteMask;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (!(obj instanceof CallAudioStateBase)) {
+ return false;
+ }
+ CallAudioStateBase state = (CallAudioStateBase) obj;
+ return isMuted() == state.isMuted() && getRoute() == state.getRoute() &&
+ getSupportedRouteMask() == state.getSupportedRouteMask();
+ }
+
+ @Override
+ public String toString() {
+ return String.format(Locale.US,
+ "[AudioState isMuted: %b, route: %s, supportedRouteMask: %s]",
+ isMuted,
+ audioRouteToString(route),
+ audioRouteToString(supportedRouteMask));
+ }
+
+ /**
+ * @return {@code true} if the call is muted, {@code false} otherwise.
+ */
+ @Override
+ public boolean isMuted() {
+ return isMuted;
+ }
+
+ /**
+ * @return The current audio route being used.
+ */
+ public int getRoute() {
+ return route;
+ }
+
+ /**
+ * @return Bit mask of all routes supported by this call.
+ */
+ public int getSupportedRouteMask() {
+ return supportedRouteMask;
+ }
+
+ /**
+ * Converts the provided audio route into a human readable string representation.
+ *
+ * @param route to convert into a string.
+ * @return String representation of the provided audio route.
+ */
+ public static String audioRouteToString(int route) {
+ if (route == 0 || (route & ~ROUTE_ALL) != 0x0) {
+ return "UNKNOWN";
+ }
+
+ StringBuffer buffer = new StringBuffer();
+ if ((route & ROUTE_EARPIECE) == ROUTE_EARPIECE) {
+ listAppend(buffer, "EARPIECE");
+ }
+ if ((route & ROUTE_BLUETOOTH) == ROUTE_BLUETOOTH) {
+ listAppend(buffer, "BLUETOOTH");
+ }
+ if ((route & ROUTE_WIRED_HEADSET) == ROUTE_WIRED_HEADSET) {
+ listAppend(buffer, "WIRED_HEADSET");
+ }
+ if ((route & ROUTE_SPEAKER) == ROUTE_SPEAKER) {
+ listAppend(buffer, "SPEAKER");
+ }
+
+ return buffer.toString();
+ }
+
+ /**
+ * Responsible for creating AudioState objects for deserialized Parcels.
+ */
+ public static final Parcelable.Creator<CallAudioStateBase> CREATOR =
+ new Parcelable.Creator<CallAudioStateBase>() {
+
+ @Override
+ public CallAudioStateBase createFromParcel(Parcel source) {
+ boolean isMuted = source.readByte() == 0 ? false : true;
+ int route = source.readInt();
+ int supportedRouteMask = source.readInt();
+ return new CallAudioStateBase(isMuted, route, supportedRouteMask);
+ }
+
+ @Override
+ public CallAudioStateBase[] newArray(int size) {
+ return new CallAudioStateBase[size];
+ }
+ };
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ /**
+ * Writes AudioState object into a serializeable Parcel.
+ */
+ @Override
+ public void writeToParcel(Parcel destination, int flags) {
+ destination.writeByte((byte) (isMuted ? 1 : 0));
+ destination.writeInt(route);
+ destination.writeInt(supportedRouteMask);
+ }
+
+ private static void listAppend(StringBuffer buffer, String str) {
+ if (buffer.length() > 0) {
+ buffer.append(", ");
+ }
+ buffer.append(str);
+ }
+ }
+
+ /**
+ * CallAudioStateImpl to use if the Sdk version is at least
+ * {@link android.os.Build.VERSION_CODES.M}
+ */
+ private static class CallAudioStateMarshmallow implements CallAudioStateImpl {
+
+ private final CallAudioState mCallAudioStateDelegate;
+
+ public CallAudioStateMarshmallow(boolean muted, int route, int supportedRouteMask) {
+ mCallAudioStateDelegate = new CallAudioState(muted, route, supportedRouteMask);
+ }
+
+ @Override
+ public boolean isMuted() {
+ return mCallAudioStateDelegate.isMuted();
+ }
+
+ @Override
+ public int getRoute() {
+ return mCallAudioStateDelegate.getRoute();
+ }
+
+ @Override
+ public int getSupportedRouteMask() {
+ return mCallAudioStateDelegate.getSupportedRouteMask();
+ }
+
+ public static String audioRouteToString(int route) {
+ return CallAudioState.audioRouteToString(route);
+ }
+ }
+}
diff --git a/src/com/android/dialer/compat/DialerCompatUtils.java b/src/com/android/dialer/compat/DialerCompatUtils.java
new file mode 100644
index 000000000..a9c9c5319
--- /dev/null
+++ b/src/com/android/dialer/compat/DialerCompatUtils.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.compat;
+
+import com.android.contacts.common.compat.CompatUtils;
+
+public final class DialerCompatUtils {
+ /**
+ * Determines if this version has access to the
+ * {@link android.provider.CallLog.Calls.CACHED_PHOTO_URI} column
+ *
+ * @return {@code true} if {@link android.provider.CallLog.Calls.CACHED_PHOTO_URI} is available,
+ * {@code false} otherwise
+ */
+ public static boolean isCallsCachedPhotoUriCompatible() {
+ return CompatUtils.isMarshmallowCompatible();
+ }
+} \ No newline at end of file
diff --git a/src/com/android/dialer/compat/SettingsCompat.java b/src/com/android/dialer/compat/SettingsCompat.java
new file mode 100644
index 000000000..474a600a4
--- /dev/null
+++ b/src/com/android/dialer/compat/SettingsCompat.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.compat;
+
+import android.content.Context;
+import android.os.Build;
+import android.os.Build.VERSION_CODES;
+import android.provider.Settings;
+
+import com.android.contacts.common.compat.SdkVersionOverride;
+
+/**
+ * Compatibility class for {@link android.provider.Settings}
+ */
+public class SettingsCompat {
+
+ public static class System {
+
+ /**
+ * Compatibility version of {@link android.provider.Settings.System#canWrite(Context)}
+ *
+ * Note: Since checking preferences at runtime started in M, this method always returns
+ * {@code true} for SDK versions prior to 23. In those versions, the app wouldn't be
+ * installed if it didn't have the proper permission
+ */
+ public static boolean canWrite(Context context) {
+ if (SdkVersionOverride.getSdkVersion(VERSION_CODES.LOLLIPOP) >= Build.VERSION_CODES.M) {
+ return Settings.System.canWrite(context);
+ }
+ return true;
+ }
+ }
+
+}
diff --git a/src/com/android/dialer/compat/UserManagerCompat.java b/src/com/android/dialer/compat/UserManagerCompat.java
new file mode 100644
index 000000000..576703364
--- /dev/null
+++ b/src/com/android/dialer/compat/UserManagerCompat.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.compat;
+
+import android.content.Context;
+import android.os.Process;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import com.android.contacts.common.compat.CompatUtils;
+
+/**
+ * Compatibility class for {@link UserManager}.
+ */
+public class UserManagerCompat {
+ /**
+ * A user id constant to indicate the "system" user of the device. Copied from
+ * {@link UserHandle}.
+ */
+ private static final int USER_SYSTEM = 0;
+ /**
+ * Range of uids allocated for a user.
+ */
+ private static final int PER_USER_RANGE = 100000;
+
+ /**
+ * Used to check if this process is running under the system user. The system user is the
+ * initial user that is implicitly created on first boot and hosts most of the system services.
+ *
+ * @return whether this process is running under the system user.
+ */
+ public static boolean isSystemUser(UserManager userManager) {
+ if (CompatUtils.isMarshmallowCompatible()) {
+ return userManager.isSystemUser();
+ }
+ // Adapted from {@link UserManager} and {@link UserHandle}.
+ return (Process.myUid() / PER_USER_RANGE) == USER_SYSTEM;
+ }
+
+ /**
+ * Return whether the calling user is running in an "unlocked" state. A user
+ * is unlocked only after they've entered their credentials (such as a lock
+ * pattern or PIN), and credential-encrypted private app data storage is
+ * available.
+ *
+ * TODO b/26688153
+ *
+ * @param context the current context
+ * @return {@code true} if the user is unlocked, {@code false} otherwise
+ * @throws NullPointerException if context is null
+ */
+ public static boolean isUserUnlocked(Context context) {
+ if (CompatUtils.isNCompatible()) {
+ return UserManagerSdkCompat.isUserUnlocked(context);
+ }
+ return true;
+ }
+}
diff --git a/src/com/android/dialer/contactinfo/ContactInfoCache.java b/src/com/android/dialer/contactinfo/ContactInfoCache.java
index 568f48886..1e2457957 100644
--- a/src/com/android/dialer/contactinfo/ContactInfoCache.java
+++ b/src/com/android/dialer/contactinfo/ContactInfoCache.java
@@ -162,7 +162,7 @@ public class ContactInfoCache {
// The contact info is no longer up to date, we should request it. However, we
// do not need to request them immediately.
enqueueRequest(number, countryIso, cachedContactInfo, false);
- } else if (!callLogInfoMatches(cachedContactInfo, info)) {
+ } else if (!callLogInfoMatches(cachedContactInfo, info)) {
// The call log information does not match the one we have, look it up again.
// We could simply update the call log directly, but that needs to be done in a
// background thread, so it is easier to simply request a new lookup, which will, as
@@ -309,8 +309,7 @@ public class ContactInfoCache {
* Checks whether the contact info from the call log matches the one from the contacts db.
*/
private boolean callLogInfoMatches(ContactInfo callLogInfo, ContactInfo info) {
- // The call log only contains a subset of the fields in the contacts db.
- // Only check those.
+ // The call log only contains a subset of the fields in the contacts db. Only check those.
return TextUtils.equals(callLogInfo.name, info.name)
&& callLogInfo.type == info.type
&& TextUtils.equals(callLogInfo.label, info.label);
diff --git a/src/com/android/dialer/database/DialerDatabaseHelper.java b/src/com/android/dialer/database/DialerDatabaseHelper.java
index eec24f5bc..1f926c140 100644
--- a/src/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/src/com/android/dialer/database/DialerDatabaseHelper.java
@@ -38,6 +38,7 @@ import android.util.Log;
import com.android.contacts.common.util.PermissionsUtil;
import com.android.contacts.common.util.StopWatch;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
import com.android.dialer.R;
import com.android.dialer.dialpad.SmartDialNameMatcher;
import com.android.dialer.dialpad.SmartDialPrefix;
@@ -60,6 +61,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class DialerDatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = "DialerDatabaseHelper";
private static final boolean DEBUG = false;
+ private boolean mIsTestInstance = false;
private static DialerDatabaseHelper sSingleton = null;
@@ -73,7 +75,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
* 0-98 KitKat
* </pre>
*/
- public static final int DATABASE_VERSION = 4;
+ public static final int DATABASE_VERSION = 8;
public static final String DATABASE_NAME = "dialer.db";
/**
@@ -86,6 +88,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
private static final int MAX_ENTRIES = 20;
public interface Tables {
+ /** Saves a list of numbers to be blocked.*/
+ static final String FILTERED_NUMBER_TABLE = "filtered_numbers_table";
/** Saves the necessary smart dial information of all contacts. */
static final String SMARTDIAL_TABLE = "smartdial_table";
/** Saves all possible prefixes to refer to a contacts.*/
@@ -111,6 +115,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
static final String IS_SUPER_PRIMARY = "is_super_primary";
static final String IN_VISIBLE_GROUP = "in_visible_group";
static final String IS_PRIMARY = "is_primary";
+ static final String CARRIER_PRESENCE = "carrier_presence";
static final String LAST_SMARTDIAL_UPDATE_TIME = "last_smartdial_update_time";
}
@@ -147,6 +152,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
Data.IS_SUPER_PRIMARY, // 11
Contacts.IN_VISIBLE_GROUP, // 12
Data.IS_PRIMARY, // 13
+ Data.CARRIER_PRESENCE, // 14
};
static final int PHONE_ID = 0;
@@ -163,6 +169,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
static final int PHONE_IS_SUPER_PRIMARY = 11;
static final int PHONE_IN_VISIBLE_GROUP = 12;
static final int PHONE_IS_PRIMARY = 13;
+ static final int PHONE_CARRIER_PRESENCE = 14;
/** Selects only rows that have been updated after a certain time stamp.*/
static final String SELECT_UPDATED_CLAUSE =
@@ -180,6 +187,23 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
SELECT_IGNORE_LOOKUP_KEY_TOO_LONG_CLAUSE;
}
+ /**
+ * Query for all contacts that have been updated since the last time the smart dial database
+ * was updated.
+ */
+ public static interface UpdatedContactQuery {
+ static final Uri URI = ContactsContract.Contacts.CONTENT_URI;
+
+ static final String[] PROJECTION = new String[] {
+ ContactsContract.Contacts._ID // 0
+ };
+
+ static final int UPDATED_CONTACT_ID = 0;
+
+ static final String SELECT_UPDATED_CLAUSE =
+ ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP + " > ?";
+ }
+
/** Query options for querying the deleted contact database.*/
public static interface DeleteContactQuery {
static final Uri URI = ContactsContract.DeletedContacts.CONTENT_URI;
@@ -247,20 +271,23 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
public final String phoneNumber;
public final String lookupKey;
public final long photoId;
+ public final int carrierPresence;
public ContactNumber(long id, long dataID, String displayName, String phoneNumber,
- String lookupKey, long photoId) {
+ String lookupKey, long photoId, int carrierPresence) {
this.dataId = dataID;
this.id = id;
this.displayName = displayName;
this.phoneNumber = phoneNumber;
this.lookupKey = lookupKey;
this.photoId = photoId;
+ this.carrierPresence = carrierPresence;
}
@Override
public int hashCode() {
- return Objects.hashCode(id, dataId, displayName, phoneNumber, lookupKey, photoId);
+ return Objects.hashCode(id, dataId, displayName, phoneNumber, lookupKey, photoId,
+ carrierPresence);
}
@Override
@@ -275,7 +302,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
&& Objects.equal(this.displayName, that.displayName)
&& Objects.equal(this.phoneNumber, that.phoneNumber)
&& Objects.equal(this.lookupKey, that.lookupKey)
- && Objects.equal(this.photoId, that.photoId);
+ && Objects.equal(this.photoId, that.photoId)
+ && Objects.equal(this.carrierPresence, that.carrierPresence);
}
return false;
}
@@ -334,7 +362,12 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
*/
@VisibleForTesting
static DialerDatabaseHelper getNewInstanceForTest(Context context) {
- return new DialerDatabaseHelper(context, null);
+ return new DialerDatabaseHelper(context, null, true);
+ }
+
+ protected DialerDatabaseHelper(Context context, String databaseName, boolean isTestInstance) {
+ this(context, databaseName, DATABASE_VERSION);
+ mIsTestInstance = isTestInstance;
}
protected DialerDatabaseHelper(Context context, String databaseName) {
@@ -358,42 +391,60 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
private void setupTables(SQLiteDatabase db) {
dropTables(db);
- db.execSQL("CREATE TABLE " + Tables.SMARTDIAL_TABLE + " (" +
- SmartDialDbColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
- SmartDialDbColumns.DATA_ID + " INTEGER, " +
- SmartDialDbColumns.NUMBER + " TEXT," +
- SmartDialDbColumns.CONTACT_ID + " INTEGER," +
- SmartDialDbColumns.LOOKUP_KEY + " TEXT," +
- SmartDialDbColumns.DISPLAY_NAME_PRIMARY + " TEXT, " +
- SmartDialDbColumns.PHOTO_ID + " INTEGER, " +
- SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME + " LONG, " +
- SmartDialDbColumns.LAST_TIME_USED + " LONG, " +
- SmartDialDbColumns.TIMES_USED + " INTEGER, " +
- SmartDialDbColumns.STARRED + " INTEGER, " +
- SmartDialDbColumns.IS_SUPER_PRIMARY + " INTEGER, " +
- SmartDialDbColumns.IN_VISIBLE_GROUP + " INTEGER, " +
- SmartDialDbColumns.IS_PRIMARY + " INTEGER" +
- ");");
-
- db.execSQL("CREATE TABLE " + Tables.PREFIX_TABLE + " (" +
- PrefixColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
- PrefixColumns.PREFIX + " TEXT COLLATE NOCASE, " +
- PrefixColumns.CONTACT_ID + " INTEGER" +
- ");");
-
- db.execSQL("CREATE TABLE " + Tables.PROPERTIES + " (" +
- PropertiesColumns.PROPERTY_KEY + " TEXT PRIMARY KEY, " +
- PropertiesColumns.PROPERTY_VALUE + " TEXT " +
- ");");
-
+ db.execSQL("CREATE TABLE " + Tables.SMARTDIAL_TABLE + " ("
+ + SmartDialDbColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ + SmartDialDbColumns.DATA_ID + " INTEGER, "
+ + SmartDialDbColumns.NUMBER + " TEXT,"
+ + SmartDialDbColumns.CONTACT_ID + " INTEGER,"
+ + SmartDialDbColumns.LOOKUP_KEY + " TEXT,"
+ + SmartDialDbColumns.DISPLAY_NAME_PRIMARY + " TEXT, "
+ + SmartDialDbColumns.PHOTO_ID + " INTEGER, "
+ + SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME + " LONG, "
+ + SmartDialDbColumns.LAST_TIME_USED + " LONG, "
+ + SmartDialDbColumns.TIMES_USED + " INTEGER, "
+ + SmartDialDbColumns.STARRED + " INTEGER, "
+ + SmartDialDbColumns.IS_SUPER_PRIMARY + " INTEGER, "
+ + SmartDialDbColumns.IN_VISIBLE_GROUP + " INTEGER, "
+ + SmartDialDbColumns.IS_PRIMARY + " INTEGER, "
+ + SmartDialDbColumns.CARRIER_PRESENCE + " INTEGER NOT NULL DEFAULT 0"
+ + ");");
+
+ db.execSQL("CREATE TABLE " + Tables.PREFIX_TABLE + " ("
+ + PrefixColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ + PrefixColumns.PREFIX + " TEXT COLLATE NOCASE, "
+ + PrefixColumns.CONTACT_ID + " INTEGER"
+ + ");");
+
+ db.execSQL("CREATE TABLE " + Tables.PROPERTIES + " ("
+ + PropertiesColumns.PROPERTY_KEY + " TEXT PRIMARY KEY, "
+ + PropertiesColumns.PROPERTY_VALUE + " TEXT "
+ + ");");
+
+ // This will need to also be updated in setupTablesForFilteredNumberTest and onUpgrade.
+ // Hardcoded so we know on glance what columns are updated in setupTables,
+ // and to be able to guarantee the state of the DB at each upgrade step.
+ db.execSQL("CREATE TABLE " + Tables.FILTERED_NUMBER_TABLE + " ("
+ + FilteredNumberColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ + FilteredNumberColumns.NORMALIZED_NUMBER + " TEXT UNIQUE,"
+ + FilteredNumberColumns.NUMBER + " TEXT,"
+ + FilteredNumberColumns.COUNTRY_ISO + " TEXT,"
+ + FilteredNumberColumns.TIMES_FILTERED + " INTEGER,"
+ + FilteredNumberColumns.LAST_TIME_FILTERED + " LONG,"
+ + FilteredNumberColumns.CREATION_TIME + " LONG,"
+ + FilteredNumberColumns.TYPE + " INTEGER,"
+ + FilteredNumberColumns.SOURCE + " INTEGER"
+ + ");");
setProperty(db, DATABASE_VERSION_PROPERTY, String.valueOf(DATABASE_VERSION));
- resetSmartDialLastUpdatedTime();
+ if (!mIsTestInstance) {
+ resetSmartDialLastUpdatedTime();
+ }
}
public void dropTables(SQLiteDatabase db) {
db.execSQL("DROP TABLE IF EXISTS " + Tables.PREFIX_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + Tables.SMARTDIAL_TABLE);
db.execSQL("DROP TABLE IF EXISTS " + Tables.PROPERTIES);
+ db.execSQL("DROP TABLE IF EXISTS " + Tables.FILTERED_NUMBER_TABLE);
}
@Override
@@ -414,6 +465,27 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
return;
}
+ if (oldVersion < 7) {
+ db.execSQL("DROP TABLE IF EXISTS " + Tables.FILTERED_NUMBER_TABLE);
+ db.execSQL("CREATE TABLE " + Tables.FILTERED_NUMBER_TABLE + " ("
+ + FilteredNumberColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ + FilteredNumberColumns.NORMALIZED_NUMBER + " TEXT UNIQUE,"
+ + FilteredNumberColumns.NUMBER + " TEXT,"
+ + FilteredNumberColumns.COUNTRY_ISO + " TEXT,"
+ + FilteredNumberColumns.TIMES_FILTERED + " INTEGER,"
+ + FilteredNumberColumns.LAST_TIME_FILTERED + " LONG,"
+ + FilteredNumberColumns.CREATION_TIME + " LONG,"
+ + FilteredNumberColumns.TYPE + " INTEGER,"
+ + FilteredNumberColumns.SOURCE + " INTEGER"
+ + ");");
+ oldVersion = 7;
+ }
+
+ if (oldVersion < 8) {
+ upgradeToVersion8(db);
+ oldVersion = 8;
+ }
+
if (oldVersion != DATABASE_VERSION) {
throw new IllegalStateException(
"error upgrading the database to version " + DATABASE_VERSION);
@@ -422,6 +494,10 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
setProperty(db, DATABASE_VERSION_PROPERTY, String.valueOf(DATABASE_VERSION));
}
+ public void upgradeToVersion8(SQLiteDatabase db) {
+ db.execSQL("ALTER TABLE smartdial_table ADD carrier_presence INTEGER NOT NULL DEFAULT 0");
+ }
+
/**
* Stores a key-value pair in the {@link Tables#PROPERTIES} table.
*/
@@ -521,15 +597,11 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
* Removes rows in the smartdial database that matches the contacts that have been deleted
* by other apps since last update.
*
- * @param db Database pointer to the dialer database.
- * @param last_update_time Time stamp of last update on the smartdial database
+ * @param db Database to operate on.
+ * @param deletedContactCursor Cursor containing rows of deleted contacts
*/
- private void removeDeletedContacts(SQLiteDatabase db, String last_update_time) {
- final Cursor deletedContactCursor = mContext.getContentResolver().query(
- DeleteContactQuery.URI,
- DeleteContactQuery.PROJECTION,
- DeleteContactQuery.SELECT_UPDATED_CLAUSE,
- new String[] {last_update_time}, null);
+ @VisibleForTesting
+ void removeDeletedContacts(SQLiteDatabase db, Cursor deletedContactCursor) {
if (deletedContactCursor == null) {
return;
}
@@ -552,6 +624,15 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
}
}
+ private Cursor getDeletedContactCursor(String lastUpdateMillis) {
+ return mContext.getContentResolver().query(
+ DeleteContactQuery.URI,
+ DeleteContactQuery.PROJECTION,
+ DeleteContactQuery.SELECT_UPDATED_CLAUSE,
+ new String[] {lastUpdateMillis},
+ null);
+ }
+
/**
* Removes potentially corrupted entries in the database. These contacts may be added before
* the previous instance of the dialer was destroyed for some reason. For data integrity, we
@@ -595,11 +676,14 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
* @param db Database pointer to the smartdial database
* @param updatedContactCursor Cursor pointing to the list of recently updated contacts.
*/
- private void removeUpdatedContacts(SQLiteDatabase db, Cursor updatedContactCursor) {
+ @VisibleForTesting
+ void removeUpdatedContacts(SQLiteDatabase db, Cursor updatedContactCursor) {
db.beginTransaction();
try {
+ updatedContactCursor.moveToPosition(-1);
while (updatedContactCursor.moveToNext()) {
- final Long contactId = updatedContactCursor.getLong(PhoneQuery.PHONE_CONTACT_ID);
+ final Long contactId =
+ updatedContactCursor.getLong(UpdatedContactQuery.UPDATED_CONTACT_ID);
db.delete(Tables.SMARTDIAL_TABLE, SmartDialDbColumns.CONTACT_ID + "=" +
contactId, null);
@@ -638,8 +722,9 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
SmartDialDbColumns.IS_SUPER_PRIMARY + ", " +
SmartDialDbColumns.IN_VISIBLE_GROUP+ ", " +
SmartDialDbColumns.IS_PRIMARY + ", " +
+ SmartDialDbColumns.CARRIER_PRESENCE + ", " +
SmartDialDbColumns.LAST_SMARTDIAL_UPDATE_TIME + ") " +
- " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+ " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
final SQLiteStatement insert = db.compileStatement(sqlInsert);
final String numberSqlInsert = "INSERT INTO " + Tables.PREFIX_TABLE + " (" +
@@ -686,7 +771,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
insert.bindLong(10, updatedContactCursor.getInt(PhoneQuery.PHONE_IS_SUPER_PRIMARY));
insert.bindLong(11, updatedContactCursor.getInt(PhoneQuery.PHONE_IN_VISIBLE_GROUP));
insert.bindLong(12, updatedContactCursor.getInt(PhoneQuery.PHONE_IS_PRIMARY));
- insert.bindLong(13, currentMillis);
+ insert.bindLong(13, updatedContactCursor.getInt(PhoneQuery.PHONE_CARRIER_PRESENCE));
+ insert.bindLong(14, currentMillis);
insert.executeInsert();
final String contactPhoneNumber =
updatedContactCursor.getString(PhoneQuery.PHONE_NUMBER);
@@ -772,59 +858,75 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
if (DEBUG) {
Log.v(TAG, "Last updated at " + lastUpdateMillis);
}
- /** Queries the contact database to get contacts that have been updated since the last
- * update time.
- */
- final Cursor updatedContactCursor = mContext.getContentResolver().query(PhoneQuery.URI,
- PhoneQuery.PROJECTION, PhoneQuery.SELECTION,
- new String[]{lastUpdateMillis}, null);
- if (updatedContactCursor == null) {
- if (DEBUG) {
- Log.e(TAG, "SmartDial query received null for cursor");
- }
- return;
- }
/** Sets the time after querying the database as the current update time. */
final Long currentMillis = System.currentTimeMillis();
- try {
- if (DEBUG) {
- stopWatch.lap("Queried the Contacts database");
- }
+ if (DEBUG) {
+ stopWatch.lap("Queried the Contacts database");
+ }
- /** Prevents the app from reading the dialer database when updating. */
- sInUpdate.getAndSet(true);
+ /** Prevents the app from reading the dialer database when updating. */
+ sInUpdate.getAndSet(true);
- /** Removes contacts that have been deleted. */
- removeDeletedContacts(db, lastUpdateMillis);
- removePotentiallyCorruptedContacts(db, lastUpdateMillis);
+ /** Removes contacts that have been deleted. */
+ removeDeletedContacts(db, getDeletedContactCursor(lastUpdateMillis));
+ removePotentiallyCorruptedContacts(db, lastUpdateMillis);
- if (DEBUG) {
- stopWatch.lap("Finished deleting deleted entries");
- }
+ if (DEBUG) {
+ stopWatch.lap("Finished deleting deleted entries");
+ }
- /** If the database did not exist before, jump through deletion as there is nothing
- * to delete.
+ /** If the database did not exist before, jump through deletion as there is nothing
+ * to delete.
+ */
+ if (!lastUpdateMillis.equals("0")) {
+ /** Removes contacts that have been updated. Updated contact information will be
+ * inserted later. Note that this has to use a separate result set from
+ * updatePhoneCursor, since it is possible for a contact to be updated (e.g.
+ * phone number deleted), but have no results show up in updatedPhoneCursor (since
+ * all of its phone numbers have been deleted).
*/
- if (!lastUpdateMillis.equals("0")) {
- /** Removes contacts that have been updated. Updated contact information will be
- * inserted later.
- */
+ final Cursor updatedContactCursor = mContext.getContentResolver().query(
+ UpdatedContactQuery.URI,
+ UpdatedContactQuery.PROJECTION,
+ UpdatedContactQuery.SELECT_UPDATED_CLAUSE,
+ new String[] {lastUpdateMillis},
+ null
+ );
+ if (updatedContactCursor == null) {
+ Log.e(TAG, "SmartDial query received null for cursor");
+ return;
+ }
+ try {
removeUpdatedContacts(db, updatedContactCursor);
- if (DEBUG) {
- stopWatch.lap("Finished deleting updated entries");
- }
+ } finally {
+ updatedContactCursor.close();
+ }
+ if (DEBUG) {
+ stopWatch.lap("Finished deleting entries belonging to updated contacts");
}
+ }
- /** Inserts recently updated contacts to the smartdial database.*/
- insertUpdatedContactsAndNumberPrefix(db, updatedContactCursor, currentMillis);
+ /** Queries the contact database to get all phone numbers that have been updated since the last
+ * update time.
+ */
+ final Cursor updatedPhoneCursor = mContext.getContentResolver().query(PhoneQuery.URI,
+ PhoneQuery.PROJECTION, PhoneQuery.SELECTION,
+ new String[]{lastUpdateMillis}, null);
+ if (updatedPhoneCursor == null) {
+ Log.e(TAG, "SmartDial query received null for cursor");
+ return;
+ }
+
+ try {
+ /** Inserts recently updated phone numbers to the smartdial database.*/
+ insertUpdatedContactsAndNumberPrefix(db, updatedPhoneCursor, currentMillis);
if (DEBUG) {
stopWatch.lap("Finished building the smart dial table");
}
} finally {
- /** Inserts prefixes of phone numbers into the prefix table.*/
- updatedContactCursor.close();
+ updatedPhoneCursor.close();
}
/** Gets a list of distinct contacts which have been updated, and adds the name prefixes
@@ -937,7 +1039,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
SmartDialDbColumns.PHOTO_ID + ", " +
SmartDialDbColumns.NUMBER + ", " +
SmartDialDbColumns.CONTACT_ID + ", " +
- SmartDialDbColumns.LOOKUP_KEY +
+ SmartDialDbColumns.LOOKUP_KEY + ", " +
+ SmartDialDbColumns.CARRIER_PRESENCE +
" FROM " + Tables.SMARTDIAL_TABLE + " WHERE " +
SmartDialDbColumns.CONTACT_ID + " IN " +
" (SELECT " + PrefixColumns.CONTACT_ID +
@@ -961,6 +1064,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
final int columnNumber = 3;
final int columnId = 4;
final int columnLookupKey = 5;
+ final int columnCarrierPresence = 6;
if (DEBUG) {
stopWatch.lap("Found column IDs");
}
@@ -978,6 +1082,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
final long id = cursor.getLong(columnId);
final long photoId = cursor.getLong(columnPhotoId);
final String lookupKey = cursor.getString(columnLookupKey);
+ final int carrierPresence = cursor.getInt(columnCarrierPresence);
/** If a contact already exists and another phone number of the contact is being
* processed, skip the second instance.
@@ -998,7 +1103,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
/** If a contact has not been added, add it to the result and the hash set.*/
duplicates.add(contactMatch);
result.add(new ContactNumber(id, dataID, displayName, phoneNumber, lookupKey,
- photoId));
+ photoId, carrierPresence));
counter++;
if (DEBUG) {
stopWatch.lap("Added one result: Name: " + displayName);
diff --git a/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java b/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java
new file mode 100644
index 000000000..ff9b1be5d
--- /dev/null
+++ b/src/com/android/dialer/database/FilteredNumberAsyncQueryHandler.java
@@ -0,0 +1,271 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.database;
+
+import android.content.AsyncQueryHandler;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.database.Cursor;
+import android.database.DatabaseUtils;
+import android.database.sqlite.SQLiteDatabaseCorruptException;
+import android.net.Uri;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+
+import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumber;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberSources;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberTypes;
+
+public class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler {
+ private static final int NO_TOKEN = 0;
+
+ public FilteredNumberAsyncQueryHandler(ContentResolver cr) {
+ super(cr);
+ }
+
+ /**
+ * Methods for FilteredNumberAsyncQueryHandler result returns.
+ */
+ private static abstract class Listener {
+ protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
+ }
+ protected void onInsertComplete(int token, Object cookie, Uri uri) {
+ }
+ protected void onUpdateComplete(int token, Object cookie, int result) {
+ }
+ protected void onDeleteComplete(int token, Object cookie, int result) {
+ }
+ }
+
+ public interface OnCheckBlockedListener {
+ /**
+ * Invoked after querying if a number is blocked.
+ * @param id The ID of the row if blocked, null otherwise.
+ */
+ public void onCheckComplete(Integer id);
+ }
+
+ public interface OnBlockNumberListener {
+ /**
+ * Invoked after inserting a blocked number.
+ * @param uri The uri of the newly created row.
+ */
+ public void onBlockComplete(Uri uri);
+ }
+
+ public interface OnUnblockNumberListener {
+ /**
+ * Invoked after removing a blocked number
+ * @param rows The number of rows affected (expected value 1).
+ * @param values The deleted data (used for restoration).
+ */
+ public void onUnblockComplete(int rows, ContentValues values);
+ }
+
+ public interface OnHasBlockedNumbersListener {
+ /**
+ * @param hasBlockedNumbers {@code true} if any blocked numbers are stored.
+ * {@code false} otherwise.
+ */
+ public void onHasBlockedNumbers(boolean hasBlockedNumbers);
+ }
+
+ @Override
+ protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
+ if (cookie != null) {
+ ((Listener) cookie).onQueryComplete(token, cookie, cursor);
+ }
+ }
+
+ @Override
+ protected void onInsertComplete(int token, Object cookie, Uri uri) {
+ if (cookie != null) {
+ ((Listener) cookie).onInsertComplete(token, cookie, uri);
+ }
+ }
+
+ @Override
+ protected void onUpdateComplete(int token, Object cookie, int result) {
+ if (cookie != null) {
+ ((Listener) cookie).onUpdateComplete(token, cookie, result);
+ }
+ }
+
+ @Override
+ protected void onDeleteComplete(int token, Object cookie, int result) {
+ if (cookie != null) {
+ ((Listener) cookie).onDeleteComplete(token, cookie, result);
+ }
+ }
+
+ private static Uri getContentUri(Integer id) {
+ Uri uri = FilteredNumber.CONTENT_URI;
+ if (id != null) {
+ uri = ContentUris.withAppendedId(uri, id);
+ }
+ return uri;
+ }
+
+ public final void incrementFilteredCount(Integer id) {
+ startUpdate(NO_TOKEN, null,
+ ContentUris.withAppendedId(FilteredNumber.CONTENT_URI_INCREMENT_FILTERED_COUNT, id),
+ null, null, null);
+ }
+
+ public final void hasBlockedNumbers(final OnHasBlockedNumbersListener listener) {
+ startQuery(NO_TOKEN,
+ new Listener() {
+ @Override
+ protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
+ listener.onHasBlockedNumbers(cursor != null && cursor.getCount() > 0);
+ }
+ },
+ getContentUri(null),
+ new String[]{ FilteredNumberColumns._ID },
+ FilteredNumberColumns.TYPE + "=" + FilteredNumberTypes.BLOCKED_NUMBER,
+ null,
+ null);
+ }
+
+ /**
+ * Check if this number has been blocked.
+ *
+ * @return {@code false} if the number was invalid and couldn't be checked,
+ * {@code true} otherwise,
+ */
+ public final boolean isBlockedNumber(
+ final OnCheckBlockedListener listener, String number, String countryIso) {
+ final String normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+ if (TextUtils.isEmpty(normalizedNumber)) {
+ return false;
+ }
+
+ startQuery(NO_TOKEN,
+ new Listener() {
+ @Override
+ protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
+ if (cursor == null || cursor.getCount() != 1) {
+ listener.onCheckComplete(null);
+ return;
+ }
+ cursor.moveToFirst();
+ if (cursor.getInt(cursor.getColumnIndex(FilteredNumberColumns.TYPE))
+ != FilteredNumberTypes.BLOCKED_NUMBER) {
+ listener.onCheckComplete(null);
+ return;
+ }
+ listener.onCheckComplete(
+ cursor.getInt(cursor.getColumnIndex(FilteredNumberColumns._ID)));
+ }
+ },
+ getContentUri(null),
+ new String[]{ FilteredNumberColumns._ID, FilteredNumberColumns.TYPE },
+ FilteredNumberColumns.NORMALIZED_NUMBER + " = ?",
+ new String[]{ normalizedNumber },
+ null);
+
+ return true;
+ }
+
+ public final void blockNumber(
+ final OnBlockNumberListener listener, String number, String countryIso) {
+ blockNumber(listener, null, number, countryIso);
+ }
+
+ /**
+ * Add a number manually blocked by the user.
+ */
+ public final void blockNumber(
+ final OnBlockNumberListener listener,
+ String normalizedNumber,
+ String number,
+ String countryIso) {
+ if (normalizedNumber == null) {
+ normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+ }
+ ContentValues v = new ContentValues();
+ v.put(FilteredNumberColumns.NORMALIZED_NUMBER, normalizedNumber);
+ v.put(FilteredNumberColumns.NUMBER, number);
+ v.put(FilteredNumberColumns.COUNTRY_ISO, countryIso);
+ v.put(FilteredNumberColumns.TYPE, FilteredNumberTypes.BLOCKED_NUMBER);
+ v.put(FilteredNumberColumns.SOURCE, FilteredNumberSources.USER);
+ blockNumber(listener, v);
+ }
+
+ /**
+ * Block a number with specified ContentValues. Can be manually added or a restored row
+ * from performing the 'undo' action after unblocking.
+ */
+ public final void blockNumber(final OnBlockNumberListener listener, ContentValues values) {
+ startInsert(NO_TOKEN,
+ new Listener() {
+ @Override
+ public void onInsertComplete(int token, Object cookie, Uri uri) {
+ if (listener != null ) {
+ listener.onBlockComplete(uri);
+ }
+ }
+ }, getContentUri(null), values);
+ }
+
+ /**
+ * Removes row from database.
+ * Caller should call {@link FilteredNumberAsyncQueryHandler#startBlockedQuery} first.
+ * @param id The ID of row to remove, from {@link FilteredNumberAsyncQueryHandler#startBlockedQuery}.
+ */
+ public final void unblock(final OnUnblockNumberListener listener, Integer id) {
+ if (id == null) {
+ throw new IllegalArgumentException("Null id passed into unblock");
+ }
+ unblock(listener, getContentUri(id));
+ }
+
+ /**
+ * Removes row from database.
+ * @param uri The uri of row to remove, from
+ * {@link FilteredNumberAsyncQueryHandler#blockNumber}.
+ */
+ public final void unblock(final OnUnblockNumberListener listener, final Uri uri) {
+ startQuery(NO_TOKEN, new Listener() {
+ @Override
+ public void onQueryComplete(int token, Object cookie, Cursor cursor) {
+ int rowsReturned = cursor == null ? 0 : cursor.getCount();
+ if (rowsReturned != 1) {
+ throw new SQLiteDatabaseCorruptException
+ ("Returned " + rowsReturned + " rows for uri "
+ + uri + "where 1 expected.");
+ }
+ cursor.moveToFirst();
+ final ContentValues values = new ContentValues();
+ DatabaseUtils.cursorRowToContentValues(cursor, values);
+ values.remove(FilteredNumberColumns._ID);
+
+ startDelete(NO_TOKEN, new Listener() {
+ @Override
+ public void onDeleteComplete(int token, Object cookie, int result) {
+ if (listener != null) {
+ listener.onUnblockComplete(result, values);
+ }
+ }
+ }, uri, null, null);
+ }
+ }, uri, null, null, null, null);
+ }
+}
diff --git a/src/com/android/dialer/database/FilteredNumberContract.java b/src/com/android/dialer/database/FilteredNumberContract.java
new file mode 100644
index 000000000..f3966816c
--- /dev/null
+++ b/src/com/android/dialer/database/FilteredNumberContract.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.database;
+
+import android.net.Uri;
+import android.provider.BaseColumns;
+
+import com.android.dialerbind.ObjectFactory;
+
+/**
+ * <p>
+ * The contract between the filtered number provider and applications. Contains
+ * definitions for the supported URIs and columns.
+ * Currently only accessible within Dialer.
+ * </p>
+ */
+public final class FilteredNumberContract {
+
+ /** The authority for the filtered numbers provider */
+ public static final String AUTHORITY = ObjectFactory.getFilteredNumberProviderAuthority();
+
+ /** A content:// style uri to the authority for the filtered numbers provider */
+ public static final Uri AUTHORITY_URI = Uri.parse("content://" + AUTHORITY);
+
+ /** The type of filtering to be applied, e.g. block the number or whitelist the number. */
+ public interface FilteredNumberTypes {
+ static final int UNDEFINED = 0;
+ /**
+ * Dialer will disconnect the call without sending the caller to voicemail.
+ */
+ static final int BLOCKED_NUMBER = 1;
+ }
+
+ /** The original source of the filtered number, e.g. the user manually added it. */
+ public interface FilteredNumberSources {
+ static final int UNDEFINED = 0;
+ /**
+ * The user manually added this number through Dialer (e.g. from the call log or InCallUI).
+ */
+ static final int USER = 1;
+ }
+
+ public interface FilteredNumberColumns {
+ // TYPE: INTEGER
+ static final String _ID = "_id";
+ /**
+ * Represents the number to be filtered, normalized to compare phone numbers for equality.
+ *
+ * TYPE: TEXT
+ */
+ static final String NORMALIZED_NUMBER = "normalized_number";
+ /**
+ * Represents the number to be filtered, for formatting and
+ * used with country iso for contact lookups.
+ *
+ * TYPE: TEXT
+ */
+ static final String NUMBER = "number";
+ /**
+ * The country code representing the country detected when
+ * the phone number was added to the database.
+ * Most numbers don't have the country code, so a best guess is provided by
+ * the country detector system. The country iso is also needed in order to format
+ * phone numbers correctly.
+ *
+ * TYPE: TEXT
+ */
+ static final String COUNTRY_ISO = "country_iso";
+ /**
+ * The number of times the number has been filtered by Dialer.
+ * When this number is incremented, LAST_TIME_FILTERED should also be updated to
+ * the current time.
+ *
+ * TYPE: INTEGER
+ */
+ static final String TIMES_FILTERED = "times_filtered";
+ /**
+ * Set to the current time when the phone number is filtered.
+ * When this is updated, TIMES_FILTERED should also be incremented.
+ *
+ * TYPE: LONG
+ */
+ static final String LAST_TIME_FILTERED = "last_time_filtered";
+ // TYPE: LONG
+ static final String CREATION_TIME = "creation_time";
+ /**
+ * Indicates the type of filtering to be applied.
+ *
+ * TYPE: INTEGER
+ * See {@link FilteredNumberTypes}
+ */
+ static final String TYPE = "type";
+ /**
+ * Integer representing the original source of the filtered number.
+ *
+ * TYPE: INTEGER
+ * See {@link FilteredNumberSources}
+ */
+ static final String SOURCE = "source";
+ }
+
+ /**
+ * <p>
+ * Constants for the table of filtered numbers.
+ * </p>
+ * <h3>Operations</h3>
+ * <dl>
+ * <dt><b>Insert</b></dt>
+ * <dd>Required fields: NUMBER, NORMALIZED_NUMBER, TYPE, SOURCE.
+ * A default value will be used for the other fields if left null.</dd>
+ * <dt><b>Update</b></dt>
+ * <dt><b>Delete</b></dt>
+ * <dt><b>Query</b></dt>
+ * <dd>{@link #CONTENT_URI} can be used for any query, append an ID to
+ * retrieve a specific filtered number entry.</dd>
+ * </dl>
+ */
+ public static class FilteredNumber implements BaseColumns {
+
+ public static final String FILTERED_NUMBERS_TABLE = "filtered_numbers_table";
+ public static final String FILTERED_NUMBERS_INCREMENT_FILTERED_COUNT =
+ "filtered_numbers_increment_filtered_count";
+
+ public static final Uri CONTENT_URI = Uri.withAppendedPath(
+ AUTHORITY_URI,
+ FILTERED_NUMBERS_TABLE);
+
+ public static final Uri CONTENT_URI_INCREMENT_FILTERED_COUNT = Uri.withAppendedPath(
+ AUTHORITY_URI,
+ FILTERED_NUMBERS_INCREMENT_FILTERED_COUNT);
+
+ /**
+ * This utility class cannot be instantiated.
+ */
+ private FilteredNumber () {}
+
+ /**
+ * The MIME type of {@link #CONTENT_URI} providing a directory of
+ * filtered numbers.
+ */
+ public static final String CONTENT_TYPE = "vnd.android.cursor.dir/filtered_numbers_table";
+
+ /**
+ * The MIME type of a {@link #CONTENT_URI} single filtered number.
+ */
+ public static final String CONTENT_ITEM_TYPE =
+ "vnd.android.cursor.item/filtered_numbers_table";
+ }
+}
diff --git a/src/com/android/dialer/database/FilteredNumberProvider.java b/src/com/android/dialer/database/FilteredNumberProvider.java
new file mode 100644
index 000000000..3b63d4b50
--- /dev/null
+++ b/src/com/android/dialer/database/FilteredNumberProvider.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.database;
+
+import android.content.ContentProvider;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.UriMatcher;
+import android.database.Cursor;
+import android.database.SQLException;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteQueryBuilder;
+import android.net.Uri;
+import android.os.Binder;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.common.GeoUtil;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+import com.android.dialerbind.DatabaseHelperManager;
+import com.android.dialerbind.ObjectFactory;
+import com.google.common.annotations.VisibleForTesting;
+
+import java.util.Arrays;
+
+/**
+ * Filtered number content provider.
+ */
+public class FilteredNumberProvider extends ContentProvider {
+
+ private static String TAG = FilteredNumberProvider.class.getSimpleName();
+
+ private DialerDatabaseHelper mDialerDatabaseHelper;
+
+ private static final int FILTERED_NUMBERS_TABLE = 1;
+ private static final int FILTERED_NUMBERS_TABLE_ID = 2;
+ private static final int FILTERED_NUMBERS_INCREMENT_FILTERED_COUNT = 3;
+
+ private static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
+
+ @Override
+ public boolean onCreate() {
+ mDialerDatabaseHelper = getDatabaseHelper(getContext());
+ if (mDialerDatabaseHelper == null) {
+ return false;
+ }
+ sUriMatcher.addURI(ObjectFactory.getFilteredNumberProviderAuthority(),
+ FilteredNumberContract.FilteredNumber.FILTERED_NUMBERS_TABLE,
+ FILTERED_NUMBERS_TABLE);
+ sUriMatcher.addURI(ObjectFactory.getFilteredNumberProviderAuthority(),
+ FilteredNumberContract.FilteredNumber.FILTERED_NUMBERS_TABLE + "/#",
+ FILTERED_NUMBERS_TABLE_ID);
+ sUriMatcher.addURI(ObjectFactory.getFilteredNumberProviderAuthority(),
+ FilteredNumberContract.FilteredNumber.FILTERED_NUMBERS_INCREMENT_FILTERED_COUNT
+ + "/#",
+ FILTERED_NUMBERS_INCREMENT_FILTERED_COUNT);
+ return true;
+ }
+
+ @VisibleForTesting
+ protected DialerDatabaseHelper getDatabaseHelper(Context context) {
+ return DatabaseHelperManager.getDatabaseHelper(context);
+ }
+
+ @Override
+ public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
+ String sortOrder) {
+ final SQLiteDatabase db = mDialerDatabaseHelper.getReadableDatabase();
+ SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
+ qb.setTables(DialerDatabaseHelper.Tables.FILTERED_NUMBER_TABLE);
+ final int match = sUriMatcher.match(uri);
+ switch (match) {
+ case FILTERED_NUMBERS_TABLE:
+ break;
+ case FILTERED_NUMBERS_TABLE_ID:
+ qb.appendWhere(FilteredNumberColumns._ID + "=" + ContentUris.parseId(uri));
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown uri: " + uri);
+ }
+ final Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, null);
+ if (c != null) {
+ c.setNotificationUri(getContext().getContentResolver(),
+ FilteredNumberContract.FilteredNumber.CONTENT_URI);
+ } else {
+ Log.d(TAG, "CURSOR WAS NULL");
+ }
+ return c;
+ }
+
+ @Override
+ public String getType(Uri uri) {
+ return FilteredNumberContract.FilteredNumber.CONTENT_ITEM_TYPE;
+ }
+
+ @Override
+ public Uri insert(Uri uri, ContentValues values) {
+ SQLiteDatabase db = mDialerDatabaseHelper.getWritableDatabase();
+ setDefaultValues(values);
+ long id = db.insert(DialerDatabaseHelper.Tables.FILTERED_NUMBER_TABLE, null, values);
+ if (id < 0) {
+ return null;
+ }
+ notifyChange(uri);
+ return ContentUris.withAppendedId(uri, id);
+ }
+
+ @VisibleForTesting
+ protected long getCurrentTimeMs() {
+ return System.currentTimeMillis();
+ }
+
+ private void setDefaultValues(ContentValues values) {
+ if (values.getAsString(FilteredNumberColumns.COUNTRY_ISO) == null) {
+ values.put(FilteredNumberColumns.COUNTRY_ISO,
+ GeoUtil.getCurrentCountryIso(getContext()));
+ }
+ if (values.getAsInteger(FilteredNumberColumns.TIMES_FILTERED) == null) {
+ values.put(FilteredNumberContract.FilteredNumberColumns.TIMES_FILTERED, 0);
+ }
+ if (values.getAsLong(FilteredNumberColumns.CREATION_TIME) == null) {
+ values.put(FilteredNumberColumns.CREATION_TIME, getCurrentTimeMs());
+ }
+ }
+
+ @Override
+ public int delete(Uri uri, String selection, String[] selectionArgs) {
+ SQLiteDatabase db = mDialerDatabaseHelper.getWritableDatabase();
+ final int match = sUriMatcher.match(uri);
+ switch (match) {
+ case FILTERED_NUMBERS_TABLE:
+ break;
+ case FILTERED_NUMBERS_TABLE_ID:
+ selection = getSelectionWithId(selection, ContentUris.parseId(uri));
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown uri: " + uri);
+ }
+ int rows = db.delete(DialerDatabaseHelper.Tables.FILTERED_NUMBER_TABLE,
+ selection,
+ selectionArgs);
+ if (rows > 0) {
+ notifyChange(uri);
+ }
+ return rows;
+ }
+
+ @Override
+ public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
+ SQLiteDatabase db = mDialerDatabaseHelper.getWritableDatabase();
+ final int match = sUriMatcher.match(uri);
+ switch (match) {
+ case FILTERED_NUMBERS_TABLE:
+ break;
+ case FILTERED_NUMBERS_TABLE_ID:
+ selection = getSelectionWithId(selection, ContentUris.parseId(uri));
+ break;
+ case FILTERED_NUMBERS_INCREMENT_FILTERED_COUNT:
+ final long id = ContentUris.parseId(uri);
+ try {
+ db.execSQL(" UPDATE " + DialerDatabaseHelper.Tables.FILTERED_NUMBER_TABLE
+ + " SET" + FilteredNumberColumns.TIMES_FILTERED + "="
+ + FilteredNumberColumns.TIMES_FILTERED + "+1,"
+ + FilteredNumberColumns.LAST_TIME_FILTERED + "="
+ + getCurrentTimeMs()
+ + " WHERE " + FilteredNumberColumns._ID + "=" + id);
+ } catch (SQLException e) {
+ Log.d(TAG, "Could not update blocked statistics for " + id);
+ return 0;
+ }
+ return 1;
+ default:
+ throw new IllegalArgumentException("Unknown uri: " + uri);
+ }
+ int rows = db.update(DialerDatabaseHelper.Tables.FILTERED_NUMBER_TABLE,
+ values,
+ selection,
+ selectionArgs);
+ if (rows > 0 ) {
+ notifyChange(uri);
+ }
+ return rows;
+ }
+
+ private String getSelectionWithId(String selection, long id) {
+ if (TextUtils.isEmpty(selection)) {
+ return FilteredNumberContract.FilteredNumberColumns._ID + "=" + id;
+ } else {
+ return selection + "AND " + FilteredNumberContract.FilteredNumberColumns._ID + "=" + id;
+ }
+ }
+
+ private void notifyChange(Uri uri) {
+ getContext().getContentResolver().notifyChange(uri, null);
+ }
+}
diff --git a/src/com/android/dialer/dialpad/DialpadFragment.java b/src/com/android/dialer/dialpad/DialpadFragment.java
index 3792a1d9f..246b0d7fa 100644
--- a/src/com/android/dialer/dialpad/DialpadFragment.java
+++ b/src/com/android/dialer/dialpad/DialpadFragment.java
@@ -16,6 +16,8 @@
package com.android.dialer.dialpad;
+import com.google.common.annotations.VisibleForTesting;
+
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
@@ -27,7 +29,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -42,7 +43,6 @@ import android.provider.Contacts.PhonesColumns;
import android.provider.Settings;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
import android.telephony.PhoneNumberUtils;
import android.telephony.TelephonyManager;
import android.text.Editable;
@@ -81,12 +81,13 @@ import com.android.dialer.R;
import com.android.dialer.SpecialCharSequenceMgr;
import com.android.dialer.calllog.PhoneAccountUtils;
import com.android.dialer.util.DialerUtils;
-import com.android.dialer.util.IntentUtil;
+import com.android.dialer.util.IntentUtil.CallIntentBuilder;
+import com.android.dialer.util.TelecomUtil;
+import com.android.incallui.Call.LogState;
import com.android.phone.common.CallLogAsync;
import com.android.phone.common.animation.AnimUtils;
import com.android.phone.common.dialpad.DialpadKeyButton;
import com.android.phone.common.dialpad.DialpadView;
-import com.google.common.annotations.VisibleForTesting;
import java.util.HashSet;
import java.util.List;
@@ -272,8 +273,9 @@ public class DialpadFragment extends Fragment
return (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
}
- private TelecomManager getTelecomManager() {
- return (TelecomManager) getActivity().getSystemService(Context.TELECOM_SERVICE);
+ @Override
+ public Context getContext() {
+ return getActivity();
}
@Override
@@ -417,6 +419,7 @@ public class DialpadFragment extends Fragment
return mDigits != null;
}
+ @VisibleForTesting
public EditText getDigitsWidget() {
return mDigits;
}
@@ -481,7 +484,10 @@ public class DialpadFragment extends Fragment
* @param intent The intent.
* @return {@literal true} if add call operation was requested. {@literal false} otherwise.
*/
- private static boolean isAddCallMode(Intent intent) {
+ public static boolean isAddCallMode(Intent intent) {
+ if (intent == null) {
+ return false;
+ }
final String action = intent.getAction();
if (Intent.ACTION_DIAL.equals(action) || Intent.ACTION_VIEW.equals(action)) {
// see if we are "adding a call" from the InCallScreen; false by default.
@@ -560,19 +566,48 @@ public class DialpadFragment extends Fragment
* Sets formatted digits to digits field.
*/
private void setFormattedDigits(String data, String normalizedNumber) {
- // strip the non-dialable numbers out of the data string.
- String dialString = PhoneNumberUtils.extractNetworkPortion(data);
- dialString =
- PhoneNumberUtils.formatNumber(dialString, normalizedNumber, mCurrentCountryIso);
- if (!TextUtils.isEmpty(dialString)) {
+ final String formatted = getFormattedDigits(data, normalizedNumber, mCurrentCountryIso);
+ if (!TextUtils.isEmpty(formatted)) {
Editable digits = mDigits.getText();
- digits.replace(0, digits.length(), dialString);
+ digits.replace(0, digits.length(), formatted);
// for some reason this isn't getting called in the digits.replace call above..
// but in any case, this will make sure the background drawable looks right
afterTextChanged(digits);
}
}
+ /**
+ * Format the provided string of digits into one that represents a properly formatted phone
+ * number.
+ *
+ * @param dialString String of characters to format
+ * @param normalizedNumber the E164 format number whose country code is used if the given
+ * phoneNumber doesn't have the country code.
+ * @param countryIso The country code representing the format to use if the provided normalized
+ * number is null or invalid.
+ * @return the provided string of digits as a formatted phone number, retaining any
+ * post-dial portion of the string.
+ */
+ @VisibleForTesting
+ static String getFormattedDigits(String dialString, String normalizedNumber, String countryIso) {
+ String number = PhoneNumberUtils.extractNetworkPortion(dialString);
+ // Also retrieve the post dial portion of the provided data, so that the entire dial
+ // string can be reconstituted later.
+ final String postDial = PhoneNumberUtils.extractPostDialPortion(dialString);
+
+ if (TextUtils.isEmpty(number)) {
+ return postDial;
+ }
+
+ number = PhoneNumberUtils.formatNumber(number, normalizedNumber, countryIso);
+
+ if (TextUtils.isEmpty(postDial)) {
+ return number;
+ }
+
+ return number.concat(postDial);
+ }
+
private void configureKeypadListeners(View fragmentView) {
final int[] buttonIds = new int[] {R.id.one, R.id.two, R.id.three, R.id.four, R.id.five,
R.id.six, R.id.seven, R.id.eight, R.id.nine, R.id.star, R.id.zero, R.id.pound};
@@ -941,12 +976,12 @@ public class DialpadFragment extends Fragment
// Just for safety we also check if the digits field is empty or not.
if (isDigitsEmpty() || TextUtils.equals(mDigits.getText(), "1")) {
// We'll try to initiate voicemail and thus we want to remove irrelevant string.
- removePreviousDigitIfPossible();
+ removePreviousDigitIfPossible('1');
List<PhoneAccountHandle> subscriptionAccountHandles =
PhoneAccountUtils.getSubscriptionPhoneAccounts(getActivity());
boolean hasUserSelectedDefault = subscriptionAccountHandles.contains(
- getTelecomManager().getDefaultOutgoingPhoneAccount(
+ TelecomUtil.getDefaultOutgoingPhoneAccount(getActivity(),
PhoneAccount.SCHEME_VOICEMAIL));
boolean needsAccountDisambiguation = subscriptionAccountHandles.size() > 1
&& !hasUserSelectedDefault;
@@ -978,8 +1013,13 @@ public class DialpadFragment extends Fragment
return false;
}
case R.id.zero: {
- // Remove tentative input ('0') done by onTouch().
- removePreviousDigitIfPossible();
+ if (mPressedDialpadKeys.contains(view)) {
+ // If the zero key is currently pressed, then the long press occurred by touch
+ // (and not via other means like certain accessibility input methods).
+ // Remove the '0' that was input when the key was first pressed.
+ removePreviousDigitIfPossible('0');
+ }
+
keyPressed(KeyEvent.KEYCODE_PLUS);
// Stop tone immediately
@@ -1000,19 +1040,26 @@ public class DialpadFragment extends Fragment
}
/**
- * Remove the digit just before the current position. This can be used if we want to replace
- * the previous digit or cancel previously entered character.
+ * Remove the digit just before the current position of the cursor, iff the following conditions
+ * are true:
+ * 1) The cursor is not positioned at index 0.
+ * 2) The digit before the current cursor position matches the current digit.
+ *
+ * @param digit to remove from the digits view.
*/
- private void removePreviousDigitIfPossible() {
+ private void removePreviousDigitIfPossible(char digit) {
final int currentPosition = mDigits.getSelectionStart();
- if (currentPosition > 0) {
+ if (currentPosition > 0 && digit == mDigits.getText().charAt(currentPosition - 1)) {
mDigits.setSelection(currentPosition);
mDigits.getText().delete(currentPosition - 1, currentPosition);
}
}
public void callVoicemail() {
- DialerUtils.startActivityWithErrorToast(getActivity(), IntentUtil.getVoicemailIntent());
+ DialerUtils.startActivityWithErrorToast(getActivity(),
+ new CallIntentBuilder(CallUtil.getVoicemailUri())
+ .setCallInitiationType(LogState.INITIATION_DIALPAD)
+ .build());
hideAndClearDialpad(false);
}
@@ -1108,9 +1155,9 @@ public class DialpadFragment extends Fragment
// Clear the digits just in case.
clearDialpad();
} else {
- final Intent intent = IntentUtil.getCallIntent(number,
- (getActivity() instanceof DialtactsActivity ?
- ((DialtactsActivity) getActivity()).getCallOrigin() : null));
+ final Intent intent = new CallIntentBuilder(number).
+ setCallInitiationType(LogState.INITIATION_DIALPAD)
+ .build();
DialerUtils.startActivityWithErrorToast(getActivity(), intent);
hideAndClearDialpad(false);
}
@@ -1425,7 +1472,7 @@ public class DialpadFragment extends Fragment
* or "return to call" from the dialpad chooser.
*/
private void returnToInCallScreen(boolean showDialpad) {
- getTelecomManager().showInCallScreen(showDialpad);
+ TelecomUtil.showInCallScreen(getActivity(), showDialpad);
// Finally, finish() ourselves so that we don't stay on the
// activity stack.
@@ -1442,8 +1489,12 @@ public class DialpadFragment extends Fragment
* @return true if the phone is "in use", meaning that at least one line
* is active (ie. off hook or ringing or dialing, or on hold).
*/
- public boolean isPhoneInUse() {
- return getTelecomManager().isInCall();
+ private boolean isPhoneInUse() {
+ final Context context = getActivity();
+ if (context != null) {
+ return TelecomUtil.isInCall(context);
+ }
+ return false;
}
/**
@@ -1538,20 +1589,19 @@ public class DialpadFragment extends Fragment
*
* @return true if voicemail is enabled and accessible. Note that this can be false
* "temporarily" after the app boot.
- * @see TelecomManager#getVoiceMailNumber(PhoneAccountHandle)
*/
private boolean isVoicemailAvailable() {
try {
PhoneAccountHandle defaultUserSelectedAccount =
- getTelecomManager().getDefaultOutgoingPhoneAccount(
+ TelecomUtil.getDefaultOutgoingPhoneAccount(getActivity(),
PhoneAccount.SCHEME_VOICEMAIL);
if (defaultUserSelectedAccount == null) {
// In a single-SIM phone, there is no default outgoing phone account selected by
// the user, so just call TelephonyManager#getVoicemailNumber directly.
return !TextUtils.isEmpty(getTelephonyManager().getVoiceMailNumber());
} else {
- return !TextUtils.isEmpty(
- getTelecomManager().getVoiceMailNumber(defaultUserSelectedAccount));
+ return !TextUtils.isEmpty(TelecomUtil.getVoicemailNumber(getActivity(),
+ defaultUserSelectedAccount));
}
} catch (SecurityException se) {
// Possibly no READ_PHONE_STATE privilege.
@@ -1635,7 +1685,7 @@ public class DialpadFragment extends Fragment
}
private Intent newFlashIntent() {
- final Intent intent = IntentUtil.getCallIntent(EMPTY_NUMBER);
+ final Intent intent = new CallIntentBuilder(EMPTY_NUMBER).build();
intent.putExtra(EXTRA_SEND_EMPTY_FLASH, true);
return intent;
}
diff --git a/src/com/android/dialer/dialpad/SmartDialCursorLoader.java b/src/com/android/dialer/dialpad/SmartDialCursorLoader.java
index f83f18cd7..93b649b6d 100644
--- a/src/com/android/dialer/dialpad/SmartDialCursorLoader.java
+++ b/src/com/android/dialer/dialpad/SmartDialCursorLoader.java
@@ -102,6 +102,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
row[PhoneQuery.LOOKUP_KEY] = contact.lookupKey;
row[PhoneQuery.PHOTO_ID] = contact.photoId;
row[PhoneQuery.DISPLAY_NAME] = contact.displayName;
+ row[PhoneQuery.CARRIER_PRESENCE] = contact.carrierPresence;
cursor.addRow(row);
}
return cursor;
diff --git a/src/com/android/dialer/dialpad/SmartDialNameMatcher.java b/src/com/android/dialer/dialpad/SmartDialNameMatcher.java
index 01268641d..a54fe1618 100644
--- a/src/com/android/dialer/dialpad/SmartDialNameMatcher.java
+++ b/src/com/android/dialer/dialpad/SmartDialNameMatcher.java
@@ -16,6 +16,7 @@
package com.android.dialer.dialpad;
+import android.support.annotation.Nullable;
import android.text.TextUtils;
import com.android.dialer.dialpad.SmartDialPrefix.PhoneNumberTokens;
@@ -123,7 +124,11 @@ public class SmartDialNameMatcher {
* SmartDialMatchPosition with the matching positions otherwise
*/
@VisibleForTesting
+ @Nullable
public SmartDialMatchPosition matchesNumber(String phoneNumber, String query, boolean useNanp) {
+ if (TextUtils.isEmpty(phoneNumber)) {
+ return null;
+ }
StringBuilder builder = new StringBuilder();
constructEmptyMask(builder, phoneNumber.length());
mPhoneNumberMatchMask = builder.toString();
diff --git a/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java b/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
new file mode 100644
index 000000000..de4fe99f1
--- /dev/null
+++ b/src/com/android/dialer/filterednumber/BlockNumberDialogFragment.java
@@ -0,0 +1,317 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.filterednumber;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.DialogFragment;
+import android.app.FragmentManager;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.design.widget.Snackbar;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.Toast;
+
+import com.android.contacts.common.util.ContactDisplayUtils;
+import com.android.dialer.R;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnBlockNumberListener;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnUnblockNumberListener;
+import com.android.dialer.voicemail.VisualVoicemailEnabledChecker;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
+
+/**
+ * Fragment for confirming and enacting blocking/unblocking a number. Also invokes snackbar
+ * providing undo functionality.
+ */
+public class BlockNumberDialogFragment extends DialogFragment {
+
+ /**
+ * Use a callback interface to update UI after success/undo. Favor this approach over other
+ * more standard paradigms because of the variety of scenarios in which the DialogFragment
+ * can be invoked (by an Activity, by a fragment, by an adapter, by an adapter list item).
+ * Because of this, we do NOT support retaining state on rotation, and will dismiss the dialog
+ * upon rotation instead.
+ */
+ public interface Callback {
+ /**
+ * Called when a number is successfully added to the set of filtered numbers
+ */
+ void onFilterNumberSuccess();
+
+ /**
+ * Called when a number is successfully removed from the set of filtered numbers
+ */
+ void onUnfilterNumberSuccess();
+
+ /**
+ * Called when the action of filtering or unfiltering a number is undone
+ */
+ void onChangeFilteredNumberUndo();
+ }
+
+ private static final String BLOCK_DIALOG_FRAGMENT = "BlockNumberDialog";
+
+ private static final String ARG_BLOCK_ID = "argBlockId";
+ private static final String ARG_NUMBER = "argNumber";
+ private static final String ARG_COUNTRY_ISO = "argCountryIso";
+ private static final String ARG_DISPLAY_NUMBER = "argDisplayNumber";
+ private static final String ARG_PARENT_VIEW_ID = "parentViewId";
+
+ private String mNumber;
+ private String mDisplayNumber;
+ private String mCountryIso;
+
+ private FilteredNumberAsyncQueryHandler mHandler;
+ private View mParentView;
+ private VisualVoicemailEnabledChecker mVoicemailEnabledChecker;
+ private Callback mCallback;
+
+ public static void show(
+ Integer blockId,
+ String number,
+ String countryIso,
+ String displayNumber,
+ Integer parentViewId,
+ FragmentManager fragmentManager,
+ Callback callback) {
+ final BlockNumberDialogFragment newFragment = BlockNumberDialogFragment.newInstance(
+ blockId, number, countryIso, displayNumber, parentViewId);
+
+ newFragment.setCallback(callback);
+ newFragment.show(fragmentManager, BlockNumberDialogFragment.BLOCK_DIALOG_FRAGMENT);
+ }
+
+ private static BlockNumberDialogFragment newInstance(
+ Integer blockId,
+ String number,
+ String countryIso,
+ String displayNumber,
+ Integer parentViewId) {
+ final BlockNumberDialogFragment fragment = new BlockNumberDialogFragment();
+ final Bundle args = new Bundle();
+ if (blockId != null) {
+ args.putInt(ARG_BLOCK_ID, blockId.intValue());
+ }
+ if (parentViewId != null) {
+ args.putInt(ARG_PARENT_VIEW_ID, parentViewId.intValue());
+ }
+ args.putString(ARG_NUMBER, number);
+ args.putString(ARG_COUNTRY_ISO, countryIso);
+ args.putString(ARG_DISPLAY_NUMBER, displayNumber);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public Context getContext() {
+ return getActivity();
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ super.onCreateDialog(savedInstanceState);
+ final boolean isBlocked = getArguments().containsKey(ARG_BLOCK_ID);
+
+ mNumber = getArguments().getString(ARG_NUMBER);
+ mDisplayNumber = getArguments().getString(ARG_DISPLAY_NUMBER);
+ mCountryIso = getArguments().getString(ARG_COUNTRY_ISO);
+
+ if (TextUtils.isEmpty(mDisplayNumber)) {
+ mDisplayNumber = mNumber;
+ }
+
+ mHandler = new FilteredNumberAsyncQueryHandler(getContext().getContentResolver());
+ mVoicemailEnabledChecker = new VisualVoicemailEnabledChecker(getActivity(), null);
+ /**
+ * Choose not to update VoicemailEnabledChecker, as checks should already been done in
+ * all current use cases.
+ */
+ mParentView = getActivity().findViewById(getArguments().getInt(ARG_PARENT_VIEW_ID));
+
+ CharSequence title;
+ String okText;
+ String message;
+ if (isBlocked) {
+ title = ContactDisplayUtils.getTtsSpannedPhoneNumber(getResources(),
+ R.string.unblock_number_confirmation_title,
+ mDisplayNumber);
+ okText = getString(R.string.unblock_number_ok);
+ message = getString(R.string.unblock_number_confirmation_message);
+ } else {
+ title = ContactDisplayUtils.getTtsSpannedPhoneNumber(getResources(),
+ R.string.block_number_confirmation_title,
+ mDisplayNumber);
+ okText = getString(R.string.block_number_ok);
+ if (mVoicemailEnabledChecker.isVisualVoicemailEnabled()) {
+ message = getString(R.string.block_number_confirmation_message_vvm);
+ } else {
+ message = getString(R.string.block_number_confirmation_message_no_vvm);
+ }
+ }
+
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
+ .setTitle(title)
+ .setMessage(message)
+ .setPositiveButton(okText, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ if (isBlocked) {
+ unblockNumber();
+ } else {
+ blockNumber();
+ }
+ }
+ })
+ .setNegativeButton(android.R.string.cancel, null);
+ return builder.create();
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ if (!FilteredNumbersUtil.canBlockNumber(getActivity(), mNumber, mCountryIso)) {
+ dismiss();
+ Toast.makeText(getContext(),
+ ContactDisplayUtils.getTtsSpannedPhoneNumber(
+ getResources(), R.string.invalidNumber, mDisplayNumber),
+ Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ public void onPause() {
+ // Dismiss on rotation.
+ dismiss();
+ mCallback = null;
+
+ super.onPause();
+ }
+
+ public void setCallback(Callback callback) {
+ mCallback = callback;
+ }
+
+ private CharSequence getBlockedMessage() {
+ return ContactDisplayUtils.getTtsSpannedPhoneNumber(getResources(),
+ R.string.snackbar_number_blocked, mDisplayNumber);
+ }
+
+ private CharSequence getUnblockedMessage() {
+ return ContactDisplayUtils.getTtsSpannedPhoneNumber(getResources(),
+ R.string.snackbar_number_unblocked, mDisplayNumber);
+ }
+
+ private int getActionTextColor() {
+ return getContext().getResources().getColor(R.color.dialer_snackbar_action_text_color);
+ }
+
+ private void blockNumber() {
+ final CharSequence message = getBlockedMessage();
+ final CharSequence undoMessage = getUnblockedMessage();
+ final Callback callback = mCallback;
+ final int actionTextColor = getActionTextColor();
+ final Context context = getContext();
+
+ final OnUnblockNumberListener onUndoListener = new OnUnblockNumberListener() {
+ @Override
+ public void onUnblockComplete(int rows, ContentValues values) {
+ Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show();
+ if (callback != null) {
+ callback.onChangeFilteredNumberUndo();
+ }
+ }
+ };
+
+ final OnBlockNumberListener onBlockNumberListener = new OnBlockNumberListener() {
+ @Override
+ public void onBlockComplete(final Uri uri) {
+ final View.OnClickListener undoListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ // Delete the newly created row on 'undo'.
+ Logger.logInteraction(InteractionEvent.UNDO_BLOCK_NUMBER);
+ mHandler.unblock(onUndoListener, uri);
+ }
+ };
+
+ Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG)
+ .setAction(R.string.block_number_undo, undoListener)
+ .setActionTextColor(actionTextColor)
+ .show();
+
+ if (callback != null) {
+ callback.onFilterNumberSuccess();
+ }
+
+ if (context != null && FilteredNumbersUtil.hasRecentEmergencyCall(context)) {
+ FilteredNumbersUtil.maybeNotifyCallBlockingDisabled(context);
+ }
+ }
+ };
+
+ mHandler.blockNumber(
+ onBlockNumberListener,
+ mNumber,
+ mCountryIso);
+ }
+
+ private void unblockNumber() {
+ final CharSequence message = getUnblockedMessage();
+ final CharSequence undoMessage = getBlockedMessage();
+ final Callback callback = mCallback;
+ final int actionTextColor = getActionTextColor();
+
+ final OnBlockNumberListener onUndoListener = new OnBlockNumberListener() {
+ @Override
+ public void onBlockComplete(final Uri uri) {
+ Snackbar.make(mParentView, undoMessage, Snackbar.LENGTH_LONG).show();
+ if (callback != null) {
+ callback.onChangeFilteredNumberUndo();
+ }
+ }
+ };
+
+ mHandler.unblock(new OnUnblockNumberListener() {
+ @Override
+ public void onUnblockComplete(int rows, final ContentValues values) {
+ final View.OnClickListener undoListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ // Re-insert the row on 'undo', with a new ID.
+ Logger.logInteraction(InteractionEvent.UNDO_UNBLOCK_NUMBER);
+ mHandler.blockNumber(onUndoListener, values);
+ }
+ };
+
+ Snackbar.make(mParentView, message, Snackbar.LENGTH_LONG)
+ .setAction(R.string.block_number_undo, undoListener)
+ .setActionTextColor(actionTextColor)
+ .show();
+
+ if (callback != null) {
+ callback.onUnfilterNumberSuccess();
+ }
+ }
+ }, getArguments().getInt(ARG_BLOCK_ID));
+ }
+}
diff --git a/src/com/android/dialer/filterednumber/BlockedNumbersAdapter.java b/src/com/android/dialer/filterednumber/BlockedNumbersAdapter.java
new file mode 100644
index 000000000..10a4f5abd
--- /dev/null
+++ b/src/com/android/dialer/filterednumber/BlockedNumbersAdapter.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.filterednumber;
+
+import android.app.FragmentManager;
+import android.content.Context;
+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.R;
+import com.android.dialer.calllog.ContactInfoHelper;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
+
+public class BlockedNumbersAdapter extends NumbersAdapter {
+
+ private BlockedNumbersAdapter(
+ Context context,
+ FragmentManager fragmentManager,
+ ContactInfoHelper contactInfoHelper,
+ ContactPhotoManager contactPhotoManager) {
+ super(context, fragmentManager, contactInfoHelper, contactPhotoManager);
+ }
+
+ public static BlockedNumbersAdapter newBlockedNumbersAdapter(
+ Context context, FragmentManager fragmentManager) {
+ return new BlockedNumbersAdapter(
+ context,
+ fragmentManager,
+ new ContactInfoHelper(context, GeoUtil.getCurrentCountryIso(context)),
+ ContactPhotoManager.getInstance(context));
+ }
+
+ @Override
+ public void bindView(View view, final Context context, Cursor cursor) {
+ super.bindView(view, context, cursor);
+ final Integer id = cursor.getInt(cursor.getColumnIndex(FilteredNumberColumns._ID));
+ final String countryIso = cursor.getString(cursor.getColumnIndex(
+ FilteredNumberColumns.COUNTRY_ISO));
+ final String number = cursor.getString(cursor.getColumnIndex(FilteredNumberColumns.NUMBER));
+ final String normalizedNumber = cursor.getString(cursor.getColumnIndex(
+ FilteredNumberColumns.NORMALIZED_NUMBER));
+
+ final View deleteButton = view.findViewById(R.id.delete_button);
+ deleteButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ BlockNumberDialogFragment.show(
+ id,
+ number,
+ countryIso,
+ PhoneNumberUtils.formatNumber(number, countryIso),
+ R.id.blocked_numbers_activity_container,
+ getFragmentManager(),
+ new BlockNumberDialogFragment.Callback() {
+ @Override
+ public void onFilterNumberSuccess() {}
+
+ @Override
+ public void onUnfilterNumberSuccess() {
+ Logger.logInteraction(
+ InteractionEvent.UNBLOCK_NUMBER_MANAGEMENT_SCREEN);
+ }
+
+ @Override
+ public void onChangeFilteredNumberUndo() {}
+ });
+ }
+ });
+
+ updateView(view, number, countryIso);
+ }
+
+ @Override
+ public boolean isEmpty() {
+ // Always return false, so that the header with blocking-related options always shows.
+ return false;
+ }
+}
diff --git a/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java b/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
new file mode 100644
index 000000000..e231c6afd
--- /dev/null
+++ b/src/com/android/dialer/filterednumber/BlockedNumbersFragment.java
@@ -0,0 +1,218 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.filterednumber;
+
+import android.app.ListFragment;
+import android.app.LoaderManager;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.Loader;
+import android.database.Cursor;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.support.v4.app.ActivityCompat;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.contacts.common.lettertiles.LetterTileDrawable;
+import com.android.dialer.R;
+import com.android.dialer.database.FilteredNumberContract;
+import com.android.dialer.filterednumber.FilteredNumbersUtil.CheckForSendToVoicemailContactListener;
+import com.android.dialer.filterednumber.FilteredNumbersUtil.ImportSendToVoicemailContactsListener;
+import com.android.dialer.voicemail.VisualVoicemailEnabledChecker;
+
+public class BlockedNumbersFragment extends ListFragment
+ implements LoaderManager.LoaderCallbacks<Cursor>, View.OnClickListener,
+ VisualVoicemailEnabledChecker.Callback {
+ private static final char ADD_BLOCKED_NUMBER_ICON_LETTER = '+';
+
+ private BlockedNumbersAdapter mAdapter;
+ private VisualVoicemailEnabledChecker mVoicemailEnabledChecker;
+
+ private View mImportSettings;
+ private View mBlockedNumbersDisabledForEmergency;
+ private View mBlockedNumberListDivider;
+
+ @Override
+ public Context getContext() {
+ return getActivity();
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ LayoutInflater inflater =
+ (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ getListView().addHeaderView(inflater.inflate(R.layout.blocked_number_header, null));
+ getListView().addFooterView(inflater.inflate(R.layout.blocked_number_footer, null));
+ //replace the icon for add number with LetterTileDrawable(), so it will have identical style
+ ImageView addNumberIcon = (ImageView) getActivity().findViewById(R.id.add_number_icon);
+ LetterTileDrawable drawable = new LetterTileDrawable(getResources());
+ drawable.setLetter(ADD_BLOCKED_NUMBER_ICON_LETTER);
+ drawable.setColor(ActivityCompat.getColor(getActivity(),
+ R.color.add_blocked_number_icon_color));
+ drawable.setIsCircular(true);
+ addNumberIcon.setImageDrawable(drawable);
+
+ if (mAdapter == null) {
+ mAdapter = BlockedNumbersAdapter.newBlockedNumbersAdapter(
+ getContext(), getActivity().getFragmentManager());
+ }
+ setListAdapter(mAdapter);
+
+ mImportSettings = getListView().findViewById(R.id.import_settings);
+ mBlockedNumbersDisabledForEmergency =
+ getListView().findViewById(R.id.blocked_numbers_disabled_for_emergency);
+ mBlockedNumberListDivider = getActivity().findViewById(R.id.blocked_number_list_divider);
+ getListView().findViewById(R.id.import_button).setOnClickListener(this);;
+ getListView().findViewById(R.id.view_numbers_button).setOnClickListener(this);
+ getListView().findViewById(R.id.add_number_linear_layout).setOnClickListener(this);
+
+ mVoicemailEnabledChecker = new VisualVoicemailEnabledChecker(getContext(),this);
+ mVoicemailEnabledChecker.asyncUpdate();
+ updateActiveVoicemailProvider();
+ }
+
+ @Override
+ public void onDestroy() {
+ setListAdapter(null);
+ super.onDestroy();
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ getLoaderManager().initLoader(0, null, this);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
+ ColorDrawable backgroundDrawable = new ColorDrawable(
+ ActivityCompat.getColor(getActivity(), R.color.dialer_theme_color));
+ actionBar.setBackgroundDrawable(backgroundDrawable);
+ actionBar.setDisplayShowCustomEnabled(false);
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setDisplayShowHomeEnabled(true);
+ actionBar.setDisplayShowTitleEnabled(true);
+ actionBar.setTitle(R.string.manage_blocked_numbers_label);
+
+ FilteredNumbersUtil.checkForSendToVoicemailContact(
+ getActivity(), new CheckForSendToVoicemailContactListener() {
+ @Override
+ public void onComplete(boolean hasSendToVoicemailContact) {
+ final int visibility = hasSendToVoicemailContact ? View.VISIBLE : View.GONE;
+ mImportSettings.setVisibility(visibility);
+ }
+ });
+
+ if (FilteredNumbersUtil.hasRecentEmergencyCall(getContext())) {
+ mBlockedNumbersDisabledForEmergency.setVisibility(View.VISIBLE);
+ } else {
+ mBlockedNumbersDisabledForEmergency.setVisibility(View.GONE);
+ }
+
+ mVoicemailEnabledChecker.asyncUpdate();
+ }
+
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.blocked_number_fragment, container, false);
+ }
+
+ @Override
+ public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+ final String[] projection = {
+ FilteredNumberContract.FilteredNumberColumns._ID,
+ FilteredNumberContract.FilteredNumberColumns.COUNTRY_ISO,
+ FilteredNumberContract.FilteredNumberColumns.NUMBER,
+ FilteredNumberContract.FilteredNumberColumns.NORMALIZED_NUMBER
+ };
+ final String selection = FilteredNumberContract.FilteredNumberColumns.TYPE
+ + "=" + FilteredNumberContract.FilteredNumberTypes.BLOCKED_NUMBER;
+ final CursorLoader cursorLoader = new CursorLoader(
+ getContext(), FilteredNumberContract.FilteredNumber.CONTENT_URI, projection,
+ selection, null, null);
+ return cursorLoader;
+ }
+
+ @Override
+ public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+ mAdapter.swapCursor(data);
+ if (data.getCount() == 0) {
+ mBlockedNumberListDivider.setVisibility(View.INVISIBLE);
+ } else {
+ mBlockedNumberListDivider.setVisibility(View.VISIBLE);
+ }
+ }
+
+ @Override
+ public void onLoaderReset(Loader<Cursor> loader) {
+ mAdapter.swapCursor(null);
+ }
+
+ @Override
+ public void onClick(final View view) {
+ BlockedNumbersSettingsActivity activity = (BlockedNumbersSettingsActivity) getActivity();
+ if (activity == null) {
+ return;
+ }
+
+ switch (view.getId()) {
+ case R.id.add_number_linear_layout:
+ activity.showSearchUi();
+ break;
+ case R.id.view_numbers_button:
+ activity.showNumbersToImportPreviewUi();
+ break;
+ case R.id.import_button:
+ FilteredNumbersUtil.importSendToVoicemailContacts(activity,
+ new ImportSendToVoicemailContactsListener() {
+ @Override
+ public void onImportComplete() {
+ mImportSettings.setVisibility(View.GONE);
+ }
+ });
+ break;
+ }
+ }
+ @Override
+ public void onVisualVoicemailEnabledStatusChanged(boolean newStatus){
+ updateActiveVoicemailProvider();
+ }
+
+ private void updateActiveVoicemailProvider(){
+ if (getActivity() == null || getActivity().isFinishing()) {
+ return;
+ }
+ TextView footerText = (TextView) getActivity().findViewById(
+ R.id.blocked_number_footer_textview);
+ if (mVoicemailEnabledChecker.isVisualVoicemailEnabled()) {
+ footerText.setText(R.string.block_number_footer_message_vvm);
+ } else {
+ footerText.setText(R.string.block_number_footer_message_no_vvm);
+ }
+ }
+}
diff --git a/src/com/android/dialer/filterednumber/BlockedNumbersSettingsActivity.java b/src/com/android/dialer/filterednumber/BlockedNumbersSettingsActivity.java
new file mode 100644
index 000000000..5ce9d21f1
--- /dev/null
+++ b/src/com/android/dialer/filterednumber/BlockedNumbersSettingsActivity.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.filterednumber;
+
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
+import android.view.MenuItem;
+import android.widget.FrameLayout;
+import android.widget.FrameLayout.LayoutParams;
+import android.widget.Toast;
+
+import com.android.contacts.common.GeoUtil;
+import com.android.contacts.common.dialog.IndeterminateProgressDialog;
+import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
+import com.android.dialer.R;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.list.BlockedListSearchAdapter;
+import com.android.dialer.list.OnListFragmentScrolledListener;
+import com.android.dialer.list.BlockedListSearchFragment;
+import com.android.dialer.list.SearchFragment;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
+
+public class BlockedNumbersSettingsActivity extends AppCompatActivity
+ implements SearchFragment.HostInterface {
+
+ private static final String TAG_BLOCKED_MANAGEMENT_FRAGMENT = "blocked_management";
+ private static final String TAG_BLOCKED_SEARCH_FRAGMENT = "blocked_search";
+ private static final String TAG_VIEW_NUMBERS_TO_IMPORT_FRAGMENT = "view_numbers_to_import";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.blocked_numbers_activity);
+
+ // If savedInstanceState != null, the Activity will automatically restore the last fragment.
+ if (savedInstanceState == null) {
+ showManagementUi();
+ }
+ }
+
+ /**
+ * Shows fragment with the list of currently blocked numbers and settings related to blocking.
+ */
+ public void showManagementUi() {
+ BlockedNumbersFragment fragment = (BlockedNumbersFragment) getFragmentManager()
+ .findFragmentByTag(TAG_BLOCKED_MANAGEMENT_FRAGMENT);
+ if (fragment == null) {
+ fragment = new BlockedNumbersFragment();
+ }
+
+ getFragmentManager().beginTransaction()
+ .replace(R.id.blocked_numbers_activity_container, fragment,
+ TAG_BLOCKED_MANAGEMENT_FRAGMENT)
+ .commit();
+
+ Logger.logScreenView(ScreenEvent.BLOCKED_NUMBER_MANAGEMENT, this);
+ }
+
+ /**
+ * Shows fragment with search UI for browsing/finding numbers to block.
+ */
+ public void showSearchUi() {
+ BlockedListSearchFragment fragment = (BlockedListSearchFragment) getFragmentManager()
+ .findFragmentByTag(TAG_BLOCKED_SEARCH_FRAGMENT);
+ if (fragment == null) {
+ fragment = new BlockedListSearchFragment();
+ fragment.setHasOptionsMenu(false);
+ fragment.setShowEmptyListForNullQuery(true);
+ fragment.setDirectorySearchEnabled(false);
+ }
+
+ getFragmentManager().beginTransaction()
+ .replace(R.id.blocked_numbers_activity_container, fragment,
+ TAG_BLOCKED_SEARCH_FRAGMENT)
+ .addToBackStack(null)
+ .commit();
+
+ Logger.logScreenView(ScreenEvent.BLOCKED_NUMBER_ADD_NUMBER, this);
+ }
+
+ /**
+ * Shows fragment with UI to preview the numbers of contacts currently marked as
+ * send-to-voicemail in Contacts. These numbers can be imported into Dialer's blocked number
+ * list.
+ */
+ public void showNumbersToImportPreviewUi() {
+ ViewNumbersToImportFragment fragment = (ViewNumbersToImportFragment) getFragmentManager()
+ .findFragmentByTag(TAG_VIEW_NUMBERS_TO_IMPORT_FRAGMENT);
+ if (fragment == null) {
+ fragment = new ViewNumbersToImportFragment();
+ }
+
+ getFragmentManager().beginTransaction()
+ .replace(R.id.blocked_numbers_activity_container, fragment,
+ TAG_VIEW_NUMBERS_TO_IMPORT_FRAGMENT)
+ .addToBackStack(null)
+ .commit();
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ onBackPressed();
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void onBackPressed() {
+ // TODO: Achieve back navigation without overriding onBackPressed.
+ if (getFragmentManager().getBackStackEntryCount() > 0) {
+ getFragmentManager().popBackStack();
+ } else {
+ super.onBackPressed();
+ }
+ }
+
+ @Override
+ public boolean isActionBarShowing() {
+ return false;
+ }
+
+ @Override
+ public boolean isDialpadShown() {
+ return false;
+ }
+
+ @Override
+ public int getDialpadHeight() {
+ return 0;
+ }
+
+ @Override
+ public int getActionBarHideOffset() {
+ return 0;
+ }
+
+ @Override
+ public int getActionBarHeight() {
+ return 0;
+ }
+}
diff --git a/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java b/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java
new file mode 100644
index 000000000..e3870ded9
--- /dev/null
+++ b/src/com/android/dialer/filterednumber/FilteredNumbersUtil.java
@@ -0,0 +1,363 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.filterednumber;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.ContentValues;
+import android.content.Context;
+import android.content.Intent;
+import android.database.Cursor;
+import android.os.AsyncTask;
+import android.preference.PreferenceManager;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Contacts;
+import android.provider.Settings;
+import android.telephony.PhoneNumberUtils;
+import android.text.TextUtils;
+import android.widget.Toast;
+
+import com.android.contacts.common.testing.NeededForTesting;
+import com.android.dialer.R;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnHasBlockedNumbersListener;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumber;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Utility to help with tasks related to filtered numbers.
+ */
+public class FilteredNumbersUtil {
+
+ // Disable incoming call blocking if there was a call within the past 2 days.
+ private static final long RECENT_EMERGENCY_CALL_THRESHOLD_MS = 1000 * 60 * 60 * 24 * 2;
+
+ // Pref key for storing the time of end of the last emergency call in milliseconds after epoch.
+ protected static final String LAST_EMERGENCY_CALL_MS_PREF_KEY = "last_emergency_call_ms";
+
+ // Pref key for storing whether a notification has been dispatched to notify the user that call
+ // blocking has been disabled because of a recent emergency call.
+ protected static final String NOTIFIED_CALL_BLOCKING_DISABLED_BY_EMERGENCY_CALL_PREF_KEY =
+ "notified_call_blocking_disabled_by_emergency_call";
+
+ public static final String CALL_BLOCKING_NOTIFICATION_TAG = "call_blocking";
+ public static final int CALL_BLOCKING_DISABLED_BY_EMERGENCY_CALL_NOTIFICATION_ID = 10;
+
+ /**
+ * Used for testing to specify that a custom threshold should be used instead of the default.
+ * This custom threshold will only be used when setting this log tag to VERBOSE:
+ *
+ * adb shell setprop log.tag.DebugEmergencyCall VERBOSE
+ *
+ */
+ @NeededForTesting
+ private static final String DEBUG_EMERGENCY_CALL_TAG = "DebugEmergencyCall";
+
+ /**
+ * Used for testing to specify the custom threshold value, in milliseconds for whether an
+ * emergency call is "recent". The default value will be used if this custom threshold is less
+ * than zero. For example, to set this threshold to 60 seconds:
+ *
+ * adb shell settings put system dialer_emergency_call_threshold_ms 60000
+ *
+ */
+ @NeededForTesting
+ private static final String RECENT_EMERGENCY_CALL_THRESHOLD_SETTINGS_KEY =
+ "dialer_emergency_call_threshold_ms";
+
+ public interface CheckForSendToVoicemailContactListener {
+ public void onComplete(boolean hasSendToVoicemailContact);
+ }
+
+ public interface ImportSendToVoicemailContactsListener {
+ public void onImportComplete();
+ }
+
+ private static class ContactsQuery {
+ static final String[] PROJECTION = {
+ Contacts._ID
+ };
+
+ static final String SELECT_SEND_TO_VOICEMAIL_TRUE = Contacts.SEND_TO_VOICEMAIL + "=1";
+
+ static final int ID_COLUMN_INDEX = 0;
+ }
+
+ public static class PhoneQuery {
+ static final String[] PROJECTION = {
+ Contacts._ID,
+ Phone.NORMALIZED_NUMBER,
+ Phone.NUMBER
+ };
+
+ static final int ID_COLUMN_INDEX = 0;
+ static final int NORMALIZED_NUMBER_COLUMN_INDEX = 1;
+ static final int NUMBER_COLUMN_INDEX = 2;
+
+ static final String SELECT_SEND_TO_VOICEMAIL_TRUE = Contacts.SEND_TO_VOICEMAIL + "=1";
+ }
+
+ /**
+ * Checks if there exists a contact with {@code Contacts.SEND_TO_VOICEMAIL} set to true.
+ */
+ public static void checkForSendToVoicemailContact(
+ final Context context, final CheckForSendToVoicemailContactListener listener) {
+ final AsyncTask task = new AsyncTask<Object, Void, Boolean>() {
+ @Override
+ public Boolean doInBackground(Object[] params) {
+ if (context == null) {
+ return false;
+ }
+
+ final Cursor cursor = context.getContentResolver().query(
+ Contacts.CONTENT_URI,
+ ContactsQuery.PROJECTION,
+ ContactsQuery.SELECT_SEND_TO_VOICEMAIL_TRUE,
+ null,
+ null);
+
+ boolean hasSendToVoicemailContacts = false;
+ if (cursor != null) {
+ try {
+ hasSendToVoicemailContacts = cursor.getCount() > 0;
+ } finally {
+ cursor.close();
+ }
+ }
+
+ return hasSendToVoicemailContacts;
+ }
+
+ @Override
+ public void onPostExecute(Boolean hasSendToVoicemailContact) {
+ if (listener != null) {
+ listener.onComplete(hasSendToVoicemailContact);
+ }
+ }
+ };
+ task.execute();
+ }
+
+ /**
+ * Blocks all the phone numbers of any contacts marked as SEND_TO_VOICEMAIL, then clears the
+ * SEND_TO_VOICEMAIL flag on those contacts.
+ */
+ public static void importSendToVoicemailContacts(
+ final Context context, final ImportSendToVoicemailContactsListener listener) {
+ Logger.logInteraction(InteractionEvent.IMPORT_SEND_TO_VOICEMAIL);
+ final FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler =
+ new FilteredNumberAsyncQueryHandler(context.getContentResolver());
+
+ final AsyncTask<Object, Void, Boolean> task = new AsyncTask<Object, Void, Boolean>() {
+ @Override
+ public Boolean doInBackground(Object[] params) {
+ if (context == null) {
+ return false;
+ }
+
+ // Get the phone number of contacts marked as SEND_TO_VOICEMAIL.
+ final Cursor phoneCursor = context.getContentResolver().query(
+ Phone.CONTENT_URI,
+ PhoneQuery.PROJECTION,
+ PhoneQuery.SELECT_SEND_TO_VOICEMAIL_TRUE,
+ null,
+ null);
+
+ if (phoneCursor == null) {
+ return false;
+ }
+
+ try {
+ while (phoneCursor.moveToNext()) {
+ final String normalizedNumber = phoneCursor.getString(
+ PhoneQuery.NORMALIZED_NUMBER_COLUMN_INDEX);
+ final String number = phoneCursor.getString(
+ PhoneQuery.NUMBER_COLUMN_INDEX);
+ if (normalizedNumber != null) {
+ // Block the phone number of the contact.
+ mFilteredNumberAsyncQueryHandler.blockNumber(
+ null, normalizedNumber, number, null);
+ }
+ }
+ } finally {
+ phoneCursor.close();
+ }
+
+ // Clear SEND_TO_VOICEMAIL on all contacts. The setting has been imported to Dialer.
+ ContentValues newValues = new ContentValues();
+ newValues.put(Contacts.SEND_TO_VOICEMAIL, 0);
+ context.getContentResolver().update(
+ Contacts.CONTENT_URI,
+ newValues,
+ ContactsQuery.SELECT_SEND_TO_VOICEMAIL_TRUE,
+ null);
+
+ return true;
+ }
+
+ @Override
+ public void onPostExecute(Boolean success) {
+ if (success) {
+ if (listener != null) {
+ listener.onImportComplete();
+ }
+ } else if (context != null) {
+ String toastStr = context.getString(R.string.send_to_voicemail_import_failed);
+ Toast.makeText(context, toastStr, Toast.LENGTH_SHORT).show();
+ }
+ }
+ };
+ task.execute();
+ }
+
+ /**
+ * WARNING: This method should NOT be executed on the UI thread.
+ * Use {@code FilteredNumberAsyncQueryHandler} to asynchronously check if a number is blocked.
+ */
+ public static boolean shouldBlockVoicemail(
+ Context context, String number, String countryIso, long voicemailDateMs) {
+ final String normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+ if (TextUtils.isEmpty(normalizedNumber)) {
+ return false;
+ }
+
+ if (hasRecentEmergencyCall(context)) {
+ return false;
+ }
+
+ final Cursor cursor = context.getContentResolver().query(
+ FilteredNumber.CONTENT_URI,
+ new String[] {
+ FilteredNumberColumns.CREATION_TIME
+ },
+ FilteredNumberColumns.NORMALIZED_NUMBER + "=?",
+ new String[] { normalizedNumber },
+ null);
+ if (cursor == null) {
+ return false;
+ }
+ try {
+ /*
+ * Block if number is found and it was added before this voicemail was received.
+ * The VVM's date is reported with precision to the minute, even though its
+ * magnitude is in milliseconds, so we perform the comparison in minutes.
+ */
+ return cursor.moveToFirst() &&
+ TimeUnit.MINUTES.convert(voicemailDateMs, TimeUnit.MILLISECONDS) >=
+ TimeUnit.MINUTES.convert(cursor.getLong(0), TimeUnit.MILLISECONDS);
+ } finally {
+ cursor.close();
+ }
+ }
+
+ public static boolean hasRecentEmergencyCall(Context context) {
+ if (context == null) {
+ return false;
+ }
+
+ Long lastEmergencyCallTime = PreferenceManager.getDefaultSharedPreferences(context)
+ .getLong(LAST_EMERGENCY_CALL_MS_PREF_KEY, 0);
+ if (lastEmergencyCallTime == 0) {
+ return false;
+ }
+
+ return (System.currentTimeMillis() - lastEmergencyCallTime)
+ < getRecentEmergencyCallThresholdMs(context);
+ }
+
+ public static void recordLastEmergencyCallTime(Context context) {
+ if (context == null) {
+ return;
+ }
+
+ PreferenceManager.getDefaultSharedPreferences(context)
+ .edit()
+ .putLong(LAST_EMERGENCY_CALL_MS_PREF_KEY, System.currentTimeMillis())
+ .putBoolean(NOTIFIED_CALL_BLOCKING_DISABLED_BY_EMERGENCY_CALL_PREF_KEY, false)
+ .apply();
+
+ maybeNotifyCallBlockingDisabled(context);
+ }
+
+ public static void maybeNotifyCallBlockingDisabled(final Context context) {
+ // Skip if the user has already received a notification for the most recent emergency call.
+ if (PreferenceManager.getDefaultSharedPreferences(context)
+ .getBoolean(NOTIFIED_CALL_BLOCKING_DISABLED_BY_EMERGENCY_CALL_PREF_KEY, false)) {
+ return;
+ }
+
+ // If the user has blocked numbers, notify that call blocking is temporarily disabled.
+ FilteredNumberAsyncQueryHandler queryHandler =
+ new FilteredNumberAsyncQueryHandler(context.getContentResolver());
+ queryHandler.hasBlockedNumbers(new OnHasBlockedNumbersListener() {
+ @Override
+ public void onHasBlockedNumbers(boolean hasBlockedNumbers) {
+ if (context == null || !hasBlockedNumbers) {
+ return;
+ }
+
+ NotificationManager notificationManager = (NotificationManager)
+ context.getSystemService(Context.NOTIFICATION_SERVICE);
+ Notification.Builder builder = new Notification.Builder(context)
+ .setSmallIcon(R.drawable.ic_block_24dp)
+ .setContentTitle(context.getString(
+ R.string.call_blocking_disabled_notification_title))
+ .setContentText(context.getString(
+ R.string.call_blocking_disabled_notification_text))
+ .setAutoCancel(true);
+
+ final Intent contentIntent =
+ new Intent(context, BlockedNumbersSettingsActivity.class);
+ builder.setContentIntent(PendingIntent.getActivity(
+ context, 0, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT));
+
+ notificationManager.notify(
+ CALL_BLOCKING_NOTIFICATION_TAG,
+ CALL_BLOCKING_DISABLED_BY_EMERGENCY_CALL_NOTIFICATION_ID,
+ builder.build());
+
+ // Record that the user has been notified for this emergency call.
+ PreferenceManager.getDefaultSharedPreferences(context)
+ .edit()
+ .putBoolean(NOTIFIED_CALL_BLOCKING_DISABLED_BY_EMERGENCY_CALL_PREF_KEY, true)
+ .apply();
+ }
+ });
+ }
+
+ public static boolean canBlockNumber(Context context, String number, String countryIso) {
+ final String normalizedNumber = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+ return !TextUtils.isEmpty(normalizedNumber)
+ && !PhoneNumberUtils.isEmergencyNumber(normalizedNumber);
+ }
+
+ private static long getRecentEmergencyCallThresholdMs(Context context) {
+ if (android.util.Log.isLoggable(
+ DEBUG_EMERGENCY_CALL_TAG, android.util.Log.VERBOSE)) {
+ long thresholdMs = Settings.System.getLong(
+ context.getContentResolver(),
+ RECENT_EMERGENCY_CALL_THRESHOLD_SETTINGS_KEY, 0);
+ return thresholdMs > 0 ? thresholdMs : RECENT_EMERGENCY_CALL_THRESHOLD_MS;
+ } else {
+ return RECENT_EMERGENCY_CALL_THRESHOLD_MS;
+ }
+ }
+}
diff --git a/src/com/android/dialer/filterednumber/NumbersAdapter.java b/src/com/android/dialer/filterednumber/NumbersAdapter.java
new file mode 100644
index 000000000..17d5db343
--- /dev/null
+++ b/src/com/android/dialer/filterednumber/NumbersAdapter.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.filterednumber;
+
+import android.app.FragmentManager;
+import android.content.Context;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.QuickContactBadge;
+import android.widget.SimpleCursorAdapter;
+import android.widget.TextView;
+
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.util.UriUtils;
+import com.android.dialer.R;
+import com.android.dialer.calllog.ContactInfo;
+import com.android.dialer.calllog.ContactInfoHelper;
+import com.android.dialer.util.PhoneNumberUtil;
+
+public class NumbersAdapter extends SimpleCursorAdapter {
+
+ private Context mContext;
+ private FragmentManager mFragmentManager;
+ private ContactInfoHelper mContactInfoHelper;
+ private BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
+ private ContactPhotoManager mContactPhotoManager;
+
+ public NumbersAdapter(
+ Context context,
+ FragmentManager fragmentManager,
+ ContactInfoHelper contactInfoHelper,
+ ContactPhotoManager contactPhotoManager) {
+ super(context, R.layout.blocked_number_item, null, new String[]{}, new int[]{}, 0);
+ mContext = context;
+ mFragmentManager = fragmentManager;
+ mContactInfoHelper = contactInfoHelper;
+ mContactPhotoManager = contactPhotoManager;
+ }
+
+ public void updateView(View view, String number, String countryIso) {
+ final TextView callerName = (TextView) view.findViewById(R.id.caller_name);
+ final TextView callerNumber = (TextView) view.findViewById(R.id.caller_number);
+ final QuickContactBadge quickContactBadge =
+ (QuickContactBadge) view.findViewById(R.id.quick_contact_photo);
+ quickContactBadge.setOverlay(null);
+ if (CompatUtils.hasPrioritizedMimeType()) {
+ quickContactBadge.setPrioritizedMimeType(Phone.CONTENT_ITEM_TYPE);
+ }
+
+ ContactInfo info = mContactInfoHelper.lookupNumber(number, countryIso);
+ if (info == null) {
+ info = new ContactInfo();
+ info.number = number;
+ }
+ final CharSequence locationOrType = getNumberTypeOrLocation(info);
+ final String displayNumber = getDisplayNumber(info);
+ final String displayNumberStr = mBidiFormatter.unicodeWrap(displayNumber,
+ TextDirectionHeuristics.LTR);
+
+ String nameForDefaultImage;
+ if (!TextUtils.isEmpty(info.name)) {
+ nameForDefaultImage = info.name;
+ callerName.setText(info.name);
+ callerNumber.setText(locationOrType + " " + displayNumberStr);
+ } else {
+ nameForDefaultImage = displayNumber;
+ callerName.setText(displayNumberStr);
+ if (!TextUtils.isEmpty(locationOrType)) {
+ callerNumber.setText(locationOrType);
+ callerNumber.setVisibility(View.VISIBLE);
+ } else {
+ callerNumber.setVisibility(View.GONE);
+ }
+ }
+ loadContactPhoto(info, nameForDefaultImage, quickContactBadge);
+ }
+
+ private void loadContactPhoto(ContactInfo info, String displayName, QuickContactBadge badge) {
+ final String lookupKey = info.lookupUri == null
+ ? null : UriUtils.getLookupKeyFromUri(info.lookupUri);
+ final int contactType = mContactInfoHelper.isBusiness(info.sourceType)
+ ? ContactPhotoManager.TYPE_BUSINESS : ContactPhotoManager.TYPE_DEFAULT;
+ final DefaultImageRequest request = new DefaultImageRequest(displayName, lookupKey,
+ contactType, true /* isCircular */);
+ badge.assignContactUri(info.lookupUri);
+ badge.setContentDescription(
+ mContext.getResources().getString(R.string.description_contact_details, displayName));
+ mContactPhotoManager.loadDirectoryPhoto(badge, info.photoUri,
+ false /* darkTheme */, true /* isCircular */, request);
+ }
+
+ private String getDisplayNumber(ContactInfo info) {
+ if (!TextUtils.isEmpty(info.formattedNumber)) {
+ return info.formattedNumber;
+ } else if (!TextUtils.isEmpty(info.number)) {
+ return info.number;
+ } else {
+ return "";
+ }
+ }
+
+ private CharSequence getNumberTypeOrLocation(ContactInfo info) {
+ if (!TextUtils.isEmpty(info.name)) {
+ return ContactsContract.CommonDataKinds.Phone.getTypeLabel(
+ mContext.getResources(), info.type, info.label);
+ } else {
+ return PhoneNumberUtil.getGeoDescription(mContext, info.number);
+ }
+ }
+
+ protected Context getContext() {
+ return mContext;
+ }
+
+ protected FragmentManager getFragmentManager() {
+ return mFragmentManager;
+ }
+}
diff --git a/src/com/android/dialer/filterednumber/ViewNumbersToImportAdapter.java b/src/com/android/dialer/filterednumber/ViewNumbersToImportAdapter.java
new file mode 100644
index 000000000..58fe1d46c
--- /dev/null
+++ b/src/com/android/dialer/filterednumber/ViewNumbersToImportAdapter.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.filterednumber;
+
+import android.app.FragmentManager;
+import android.database.Cursor;
+import android.content.Context;
+import android.view.View;
+
+import com.android.contacts.common.ContactPhotoManager;
+import com.android.contacts.common.GeoUtil;
+import com.android.dialer.R;
+import com.android.dialer.calllog.ContactInfoHelper;
+
+public class ViewNumbersToImportAdapter extends NumbersAdapter {
+
+ private ViewNumbersToImportAdapter(
+ Context context,
+ FragmentManager fragmentManager,
+ ContactInfoHelper contactInfoHelper,
+ ContactPhotoManager contactPhotoManager) {
+ super(context, fragmentManager, contactInfoHelper, contactPhotoManager);
+ }
+
+ public static ViewNumbersToImportAdapter newViewNumbersToImportAdapter(
+ Context context, FragmentManager fragmentManager) {
+ return new ViewNumbersToImportAdapter(
+ context,
+ fragmentManager,
+ new ContactInfoHelper(context, GeoUtil.getCurrentCountryIso(context)),
+ ContactPhotoManager.getInstance(context));
+ }
+
+ @Override
+ public void bindView(View view, Context context, Cursor cursor) {
+ super.bindView(view, context, cursor);
+
+ final String number = cursor.getString(
+ FilteredNumbersUtil.PhoneQuery.NUMBER_COLUMN_INDEX);
+
+ view.findViewById(R.id.delete_button).setVisibility(View.GONE);
+ updateView(view, number, null /* countryIso */);
+ }
+}
diff --git a/src/com/android/dialer/filterednumber/ViewNumbersToImportFragment.java b/src/com/android/dialer/filterednumber/ViewNumbersToImportFragment.java
new file mode 100644
index 000000000..153d73cde
--- /dev/null
+++ b/src/com/android/dialer/filterednumber/ViewNumbersToImportFragment.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.filterednumber;
+
+import android.app.ListFragment;
+import android.app.LoaderManager;
+import android.content.Context;
+import android.content.CursorLoader;
+import android.content.Loader;
+import android.database.Cursor;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.ContactsContract.Contacts;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.dialer.R;
+import com.android.dialer.database.FilteredNumberContract;
+import com.android.dialer.filterednumber.FilteredNumbersUtil.ImportSendToVoicemailContactsListener;
+
+public class ViewNumbersToImportFragment extends ListFragment
+ implements LoaderManager.LoaderCallbacks<Cursor>,
+ View.OnClickListener {
+
+ private ViewNumbersToImportAdapter mAdapter;
+
+ @Override
+ public Context getContext() {
+ return getActivity();
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ if (mAdapter == null) {
+ mAdapter = ViewNumbersToImportAdapter.newViewNumbersToImportAdapter(
+ getContext(), getActivity().getFragmentManager());
+ }
+ setListAdapter(mAdapter);
+ }
+
+ @Override
+ public void onDestroy() {
+ setListAdapter(null);
+ super.onDestroy();
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ getLoaderManager().initLoader(0, null, this);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
+ actionBar.setTitle(R.string.import_send_to_voicemail_numbers_label);
+ actionBar.setDisplayShowCustomEnabled(false);
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setDisplayShowHomeEnabled(true);
+ actionBar.setDisplayShowTitleEnabled(true);
+
+ getActivity().findViewById(R.id.cancel_button).setOnClickListener(this);
+ getActivity().findViewById(R.id.import_button).setOnClickListener(this);
+ }
+
+ @Override
+ public View onCreateView(
+ LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.view_numbers_to_import_fragment, container, false);
+ }
+
+ @Override
+ public Loader<Cursor> onCreateLoader(int id, Bundle args) {
+ final CursorLoader cursorLoader = new CursorLoader(
+ getContext(),
+ Phone.CONTENT_URI,
+ FilteredNumbersUtil.PhoneQuery.PROJECTION,
+ FilteredNumbersUtil.PhoneQuery.SELECT_SEND_TO_VOICEMAIL_TRUE,
+ null,
+ null);
+ return cursorLoader;
+ }
+
+ @Override
+ public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
+ mAdapter.swapCursor(data);
+ }
+
+ @Override
+ public void onLoaderReset(Loader<Cursor> loader) {
+ mAdapter.swapCursor(null);
+ }
+
+ @Override
+ public void onClick(final View view) {
+ switch (view.getId()) {
+ case R.id.import_button:
+ FilteredNumbersUtil.importSendToVoicemailContacts(getContext(),
+ new ImportSendToVoicemailContactsListener() {
+ @Override
+ public void onImportComplete() {
+ if (getActivity() != null) {
+ getActivity().onBackPressed();
+ }
+ }
+ });
+ break;
+ case R.id.cancel_button:
+ getActivity().onBackPressed();
+ break;
+ }
+ }
+}
diff --git a/src/com/android/dialer/interactions/PhoneNumberInteraction.java b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
index 8455f2423..24728450c 100644
--- a/src/com/android/dialer/interactions/PhoneNumberInteraction.java
+++ b/src/com/android/dialer/interactions/PhoneNumberInteraction.java
@@ -48,11 +48,13 @@ import android.widget.TextView;
import com.android.contacts.common.Collapser;
import com.android.contacts.common.Collapser.Collapsible;
import com.android.contacts.common.MoreContactUtils;
-import com.android.contacts.common.activity.TransactionSafeActivity;
import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.dialer.R;
+import com.android.dialer.TransactionSafeActivity;
import com.android.dialer.contact.ContactUpdateService;
import com.android.dialer.util.IntentUtil;
+import com.android.dialer.util.IntentUtil.CallIntentBuilder;
+import com.android.incallui.Call.LogState;
import com.android.dialer.util.DialerUtils;
import com.google.common.annotations.VisibleForTesting;
@@ -188,31 +190,37 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
private static final String ARG_PHONE_LIST = "phoneList";
private static final String ARG_INTERACTION_TYPE = "interactionType";
- private static final String ARG_CALL_ORIGIN = "callOrigin";
+ private static final String ARG_CALL_INITIATION_TYPE = "callInitiation";
private int mInteractionType;
private ListAdapter mPhonesAdapter;
private List<PhoneItem> mPhoneList;
- private String mCallOrigin;
+ private int mCallInitiationType;
+ private boolean mIsVideoCall;
- public static void show(FragmentManager fragmentManager,
- ArrayList<PhoneItem> phoneList, int interactionType,
- String callOrigin) {
- PhoneDisambiguationDialogFragment fragment = new PhoneDisambiguationDialogFragment();
+ public static void show(FragmentManager fragmentManager, ArrayList<PhoneItem> phoneList,
+ int interactionType, boolean isVideoCall, int callInitiationType) {
+ PhoneDisambiguationDialogFragment fragment = new PhoneDisambiguationDialogFragment(
+ isVideoCall);
Bundle bundle = new Bundle();
bundle.putParcelableArrayList(ARG_PHONE_LIST, phoneList);
- bundle.putSerializable(ARG_INTERACTION_TYPE, interactionType);
- bundle.putString(ARG_CALL_ORIGIN, callOrigin);
+ bundle.putInt(ARG_INTERACTION_TYPE, interactionType);
+ bundle.putInt(ARG_CALL_INITIATION_TYPE, callInitiationType);
fragment.setArguments(bundle);
fragment.show(fragmentManager, TAG);
}
+ public PhoneDisambiguationDialogFragment(boolean isVideoCall) {
+ super();
+ mIsVideoCall = isVideoCall;
+ }
+
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Activity activity = getActivity();
mPhoneList = getArguments().getParcelableArrayList(ARG_PHONE_LIST);
mInteractionType = getArguments().getInt(ARG_INTERACTION_TYPE);
- mCallOrigin = getArguments().getString(ARG_CALL_ORIGIN);
+ mCallInitiationType = getArguments().getInt(ARG_CALL_INITIATION_TYPE);
mPhonesAdapter = new PhoneItemAdapter(activity, mPhoneList, mInteractionType);
final LayoutInflater inflater = activity.getLayoutInflater();
@@ -241,7 +249,7 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
}
PhoneNumberInteraction.performAction(activity, phoneItem.phoneNumber,
- mInteractionType, mCallOrigin);
+ mInteractionType, mIsVideoCall, mCallInitiationType);
} else {
dialog.dismiss();
}
@@ -280,13 +288,14 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
private final OnDismissListener mDismissListener;
private final int mInteractionType;
- private final String mCallOrigin;
+ private final int mCallInitiationType;
private boolean mUseDefault;
private static final int UNKNOWN_CONTACT_ID = -1;
private long mContactId = UNKNOWN_CONTACT_ID;
private CursorLoader mLoader;
+ private boolean mIsVideoCall;
/**
* Constructs a new {@link PhoneNumberInteraction}. The constructor takes in a {@link Context}
@@ -297,24 +306,28 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
@VisibleForTesting
/* package */ PhoneNumberInteraction(Context context, int interactionType,
DialogInterface.OnDismissListener dismissListener) {
- this(context, interactionType, dismissListener, null);
+ this(context, interactionType, dismissListener, false /*isVideoCall*/,
+ LogState.INITIATION_UNKNOWN);
}
private PhoneNumberInteraction(Context context, int interactionType,
- DialogInterface.OnDismissListener dismissListener, String callOrigin) {
+ DialogInterface.OnDismissListener dismissListener, boolean isVideoCall,
+ int callInitiationType) {
mContext = context;
mInteractionType = interactionType;
mDismissListener = dismissListener;
- mCallOrigin = callOrigin;
+ mCallInitiationType = callInitiationType;
+ mIsVideoCall = isVideoCall;
}
private void performAction(String phoneNumber) {
- PhoneNumberInteraction.performAction(mContext, phoneNumber, mInteractionType, mCallOrigin);
+ PhoneNumberInteraction.performAction(mContext, phoneNumber, mInteractionType, mIsVideoCall,
+ mCallInitiationType);
}
private static void performAction(
Context context, String phoneNumber, int interactionType,
- String callOrigin) {
+ boolean isVideoCall, int callInitiationType) {
Intent intent;
switch (interactionType) {
case ContactDisplayUtils.INTERACTION_SMS:
@@ -322,7 +335,10 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
Intent.ACTION_SENDTO, Uri.fromParts("sms", phoneNumber, null));
break;
default:
- intent = IntentUtil.getCallIntent(phoneNumber, callOrigin);
+ intent = new CallIntentBuilder(phoneNumber)
+ .setCallInitiationType(callInitiationType)
+ .setIsVideoCall(isVideoCall)
+ .build();
break;
}
DialerUtils.startActivityWithErrorToast(context, intent);
@@ -447,54 +463,16 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
}
/**
- * Start call action using given contact Uri. If there are multiple candidates for the phone
- * call, dialog is automatically shown and the user is asked to choose one.
- *
* @param activity that is calling this interaction. This must be of type
* {@link TransactionSafeActivity} because we need to check on the activity state after the
* phone numbers have been queried for.
- * @param uri contact Uri (built from {@link Contacts#CONTENT_URI}) or data Uri
- * (built from {@link Data#CONTENT_URI}). Contact Uri may show the disambiguation dialog while
- * data Uri won't.
- */
- public static void startInteractionForPhoneCall(TransactionSafeActivity activity, Uri uri) {
- (new PhoneNumberInteraction(activity, ContactDisplayUtils.INTERACTION_CALL, null))
- .startInteraction(uri, true);
- }
-
- /**
- * Start call action using given contact Uri. If there are multiple candidates for the phone
- * call, dialog is automatically shown and the user is asked to choose one.
- *
- * @param activity that is calling this interaction. This must be of type
- * {@link TransactionSafeActivity} because we need to check on the activity state after the
- * phone numbers have been queried for.
- * @param uri contact Uri (built from {@link Contacts#CONTENT_URI}) or data Uri
- * (built from {@link Data#CONTENT_URI}). Contact Uri may show the disambiguation dialog while
- * data Uri won't.
- * @param useDefault Whether or not to use the primary(default) phone number. If true, the
- * primary phone number will always be used by default if one is available. If false, a
- * disambiguation dialog will be shown regardless of whether or not a primary phone number
- * is available.
+ * @param isVideoCall {@code true} if the call is a video call, {@code false} otherwise.
+ * @param callInitiationType Indicates the UI affordance that was used to initiate the call.
*/
public static void startInteractionForPhoneCall(TransactionSafeActivity activity, Uri uri,
- boolean useDefault) {
- (new PhoneNumberInteraction(activity, ContactDisplayUtils.INTERACTION_CALL, null))
- .startInteraction(uri, useDefault);
- }
-
- /**
- * @param activity that is calling this interaction. This must be of type
- * {@link TransactionSafeActivity} because we need to check on the activity state after the
- * phone numbers have been queried for.
- * @param callOrigin If non null, {@link PhoneConstants#EXTRA_CALL_ORIGIN} will be
- * appended to the Intent initiating phone call. See comments in Phone package (PhoneApp)
- * for more detail.
- */
- public static void startInteractionForPhoneCall(TransactionSafeActivity activity, Uri uri,
- String callOrigin) {
- (new PhoneNumberInteraction(activity, ContactDisplayUtils.INTERACTION_CALL, null, callOrigin))
- .startInteraction(uri, true);
+ boolean isVideoCall, int callInitiationType) {
+ (new PhoneNumberInteraction(activity, ContactDisplayUtils.INTERACTION_CALL, null,
+ isVideoCall, callInitiationType)).startInteraction(uri, true);
}
/**
@@ -521,7 +499,17 @@ public class PhoneNumberInteraction implements OnLoadCompleteListener<Cursor> {
@VisibleForTesting
/* package */ void showDisambiguationDialog(ArrayList<PhoneItem> phoneList) {
- PhoneDisambiguationDialogFragment.show(((Activity)mContext).getFragmentManager(),
- phoneList, mInteractionType, mCallOrigin);
+ final Activity activity = (Activity) mContext;
+ if (activity.isDestroyed()) {
+ // Check whether the activity is still running
+ return;
+ }
+ try {
+ PhoneDisambiguationDialogFragment.show(activity.getFragmentManager(),
+ phoneList, mInteractionType, mIsVideoCall, mCallInitiationType);
+ } catch (IllegalStateException e) {
+ // ignore to be safe. Shouldn't happen because we checked the
+ // activity wasn't destroyed, but to be safe.
+ }
}
}
diff --git a/src/com/android/dialer/list/AllContactsFragment.java b/src/com/android/dialer/list/AllContactsFragment.java
index 0f31ff88f..7e76279d9 100644
--- a/src/com/android/dialer/list/AllContactsFragment.java
+++ b/src/com/android/dialer/list/AllContactsFragment.java
@@ -28,11 +28,13 @@ import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.QuickContact;
+import android.support.v13.app.FragmentCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
+import com.android.contacts.common.compat.CompatUtils;
import com.android.contacts.common.list.ContactEntryListAdapter;
import com.android.contacts.common.list.ContactEntryListFragment;
import com.android.contacts.common.list.ContactListFilter;
@@ -49,7 +51,8 @@ import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClicked
* Fragments to show all contacts with phone numbers.
*/
public class AllContactsFragment extends ContactEntryListFragment<ContactEntryListAdapter>
- implements OnEmptyViewActionButtonClickedListener {
+ implements OnEmptyViewActionButtonClickedListener,
+ FragmentCompat.OnRequestPermissionsResultCallback {
private static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
@@ -150,8 +153,13 @@ public class AllContactsFragment extends ContactEntryListFragment<ContactEntryLi
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final Uri uri = (Uri) view.getTag();
if (uri != null) {
- QuickContact.showQuickContact(getContext(), view, uri, null,
- Phone.CONTENT_ITEM_TYPE);
+ if (CompatUtils.hasPrioritizedMimeType()) {
+ QuickContact.showQuickContact(getContext(), view, uri, null,
+ Phone.CONTENT_ITEM_TYPE);
+ } else {
+ QuickContact.showQuickContact(getActivity(), view, uri, QuickContact.MODE_LARGE,
+ null);
+ }
}
}
@@ -168,7 +176,8 @@ public class AllContactsFragment extends ContactEntryListFragment<ContactEntryLi
}
if (!PermissionsUtil.hasPermission(activity, READ_CONTACTS)) {
- requestPermissions(new String[] {READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
+ FragmentCompat.requestPermissions(this, new String[] {READ_CONTACTS},
+ READ_CONTACTS_PERMISSION_REQUEST_CODE);
} else {
// Add new contact
DialerUtils.startActivityWithErrorToast(activity, IntentUtil.getNewContactIntent(),
diff --git a/src/com/android/dialer/list/BlockedListSearchAdapter.java b/src/com/android/dialer/list/BlockedListSearchAdapter.java
new file mode 100644
index 000000000..1618826bd
--- /dev/null
+++ b/src/com/android/dialer/list/BlockedListSearchAdapter.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.list;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.database.Cursor;
+import android.graphics.Color;
+import android.view.View;
+
+import com.android.contacts.common.GeoUtil;
+import com.android.contacts.common.list.ContactListItemView;
+import com.android.dialer.R;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+
+/**
+ * List adapter to display search results for adding a blocked number.
+ */
+public class BlockedListSearchAdapter extends RegularSearchListAdapter {
+
+ private Resources mResources;
+ private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
+
+ public BlockedListSearchAdapter(Context context) {
+ super(context);
+ mResources = context.getResources();
+ disableAllShortcuts();
+ setShortcutEnabled(SHORTCUT_BLOCK_NUMBER, true);
+
+ mFilteredNumberAsyncQueryHandler =
+ new FilteredNumberAsyncQueryHandler(context.getContentResolver());
+ }
+
+ @Override
+ protected boolean isChanged(boolean showNumberShortcuts) {
+ return setShortcutEnabled(SHORTCUT_BLOCK_NUMBER, showNumberShortcuts || mIsQuerySipAddress);
+ }
+
+ public void setViewBlocked(ContactListItemView view, Integer id) {
+ view.setTag(R.id.block_id, id);
+ final int textColor = mResources.getColor(R.color.blocked_number_block_color);
+ view.getDataView().setTextColor(textColor);
+ view.getLabelView().setTextColor(textColor);
+ //TODO: Add icon
+ }
+
+ public void setViewUnblocked(ContactListItemView view) {
+ view.setTag(R.id.block_id, null);
+ final int textColor = mResources.getColor(R.color.dialtacts_secondary_text_color);
+ view.getDataView().setTextColor(textColor);
+ view.getLabelView().setTextColor(textColor);
+ //TODO: Remove icon
+ }
+
+ @Override
+ protected void bindView(View itemView, int partition, Cursor cursor, int position) {
+ super.bindView(itemView, partition, cursor, position);
+
+ final ContactListItemView view = (ContactListItemView) itemView;
+ // Reset view state to unblocked.
+ setViewUnblocked(view);
+
+ final String number = getPhoneNumber(position);
+ final String countryIso = GeoUtil.getCurrentCountryIso(mContext);
+ final FilteredNumberAsyncQueryHandler.OnCheckBlockedListener onCheckListener =
+ new FilteredNumberAsyncQueryHandler.OnCheckBlockedListener() {
+ @Override
+ public void onCheckComplete(Integer id) {
+ if (id != null) {
+ setViewBlocked(view, id);
+ }
+ }
+ };
+ mFilteredNumberAsyncQueryHandler.isBlockedNumber(
+ onCheckListener, number, countryIso);
+ }
+}
diff --git a/src/com/android/dialer/list/BlockedListSearchFragment.java b/src/com/android/dialer/list/BlockedListSearchFragment.java
new file mode 100644
index 000000000..da6b42820
--- /dev/null
+++ b/src/com/android/dialer/list/BlockedListSearchFragment.java
@@ -0,0 +1,244 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.list;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.telephony.PhoneNumberUtils;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.util.Log;
+import android.util.TypedValue;
+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.R;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.database.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
+import com.android.dialer.filterednumber.BlockNumberDialogFragment;
+import com.android.dialer.logging.InteractionEvent;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.widget.SearchEditTextLayout;
+
+public class BlockedListSearchFragment extends RegularSearchFragment
+ implements BlockNumberDialogFragment.Callback {
+ private static final String TAG = BlockedListSearchFragment.class.getSimpleName();
+
+ private static final String KEY_SEARCH_QUERY = "search_query";
+
+ private FilteredNumberAsyncQueryHandler mFilteredNumberAsyncQueryHandler;
+
+ private EditText mSearchView;
+
+ private final TextWatcher mPhoneSearchQueryTextListener = new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ setQueryString(s.toString(), false);
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {}
+ };
+
+ private final SearchEditTextLayout.Callback mSearchLayoutCallback =
+ new SearchEditTextLayout.Callback() {
+ @Override
+ public void onBackButtonClicked() {
+ getActivity().onBackPressed();
+ }
+
+ @Override
+ public void onSearchViewClicked() {
+ }
+ };
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ setShowEmptyListForNullQuery(true);
+ /*
+ * Pass in the empty string here so ContactEntryListFragment#setQueryString interprets it as
+ * an empty search query, rather than as an uninitalized value. In the latter case, the
+ * adapter returned by #createListAdapter is used, which populates the view with contacts.
+ * Passing in the empty string forces ContactEntryListFragment to interpret it as an empty
+ * query, which results in showing an empty view
+ */
+ setQueryString(getQueryString() == null ? "" : getQueryString(), false);
+ mFilteredNumberAsyncQueryHandler = new FilteredNumberAsyncQueryHandler(
+ getContext().getContentResolver());
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
+ actionBar.setCustomView(R.layout.search_edittext);
+ actionBar.setDisplayShowCustomEnabled(true);
+ actionBar.setDisplayHomeAsUpEnabled(false);
+ actionBar.setDisplayShowHomeEnabled(false);
+
+ final SearchEditTextLayout searchEditTextLayout = (SearchEditTextLayout) actionBar
+ .getCustomView().findViewById(R.id.search_view_container);
+ searchEditTextLayout.expand(false, true);
+ searchEditTextLayout.setCallback(mSearchLayoutCallback);
+ searchEditTextLayout.setBackgroundDrawable(null);
+
+ mSearchView = (EditText) searchEditTextLayout.findViewById(R.id.search_view);
+ mSearchView.addTextChangedListener(mPhoneSearchQueryTextListener);
+ mSearchView.setHint(R.string.block_number_search_hint);
+
+ searchEditTextLayout.findViewById(R.id.search_box_expanded)
+ .setBackgroundColor(getContext().getResources().getColor(android.R.color.white));
+
+ if (!TextUtils.isEmpty(getQueryString())) {
+ mSearchView.setText(getQueryString());
+ }
+
+ // TODO: Don't set custom text size; use default search text size.
+ mSearchView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+ getResources().getDimension(R.dimen.blocked_number_search_text_size));
+ }
+
+ @Override
+ protected ContactEntryListAdapter createListAdapter() {
+ BlockedListSearchAdapter adapter = new BlockedListSearchAdapter(getActivity());
+ adapter.setDisplayPhotos(true);
+ // Don't show SIP addresses.
+ adapter.setUseCallableUri(false);
+ // Keep in sync with the queryString set in #onCreate
+ adapter.setQueryString(getQueryString() == null ? "" : getQueryString());
+ return adapter;
+ }
+
+
+ @Override
+ public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+ super.onItemClick(parent, view, position, id);
+ final int adapterPosition = position - getListView().getHeaderViewsCount();
+ final BlockedListSearchAdapter adapter = (BlockedListSearchAdapter) getAdapter();
+ final int shortcutType = adapter.getShortcutTypeFromPosition(adapterPosition);
+ final Integer blockId = (Integer) view.getTag(R.id.block_id);
+ final String number;
+ switch (shortcutType) {
+ case DialerPhoneNumberListAdapter.SHORTCUT_INVALID:
+ // Handles click on a search result, either contact or nearby places result.
+ number = adapter.getPhoneNumber(adapterPosition);
+ blockContactNumber(number, blockId);
+ break;
+ case DialerPhoneNumberListAdapter.SHORTCUT_BLOCK_NUMBER:
+ // Handles click on 'Block number' shortcut to add the user query as a number.
+ number = adapter.getQueryString();
+ blockNumber(number);
+ break;
+ default:
+ Log.w(TAG, "Ignoring unsupported shortcut type: " + shortcutType);
+ break;
+ }
+ }
+
+ @Override
+ protected void onItemClick(int position, long id) {
+ // Prevent SearchFragment.onItemClicked from being called.
+ }
+
+ private void blockNumber(final String number) {
+ final String countryIso = GeoUtil.getCurrentCountryIso(getContext());
+ final OnCheckBlockedListener onCheckListener = new OnCheckBlockedListener() {
+ @Override
+ public void onCheckComplete(Integer id) {
+ if (id == null) {
+ BlockNumberDialogFragment.show(
+ id,
+ number,
+ countryIso,
+ PhoneNumberUtils.formatNumber(number, countryIso),
+ R.id.blocked_numbers_activity_container,
+ getFragmentManager(),
+ BlockedListSearchFragment.this);
+ } else {
+ Toast.makeText(getContext(),
+ ContactDisplayUtils.getTtsSpannedPhoneNumber(getResources(),
+ R.string.alreadyBlocked, number),
+ Toast.LENGTH_SHORT).show();
+ }
+ }
+ };
+ final boolean success = mFilteredNumberAsyncQueryHandler.isBlockedNumber(
+ onCheckListener, number, countryIso);
+ if (!success) {
+ Toast.makeText(getContext(),
+ ContactDisplayUtils.getTtsSpannedPhoneNumber(
+ getResources(), R.string.invalidNumber, number),
+ Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ public void onFilterNumberSuccess() {
+ Logger.logInteraction(InteractionEvent.BLOCK_NUMBER_MANAGEMENT_SCREEN);
+ goBack();
+ }
+
+ @Override
+ public void onUnfilterNumberSuccess() {
+ Log.wtf(TAG, "Unblocked a number from the BlockedListSearchFragment");
+ goBack();
+ }
+
+ private void goBack() {
+ Activity activity = getActivity();
+ if (activity == null) {
+ return;
+ }
+ activity.onBackPressed();
+ }
+
+ @Override
+ public void onChangeFilteredNumberUndo() {
+ getAdapter().notifyDataSetChanged();
+ }
+
+ private void blockContactNumber(final String number, final Integer blockId) {
+ if (blockId != null) {
+ Toast.makeText(getContext(), ContactDisplayUtils.getTtsSpannedPhoneNumber(
+ getResources(), R.string.alreadyBlocked, number),
+ Toast.LENGTH_SHORT).show();
+ return;
+ }
+
+ BlockNumberDialogFragment.show(
+ blockId,
+ number,
+ GeoUtil.getCurrentCountryIso(getContext()),
+ number,
+ R.id.blocked_numbers_activity_container,
+ getFragmentManager(),
+ this);
+ }
+}
diff --git a/src/com/android/dialer/list/ContentChangedFilter.java b/src/com/android/dialer/list/ContentChangedFilter.java
new file mode 100644
index 000000000..e552aa3f0
--- /dev/null
+++ b/src/com/android/dialer/list/ContentChangedFilter.java
@@ -0,0 +1,40 @@
+package com.android.dialer.list;
+
+import android.view.View;
+import android.view.View.AccessibilityDelegate;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityEvent;
+
+/**
+ * AccessibilityDelegate that will filter out TYPE_WINDOW_CONTENT_CHANGED
+ * Used to suppress "Showing items x of y" from firing of ListView whenever it's content changes.
+ * AccessibilityEvent can only be rejected at a view's parent once it is generated,
+ * use addToParent() to add this delegate to the parent.
+ */
+public class ContentChangedFilter extends AccessibilityDelegate {
+ //the view we don't want TYPE_WINDOW_CONTENT_CHANGED to fire.
+ private View mView;
+
+ /**
+ * Add this delegate to the parent of @param view to filter out TYPE_WINDOW_CONTENT_CHANGED
+ */
+ public static void addToParent(View view){
+ View parent = (View) view.getParent();
+ parent.setAccessibilityDelegate(new ContentChangedFilter(view));
+ }
+
+ private ContentChangedFilter(View view){
+ super();
+ mView = view;
+ }
+ @Override
+ public boolean onRequestSendAccessibilityEvent (ViewGroup host, View child, AccessibilityEvent event){
+ if(child == mView){
+ if(event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED){
+ return false;
+ }
+ }
+ return super.onRequestSendAccessibilityEvent(host,child,event);
+ }
+
+}
diff --git a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
index 401b0b641..7164de2d7 100644
--- a/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
+++ b/src/com/android/dialer/list/DialerPhoneNumberListAdapter.java
@@ -2,15 +2,19 @@ package com.android.dialer.list;
import android.content.Context;
import android.content.res.Resources;
+import android.database.Cursor;
import android.telephony.PhoneNumberUtils;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
+import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
+import com.android.contacts.common.CallUtil;
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.R;
/**
@@ -33,17 +37,20 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
public final static int SHORTCUT_ADD_TO_EXISTING_CONTACT = 2;
public final static int SHORTCUT_SEND_SMS_MESSAGE = 3;
public final static int SHORTCUT_MAKE_VIDEO_CALL = 4;
+ public final static int SHORTCUT_BLOCK_NUMBER = 5;
- public final static int SHORTCUT_COUNT = 5;
+ public final static int SHORTCUT_COUNT = 6;
private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT];
private final BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
+ private boolean mVideoCallingEnabled = false;
public DialerPhoneNumberListAdapter(Context context) {
super(context);
mCountryIso = GeoUtil.getCurrentCountryIso(context);
+ mVideoCallingEnabled = CallUtil.isVideoEnabled(context);
}
@Override
@@ -93,7 +100,8 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
assignShortcutToView((ContactListItemView) convertView, shortcutType);
return convertView;
} else {
- final ContactListItemView v = new ContactListItemView(getContext(), null);
+ final ContactListItemView v = new ContactListItemView(getContext(), null,
+ mVideoCallingEnabled);
assignShortcutToView(v, shortcutType);
return v;
}
@@ -102,6 +110,16 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
}
}
+ @Override
+ protected ContactListItemView newView(
+ Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
+ final ContactListItemView view = super.newView(context, partition, cursor, position,
+ parent);
+
+ view.setSupportVideoCallIcon(mVideoCallingEnabled);
+ return view;
+ }
+
/**
* @param position The position of the item
* @return The enabled shortcut type matching the given position if the item is a
@@ -146,7 +164,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
final String number = getFormattedQueryString();
switch (shortcutType) {
case SHORTCUT_DIRECT_CALL:
- text = resources.getString(
+ text = ContactDisplayUtils.getTtsSpannedPhoneNumber(resources,
R.string.search_shortcut_call_number,
mBidiFormatter.unicodeWrap(number, TextDirectionHeuristics.LTR));
drawableId = R.drawable.ic_search_phone;
@@ -167,6 +185,10 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
text = resources.getString(R.string.search_shortcut_make_video_call);
drawableId = R.drawable.ic_videocam;
break;
+ case SHORTCUT_BLOCK_NUMBER:
+ text = resources.getString(R.string.search_shortcut_block_number);
+ drawableId = R.drawable.ic_not_interested_googblue_24dp;
+ break;
default:
throw new IllegalArgumentException("Invalid shortcut type");
}
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index 33c977670..d5caa1a2e 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -1,10 +1,22 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.android.dialer.list;
-import android.animation.LayoutTransition;
-import android.app.ActionBar;
import android.app.Fragment;
import android.app.FragmentManager;
-import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.Bundle;
@@ -14,26 +26,25 @@ import android.provider.CallLog.Calls;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
-import android.util.Log;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.ListView;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.list.ViewPagerTabs;
-import com.android.contacts.commonbind.analytics.AnalyticsUtil;
import com.android.dialer.DialtactsActivity;
import com.android.dialer.R;
import com.android.dialer.calllog.CallLogFragment;
import com.android.dialer.calllog.CallLogQueryHandler;
-import com.android.dialer.calllog.ContactInfoHelper;
+import com.android.dialer.calllog.VisualVoicemailCallLogFragment;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.util.DialerUtils;
+import com.android.dialer.voicemail.VisualVoicemailEnabledChecker;
import com.android.dialer.voicemail.VoicemailStatusHelper;
import com.android.dialer.voicemail.VoicemailStatusHelperImpl;
import com.android.dialer.widget.ActionBarController;
-import com.android.dialerbind.ObjectFactory;
import java.util.ArrayList;
@@ -52,20 +63,13 @@ public class ListsFragment extends Fragment
private static final String TAG = "ListsFragment";
public static final int TAB_INDEX_SPEED_DIAL = 0;
- public static final int TAB_INDEX_RECENTS = 1;
+ public static final int TAB_INDEX_HISTORY = 1;
public static final int TAB_INDEX_ALL_CONTACTS = 2;
public static final int TAB_INDEX_VOICEMAIL = 3;
public static final int TAB_COUNT_DEFAULT = 3;
public static final int TAB_COUNT_WITH_VOICEMAIL = 4;
- private static final int MAX_RECENTS_ENTRIES = 20;
- // Oldest recents entry to display is 2 weeks old.
- private static final long OLDEST_RECENTS_DATE = 1000L * 60 * 60 * 24 * 14;
-
- private static final String PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER =
- "has_active_voicemail_provider";
-
public interface HostInterface {
public ActionBarController getActionBarController();
}
@@ -78,7 +82,7 @@ public class ListsFragment extends Fragment
private View mRemoveViewContent;
private SpeedDialFragment mSpeedDialFragment;
- private CallLogFragment mRecentsFragment;
+ private CallLogFragment mHistoryFragment;
private AllContactsFragment mAllContactsFragment;
private CallLogFragment mVoicemailFragment;
@@ -98,6 +102,7 @@ public class ListsFragment extends Fragment
* The position of the currently selected tab.
*/
private int mTabIndex = TAB_INDEX_SPEED_DIAL;
+ private CallLogQueryHandler mCallLogQueryHandler;
public class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager fm) {
@@ -115,15 +120,14 @@ public class ListsFragment extends Fragment
case TAB_INDEX_SPEED_DIAL:
mSpeedDialFragment = new SpeedDialFragment();
return mSpeedDialFragment;
- case TAB_INDEX_RECENTS:
- mRecentsFragment = new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL,
- MAX_RECENTS_ENTRIES, System.currentTimeMillis() - OLDEST_RECENTS_DATE);
- return mRecentsFragment;
+ case TAB_INDEX_HISTORY:
+ mHistoryFragment = new CallLogFragment(CallLogQueryHandler.CALL_TYPE_ALL);
+ return mHistoryFragment;
case TAB_INDEX_ALL_CONTACTS:
mAllContactsFragment = new AllContactsFragment();
return mAllContactsFragment;
case TAB_INDEX_VOICEMAIL:
- mVoicemailFragment = new CallLogFragment(Calls.VOICEMAIL_TYPE);
+ mVoicemailFragment = new VisualVoicemailCallLogFragment();
return mVoicemailFragment;
}
throw new IllegalStateException("No fragment at position " + position);
@@ -138,8 +142,8 @@ public class ListsFragment extends Fragment
(Fragment) super.instantiateItem(container, position);
if (fragment instanceof SpeedDialFragment) {
mSpeedDialFragment = (SpeedDialFragment) fragment;
- } else if (fragment instanceof CallLogFragment && position == TAB_INDEX_RECENTS) {
- mRecentsFragment = (CallLogFragment) fragment;
+ } else if (fragment instanceof CallLogFragment && position == TAB_INDEX_HISTORY) {
+ mHistoryFragment = (CallLogFragment) fragment;
} else if (fragment instanceof AllContactsFragment) {
mAllContactsFragment = (AllContactsFragment) fragment;
} else if (fragment instanceof CallLogFragment && position == TAB_INDEX_VOICEMAIL) {
@@ -164,16 +168,12 @@ public class ListsFragment extends Fragment
Trace.beginSection(TAG + " onCreate");
super.onCreate(savedInstanceState);
- Trace.beginSection(TAG + " getCurrentCountryIso");
- final String currentCountryIso = GeoUtil.getCurrentCountryIso(getActivity());
- Trace.endSection();
-
mVoicemailStatusHelper = new VoicemailStatusHelperImpl();
mHasFetchedVoicemailStatus = false;
mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
mHasActiveVoicemailProvider = mPrefs.getBoolean(
- PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, false);
+ VisualVoicemailEnabledChecker.PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, false);
Trace.endSection();
}
@@ -182,15 +182,16 @@ public class ListsFragment extends Fragment
public void onResume() {
Trace.beginSection(TAG + " onResume");
super.onResume();
- mActionBar = getActivity().getActionBar();
+
+ mActionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
if (getUserVisibleHint()) {
sendScreenViewForCurrentPosition();
}
// Fetch voicemail status to determine if we should show the voicemail tab.
- CallLogQueryHandler callLogQueryHandler =
+ mCallLogQueryHandler =
new CallLogQueryHandler(getActivity(), getActivity().getContentResolver(), this);
- callLogQueryHandler.fetchVoicemailStatus();
+ mCallLogQueryHandler.fetchVoicemailStatus();
Trace.endSection();
}
@@ -211,18 +212,18 @@ public class ListsFragment extends Fragment
mTabTitles = new String[TAB_COUNT_WITH_VOICEMAIL];
mTabTitles[TAB_INDEX_SPEED_DIAL] = getResources().getString(R.string.tab_speed_dial);
- mTabTitles[TAB_INDEX_RECENTS] = getResources().getString(R.string.tab_recents);
+ mTabTitles[TAB_INDEX_HISTORY] = getResources().getString(R.string.tab_history);
mTabTitles[TAB_INDEX_ALL_CONTACTS] = getResources().getString(R.string.tab_all_contacts);
mTabTitles[TAB_INDEX_VOICEMAIL] = getResources().getString(R.string.tab_voicemail);
mTabIcons = new int[TAB_COUNT_WITH_VOICEMAIL];
- mTabIcons[TAB_INDEX_SPEED_DIAL] = R.drawable.tab_speed_dial;
- mTabIcons[TAB_INDEX_RECENTS] = R.drawable.tab_recents;
- mTabIcons[TAB_INDEX_ALL_CONTACTS] = R.drawable.tab_contacts;
- mTabIcons[TAB_INDEX_VOICEMAIL] = R.drawable.tab_voicemail;
+ mTabIcons[TAB_INDEX_SPEED_DIAL] = R.drawable.ic_grade_24dp;
+ mTabIcons[TAB_INDEX_HISTORY] = R.drawable.ic_schedule_24dp;
+ mTabIcons[TAB_INDEX_ALL_CONTACTS] = R.drawable.ic_people_24dp;
+ mTabIcons[TAB_INDEX_VOICEMAIL] = R.drawable.ic_voicemail_24dp;
mViewPagerTabs = (ViewPagerTabs) parentView.findViewById(R.id.lists_pager_header);
- mViewPagerTabs.setTabIcons(mTabIcons);
+ mViewPagerTabs.configureTabIcons(mTabIcons);
mViewPagerTabs.setViewPager(mViewPager);
addOnPageChangeListener(mViewPagerTabs);
@@ -253,7 +254,7 @@ public class ListsFragment extends Fragment
// Try to show the voicemail tab after the voicemail status returns.
mShowVoicemailTabAfterVoicemailStatusIsFetched = true;
}
- } else {
+ } else if (index < getTabCount()){
mViewPager.setCurrentItem(getRtlPosition(index));
}
}
@@ -305,11 +306,21 @@ public class ListsFragment extends Fragment
if (hasActiveVoicemailProvider != mHasActiveVoicemailProvider) {
mHasActiveVoicemailProvider = hasActiveVoicemailProvider;
mViewPagerAdapter.notifyDataSetChanged();
- mViewPagerTabs.setViewPager(mViewPager);
+
+ if (hasActiveVoicemailProvider) {
+ mViewPagerTabs.updateTab(TAB_INDEX_VOICEMAIL);
+ } else {
+ mViewPagerTabs.removeTab(TAB_INDEX_VOICEMAIL);
+ }
mPrefs.edit()
- .putBoolean(PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, hasActiveVoicemailProvider)
- .commit();
+ .putBoolean(VisualVoicemailEnabledChecker.PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER,
+ hasActiveVoicemailProvider)
+ .commit();
+ }
+
+ if (hasActiveVoicemailProvider) {
+ mCallLogQueryHandler.fetchVoicemailUnreadCount();
}
if (mHasActiveVoicemailProvider && mShowVoicemailTabAfterVoicemailStatusIsFetched) {
@@ -319,6 +330,23 @@ public class ListsFragment extends Fragment
}
@Override
+ public void onVoicemailUnreadCountFetched(Cursor cursor) {
+ if (getActivity() == null || getActivity().isFinishing() || cursor == null) {
+ return;
+ }
+
+ int count = 0;
+ try {
+ count = cursor.getCount();
+ } finally {
+ cursor.close();
+ }
+
+ mViewPagerTabs.setUnreadCount(count, TAB_INDEX_VOICEMAIL);
+ mViewPagerTabs.updateTab(TAB_INDEX_VOICEMAIL);
+ }
+
+ @Override
public boolean onCallsFetched(Cursor statusCursor) {
// Return false; did not take ownership of cursor
return false;
@@ -328,6 +356,16 @@ public class ListsFragment extends Fragment
return mTabIndex;
}
+ /**
+ * External method to update unread count because the unread count changes when the user
+ * expands a voicemail in the call log.
+ */
+ public void updateTabUnreadCounts() {
+ if (mHasActiveVoicemailProvider && mCallLogQueryHandler != null) {
+ mCallLogQueryHandler.fetchVoicemailUnreadCount();
+ }
+ }
+
public void showRemoveView(boolean show) {
mRemoveViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
mRemoveView.setAlpha(show ? 0 : 1);
@@ -363,22 +401,22 @@ public class ListsFragment extends Fragment
return;
}
- String fragmentName;
+ int screenType;
switch (getCurrentTabIndex()) {
case TAB_INDEX_SPEED_DIAL:
- fragmentName = SpeedDialFragment.class.getSimpleName();
+ screenType = ScreenEvent.SPEED_DIAL;
break;
- case TAB_INDEX_RECENTS:
- fragmentName = CallLogFragment.class.getSimpleName() + "#Recents";
+ case TAB_INDEX_HISTORY:
+ screenType = ScreenEvent.CALL_LOG;
break;
case TAB_INDEX_ALL_CONTACTS:
- fragmentName = AllContactsFragment.class.getSimpleName();
+ screenType = ScreenEvent.ALL_CONTACTS;
break;
case TAB_INDEX_VOICEMAIL:
- fragmentName = CallLogFragment.class.getSimpleName() + "#Voicemail";
+ screenType = ScreenEvent.VOICEMAIL_LOG;
default:
return;
}
- AnalyticsUtil.sendScreenView(fragmentName, getActivity(), null);
+ Logger.logScreenView(screenType, getActivity());
}
}
diff --git a/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java b/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
index 05780c66a..69a230c8a 100644
--- a/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
+++ b/src/com/android/dialer/list/PhoneFavoriteSquareTileView.java
@@ -24,6 +24,7 @@ import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
+import com.android.contacts.common.compat.CompatUtils;
import com.android.contacts.common.list.ContactEntry;
import com.android.dialer.R;
@@ -63,8 +64,13 @@ public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView {
}
private void launchQuickContact() {
- QuickContact.showQuickContact(getContext(), PhoneFavoriteSquareTileView.this,
- getLookupUri(), null, Phone.CONTENT_ITEM_TYPE);
+ if (CompatUtils.hasPrioritizedMimeType()) {
+ QuickContact.showQuickContact(getContext(), PhoneFavoriteSquareTileView.this,
+ getLookupUri(), null, Phone.CONTENT_ITEM_TYPE);
+ } else {
+ QuickContact.showQuickContact(getContext(), PhoneFavoriteSquareTileView.this,
+ getLookupUri(), QuickContact.MODE_LARGE, null);
+ }
}
@Override
@@ -95,6 +101,11 @@ public class PhoneFavoriteSquareTileView extends PhoneFavoriteTileView {
setMeasuredDimension(width, height);
}
+ @Override
+ protected String getNameForView(ContactEntry contactEntry) {
+ return contactEntry.getPreferredDisplayName();
+ }
+
public ContactEntry getContactEntry() {
return mContactEntry;
}
diff --git a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
index e957c8321..77da7e937 100644
--- a/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
+++ b/src/com/android/dialer/list/PhoneFavoritesTileAdapter.java
@@ -38,13 +38,13 @@ import android.util.LongSparseArray;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
-import android.widget.FrameLayout;
import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactTileLoaderFactory;
import com.android.contacts.common.list.ContactEntry;
import com.android.contacts.common.list.ContactTileAdapter.DisplayType;
import com.android.contacts.common.list.ContactTileView;
+import com.android.contacts.common.preference.ContactsPreferences;
import com.android.dialer.R;
import java.util.ArrayList;
@@ -70,6 +70,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
private Context mContext;
private Resources mResources;
+ private ContactsPreferences mContactsPreferences;
/** Contact data stored in cache. This is used to populate the associated view. */
protected ArrayList<ContactEntry> mContactEntries = null;
@@ -92,7 +93,8 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
protected int mIdIndex;
protected int mLookupIndex;
protected int mPhotoUriIndex;
- protected int mNameIndex;
+ protected int mNamePrimaryIndex;
+ protected int mNameAlternativeIndex;
protected int mPresenceIndex;
protected int mStatusIndex;
@@ -124,9 +126,17 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
public int compare(ContactEntry lhs, ContactEntry rhs) {
return ComparisonChain.start()
.compare(lhs.pinned, rhs.pinned)
- .compare(lhs.name, rhs.name)
+ .compare(getPreferredSortName(lhs), getPreferredSortName(rhs))
.result();
}
+
+ private String getPreferredSortName(ContactEntry contactEntry) {
+ if (mContactsPreferences.getSortOrder() == ContactsPreferences.SORT_ORDER_PRIMARY
+ || TextUtils.isEmpty(contactEntry.nameAlternative)) {
+ return contactEntry.namePrimary;
+ }
+ return contactEntry.nameAlternative;
+ }
};
public interface OnDataSetChangedForAnimationListener {
@@ -140,6 +150,7 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
mListener = listener;
mContext = context;
mResources = context.getResources();
+ mContactsPreferences = new ContactsPreferences(mContext);
mNumFrequents = 0;
mContactEntries = new ArrayList<ContactEntry>();
@@ -172,19 +183,26 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
*/
protected void bindColumnIndices() {
mIdIndex = ContactTileLoaderFactory.CONTACT_ID;
- mLookupIndex = ContactTileLoaderFactory.LOOKUP_KEY;
- mPhotoUriIndex = ContactTileLoaderFactory.PHOTO_URI;
- mNameIndex = ContactTileLoaderFactory.DISPLAY_NAME;
+ mNamePrimaryIndex = ContactTileLoaderFactory.DISPLAY_NAME;
+ mNameAlternativeIndex = ContactTileLoaderFactory.DISPLAY_NAME_ALTERNATIVE;
mStarredIndex = ContactTileLoaderFactory.STARRED;
- mPresenceIndex = ContactTileLoaderFactory.CONTACT_PRESENCE;
- mStatusIndex = ContactTileLoaderFactory.CONTACT_STATUS;
-
+ mPhotoUriIndex = ContactTileLoaderFactory.PHOTO_URI;
+ mLookupIndex = ContactTileLoaderFactory.LOOKUP_KEY;
mPhoneNumberIndex = ContactTileLoaderFactory.PHONE_NUMBER;
mPhoneNumberTypeIndex = ContactTileLoaderFactory.PHONE_NUMBER_TYPE;
mPhoneNumberLabelIndex = ContactTileLoaderFactory.PHONE_NUMBER_LABEL;
- mIsDefaultNumberIndex = ContactTileLoaderFactory.IS_DEFAULT_NUMBER;
mPinnedIndex = ContactTileLoaderFactory.PINNED;
mContactIdIndex = ContactTileLoaderFactory.CONTACT_ID_FOR_DATA;
+
+
+ mPresenceIndex = ContactTileLoaderFactory.CONTACT_PRESENCE;
+ mStatusIndex = ContactTileLoaderFactory.CONTACT_STATUS;
+ mIsDefaultNumberIndex = ContactTileLoaderFactory.IS_DEFAULT_NUMBER;
+ }
+
+ public void refreshContactsPreferences() {
+ mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
+ mContactsPreferences.refreshValue(ContactsPreferences.SORT_ORDER_KEY);
}
/**
@@ -261,15 +279,19 @@ public class PhoneFavoritesTileAdapter extends BaseAdapter implements
final String photoUri = cursor.getString(mPhotoUriIndex);
final String lookupKey = cursor.getString(mLookupIndex);
final int pinned = cursor.getInt(mPinnedIndex);
- final String name = cursor.getString(mNameIndex);
+ final String name = cursor.getString(mNamePrimaryIndex);
+ final String nameAlternative = cursor.getString(mNameAlternativeIndex);
final boolean isStarred = cursor.getInt(mStarredIndex) > 0;
final boolean isDefaultNumber = cursor.getInt(mIsDefaultNumberIndex) > 0;
final ContactEntry contact = new ContactEntry();
contact.id = id;
- contact.name = (!TextUtils.isEmpty(name)) ? name :
+ contact.namePrimary = (!TextUtils.isEmpty(name)) ? name :
+ mResources.getString(R.string.missing_name);
+ contact.nameAlternative = (!TextUtils.isEmpty(nameAlternative)) ? nameAlternative :
mResources.getString(R.string.missing_name);
+ contact.nameDisplayOrder = mContactsPreferences.getDisplayOrder();
contact.photoUri = (photoUri != null ? Uri.parse(photoUri) : null);
contact.lookupKey = lookupKey;
contact.lookupUri = ContentUris.withAppendedId(
diff --git a/src/com/android/dialer/list/RegularSearchFragment.java b/src/com/android/dialer/list/RegularSearchFragment.java
index b7e26d690..df18af044 100644
--- a/src/com/android/dialer/list/RegularSearchFragment.java
+++ b/src/com/android/dialer/list/RegularSearchFragment.java
@@ -15,11 +15,11 @@
*/
package com.android.dialer.list;
-import static android.Manifest.permission.ACCESS_FINE_LOCATION;
import static android.Manifest.permission.READ_CONTACTS;
import android.app.Activity;
import android.content.pm.PackageManager;
+import android.support.v13.app.FragmentCompat;
import android.view.LayoutInflater;
import android.view.ViewGroup;
@@ -28,30 +28,34 @@ import com.android.contacts.common.list.PinnedHeaderListView;
import com.android.contacts.common.util.PermissionsUtil;
import com.android.contacts.commonbind.analytics.AnalyticsUtil;
import com.android.dialerbind.ObjectFactory;
+import com.android.incallui.Call.LogState;
import com.android.dialer.R;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.service.CachedNumberLookupService;
import com.android.dialer.widget.EmptyContentView;
import com.android.dialer.widget.EmptyContentView.OnEmptyViewActionButtonClickedListener;
public class RegularSearchFragment extends SearchFragment
- implements OnEmptyViewActionButtonClickedListener {
+ implements OnEmptyViewActionButtonClickedListener,
+ FragmentCompat.OnRequestPermissionsResultCallback {
- private static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
+ public static final int PERMISSION_REQUEST_CODE = 1;
private static final int SEARCH_DIRECTORY_RESULT_LIMIT = 5;
private static final CachedNumberLookupService mCachedNumberLookupService =
ObjectFactory.newCachedNumberLookupService();
- public RegularSearchFragment() {
- configureDirectorySearch();
+ public interface CapabilityChecker {
+ public boolean isNearbyPlacesSearchEnabled();
}
- @Override
- public void onStart() {
- super.onStart();
- AnalyticsUtil.sendScreenView(this);
+ protected String mPermissionToRequest;
+
+ public RegularSearchFragment() {
+ configureDirectorySearch();
}
public void configureDirectorySearch() {
@@ -65,10 +69,12 @@ public class RegularSearchFragment extends SearchFragment
((PinnedHeaderListView) getListView()).setScrollToSectionOnHeaderTouch(true);
}
+ @Override
protected ContactEntryListAdapter createListAdapter() {
RegularSearchListAdapter adapter = new RegularSearchListAdapter(getActivity());
adapter.setDisplayPhotos(true);
adapter.setUseCallableUri(usesCallableUri());
+ adapter.setListener(this);
return adapter;
}
@@ -85,15 +91,29 @@ public class RegularSearchFragment extends SearchFragment
@Override
protected void setupEmptyView() {
if (mEmptyView != null && getActivity() != null) {
+ final int imageResource;
+ final int actionLabelResource;
+ final int descriptionResource;
+ final OnEmptyViewActionButtonClickedListener listener;
if (!PermissionsUtil.hasPermission(getActivity(), READ_CONTACTS)) {
- mEmptyView.setImage(R.drawable.empty_contacts);
- mEmptyView.setActionLabel(R.string.permission_single_turn_on);
- mEmptyView.setDescription(R.string.permission_no_search);
- mEmptyView.setActionClickedListener(this);
+ imageResource = R.drawable.empty_contacts;
+ actionLabelResource = R.string.permission_single_turn_on;
+ descriptionResource = R.string.permission_no_search;
+ listener = this;
+ mPermissionToRequest = READ_CONTACTS;
} else {
- mEmptyView.setImage(EmptyContentView.NO_IMAGE);
- mEmptyView.setActionLabel(EmptyContentView.NO_LABEL);
- mEmptyView.setDescription(EmptyContentView.NO_LABEL);
+ imageResource = EmptyContentView.NO_IMAGE;
+ actionLabelResource = EmptyContentView.NO_LABEL;
+ descriptionResource = EmptyContentView.NO_LABEL;
+ listener = null;
+ mPermissionToRequest = null;
+ }
+
+ mEmptyView.setImage(imageResource);
+ mEmptyView.setActionLabel(actionLabelResource);
+ mEmptyView.setDescription(descriptionResource);
+ if (listener != null) {
+ mEmptyView.setActionClickedListener(listener);
}
}
}
@@ -105,14 +125,27 @@ public class RegularSearchFragment extends SearchFragment
return;
}
- requestPermissions(new String[] {READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
+ if (READ_CONTACTS.equals(mPermissionToRequest)) {
+ FragmentCompat.requestPermissions(this, new String[] {mPermissionToRequest},
+ PERMISSION_REQUEST_CODE);
+ }
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
- if (requestCode == READ_CONTACTS_PERMISSION_REQUEST_CODE) {
+ if (requestCode == PERMISSION_REQUEST_CODE) {
setupEmptyView();
+ if (grantResults != null && grantResults.length == 1
+ && PackageManager.PERMISSION_GRANTED == grantResults[0]) {
+ PermissionsUtil.notifyPermissionGranted(getActivity(), mPermissionToRequest);
+ }
}
}
+
+ @Override
+ protected int getCallInitiationType(boolean isRemoteDirectory) {
+ return isRemoteDirectory ? LogState.INITIATION_REMOTE_DIRECTORY
+ : LogState.INITIATION_REGULAR_SEARCH;
+ }
}
diff --git a/src/com/android/dialer/list/RegularSearchListAdapter.java b/src/com/android/dialer/list/RegularSearchListAdapter.java
index 2be8a1dd7..afc621cf5 100644
--- a/src/com/android/dialer/list/RegularSearchListAdapter.java
+++ b/src/com/android/dialer/list/RegularSearchListAdapter.java
@@ -21,6 +21,8 @@ import android.net.Uri;
import android.text.TextUtils;
import com.android.contacts.common.CallUtil;
+import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.compat.DirectoryCompat;
import com.android.contacts.common.list.DirectoryPartition;
import com.android.contacts.common.util.PhoneNumberHelper;
import com.android.dialer.calllog.ContactInfo;
@@ -31,7 +33,7 @@ import com.android.dialer.service.CachedNumberLookupService.CachedContactInfo;
* List adapter to display regular search results.
*/
public class RegularSearchListAdapter extends DialerPhoneNumberListAdapter {
- private boolean mIsQuerySipAddress;
+ protected boolean mIsQuerySipAddress;
public RegularSearchListAdapter(Context context) {
super(context);
@@ -45,21 +47,33 @@ public class RegularSearchListAdapter extends DialerPhoneNumberListAdapter {
CachedContactInfo cacheInfo = lookupService.buildCachedContactInfo(info);
final Cursor item = (Cursor) getItem(position);
if (item != null) {
+ final DirectoryPartition partition =
+ (DirectoryPartition) getPartition(getPartitionForPosition(position));
+ final long directoryId = partition.getDirectoryId();
+ final boolean isExtendedDirectory = isExtendedDirectory(directoryId);
+
info.name = item.getString(PhoneQuery.DISPLAY_NAME);
info.type = item.getInt(PhoneQuery.PHONE_TYPE);
info.label = item.getString(PhoneQuery.PHONE_LABEL);
info.number = item.getString(PhoneQuery.PHONE_NUMBER);
final String photoUriStr = item.getString(PhoneQuery.PHOTO_URI);
info.photoUri = photoUriStr == null ? null : Uri.parse(photoUriStr);
+ /*
+ * An extended directory is custom directory in the app, but not a directory provided by
+ * framework. So it can't be USER_TYPE_WORK.
+ *
+ * When a search result is selected, RegularSearchFragment calls getContactInfo and
+ * cache the resulting @{link ContactInfo} into local db. Set usertype to USER_TYPE_WORK
+ * only if it's NOT extended directory id and is enterprise directory.
+ */
+ info.userType = !isExtendedDirectory
+ && DirectoryCompat.isEnterpriseDirectoryId(directoryId)
+ ? ContactsUtils.USER_TYPE_WORK : ContactsUtils.USER_TYPE_CURRENT;
cacheInfo.setLookupKey(item.getString(PhoneQuery.LOOKUP_KEY));
- final int partitionIndex = getPartitionForPosition(position);
- final DirectoryPartition partition =
- (DirectoryPartition) getPartition(partitionIndex);
- final long directoryId = partition.getDirectoryId();
final String sourceName = partition.getLabel();
- if (isExtendedDirectory(directoryId)) {
+ if (isExtendedDirectory) {
cacheInfo.setExtendedSource(sourceName, directoryId);
} else {
cacheInfo.setDirectorySource(sourceName, directoryId);
@@ -82,18 +96,22 @@ public class RegularSearchListAdapter extends DialerPhoneNumberListAdapter {
// Don't show actions if the query string contains a letter.
final boolean showNumberShortcuts = !TextUtils.isEmpty(getFormattedQueryString())
&& hasDigitsInQueryString();
- // Email addresses that could be SIP addresses are an exception.
mIsQuerySipAddress = PhoneNumberHelper.isUriNumber(queryString);
+
+ if (isChanged(showNumberShortcuts)) {
+ notifyDataSetChanged();
+ }
+ super.setQueryString(queryString);
+ }
+
+ protected boolean isChanged(boolean showNumberShortcuts) {
boolean changed = false;
changed |= setShortcutEnabled(SHORTCUT_DIRECT_CALL,
showNumberShortcuts || mIsQuerySipAddress);
changed |= setShortcutEnabled(SHORTCUT_SEND_SMS_MESSAGE, showNumberShortcuts);
changed |= setShortcutEnabled(SHORTCUT_MAKE_VIDEO_CALL,
showNumberShortcuts && CallUtil.isVideoEnabled(getContext()));
- if (changed) {
- notifyDataSetChanged();
- }
- super.setQueryString(queryString);
+ return changed;
}
/**
diff --git a/src/com/android/dialer/list/SearchFragment.java b/src/com/android/dialer/list/SearchFragment.java
index 315cfb914..d1a0be0a1 100644
--- a/src/com/android/dialer/list/SearchFragment.java
+++ b/src/com/android/dialer/list/SearchFragment.java
@@ -15,8 +15,6 @@
*/
package com.android.dialer.list;
-import static android.Manifest.permission.READ_CONTACTS;
-
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.animation.AnimatorListenerAdapter;
@@ -25,13 +23,10 @@ import android.app.DialogFragment;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
-import android.net.Uri;
import android.os.Bundle;
-import android.provider.ContactsContract;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
-import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Interpolator;
@@ -47,9 +42,8 @@ import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
import com.android.contacts.common.list.PhoneNumberPickerFragment;
import com.android.contacts.common.util.PermissionsUtil;
import com.android.contacts.common.util.ViewUtil;
-import com.android.contacts.commonbind.analytics.AnalyticsUtil;
-import com.android.dialer.dialpad.DialpadFragment.ErrorDialogFragment;
import com.android.dialer.R;
+import com.android.dialer.dialpad.DialpadFragment.ErrorDialogFragment;
import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.IntentUtil;
import com.android.dialer.widget.EmptyContentView;
@@ -105,8 +99,8 @@ public class SearchFragment extends PhoneNumberPickerFragment {
try {
mActivityScrollListener = (OnListFragmentScrolledListener) activity;
} catch (ClassCastException e) {
- throw new ClassCastException(activity.toString()
- + " must implement OnListFragmentScrolledListener");
+ Log.d(TAG, activity.toString() + " doesn't implement OnListFragmentScrolledListener. " +
+ "Ignoring.");
}
}
@@ -140,10 +134,17 @@ public class SearchFragment extends PhoneNumberPickerFragment {
listView.setBackgroundColor(res.getColor(R.color.background_dialer_results));
listView.setClipToPadding(false);
setVisibleScrollbarEnabled(false);
+
+ //Turn of accessibility live region as the list constantly update itself and spam messages.
+ listView.setAccessibilityLiveRegion(View.ACCESSIBILITY_LIVE_REGION_NONE);
+ ContentChangedFilter.addToParent(listView);
+
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
- mActivityScrollListener.onListFragmentScrollStateChange(scrollState);
+ if (mActivityScrollListener != null) {
+ mActivityScrollListener.onListFragmentScrollStateChange(scrollState);
+ }
}
@Override
@@ -229,6 +230,7 @@ public class SearchFragment extends PhoneNumberPickerFragment {
DialerPhoneNumberListAdapter adapter = new DialerPhoneNumberListAdapter(getActivity());
adapter.setDisplayPhotos(true);
adapter.setUseCallableUri(super.usesCallableUri());
+ adapter.setListener(this);
return adapter;
}
@@ -250,7 +252,8 @@ public class SearchFragment extends PhoneNumberPickerFragment {
number = adapter.getQueryString();
listener = getOnPhoneNumberPickerListener();
if (listener != null && !checkForProhibitedPhoneNumber(number)) {
- listener.onCallNumberDirectly(number);
+ listener.onPickPhoneNumber(number, false /* isVideoCall */,
+ getCallInitiationType(false /* isRemoteDirectory */));
}
break;
case DialerPhoneNumberListAdapter.SHORTCUT_CREATE_NEW_CONTACT:
@@ -275,7 +278,8 @@ public class SearchFragment extends PhoneNumberPickerFragment {
number = adapter.getQueryString();
listener = getOnPhoneNumberPickerListener();
if (listener != null && !checkForProhibitedPhoneNumber(number)) {
- listener.onCallNumberDirectly(number, true /* isVideoCall */);
+ listener.onPickPhoneNumber(number, true /* isVideoCall */,
+ getCallInitiationType(false /* isRemoteDirectory */));
}
break;
}
@@ -289,12 +293,12 @@ public class SearchFragment extends PhoneNumberPickerFragment {
public void updatePosition(boolean animate) {
// Use negative shadow height instead of 0 to account for the 9-patch's shadow.
int startTranslationValue =
- mActivity.isDialpadShown() ? mActionBarHeight - mShadowHeight: -mShadowHeight;
+ mActivity.isDialpadShown() ? mActionBarHeight - mShadowHeight : -mShadowHeight;
int endTranslationValue = 0;
// Prevents ListView from being translated down after a rotation when the ActionBar is up.
if (animate || mActivity.isActionBarShowing()) {
endTranslationValue =
- mActivity.isDialpadShown() ? 0 : mActionBarHeight -mShadowHeight;
+ mActivity.isDialpadShown() ? 0 : mActionBarHeight - mShadowHeight;
}
if (animate) {
// If the dialpad will be shown, then this animation involves sliding the list up.
@@ -353,7 +357,11 @@ public class SearchFragment extends PhoneNumberPickerFragment {
@Override
protected void startLoading() {
- if (PermissionsUtil.hasPermission(getActivity(), READ_CONTACTS)) {
+ if (getActivity() == null) {
+ return;
+ }
+
+ if (PermissionsUtil.hasContactsPermissions(getActivity())) {
super.startLoading();
} else if (TextUtils.isEmpty(getQueryString())) {
// Clear out any existing call shortcuts.
diff --git a/src/com/android/dialer/list/SmartDialSearchFragment.java b/src/com/android/dialer/list/SmartDialSearchFragment.java
index 72d3abf68..fcb61ffe0 100644
--- a/src/com/android/dialer/list/SmartDialSearchFragment.java
+++ b/src/com/android/dialer/list/SmartDialSearchFragment.java
@@ -22,14 +22,18 @@ import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
+import android.support.v13.app.FragmentCompat;
import android.util.Log;
import android.view.View;
import com.android.contacts.common.list.ContactEntryListAdapter;
import com.android.contacts.common.util.PermissionsUtil;
import com.android.dialer.dialpad.SmartDialCursorLoader;
+import com.android.dialer.logging.Logger;
+import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.R;
import com.android.dialer.widget.EmptyContentView;
+import com.android.incallui.Call.LogState;
import java.util.ArrayList;
@@ -37,7 +41,8 @@ import java.util.ArrayList;
* Implements a fragment to load and display SmartDial search results.
*/
public class SmartDialSearchFragment extends SearchFragment
- implements EmptyContentView.OnEmptyViewActionButtonClickedListener {
+ implements EmptyContentView.OnEmptyViewActionButtonClickedListener,
+ FragmentCompat.OnRequestPermissionsResultCallback {
private static final String TAG = SmartDialSearchFragment.class.getSimpleName();
private static final int CALL_PHONE_PERMISSION_REQUEST_CODE = 1;
@@ -52,6 +57,7 @@ public class SmartDialSearchFragment extends SearchFragment
adapter.setQuickContactEnabled(true);
// Set adapter's query string to restore previous instance state.
adapter.setQueryString(getQueryString());
+ adapter.setListener(this);
return adapter;
}
@@ -105,7 +111,8 @@ public class SmartDialSearchFragment extends SearchFragment
return;
}
- requestPermissions(new String[] {CALL_PHONE}, CALL_PHONE_PERMISSION_REQUEST_CODE);
+ FragmentCompat.requestPermissions(this, new String[] {CALL_PHONE},
+ CALL_PHONE_PERMISSION_REQUEST_CODE);
}
@Override
@@ -116,6 +123,11 @@ public class SmartDialSearchFragment extends SearchFragment
}
}
+ @Override
+ protected int getCallInitiationType(boolean isRemoteDirectory) {
+ return LogState.INITIATION_SMART_DIAL;
+ }
+
public boolean isShowingPermissionRequest() {
return mEmptyView != null && mEmptyView.isShowingContent();
}
diff --git a/src/com/android/dialer/list/SpeedDialFragment.java b/src/com/android/dialer/list/SpeedDialFragment.java
index 324caefb6..7e10297d0 100644
--- a/src/com/android/dialer/list/SpeedDialFragment.java
+++ b/src/com/android/dialer/list/SpeedDialFragment.java
@@ -31,6 +31,7 @@ import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
import android.os.Trace;
+import android.support.v13.app.FragmentCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -52,8 +53,8 @@ import com.android.contacts.common.list.ContactTileView;
import com.android.contacts.common.list.OnPhoneNumberPickerActionListener;
import com.android.contacts.common.util.PermissionsUtil;
import com.android.dialer.R;
-import com.android.dialer.util.DialerUtils;
import com.android.dialer.widget.EmptyContentView;
+import com.android.incallui.Call.LogState;
import java.util.ArrayList;
import java.util.HashMap;
@@ -63,7 +64,8 @@ import java.util.HashMap;
*/
public class SpeedDialFragment extends Fragment implements OnItemClickListener,
PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener,
- EmptyContentView.OnEmptyViewActionButtonClickedListener {
+ EmptyContentView.OnEmptyViewActionButtonClickedListener,
+ FragmentCompat.OnRequestPermissionsResultCallback {
private static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
@@ -115,14 +117,16 @@ public class SpeedDialFragment extends Fragment implements OnItemClickListener,
@Override
public void onContactSelected(Uri contactUri, Rect targetRect) {
if (mPhoneNumberPickerActionListener != null) {
- mPhoneNumberPickerActionListener.onPickPhoneNumberAction(contactUri);
+ mPhoneNumberPickerActionListener.onPickDataUri(contactUri,
+ false /* isVideoCall */, LogState.INITIATION_SPEED_DIAL);
}
}
@Override
public void onCallNumberDirectly(String phoneNumber) {
if (mPhoneNumberPickerActionListener != null) {
- mPhoneNumberPickerActionListener.onCallNumberDirectly(phoneNumber);
+ mPhoneNumberPickerActionListener.onPickPhoneNumber(phoneNumber,
+ false /* isVideoCall */, LogState.INITIATION_SPEED_DIAL);
}
}
@@ -200,7 +204,9 @@ public class SpeedDialFragment extends Fragment implements OnItemClickListener,
public void onResume() {
Trace.beginSection(TAG + " onResume");
super.onResume();
-
+ if (mContactTileAdapter != null) {
+ mContactTileAdapter.refreshContactsPreferences();
+ }
if (PermissionsUtil.hasContactsPermissions(getActivity())) {
if (getLoaderManager().getLoader(LOADER_ID_CONTACT_TILE) == null) {
getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null,
@@ -251,6 +257,11 @@ public class SpeedDialFragment extends Fragment implements OnItemClickListener,
mListView.setOnScrollListener(mScrollListener);
mListView.setFastScrollEnabled(false);
mListView.setFastScrollAlwaysVisible(false);
+
+ //prevent content changes of the list from firing accessibility events.
+ mListView.setAccessibilityLiveRegion(View.ACCESSIBILITY_LIVE_REGION_NONE);
+ ContentChangedFilter.addToParent(mListView);
+
Trace.endSection();
return mParentView;
}
@@ -473,7 +484,8 @@ public class SpeedDialFragment extends Fragment implements OnItemClickListener,
}
if (!PermissionsUtil.hasPermission(activity, READ_CONTACTS)) {
- requestPermissions(new String[] {READ_CONTACTS}, READ_CONTACTS_PERMISSION_REQUEST_CODE);
+ FragmentCompat.requestPermissions(this, new String[] {READ_CONTACTS},
+ READ_CONTACTS_PERMISSION_REQUEST_CODE);
} else {
// Switch tabs
((HostInterface) activity).showAllContactsTab();
diff --git a/src/com/android/dialer/logging/InteractionEvent.java b/src/com/android/dialer/logging/InteractionEvent.java
new file mode 100644
index 000000000..88518b47c
--- /dev/null
+++ b/src/com/android/dialer/logging/InteractionEvent.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.logging;
+
+/**
+ * Class holding constants for Dialer interactions
+ */
+public class InteractionEvent {
+
+ public static final int UNKNOWN = 0;
+
+ /**
+ * An incoming call was blocked
+ */
+ public static final int CALL_BLOCKED = 15;
+
+ /**
+ * The user blocked a number from the Call Log screen
+ */
+ public static final int BLOCK_NUMBER_CALL_LOG = 16;
+
+ /**
+ * The user blocked a number from the Call details screen
+ */
+ public static final int BLOCK_NUMBER_CALL_DETAIL = 17;
+
+ /**
+ * The user blocked a number from the Management screen
+ */
+ public static final int BLOCK_NUMBER_MANAGEMENT_SCREEN = 18;
+
+ /**
+ * The user unblocked a number from the Call Log screen
+ */
+ public static final int UNBLOCK_NUMBER_CALL_LOG = 19;
+
+ /**
+ * The user unblocked a number from the Call details screen
+ */
+ public static final int UNBLOCK_NUMBER_CALL_DETAIL = 20;
+
+ /**
+ * The user unblocked a number from the Management screen
+ */
+ public static final int UNBLOCK_NUMBER_MANAGEMENT_SCREEN = 21;
+
+ /**
+ * The user blocked numbers from contacts marked as send to voicemail
+ */
+ public static final int IMPORT_SEND_TO_VOICEMAIL = 22;
+
+ /**
+ * The user blocked a number then undid the block
+ */
+ public static final int UNDO_BLOCK_NUMBER = 23;
+
+ /**
+ * The user unblocked a number then undid the unblock
+ */
+ public static final int UNDO_UNBLOCK_NUMBER = 24;
+
+}
diff --git a/src/com/android/dialer/logging/Logger.java b/src/com/android/dialer/logging/Logger.java
new file mode 100644
index 000000000..25b7268ad
--- /dev/null
+++ b/src/com/android/dialer/logging/Logger.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.logging;
+
+import android.app.Activity;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.contacts.commonbind.analytics.AnalyticsUtil;
+import com.android.dialerbind.ObjectFactory;
+import com.android.incallui.Call;
+
+/**
+ * Single entry point for all logging/analytics-related work for all user interactions.
+ */
+public abstract class Logger {
+ public static final String TAG = "Logger";
+
+ public static Logger getInstance() {
+ return ObjectFactory.getLoggerInstance();
+ }
+
+ /**
+ * Logs a call event. PII like the call's number or caller details should never be logged.
+ *
+ * @param call to log.
+ */
+ public static void logCall(Call call) {
+ final Logger logger = getInstance();
+ if (logger != null) {
+ logger.logCallImpl(call);
+ }
+ }
+
+ /**
+ * Logs an event indicating that a screen was displayed.
+ *
+ * @param screenType integer identifier of the displayed screen
+ * @param activity Parent activity of the displayed screen.
+ */
+ public static void logScreenView(int screenType, Activity activity) {
+ final Logger logger = getInstance();
+ if (logger != null) {
+ logger.logScreenViewImpl(screenType);
+ }
+
+ final String screenName = ScreenEvent.getScreenName(screenType);
+ if (!TextUtils.isEmpty(screenName)) {
+ AnalyticsUtil.sendScreenView(screenName, activity, null);
+ } else {
+ Log.w(TAG, "Unknown screenType: " + screenType);
+ }
+ }
+
+ /**
+ * Logs an interaction that occurred
+ *
+ * @param interaction an integer representing what interaction occurred.
+ * {@see com.android.dialer.logging.InteractionEvent}
+ */
+ public static void logInteraction(int interaction) {
+ final Logger logger = getInstance();
+ if (logger != null) {
+ logger.logInteractionImpl(interaction);
+ }
+ }
+
+ public abstract void logCallImpl(Call call);
+ public abstract void logScreenViewImpl(int screenType);
+ public abstract void logInteractionImpl(int dialerInteraction);
+}
diff --git a/src/com/android/dialer/logging/ScreenEvent.java b/src/com/android/dialer/logging/ScreenEvent.java
new file mode 100644
index 000000000..e0d7b0026
--- /dev/null
+++ b/src/com/android/dialer/logging/ScreenEvent.java
@@ -0,0 +1,172 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.logging;
+
+import android.text.TextUtils;
+
+import com.android.contacts.common.dialog.ClearFrequentsDialog;
+import com.android.contacts.common.interactions.ImportExportDialogFragment;
+import com.android.dialer.calllog.CallLogFragment;
+import com.android.dialer.dialpad.DialpadFragment;
+import com.android.dialer.filterednumber.BlockedNumbersFragment;
+import com.android.dialer.list.AllContactsFragment;
+import com.android.dialer.list.BlockedListSearchFragment;
+import com.android.dialer.list.RegularSearchFragment;
+import com.android.dialer.list.SmartDialSearchFragment;
+import com.android.dialer.list.SpeedDialFragment;
+import com.android.dialer.settings.DialerSettingsActivity;
+import com.android.incallui.AnswerFragment;
+import com.android.incallui.CallCardFragment;
+import com.android.incallui.ConferenceManagerFragment;
+import com.android.incallui.InCallActivity;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Stores constants identifying individual screens/dialogs/fragments in the application, and also
+ * provides a mapping of integer id -> screen name mappings for analytics purposes.
+ */
+public class ScreenEvent {
+ private static final Map<Integer, String> sScreenNameMap = new HashMap<>();
+
+ public static final String FRAGMENT_TAG_SEPARATOR = "#";
+
+ public static final int UNKNOWN = 0;
+
+ // The dialpad in the main Dialer activity
+ public static final int DIALPAD = 1;
+
+ // The speed dial tab in the main Dialer activity
+ public static final int SPEED_DIAL = 2;
+
+ // The recents tab in the main Dialer activity
+ public static final int CALL_LOG = 3;
+
+ // The voicemail tab in the main Dialer activity
+ public static final int VOICEMAIL_LOG = 4;
+
+ // The all contacts tab in the main Dialer activity
+ public static final int ALL_CONTACTS = 5;
+
+ // List of search results returned by typing into the search box.
+ public static final int REGULAR_SEARCH = 6;
+
+ // List of search results returned by typing into the dialpad.
+ public static final int SMART_DIAL_SEARCH = 7;
+
+ // The All and Missed call log tabs in CallLogActivity
+ public static final int CALL_LOG_FILTER = 8;
+
+ // Dialer settings screen.
+ public static final int SETTINGS = 9;
+
+ // The "Import/export contacts" dialog launched via the overflow menu.
+ public static final int IMPORT_EXPORT_CONTACTS = 10;
+
+ // The "Clear frequents" dialog launched via the overflow menu.
+ public static final int CLEAR_FREQUENTS = 11;
+
+ // The "Send feedback" dialog launched via the overflow menu.
+ public static final int SEND_FEEDBACK = 12;
+
+ // The main in call screen that displays caller details and contact photos
+ public static final int INCALL = 13;
+
+ // The screen that displays the glowpad widget (slide right to answer,
+ // slide left to dismiss).
+ public static final int INCOMING_CALL = 14;
+
+ // Conference management fragment displayed for conferences that support
+ // management of individual calls within the conference.
+ public static final int CONFERENCE_MANAGEMENT = 15;
+
+ // The dialpad displayed in-call that is used to send dtmf tones.
+ public static final int INCALL_DIALPAD = 16;
+
+ // Menu options displayed when long pressing on a call log entry.
+ public static final int CALL_LOG_CONTEXT_MENU = 17;
+
+ // Screen displayed to allow the user to see an overview of all blocked
+ // numbers.
+ public static final int BLOCKED_NUMBER_MANAGEMENT = 18;
+
+ // Screen displayed to allow the user to add a new blocked number.
+ public static final int BLOCKED_NUMBER_ADD_NUMBER = 19;
+
+ static {
+ sScreenNameMap.put(ScreenEvent.DIALPAD,
+ getScreenNameWithTag(DialpadFragment.class.getSimpleName(), "Dialer"));
+ sScreenNameMap.put(ScreenEvent.SPEED_DIAL, SpeedDialFragment.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.CALL_LOG,
+ getScreenNameWithTag(CallLogFragment.class.getSimpleName(), "History"));
+ sScreenNameMap.put(ScreenEvent.VOICEMAIL_LOG,
+ getScreenNameWithTag(CallLogFragment.class.getSimpleName(), "Voicemail"));
+ sScreenNameMap.put(ScreenEvent.ALL_CONTACTS, AllContactsFragment.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.REGULAR_SEARCH,
+ RegularSearchFragment.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.SMART_DIAL_SEARCH,
+ SmartDialSearchFragment.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.CALL_LOG_FILTER,
+ getScreenNameWithTag(CallLogFragment.class.getSimpleName(), "Filtered"));
+ sScreenNameMap.put(ScreenEvent.SETTINGS,
+ DialerSettingsActivity.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.IMPORT_EXPORT_CONTACTS,
+ ImportExportDialogFragment.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.CLEAR_FREQUENTS,
+ ClearFrequentsDialog.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.SEND_FEEDBACK, "SendFeedback");
+ sScreenNameMap.put(ScreenEvent.INCALL, InCallActivity.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.INCOMING_CALL, AnswerFragment.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.CONFERENCE_MANAGEMENT,
+ ConferenceManagerFragment.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.INCALL_DIALPAD,
+ getScreenNameWithTag(DialpadFragment.class.getSimpleName(), "InCall"));
+ sScreenNameMap.put(ScreenEvent.CALL_LOG_CONTEXT_MENU, "CallLogContextMenu");
+ sScreenNameMap.put(ScreenEvent.BLOCKED_NUMBER_MANAGEMENT,
+ BlockedNumbersFragment.class.getSimpleName());
+ sScreenNameMap.put(ScreenEvent.BLOCKED_NUMBER_ADD_NUMBER,
+ BlockedListSearchFragment.class.getSimpleName());
+ }
+
+ /**
+ * For a given screen type, returns the actual screen name that is used for logging/analytics
+ * purposes.
+ *
+ * @param screenType unique ID of a type of screen
+ *
+ * @return the tagged version of the screen name corresponding to the provided screenType,
+ * or {@null} if the provided screenType is unknown.
+ */
+ public static String getScreenName(int screenType) {
+ return sScreenNameMap.get(screenType);
+ }
+
+ /**
+ * Build a tagged version of the provided screenName if the tag is non-empty.
+ *
+ * @param screenName Name of the screen.
+ * @param tag Optional tag describing the screen.
+ * @return the unchanged screenName if the tag is {@code null} or empty, the tagged version of
+ * the screenName otherwise.
+ */
+ public static String getScreenNameWithTag(String screenName, String tag) {
+ if (TextUtils.isEmpty(tag)) {
+ return screenName;
+ }
+ return screenName + FRAGMENT_TAG_SEPARATOR + tag;
+ }
+}
diff --git a/src/com/android/dialer/service/SpamButtonRenderer.java b/src/com/android/dialer/service/SpamButtonRenderer.java
new file mode 100644
index 000000000..843bc55d5
--- /dev/null
+++ b/src/com/android/dialer/service/SpamButtonRenderer.java
@@ -0,0 +1,23 @@
+package com.android.dialer.service;
+
+import android.view.View;
+
+import java.util.List;
+
+/**
+ * Interface responsible for rendering spam buttons.
+ */
+public interface SpamButtonRenderer {
+
+ /**
+ * Renders buttons for a phone number.
+ */
+ void render(String number, String countryIso);
+
+ void setCompleteListItemViews(List<View> views);
+
+ void setSpamFilteredViews(List<View> views);
+
+ void setFilteredNumberViews(List<View> views);
+
+}
diff --git a/src/com/android/dialer/settings/DefaultRingtonePreference.java b/src/com/android/dialer/settings/DefaultRingtonePreference.java
index a1743814a..a8a23fddf 100644
--- a/src/com/android/dialer/settings/DefaultRingtonePreference.java
+++ b/src/com/android/dialer/settings/DefaultRingtonePreference.java
@@ -16,17 +16,16 @@
package com.android.dialer.settings;
-import android.app.AppOpsManager;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.preference.RingtonePreference;
-import android.provider.Settings;
import android.util.AttributeSet;
import android.widget.Toast;
import com.android.dialer.R;
+import com.android.dialer.compat.SettingsCompat;
/**
* RingtonePreference which doesn't show default ringtone setting.
@@ -49,7 +48,7 @@ public class DefaultRingtonePreference extends RingtonePreference {
@Override
protected void onSaveRingtone(Uri ringtoneUri) {
- if (!Settings.System.canWrite(getContext())) {
+ if (!SettingsCompat.System.canWrite(getContext())) {
Toast.makeText(
getContext(),
getContext().getResources().getString(R.string.toast_cannot_write_system_settings),
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index c459d35c5..b25c5a6ad 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -1,28 +1,45 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.android.dialer.settings;
-import android.app.AppOpsManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.os.Build;
import android.os.Bundle;
-import android.os.Process;
import android.os.UserManager;
-import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
-import android.util.Log;
import android.view.MenuItem;
import android.widget.Toast;
-import com.android.contacts.common.util.PermissionsUtil;
+import com.android.contacts.common.activity.AppCompatPreferenceActivity;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.compat.SdkVersionOverride;
+import com.android.contacts.common.compat.TelephonyManagerCompat;
import com.android.dialer.R;
+import com.android.dialer.compat.SettingsCompat;
+import com.android.dialer.compat.UserManagerCompat;
+import com.android.dialer.filterednumber.BlockedNumbersSettingsActivity;
import java.util.List;
-public class DialerSettingsActivity extends PreferenceActivity {
-
+public class DialerSettingsActivity extends AppCompatPreferenceActivity {
protected SharedPreferences mPreferences;
@Override
@@ -44,40 +61,51 @@ public class DialerSettingsActivity extends PreferenceActivity {
soundSettingsHeader.id = R.id.settings_header_sounds_and_vibration;
target.add(soundSettingsHeader);
- Header quickResponseSettingsHeader = new Header();
- Intent quickResponseSettingsIntent =
- new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS);
- quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title;
- quickResponseSettingsHeader.intent = quickResponseSettingsIntent;
- target.add(quickResponseSettingsHeader);
+ if (CompatUtils.isMarshmallowCompatible()) {
+ Header quickResponseSettingsHeader = new Header();
+ Intent quickResponseSettingsIntent =
+ new Intent(TelecomManager.ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS);
+ quickResponseSettingsHeader.titleRes = R.string.respond_via_sms_setting_title;
+ quickResponseSettingsHeader.intent = quickResponseSettingsIntent;
+ target.add(quickResponseSettingsHeader);
+ }
TelephonyManager telephonyManager =
(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
- // Only show call setting menus if the current user is the primary/owner user.
- if (isPrimaryUser()) {
- // Show "Call Settings" if there is one SIM and "Phone Accounts" if there are more.
- if (telephonyManager.getPhoneCount() <= 1) {
- Header callSettingsHeader = new Header();
- Intent callSettingsIntent = new Intent(TelecomManager.ACTION_SHOW_CALL_SETTINGS);
- callSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-
- callSettingsHeader.titleRes = R.string.call_settings_label;
- callSettingsHeader.intent = callSettingsIntent;
- target.add(callSettingsHeader);
- } else {
- Header phoneAccountSettingsHeader = new Header();
- Intent phoneAccountSettingsIntent =
- new Intent(TelecomManager.ACTION_CHANGE_PHONE_ACCOUNTS);
- phoneAccountSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
-
- phoneAccountSettingsHeader.titleRes = R.string.phone_account_settings_label;
- phoneAccountSettingsHeader.intent = phoneAccountSettingsIntent;
- target.add(phoneAccountSettingsHeader);
- }
-
- if (telephonyManager.isTtyModeSupported()
- || telephonyManager.isHearingAidCompatibilitySupported()) {
+ // "Call Settings" (full settings) is shown if the current user is primary user and there
+ // is only one SIM. Before N, "Calling accounts" setting is shown if the current user is
+ // primary user and there are multiple SIMs. In N+, "Calling accounts" is shown whenever
+ // "Call Settings" is not shown.
+ boolean isPrimaryUser = isPrimaryUser();
+ if (isPrimaryUser
+ && TelephonyManagerCompat.getPhoneCount(telephonyManager) <= 1) {
+ Header callSettingsHeader = new Header();
+ Intent callSettingsIntent = new Intent(TelecomManager.ACTION_SHOW_CALL_SETTINGS);
+ callSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+
+ callSettingsHeader.titleRes = R.string.call_settings_label;
+ callSettingsHeader.intent = callSettingsIntent;
+ target.add(callSettingsHeader);
+ } else if (android.os.Build.VERSION.CODENAME.startsWith("N") || isPrimaryUser) {
+ Header phoneAccountSettingsHeader = new Header();
+ Intent phoneAccountSettingsIntent =
+ new Intent(TelecomManager.ACTION_CHANGE_PHONE_ACCOUNTS);
+ phoneAccountSettingsIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+
+ phoneAccountSettingsHeader.titleRes = R.string.phone_account_settings_label;
+ phoneAccountSettingsHeader.intent = phoneAccountSettingsIntent;
+ target.add(phoneAccountSettingsHeader);
+ }
+ if (isPrimaryUser) {
+ Header blockedCallsHeader = new Header();
+ blockedCallsHeader.titleRes = R.string.manage_blocked_numbers_label;
+ blockedCallsHeader.intent = new Intent(this, BlockedNumbersSettingsActivity.class);
+ target.add(blockedCallsHeader);
+
+ if (TelephonyManagerCompat.isTtyModeSupported(telephonyManager)
+ || TelephonyManagerCompat
+ .isHearingAidCompatibilitySupported(telephonyManager)) {
Header accessibilitySettingsHeader = new Header();
Intent accessibilitySettingsIntent =
new Intent(TelecomManager.ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS);
@@ -94,7 +122,7 @@ public class DialerSettingsActivity extends PreferenceActivity {
// If we don't have the permission to write to system settings, go to system sound
// settings instead. Otherwise, perform the super implementation (which launches our
// own preference fragment.
- if (!Settings.System.canWrite(this)) {
+ if (!SettingsCompat.System.canWrite(this)) {
Toast.makeText(
this,
getResources().getString(R.string.toast_cannot_write_system_settings),
@@ -116,6 +144,14 @@ public class DialerSettingsActivity extends PreferenceActivity {
}
@Override
+ public void onBackPressed() {
+ if (!isSafeToCommitTransactions()) {
+ return;
+ }
+ super.onBackPressed();
+ }
+
+ @Override
protected boolean isValidFragment(String fragmentName) {
return true;
}
@@ -124,7 +160,6 @@ public class DialerSettingsActivity extends PreferenceActivity {
* @return Whether the current user is the primary user.
*/
private boolean isPrimaryUser() {
- final UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
- return userManager.isSystemUser();
+ return UserManagerCompat.isSystemUser((UserManager) getSystemService(Context.USER_SERVICE));
}
}
diff --git a/src/com/android/dialer/settings/SoundSettingsFragment.java b/src/com/android/dialer/settings/SoundSettingsFragment.java
index 83847004d..59f8798c3 100644
--- a/src/com/android/dialer/settings/SoundSettingsFragment.java
+++ b/src/com/android/dialer/settings/SoundSettingsFragment.java
@@ -16,10 +16,9 @@
package com.android.dialer.settings;
-import android.app.AppOpsManager;
import android.content.Context;
-import android.content.Intent;
import android.media.RingtoneManager;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -32,21 +31,13 @@ import android.preference.PreferenceScreen;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.TelephonyManager;
-import android.view.MenuItem;
import android.widget.Toast;
-import com.android.contacts.common.util.PermissionsUtil;
+import com.android.contacts.common.compat.SdkVersionOverride;
import com.android.dialer.R;
+import com.android.dialer.compat.SettingsCompat;
import com.android.phone.common.util.SettingsUtil;
-import java.lang.Boolean;
-import java.lang.CharSequence;
-import java.lang.Object;
-import java.lang.Override;
-import java.lang.Runnable;
-import java.lang.String;
-import java.lang.Thread;
-
public class SoundSettingsFragment extends PreferenceFragment
implements Preference.OnPreferenceChangeListener {
@@ -88,6 +79,11 @@ public class SoundSettingsFragment extends PreferenceFragment
};
@Override
+ public Context getContext() {
+ return getActivity();
+ }
+
+ @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -115,7 +111,8 @@ public class SoundSettingsFragment extends PreferenceFragment
TelephonyManager telephonyManager =
(TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE);
- if (telephonyManager.canChangeDtmfToneLength()
+ if (SdkVersionOverride.getSdkVersion(Build.VERSION_CODES.M) >= Build.VERSION_CODES.M
+ && telephonyManager.canChangeDtmfToneLength()
&& (telephonyManager.isWorldPhone() || !shouldHideCarrierSettings())) {
mDtmfToneLength.setOnPreferenceChangeListener(this);
mDtmfToneLength.setValueIndex(
@@ -132,7 +129,7 @@ public class SoundSettingsFragment extends PreferenceFragment
public void onResume() {
super.onResume();
- if (!Settings.System.canWrite(getContext())) {
+ if (!SettingsCompat.System.canWrite(getContext())) {
// If the user launches this setting fragment, then toggles the WRITE_SYSTEM_SETTINGS
// AppOp, then close the fragment since there is nothing useful to do.
getActivity().onBackPressed();
@@ -155,7 +152,7 @@ public class SoundSettingsFragment extends PreferenceFragment
*/
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
- if (!Settings.System.canWrite(getContext())) {
+ if (!SettingsCompat.System.canWrite(getContext())) {
// A user shouldn't be able to get here, but this protects against monkey crashes.
Toast.makeText(
getContext(),
@@ -181,7 +178,7 @@ public class SoundSettingsFragment extends PreferenceFragment
*/
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
- if (!Settings.System.canWrite(getContext())) {
+ if (!SettingsCompat.System.canWrite(getContext())) {
Toast.makeText(
getContext(),
getResources().getString(R.string.toast_cannot_write_system_settings),
diff --git a/src/com/android/dialer/util/AppCompatConstants.java b/src/com/android/dialer/util/AppCompatConstants.java
new file mode 100644
index 000000000..0bb78df26
--- /dev/null
+++ b/src/com/android/dialer/util/AppCompatConstants.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.util;
+
+import android.provider.CallLog.Calls;
+
+public final class AppCompatConstants {
+
+ public static final int CALLS_INCOMING_TYPE = Calls.INCOMING_TYPE;
+ public static final int CALLS_OUTGOING_TYPE = Calls.OUTGOING_TYPE;
+ public static final int CALLS_MISSED_TYPE = Calls.MISSED_TYPE;
+ public static final int CALLS_VOICEMAIL_TYPE = Calls.VOICEMAIL_TYPE;
+ // Added to android.provider.CallLog.Calls in N+.
+ public static final int CALLS_REJECTED_TYPE = 5;
+ // Added to android.provider.CallLog.Calls in N+.
+ public static final int CALLS_BLOCKED_TYPE = 6;
+ // Added to android.provider.CallLog.Calls in N+.
+ public static final String POST_DIAL_DIGITS = "post_dial_digits";
+}
diff --git a/src/com/android/dialer/util/DialerUtils.java b/src/com/android/dialer/util/DialerUtils.java
index e25ada59d..95d6a81b6 100644
--- a/src/com/android/dialer/util/DialerUtils.java
+++ b/src/com/android/dialer/util/DialerUtils.java
@@ -33,18 +33,12 @@ import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
-import android.widget.ImageView;
-import android.widget.TextView;
import android.widget.Toast;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.interactions.TouchPointManager;
import com.android.dialer.R;
-import com.android.dialer.widget.EmptyContentView;
-import com.android.incallui.CallCardFragment;
-import com.android.incallui.Log;
-import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@@ -81,13 +75,25 @@ public class DialerUtils {
// All dialer-initiated calls should pass the touch point to the InCallUI
Point touchPoint = TouchPointManager.getInstance().getPoint();
if (touchPoint.x != 0 || touchPoint.y != 0) {
- Bundle extras = new Bundle();
+ Bundle extras;
+ // Make sure to not accidentally clobber any existing extras
+ if (intent.hasExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS)) {
+ extras = intent.getParcelableExtra(
+ TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS);
+ } else {
+ extras = new Bundle();
+ }
extras.putParcelable(TouchPointManager.TOUCH_POINT, touchPoint);
intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, extras);
}
- final TelecomManager tm =
- (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
- tm.placeCall(intent.getData(), intent.getExtras());
+
+ final boolean hasCallPermission = TelecomUtil.placeCall((Activity) context, intent);
+ if (!hasCallPermission) {
+ // TODO: Make calling activity show request permission dialog and handle
+ // callback results appropriately.
+ Toast.makeText(context, "Cannot place call without Phone permission",
+ Toast.LENGTH_SHORT);
+ }
} else {
context.startActivity(intent);
}
diff --git a/src/com/android/dialer/util/IntentUtil.java b/src/com/android/dialer/util/IntentUtil.java
index 2ce3bd1f8..5a4a80bb1 100644
--- a/src/com/android/dialer/util/IntentUtil.java
+++ b/src/com/android/dialer/util/IntentUtil.java
@@ -18,14 +18,13 @@ package com.android.dialer.util;
import android.content.Intent;
import android.net.Uri;
+import android.os.Bundle;
import android.provider.ContactsContract;
-import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
import android.telecom.VideoProfile;
import com.android.contacts.common.CallUtil;
-import com.android.phone.common.PhoneConstants;
/**
* Utilities for creation of intents in Dialer, such as {@link Intent#ACTION_CALL}.
@@ -36,108 +35,65 @@ public class IntentUtil {
private static final String SMS_URI_PREFIX = "sms:";
private static final int NO_PHONE_TYPE = -1;
- /**
- * Return an Intent for making a phone call. Scheme (e.g. tel, sip) will be determined
- * automatically.
- */
- public static Intent getCallIntent(String number) {
- return getCallIntent(number, null, null);
- }
-
- /**
- * Return an Intent for making a phone call. A given Uri will be used as is (without any
- * sanity check).
- */
- public static Intent getCallIntent(Uri uri) {
- return getCallIntent(uri, null, null);
- }
+ public static final String EXTRA_CALL_INITIATION_TYPE
+ = "com.android.dialer.EXTRA_CALL_INITIATION_TYPE";
- /**
- * A variant of {@link #getCallIntent(String)} but also accept a call origin.
- * For more information about call origin, see comments in Phone package (PhoneApp).
- */
- public static Intent getCallIntent(String number, String callOrigin) {
- return getCallIntent(CallUtil.getCallUri(number), callOrigin, null);
- }
+ public static class CallIntentBuilder {
+ private Uri mUri;
+ private int mCallInitiationType;
+ private PhoneAccountHandle mPhoneAccountHandle;
+ private boolean mIsVideoCall = false;
- /**
- * A variant of {@link #getCallIntent(String)} but also include {@code Account}.
- */
- public static Intent getCallIntent(String number, PhoneAccountHandle accountHandle) {
- return getCallIntent(number, null, accountHandle);
- }
-
- /**
- * A variant of {@link #getCallIntent(android.net.Uri)} but also include {@code Account}.
- */
- public static Intent getCallIntent(Uri uri, PhoneAccountHandle accountHandle) {
- return getCallIntent(uri, null, accountHandle);
- }
-
- /**
- * A variant of {@link #getCallIntent(String, String)} but also include {@code Account}.
- */
- public static Intent getCallIntent(
- String number, String callOrigin, PhoneAccountHandle accountHandle) {
- return getCallIntent(CallUtil.getCallUri(number), callOrigin, accountHandle);
- }
+ public CallIntentBuilder(Uri uri) {
+ mUri = uri;
+ }
- /**
- * A variant of {@link #getCallIntent(android.net.Uri)} but also accept a call
- * origin and {@code Account}.
- * For more information about call origin, see comments in Phone package (PhoneApp).
- */
- public static Intent getCallIntent(
- Uri uri, String callOrigin, PhoneAccountHandle accountHandle) {
- return getCallIntent(uri, callOrigin, accountHandle,
- VideoProfile.STATE_AUDIO_ONLY);
- }
+ public CallIntentBuilder(String number) {
+ this(CallUtil.getCallUri(number));
+ }
- /**
- * A variant of {@link #getCallIntent(String, String)} for starting a video call.
- */
- public static Intent getVideoCallIntent(String number, String callOrigin) {
- return getCallIntent(CallUtil.getCallUri(number), callOrigin, null,
- VideoProfile.STATE_BIDIRECTIONAL);
- }
+ public CallIntentBuilder setCallInitiationType(int initiationType) {
+ mCallInitiationType = initiationType;
+ return this;
+ }
- /**
- * A variant of {@link #getCallIntent(String, String, android.telecom.PhoneAccountHandle)} for
- * starting a video call.
- */
- public static Intent getVideoCallIntent(
- String number, String callOrigin, PhoneAccountHandle accountHandle) {
- return getCallIntent(CallUtil.getCallUri(number), callOrigin, accountHandle,
- VideoProfile.STATE_BIDIRECTIONAL);
- }
+ public CallIntentBuilder setPhoneAccountHandle(PhoneAccountHandle accountHandle) {
+ mPhoneAccountHandle = accountHandle;
+ return this;
+ }
- /**
- * A variant of {@link #getCallIntent(String, String, android.telecom.PhoneAccountHandle)} for
- * starting a video call.
- */
- public static Intent getVideoCallIntent(String number, PhoneAccountHandle accountHandle) {
- return getVideoCallIntent(number, null, accountHandle);
- }
+ public CallIntentBuilder setIsVideoCall(boolean isVideoCall) {
+ mIsVideoCall = isVideoCall;
+ return this;
+ }
- /**
- * A variant of {@link #getCallIntent(android.net.Uri)} for calling Voicemail.
- */
- public static Intent getVoicemailIntent() {
- return getCallIntent(Uri.fromParts(PhoneAccount.SCHEME_VOICEMAIL, "", null));
+ public Intent build() {
+ return getCallIntent(
+ mUri,
+ mPhoneAccountHandle,
+ mIsVideoCall ? VideoProfile.STATE_BIDIRECTIONAL : VideoProfile.STATE_AUDIO_ONLY,
+ mCallInitiationType);
+ }
}
/**
- * A variant of {@link #getCallIntent(android.net.Uri)} but also accept a call
- * origin and {@code Account} and {@code VideoCallProfile} state.
- * For more information about call origin, see comments in Phone package (PhoneApp).
+ * Create a call intent that can be used to place a call.
+ *
+ * @param uri Address to place the call to.
+ * @param accountHandle {@link PhoneAccountHandle} to place the call with.
+ * @param videoState Initial video state of the call.
+ * @param callIntiationType The UI affordance the call was initiated by.
+ * @return Call intent with provided extras and data.
*/
public static Intent getCallIntent(
- Uri uri, String callOrigin, PhoneAccountHandle accountHandle, int videoState) {
+ Uri uri, PhoneAccountHandle accountHandle, int videoState, int callIntiationType) {
final Intent intent = new Intent(CALL_ACTION, uri);
intent.putExtra(TelecomManager.EXTRA_START_CALL_WITH_VIDEO_STATE, videoState);
- if (callOrigin != null) {
- intent.putExtra(PhoneConstants.EXTRA_CALL_ORIGIN, callOrigin);
- }
+
+ final Bundle b = new Bundle();
+ b.putInt(EXTRA_CALL_INITIATION_TYPE, callIntiationType);
+ intent.putExtra(TelecomManager.EXTRA_OUTGOING_CALL_EXTRAS, b);
+
if (accountHandle != null) {
intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, accountHandle);
}
diff --git a/src/com/android/dialer/util/MoreStrings.java b/src/com/android/dialer/util/MoreStrings.java
new file mode 100644
index 000000000..68956f25c
--- /dev/null
+++ b/src/com/android/dialer/util/MoreStrings.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.util;
+
+/**
+ * Static utility methods for Strings.
+ */
+public class MoreStrings {
+
+ public static String toSafeString(String value) {
+ if (value == null) {
+ return null;
+ }
+
+ // Do exactly same thing as Uri#toSafeString() does, which will enable us to compare
+ // sanitized phone numbers.
+ final StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < value.length(); i++) {
+ final char c = value.charAt(i);
+ if (c == '-' || c == '@' || c == '.') {
+ builder.append(c);
+ } else {
+ builder.append('x');
+ }
+ }
+ return builder.toString();
+ }
+
+}
diff --git a/src/com/android/dialer/util/PhoneNumberUtil.java b/src/com/android/dialer/util/PhoneNumberUtil.java
index 84f58aa85..33f987359 100644
--- a/src/com/android/dialer/util/PhoneNumberUtil.java
+++ b/src/com/android/dialer/util/PhoneNumberUtil.java
@@ -19,19 +19,24 @@ package com.android.dialer.util;
import android.content.Context;
import android.provider.CallLog;
import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
import com.android.contacts.common.util.PhoneNumberHelper;
+import com.android.contacts.common.util.TelephonyManagerUtils;
import com.google.common.collect.Sets;
+import com.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.Phonenumber;
+import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
public class PhoneNumberUtil {
+ private static final String TAG = "PhoneNumberUtil";
private static final Set<String> LEGACY_UNKNOWN_NUMBERS = Sets.newHashSet("-1", "-2", "-3");
/** Returns true if it is possible to place a call to the given number. */
@@ -49,10 +54,7 @@ public class PhoneNumberUtil {
if (TextUtils.isEmpty(number)) {
return false;
}
-
- final TelecomManager telecomManager =
- (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
- return telecomManager.isVoiceMailNumber(accountHandle, number.toString());
+ return TelecomUtil.isVoicemailNumber(context, accountHandle, number.toString());
}
/**
@@ -92,4 +94,45 @@ public class PhoneNumberUtil {
public static boolean isLegacyUnknownNumbers(CharSequence number) {
return number != null && LEGACY_UNKNOWN_NUMBERS.contains(number.toString());
}
+
+ /**
+ * @return a geographical description string for the specified number.
+ * @see com.android.i18n.phonenumbers.PhoneNumberOfflineGeocoder
+ */
+ public static String getGeoDescription(Context context, String number) {
+ Log.v(TAG, "getGeoDescription('" + pii(number) + "')...");
+
+ if (TextUtils.isEmpty(number)) {
+ return null;
+ }
+
+ com.google.i18n.phonenumbers.PhoneNumberUtil util =
+ com.google.i18n.phonenumbers.PhoneNumberUtil.getInstance();
+ PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
+
+ Locale locale = context.getResources().getConfiguration().locale;
+ String countryIso = TelephonyManagerUtils.getCurrentCountryIso(context, locale);
+ Phonenumber.PhoneNumber pn = null;
+ try {
+ Log.v(TAG, "parsing '" + pii(number)
+ + "' for countryIso '" + countryIso + "'...");
+ pn = util.parse(number, countryIso);
+ Log.v(TAG, "- parsed number: " + pii(pn));
+ } catch (NumberParseException e) {
+ Log.v(TAG, "getGeoDescription: NumberParseException for incoming number '" +
+ pii(number) + "'");
+ }
+
+ if (pn != null) {
+ String description = geocoder.getDescriptionForNumber(pn, locale);
+ Log.v(TAG, "- got description: '" + description + "'");
+ return description;
+ }
+
+ return null;
+ }
+
+ private static String pii(Object pii) {
+ return com.android.incallui.Log.pii(pii);
+ }
}
diff --git a/src/com/android/dialer/util/TelecomUtil.java b/src/com/android/dialer/util/TelecomUtil.java
index 1cd270c9b..bd201c459 100644
--- a/src/com/android/dialer/util/TelecomUtil.java
+++ b/src/com/android/dialer/util/TelecomUtil.java
@@ -17,23 +17,54 @@
package com.android.dialer.util;
import android.Manifest;
+import android.app.Activity;
import android.content.Context;
+import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.provider.CallLog.Calls;
+import android.support.annotation.Nullable;
+import android.support.v4.content.ContextCompat;
+import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
+import android.telephony.PhoneNumberUtils;
+import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
+import com.android.contacts.common.compat.CompatUtils;
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
+import com.android.dialer.compat.DialerCompatUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Performs permission checks before calling into TelecomManager. Each method is self-explanatory -
+ * perform the required check and return the fallback default if the permission is missing,
+ * otherwise return the value from TelecomManager.
+ *
+ */
public class TelecomUtil {
private static final String TAG = "TelecomUtil";
private static boolean sWarningLogged = false;
+ public static void showInCallScreen(Context context, boolean showDialpad) {
+ if (hasReadPhoneStatePermission(context)) {
+ try {
+ getTelecomManager(context).showInCallScreen(showDialpad);
+ } catch (SecurityException e) {
+ // Just in case
+ Log.w(TAG, "TelecomManager.showInCallScreen called without permission.");
+ }
+ }
+ }
+
public static void silenceRinger(Context context) {
if (hasModifyPhoneStatePermission(context)) {
try {
- getTelecomManager(context).silenceRinger();
+ TelecomManagerCompat.silenceRinger(getTelecomManager(context));
} catch (SecurityException e) {
// Just in case
Log.w(TAG, "TelecomManager.silenceRinger called without permission.");
@@ -54,7 +85,8 @@ public class TelecomUtil {
public static Uri getAdnUriForPhoneAccount(Context context, PhoneAccountHandle handle) {
if (hasModifyPhoneStatePermission(context)) {
try {
- return getTelecomManager(context).getAdnUriForPhoneAccount(handle);
+ return TelecomManagerCompat.getAdnUriForPhoneAccount(
+ getTelecomManager(context), handle);
} catch (SecurityException e) {
Log.w(TAG, "TelecomManager.getAdnUriForPhoneAccount called without permission.");
}
@@ -66,11 +98,8 @@ public class TelecomUtil {
PhoneAccountHandle handle) {
if (hasModifyPhoneStatePermission(context)) {
try {
- if (handle == null) {
- return getTelecomManager(context).handleMmi(dialString);
- } else {
- return getTelecomManager(context).handleMmi(dialString, handle);
- }
+ return TelecomManagerCompat.handleMmi(
+ getTelecomManager(context), dialString, handle);
} catch (SecurityException e) {
Log.w(TAG, "TelecomManager.handleMmi called without permission.");
}
@@ -78,6 +107,69 @@ public class TelecomUtil {
return false;
}
+ @Nullable
+ public static PhoneAccountHandle getDefaultOutgoingPhoneAccount(Context context,
+ String uriScheme) {
+ if (hasReadPhoneStatePermission(context)) {
+ return TelecomManagerCompat.getDefaultOutgoingPhoneAccount(
+ getTelecomManager(context), uriScheme);
+ }
+ return null;
+ }
+
+ public static PhoneAccount getPhoneAccount(Context context, PhoneAccountHandle handle) {
+ return TelecomManagerCompat.getPhoneAccount(getTelecomManager(context), handle);
+ }
+
+ public static List<PhoneAccountHandle> getCallCapablePhoneAccounts(Context context) {
+ if (hasReadPhoneStatePermission(context)) {
+ return TelecomManagerCompat.getCallCapablePhoneAccounts(getTelecomManager(context));
+ }
+ return new ArrayList<>();
+ }
+
+ public static boolean isInCall(Context context) {
+ if (hasReadPhoneStatePermission(context)) {
+ return getTelecomManager(context).isInCall();
+ }
+ return false;
+ }
+
+ public static boolean isVoicemailNumber(Context context, PhoneAccountHandle accountHandle,
+ String number) {
+ if (hasReadPhoneStatePermission(context)) {
+ return TelecomManagerCompat.isVoiceMailNumber(getTelecomManager(context),
+ accountHandle, number);
+ }
+ return false;
+ }
+
+ @Nullable
+ public static String getVoicemailNumber(Context context, PhoneAccountHandle accountHandle) {
+ if (hasReadPhoneStatePermission(context)) {
+ return TelecomManagerCompat.getVoiceMailNumber(getTelecomManager(context),
+ getTelephonyManager(context), accountHandle);
+ }
+ return null;
+ }
+
+ /**
+ * Tries to place a call using the {@link TelecomManager}.
+ *
+ * @param activity a valid activity.
+ * @param intent the call intent.
+ *
+ * @return {@code true} if we successfully attempted to place the call, {@code false} if it
+ * failed due to a permission check.
+ */
+ public static boolean placeCall(Activity activity, Intent intent) {
+ if (hasCallPhonePermission(activity)) {
+ TelecomManagerCompat.placeCall(activity, getTelecomManager(activity), intent);
+ return true;
+ }
+ return false;
+ }
+
public static Uri getCallLogUri(Context context) {
return hasReadWriteVoicemailPermissions(context) ? Calls.CONTENT_URI_WITH_VOICEMAIL
: Calls.CONTENT_URI;
@@ -94,14 +186,24 @@ public class TelecomUtil {
|| hasPermission(context, Manifest.permission.MODIFY_PHONE_STATE);
}
+ public static boolean hasReadPhoneStatePermission(Context context) {
+ return isDefaultDialer(context)
+ || hasPermission(context, Manifest.permission.READ_PHONE_STATE);
+ }
+
+ public static boolean hasCallPhonePermission(Context context) {
+ return isDefaultDialer(context)
+ || hasPermission(context, Manifest.permission.CALL_PHONE);
+ }
+
private static boolean hasPermission(Context context, String permission) {
- return context.checkSelfPermission(permission)
+ return ContextCompat.checkSelfPermission(context, permission)
== PackageManager.PERMISSION_GRANTED;
}
public static boolean isDefaultDialer(Context context) {
final boolean result = TextUtils.equals(context.getPackageName(),
- getTelecomManager(context).getDefaultDialerPackage());
+ TelecomManagerCompat.getDefaultDialerPackage(getTelecomManager(context)));
if (result) {
sWarningLogged = false;
} else {
@@ -117,4 +219,8 @@ public class TelecomUtil {
private static TelecomManager getTelecomManager(Context context) {
return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
}
+
+ private static TelephonyManager getTelephonyManager(Context context) {
+ return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ }
}
diff --git a/src/com/android/dialer/voicemail/VisualVoicemailEnabledChecker.java b/src/com/android/dialer/voicemail/VisualVoicemailEnabledChecker.java
new file mode 100644
index 000000000..3134b1486
--- /dev/null
+++ b/src/com/android/dialer/voicemail/VisualVoicemailEnabledChecker.java
@@ -0,0 +1,98 @@
+package com.android.dialer.voicemail;
+
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.database.Cursor;
+import android.preference.PreferenceManager;
+import android.support.annotation.Nullable;
+
+import com.android.dialer.calllog.CallLogQueryHandler;
+
+/**
+ * Helper class to check whether visual voicemail is enabled.
+ *
+ * Call isVisualVoicemailEnabled() to retrieve the result.
+ *
+ * The result is cached and saved in a SharedPreferences, stored as a boolean in
+ * PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER. Every time a new instance is created, it will try to
+ * restore the cached result from the SharedPreferences.
+ *
+ * Call asyncUpdate() to make a CallLogQuery to check the actual status. This is a async call so
+ * isVisualVoicemailEnabled() will not be affected immediately.
+ *
+ * If the status has changed as a result of asyncUpdate(),
+ * Callback.onVisualVoicemailEnabledStatusChanged() will be called with the new value.
+ */
+public class VisualVoicemailEnabledChecker implements CallLogQueryHandler.Listener {
+
+ public static final String PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER =
+ "has_active_voicemail_provider";
+ private SharedPreferences mPrefs;
+ private boolean mHasActiveVoicemailProvider;
+ private CallLogQueryHandler mCallLogQueryHandler;
+ private VoicemailStatusHelper mVoicemailStatusHelper;
+ private Context mContext;
+
+ public interface Callback {
+
+ /**
+ * Callback to notify enabled status has changed to the @param newValue
+ */
+ void onVisualVoicemailEnabledStatusChanged(boolean newValue);
+ }
+
+ private Callback mCallback;
+
+ public VisualVoicemailEnabledChecker(Context context, @Nullable Callback callback) {
+ mContext = context;
+ mCallback = callback;
+ mPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
+ mVoicemailStatusHelper = new VoicemailStatusHelperImpl();
+ mHasActiveVoicemailProvider = mPrefs.getBoolean(PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER,
+ false);
+ }
+
+ /**
+ * @return whether visual voicemail is enabled. Result is cached, call asyncUpdate() to
+ * update the result.
+ */
+ public boolean isVisualVoicemailEnabled() {
+ return mHasActiveVoicemailProvider;
+ }
+
+ /**
+ * Perform an async query into the system to check the status of visual voicemail.
+ * If the status has changed, Callback.onVisualVoicemailEnabledStatusChanged() will be called.
+ */
+ public void asyncUpdate() {
+ mCallLogQueryHandler =
+ new CallLogQueryHandler(mContext, mContext.getContentResolver(), this);
+ mCallLogQueryHandler.fetchVoicemailStatus();
+ }
+
+ @Override
+ public void onVoicemailStatusFetched(Cursor statusCursor) {
+ boolean hasActiveVoicemailProvider =
+ mVoicemailStatusHelper.getNumberActivityVoicemailSources(statusCursor) > 0;
+ if (hasActiveVoicemailProvider != mHasActiveVoicemailProvider) {
+ mHasActiveVoicemailProvider = hasActiveVoicemailProvider;
+ mPrefs.edit().putBoolean(PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER,
+ mHasActiveVoicemailProvider);
+ if (mCallback != null) {
+ mCallback.onVisualVoicemailEnabledStatusChanged(mHasActiveVoicemailProvider);
+ }
+ }
+ }
+
+ @Override
+ public void onVoicemailUnreadCountFetched(Cursor cursor) {
+ // Do nothing
+ }
+
+ @Override
+ public boolean onCallsFetched(Cursor combinedCursor) {
+ // Do nothing
+ return false;
+ }
+}
diff --git a/src/com/android/dialer/voicemail/VoicemailAudioManager.java b/src/com/android/dialer/voicemail/VoicemailAudioManager.java
new file mode 100644
index 000000000..712b20bf1
--- /dev/null
+++ b/src/com/android/dialer/voicemail/VoicemailAudioManager.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.voicemail;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.AudioManager.OnAudioFocusChangeListener;
+import android.util.Log;
+
+import com.android.dialer.compat.CallAudioStateCompat;
+
+import java.util.concurrent.RejectedExecutionException;
+
+/**
+ * This class manages all audio changes for voicemail playback.
+ */
+final class VoicemailAudioManager implements OnAudioFocusChangeListener,
+ WiredHeadsetManager.Listener {
+ private static final String TAG = VoicemailAudioManager.class.getSimpleName();
+
+ public static final int PLAYBACK_STREAM = AudioManager.STREAM_VOICE_CALL;
+
+ private AudioManager mAudioManager;
+ private VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
+ private WiredHeadsetManager mWiredHeadsetManager;
+ private boolean mWasSpeakerOn;
+ private CallAudioStateCompat mCallAudioState;
+
+ public VoicemailAudioManager(Context context,
+ VoicemailPlaybackPresenter voicemailPlaybackPresenter) {
+ mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+ mVoicemailPlaybackPresenter = voicemailPlaybackPresenter;
+ mWiredHeadsetManager = new WiredHeadsetManager(context);
+ mWiredHeadsetManager.setListener(this);
+
+ mCallAudioState = getInitialAudioState();
+ Log.i(TAG, "Initial audioState = " + mCallAudioState);
+ }
+
+ public void requestAudioFocus() {
+ int result = mAudioManager.requestAudioFocus(
+ this,
+ PLAYBACK_STREAM,
+ AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
+ if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
+ throw new RejectedExecutionException("Could not capture audio focus.");
+ }
+ }
+
+ public void abandonAudioFocus() {
+ mAudioManager.abandonAudioFocus(this);
+ }
+
+ @Override
+ public void onAudioFocusChange(int focusChange) {
+ Log.d(TAG, "onAudioFocusChange: focusChange=" + focusChange);
+ mVoicemailPlaybackPresenter.onAudioFocusChange(focusChange == AudioManager.AUDIOFOCUS_GAIN);
+ }
+
+ @Override
+ public void onWiredHeadsetPluggedInChanged(boolean oldIsPluggedIn, boolean newIsPluggedIn) {
+ Log.i(TAG, "wired headset was plugged in changed: " + oldIsPluggedIn
+ + " -> "+ newIsPluggedIn);
+
+ if (oldIsPluggedIn == newIsPluggedIn) {
+ return;
+ }
+
+ int newRoute = mCallAudioState.getRoute(); // start out with existing route
+ if (newIsPluggedIn) {
+ newRoute = CallAudioStateCompat.ROUTE_WIRED_HEADSET;
+ } else {
+ if (mWasSpeakerOn) {
+ newRoute = CallAudioStateCompat.ROUTE_SPEAKER;
+ } else {
+ newRoute = CallAudioStateCompat.ROUTE_EARPIECE;
+ }
+ }
+
+ mVoicemailPlaybackPresenter.setSpeakerphoneOn(newRoute == CallAudioStateCompat.ROUTE_SPEAKER);
+
+ // We need to call this every time even if we do not change the route because the supported
+ // routes changed either to include or not include WIRED_HEADSET.
+ setSystemAudioState(
+ new CallAudioStateCompat(false /* muted */, newRoute, calculateSupportedRoutes()));
+ }
+
+ public void setSpeakerphoneOn(boolean on) {
+ setAudioRoute(on ? CallAudioStateCompat.ROUTE_SPEAKER
+ : CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE);
+ }
+
+ public boolean isWiredHeadsetPluggedIn() {
+ return mWiredHeadsetManager.isPluggedIn();
+ }
+
+ public void registerReceivers() {
+ // Receivers is plural because we expect to add bluetooth support.
+ mWiredHeadsetManager.registerReceiver();
+ }
+
+ public void unregisterReceivers() {
+ mWiredHeadsetManager.unregisterReceiver();
+ }
+
+ /**
+ * Change the audio route, for example from earpiece to speakerphone.
+ *
+ * @param route The new audio route to use. See {@link CallAudioStateCompat}.
+ */
+ void setAudioRoute(int route) {
+ Log.v(TAG, "setAudioRoute, route: " + CallAudioStateCompat.audioRouteToString(route));
+
+ // Change ROUTE_WIRED_OR_EARPIECE to a single entry.
+ int newRoute = selectWiredOrEarpiece(route, mCallAudioState.getSupportedRouteMask());
+
+ // If route is unsupported, do nothing.
+ if ((mCallAudioState.getSupportedRouteMask() | newRoute) == 0) {
+ Log.w(TAG, "Asking to set to a route that is unsupported: " + newRoute);
+ return;
+ }
+
+ if (mCallAudioState.getRoute() != newRoute) {
+ // Remember the new speaker state so it can be restored when the user plugs and unplugs
+ // a headset.
+ mWasSpeakerOn = newRoute == CallAudioStateCompat.ROUTE_SPEAKER;
+ setSystemAudioState(new CallAudioStateCompat(false /* muted */, newRoute,
+ mCallAudioState.getSupportedRouteMask()));
+ }
+ }
+
+ private CallAudioStateCompat getInitialAudioState() {
+ int supportedRouteMask = calculateSupportedRoutes();
+ int route = selectWiredOrEarpiece(CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE,
+ supportedRouteMask);
+ return new CallAudioStateCompat(false /* muted */, route, supportedRouteMask);
+ }
+
+ private int calculateSupportedRoutes() {
+ int routeMask = CallAudioStateCompat.ROUTE_SPEAKER;
+ if (mWiredHeadsetManager.isPluggedIn()) {
+ routeMask |= CallAudioStateCompat.ROUTE_WIRED_HEADSET;
+ } else {
+ routeMask |= CallAudioStateCompat.ROUTE_EARPIECE;
+ }
+ return routeMask;
+ }
+
+ private int selectWiredOrEarpiece(int route, int supportedRouteMask) {
+ // Since they are mutually exclusive and one is ALWAYS valid, we allow a special input of
+ // ROUTE_WIRED_OR_EARPIECE so that callers don't have to make a call to check which is
+ // supported before calling setAudioRoute.
+ if (route == CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE) {
+ route = CallAudioStateCompat.ROUTE_WIRED_OR_EARPIECE & supportedRouteMask;
+ if (route == 0) {
+ Log.wtf(TAG, "One of wired headset or earpiece should always be valid.");
+ // assume earpiece in this case.
+ route = CallAudioStateCompat.ROUTE_EARPIECE;
+ }
+ }
+ return route;
+ }
+
+ private void setSystemAudioState(CallAudioStateCompat callAudioState) {
+ CallAudioStateCompat oldAudioState = mCallAudioState;
+ mCallAudioState = callAudioState;
+
+ Log.i(TAG, "setSystemAudioState: changing from " + oldAudioState + " to "
+ + mCallAudioState);
+
+ // Audio route.
+ if (mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_SPEAKER) {
+ turnOnSpeaker(true);
+ } else if (mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_EARPIECE ||
+ mCallAudioState.getRoute() == CallAudioStateCompat.ROUTE_WIRED_HEADSET) {
+ // Just handle turning off the speaker, the system will handle switching between wired
+ // headset and earpiece.
+ turnOnSpeaker(false);
+ }
+ }
+
+ private void turnOnSpeaker(boolean on) {
+ if (mAudioManager.isSpeakerphoneOn() != on) {
+ Log.i(TAG, "turning speaker phone on: " + on);
+ mAudioManager.setSpeakerphoneOn(on);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java b/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
index 158ed5834..7d72028b1 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackLayout.java
@@ -19,13 +19,16 @@ package com.android.dialer.voicemail;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
+import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Handler;
import android.os.PowerManager;
import android.provider.VoicemailContract;
import android.util.AttributeSet;
import android.util.Log;
+import android.support.design.widget.Snackbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -36,9 +39,11 @@ import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import com.android.common.io.MoreCloseables;
+import com.android.dialer.PhoneCallDetails;
import com.android.dialer.R;
import com.android.dialer.calllog.CallLogAsyncTaskUtil;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import java.util.concurrent.TimeUnit;
@@ -58,8 +63,10 @@ import javax.annotation.concurrent.ThreadSafe;
*/
@NotThreadSafe
public class VoicemailPlaybackLayout extends LinearLayout
- implements VoicemailPlaybackPresenter.PlaybackView {
+ implements VoicemailPlaybackPresenter.PlaybackView,
+ CallLogAsyncTaskUtil.CallLogAsyncTaskListener {
private static final String TAG = VoicemailPlaybackLayout.class.getSimpleName();
+ private static final int VOICEMAIL_DELETE_DELAY_MS = 3000;
/**
* Controls the animation of the playback slider.
@@ -154,7 +161,7 @@ public class VoicemailPlaybackLayout extends LinearLayout
@Override
public void onClick(View v) {
if (mPresenter != null) {
- onSpeakerphoneOn(!mPresenter.isSpeakerphoneOn());
+ mPresenter.toggleSpeakerphone();
}
}
};
@@ -184,8 +191,39 @@ public class VoicemailPlaybackLayout extends LinearLayout
return;
}
mPresenter.pausePlayback();
- CallLogAsyncTaskUtil.deleteVoicemail(mContext, mVoicemailUri, null);
mPresenter.onVoicemailDeleted();
+
+ final Uri deleteUri = mVoicemailUri;
+ final Runnable deleteCallback = new Runnable() {
+ @Override
+ public void run() {
+ if (mVoicemailUri == deleteUri) {
+ CallLogAsyncTaskUtil.deleteVoicemail(mContext, deleteUri,
+ VoicemailPlaybackLayout.this);
+ }
+ }
+ };
+
+ final Handler handler = new Handler();
+ // Add a little buffer time in case the user clicked "undo" at the end of the delay
+ // window.
+ handler.postDelayed(deleteCallback, VOICEMAIL_DELETE_DELAY_MS + 50);
+
+ final int actionTextColor =
+ mContext.getResources().getColor(R.color.dialer_snackbar_action_text_color);
+ Snackbar.make(VoicemailPlaybackLayout.this, R.string.snackbar_voicemail_deleted,
+ Snackbar.LENGTH_LONG)
+ .setDuration(VOICEMAIL_DELETE_DELAY_MS)
+ .setAction(R.string.snackbar_voicemail_deleted_undo,
+ new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ mPresenter.onVoicemailDeleteUndo();
+ handler.removeCallbacks(deleteCallback);
+ }
+ })
+ .setActionTextColor(actionTextColor)
+ .show();
}
};
@@ -204,6 +242,8 @@ public class VoicemailPlaybackLayout extends LinearLayout
private TextView mTotalDurationText;
private PositionUpdater mPositionUpdater;
+ private Drawable mVoicemailSeekHandleEnabled;
+ private Drawable mVoicemailSeekHandleDisabled;
public VoicemailPlaybackLayout(Context context) {
this(context, null);
@@ -240,6 +280,14 @@ public class VoicemailPlaybackLayout extends LinearLayout
mStartStopButton.setOnClickListener(mStartStopButtonListener);
mPlaybackSpeakerphone.setOnClickListener(mSpeakerphoneListener);
mDeleteButton.setOnClickListener(mDeleteButtonListener);
+
+ mPositionText.setText(formatAsMinutesAndSeconds(0));
+ mTotalDurationText.setText(formatAsMinutesAndSeconds(0));
+
+ mVoicemailSeekHandleEnabled = getResources().getDrawable(
+ R.drawable.ic_voicemail_seek_handle, mContext.getTheme());
+ mVoicemailSeekHandleDisabled = getResources().getDrawable(
+ R.drawable.ic_voicemail_seek_handle_disabled, mContext.getTheme());
}
@Override
@@ -248,10 +296,6 @@ public class VoicemailPlaybackLayout extends LinearLayout
mStartStopButton.setImageResource(R.drawable.ic_pause);
- if (mPresenter != null) {
- onSpeakerphoneOn(mPresenter.isSpeakerphoneOn());
- }
-
if (mPositionUpdater != null) {
mPositionUpdater.stopUpdating();
mPositionUpdater = null;
@@ -282,12 +326,8 @@ public class VoicemailPlaybackLayout extends LinearLayout
mStateText.setText(getString(R.string.voicemail_playback_error));
}
-
+ @Override
public void onSpeakerphoneOn(boolean on) {
- if (mPresenter != null) {
- mPresenter.setSpeakerphoneOn(on);
- }
-
if (on) {
mPlaybackSpeakerphone.setImageResource(R.drawable.ic_volume_up_24dp);
// Speaker is now on, tapping button will turn it off.
@@ -317,12 +357,6 @@ public class VoicemailPlaybackLayout extends LinearLayout
}
@Override
- public void setIsBuffering() {
- disableUiElements();
- mStateText.setText(getString(R.string.voicemail_buffering));
- }
-
- @Override
public void setIsFetchingContent() {
disableUiElements();
mStateText.setText(getString(R.string.voicemail_fetching_content));
@@ -330,7 +364,7 @@ public class VoicemailPlaybackLayout extends LinearLayout
@Override
public void setFetchContentTimeout() {
- disableUiElements();
+ mStartStopButton.setEnabled(true);
mStateText.setText(getString(R.string.voicemail_fetching_timout));
}
@@ -342,21 +376,34 @@ public class VoicemailPlaybackLayout extends LinearLayout
@Override
public void disableUiElements() {
mStartStopButton.setEnabled(false);
- mPlaybackSpeakerphone.setEnabled(false);
- mPlaybackSeek.setProgress(0);
- mPlaybackSeek.setEnabled(false);
-
- mPositionText.setText(formatAsMinutesAndSeconds(0));
- mTotalDurationText.setText(formatAsMinutesAndSeconds(0));
+ resetSeekBar();
}
@Override
public void enableUiElements() {
mStartStopButton.setEnabled(true);
- mPlaybackSpeakerphone.setEnabled(true);
mPlaybackSeek.setEnabled(true);
+ mPlaybackSeek.setThumb(mVoicemailSeekHandleEnabled);
+ }
+
+ @Override
+ public void resetSeekBar() {
+ mPlaybackSeek.setProgress(0);
+ mPlaybackSeek.setEnabled(false);
+ mPlaybackSeek.setThumb(mVoicemailSeekHandleDisabled);
}
+ @Override
+ public void onDeleteCall() {}
+
+ @Override
+ public void onDeleteVoicemail() {
+ mPresenter.onVoicemailDeletedInDatabase();
+ }
+
+ @Override
+ public void onGetCallDetails(PhoneCallDetails[] details) {}
+
private String getString(int resId) {
return mContext.getString(resId);
}
@@ -376,4 +423,9 @@ public class VoicemailPlaybackLayout extends LinearLayout
}
return String.format("%02d:%02d", minutes, seconds);
}
+
+ @VisibleForTesting
+ public String getStateText() {
+ return mStateText.getText().toString();
+ }
}
diff --git a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
index ed6cc8b43..93ff00270 100644
--- a/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
+++ b/src/com/android/dialer/voicemail/VoicemailPlaybackPresenter.java
@@ -23,7 +23,6 @@ import android.content.Intent;
import android.database.ContentObserver;
import android.database.Cursor;
import android.media.AudioManager;
-import android.media.AudioManager.OnAudioFocusChangeListener;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.AsyncTask;
@@ -39,7 +38,6 @@ import android.widget.SeekBar;
import com.android.dialer.R;
import com.android.dialer.util.AsyncTaskExecutor;
import com.android.dialer.util.AsyncTaskExecutors;
-
import com.android.common.io.MoreCloseables;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
@@ -48,7 +46,6 @@ import java.io.IOException;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.RejectedExecutionException;
-import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -62,7 +59,7 @@ import javax.annotation.concurrent.ThreadSafe;
* {@link CallLogFragment} and {@link CallLogAdapter}.
* <p>
* This controls a single {@link com.android.dialer.voicemail.VoicemailPlaybackLayout}. A single
- * instance can be reused for different such layouts, using {@link #setVoicemailPlaybackView}. This
+ * instance can be reused for different such layouts, using {@link #setPlaybackView}. This
* is to facilitate reuse across different voicemail call log entries.
* <p>
* This class is not thread safe. The thread policy for this class is thread-confinement, all calls
@@ -70,8 +67,7 @@ import javax.annotation.concurrent.ThreadSafe;
*/
@NotThreadSafe
@VisibleForTesting
-public class VoicemailPlaybackPresenter
- implements OnAudioFocusChangeListener, MediaPlayer.OnPreparedListener,
+public class VoicemailPlaybackPresenter implements MediaPlayer.OnPreparedListener,
MediaPlayer.OnCompletionListener, MediaPlayer.OnErrorListener {
private static final String TAG = VoicemailPlaybackPresenter.class.getSimpleName();
@@ -87,13 +83,15 @@ public class VoicemailPlaybackPresenter
void onSpeakerphoneOn(boolean on);
void setClipPosition(int clipPositionInMillis, int clipLengthInMillis);
void setFetchContentTimeout();
- void setIsBuffering();
void setIsFetchingContent();
void setPresenter(VoicemailPlaybackPresenter presenter, Uri voicemailUri);
+ void resetSeekBar();
}
public interface OnVoicemailDeletedListener {
void onVoicemailDeleted(Uri uri);
+ void onVoicemailDeleteUndo();
+ void onVoicemailDeletedInDatabase();
}
/** The enumeration of {@link AsyncTask} objects we use in this class. */
@@ -104,9 +102,9 @@ public class VoicemailPlaybackPresenter
private static final String[] HAS_CONTENT_PROJECTION = new String[] {
VoicemailContract.Voicemails.HAS_CONTENT,
+ VoicemailContract.Voicemails.DURATION
};
- public static final int PLAYBACK_STREAM = AudioManager.STREAM_VOICE_CALL;
private static final int NUMBER_OF_THREADS_IN_POOL = 2;
// Time to wait for content to be fetched before timing out.
private static final long FETCH_CONTENT_TIMEOUT_MS = 20000;
@@ -121,6 +119,8 @@ public class VoicemailPlaybackPresenter
// If present in the saved instance bundle, indicates where to set the playback slider.
private static final String CLIP_POSITION_KEY =
VoicemailPlaybackPresenter.class.getName() + ".CLIP_POSITION_KEY";
+ private static final String IS_SPEAKERPHONE_ON_KEY =
+ VoicemailPlaybackPresenter.class.getName() + ".IS_SPEAKER_PHONE_ON";
/**
* The most recently cached duration. We cache this since we don't want to keep requesting it
@@ -142,6 +142,7 @@ public class VoicemailPlaybackPresenter
// MediaPlayer crashes on some method calls if not prepared but does not have a method which
// exposes its prepared state. Store this locally, so we can check and prevent crashes.
private boolean mIsPrepared;
+ private boolean mIsSpeakerphoneOn;
private boolean mShouldResumePlaybackAfterSeeking;
private int mInitialOrientation;
@@ -157,7 +158,7 @@ public class VoicemailPlaybackPresenter
private FetchResultHandler mFetchResultHandler;
private Handler mHandler = new Handler();
private PowerManager.WakeLock mProximityWakeLock;
- private AudioManager mAudioManager;
+ private VoicemailAudioManager mVoicemailAudioManager;
private OnVoicemailDeletedListener mOnVoicemailDeletedListener;
@@ -186,7 +187,7 @@ public class VoicemailPlaybackPresenter
private VoicemailPlaybackPresenter(Activity activity) {
Context context = activity.getApplicationContext();
mAsyncTaskExecutor = AsyncTaskExecutors.createAsyncTaskExecutor();
- mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+ mVoicemailAudioManager = new VoicemailAudioManager(context, this);
PowerManager powerManager =
(PowerManager) context.getSystemService(Context.POWER_SERVICE);
@@ -204,7 +205,7 @@ public class VoicemailPlaybackPresenter
mContext = activity;
mInitialOrientation = mContext.getResources().getConfiguration().orientation;
- mActivity.setVolumeControlStream(VoicemailPlaybackPresenter.PLAYBACK_STREAM);
+ mActivity.setVolumeControlStream(VoicemailAudioManager.PLAYBACK_STREAM);
if (savedInstanceState != null) {
// Restores playback state when activity is recreated, such as after rotation.
@@ -212,6 +213,7 @@ public class VoicemailPlaybackPresenter
mIsPrepared = savedInstanceState.getBoolean(IS_PREPARED_KEY);
mPosition = savedInstanceState.getInt(CLIP_POSITION_KEY, 0);
mIsPlaying = savedInstanceState.getBoolean(IS_PLAYING_STATE_KEY, false);
+ mIsSpeakerphoneOn = savedInstanceState.getBoolean(IS_SPEAKERPHONE_ON_KEY, false);
}
if (mMediaPlayer == null) {
@@ -229,6 +231,7 @@ public class VoicemailPlaybackPresenter
outState.putBoolean(IS_PREPARED_KEY, mIsPrepared);
outState.putInt(CLIP_POSITION_KEY, mView.getDesiredClipPosition());
outState.putBoolean(IS_PLAYING_STATE_KEY, mIsPlaying);
+ outState.putBoolean(IS_SPEAKERPHONE_ON_KEY, mIsSpeakerphoneOn);
}
}
@@ -240,28 +243,34 @@ public class VoicemailPlaybackPresenter
mView = view;
mView.setPresenter(this, voicemailUri);
- if (mMediaPlayer != null && voicemailUri.equals(mVoicemailUri)) {
- // Handles case where MediaPlayer was retained after an orientation change.
+ // Handles cases where the same entry is binded again when scrolling in list, or where
+ // the MediaPlayer was retained after an orientation change.
+ if (mMediaPlayer != null && mIsPrepared && voicemailUri.equals(mVoicemailUri)) {
+ // If the voicemail card was rebinded, we need to set the position to the appropriate
+ // point. Since we retain the media player, we can just set it to the position of the
+ // media player.
+ mPosition = mMediaPlayer.getCurrentPosition();
onPrepared(mMediaPlayer);
- mView.onSpeakerphoneOn(isSpeakerphoneOn());
} else {
if (!voicemailUri.equals(mVoicemailUri)) {
+ mVoicemailUri = voicemailUri;
mPosition = 0;
+ // Default to earpiece.
+ setSpeakerphoneOn(false);
+ mVoicemailAudioManager.setSpeakerphoneOn(false);
+ } else {
+ // Update the view to the current speakerphone state.
+ mView.onSpeakerphoneOn(mIsSpeakerphoneOn);
}
- mVoicemailUri = voicemailUri;
- mDuration.set(0);
+ checkForContent();
if (startPlayingImmediately) {
// Since setPlaybackView can get called during the view binding process, we don't
// want to reset mIsPlaying to false if the user is currently playing the
// voicemail and the view is rebound.
mIsPlaying = startPlayingImmediately;
- checkForContent();
}
-
- // Default to earpiece.
- mView.onSpeakerphoneOn(false);
}
}
@@ -269,16 +278,20 @@ public class VoicemailPlaybackPresenter
* Reset the presenter for playback back to its original state.
*/
public void resetAll() {
- reset();
+ pausePresenter(true);
mView = null;
mVoicemailUri = null;
}
/**
- * Reset the presenter such that it is as if the voicemail has not been played.
+ * When navigating away from voicemail playback, we need to release the media player,
+ * pause the UI and save the position.
+ *
+ * @param reset {@code true} if we want to reset the position of the playback, {@code false} if
+ * we want to retain the current position (in case we return to the voicemail).
*/
- public void reset() {
+ public void pausePresenter(boolean reset) {
if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer = null;
@@ -288,19 +301,35 @@ public class VoicemailPlaybackPresenter
mIsPrepared = false;
mIsPlaying = false;
- mPosition = 0;
- mDuration.set(0);
+
+ if (reset) {
+ // We want to reset the position whether or not the view is valid.
+ mPosition = 0;
+ }
if (mView != null) {
mView.onPlaybackStopped();
- mView.setClipPosition(0, mDuration.get());
+ if (reset) {
+ mView.setClipPosition(0, mDuration.get());
+ } else {
+ mPosition = mView.getDesiredClipPosition();
+ }
}
}
/**
+ * Must be invoked when the parent activity is resumed.
+ */
+ public void onResume() {
+ mVoicemailAudioManager.registerReceivers();
+ }
+
+ /**
* Must be invoked when the parent activity is paused.
*/
public void onPause() {
+ mVoicemailAudioManager.unregisterReceivers();
+
if (mContext != null && mIsPrepared
&& mInitialOrientation != mContext.getResources().getConfiguration().orientation) {
// If an orientation change triggers the pause, retain the MediaPlayer.
@@ -309,11 +338,12 @@ public class VoicemailPlaybackPresenter
}
// Release the media player, otherwise there may be failures.
- reset();
+ pausePresenter(false);
if (mActivity != null) {
mActivity.getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
}
+
}
/**
@@ -342,11 +372,10 @@ public class VoicemailPlaybackPresenter
* voicemail we've been asked to play has any content available.
* <p>
* Notify the user that we are fetching the content, then check to see if the content field in
- * the DB is set. If set, we proceed to {@link #prepareContent()} method. If not set, make
- * a request to fetch the content asynchronously via {@link #requestContent()}.
+ * the DB is set. If set, we proceed to {@link #prepareContent()} method. We get the duration of
+ * the voicemail from the query and set it if the content is not available.
*/
private void checkForContent() {
- mView.setIsFetchingContent();
mAsyncTaskExecutor.submit(Tasks.CHECK_FOR_CONTENT, new AsyncTask<Void, Void, Boolean>() {
@Override
public Boolean doInBackground(Void... params) {
@@ -357,8 +386,9 @@ public class VoicemailPlaybackPresenter
public void onPostExecute(Boolean hasContent) {
if (hasContent) {
prepareContent();
- } else {
- requestContent();
+ } else if (mView != null) {
+ mView.resetSeekBar();
+ mView.setClipPosition(0, mDuration.get());
}
}
});
@@ -371,10 +401,14 @@ public class VoicemailPlaybackPresenter
ContentResolver contentResolver = mContext.getContentResolver();
Cursor cursor = contentResolver.query(
- voicemailUri, HAS_CONTENT_PROJECTION, null, null, null);
+ voicemailUri, null, null, null, null);
try {
if (cursor != null && cursor.moveToNext()) {
- return cursor.getInt(cursor.getColumnIndexOrThrow(
+ int duration = cursor.getInt(cursor.getColumnIndex(
+ VoicemailContract.Voicemails.DURATION));
+ // Convert database duration (seconds) into mDuration (milliseconds)
+ mDuration.set(duration > 0 ? duration * 1000 : 0);
+ return cursor.getInt(cursor.getColumnIndex(
VoicemailContract.Voicemails.HAS_CONTENT)) == 1;
}
} finally {
@@ -395,17 +429,26 @@ public class VoicemailPlaybackPresenter
* proceed to {@link #prepareContent()}. If the has_content field does not
* become true within the allowed time, we will update the ui to reflect the fact that content
* was not available.
+ *
+ * @return whether issued request to fetch content
*/
- private void requestContent() {
+ private boolean requestContent() {
+ if (mContext == null || mVoicemailUri == null) {
+ return false;
+ }
+
if (mFetchResultHandler != null) {
mFetchResultHandler.destroy();
}
mFetchResultHandler = new FetchResultHandler(new Handler(), mVoicemailUri);
+ mView.setIsFetchingContent();
+
// Send voicemail fetch request.
Intent intent = new Intent(VoicemailContract.ACTION_FETCH_VOICEMAIL, mVoicemailUri);
mContext.sendBroadcast(intent);
+ return true;
}
@ThreadSafe
@@ -485,7 +528,7 @@ public class VoicemailPlaybackPresenter
mMediaPlayer = null;
}
- mView.setIsBuffering();
+ mView.disableUiElements();
mIsPrepared = false;
try {
@@ -496,7 +539,7 @@ public class VoicemailPlaybackPresenter
mMediaPlayer.reset();
mMediaPlayer.setDataSource(mContext, mVoicemailUri);
- mMediaPlayer.setAudioStreamType(PLAYBACK_STREAM);
+ mMediaPlayer.setAudioStreamType(VoicemailAudioManager.PLAYBACK_STREAM);
mMediaPlayer.prepareAsync();
} catch (IOException e) {
handleError(e);
@@ -515,11 +558,10 @@ public class VoicemailPlaybackPresenter
mIsPrepared = true;
mDuration.set(mMediaPlayer.getDuration());
- mPosition = mMediaPlayer.getCurrentPosition();
- mView.enableUiElements();
Log.d(TAG, "onPrepared: mPosition=" + mPosition);
mView.setClipPosition(mPosition, mDuration.get());
+ mView.enableUiElements();
mMediaPlayer.seekTo(mPosition);
if (mIsPlaying) {
@@ -570,15 +612,22 @@ public class VoicemailPlaybackPresenter
}
}
- @Override
- public void onAudioFocusChange(int focusChange) {
- Log.d(TAG, "onAudioFocusChange: focusChange=" + focusChange);
- boolean lostFocus = focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT
- || focusChange == AudioManager.AUDIOFOCUS_LOSS;
- if (mIsPlaying && focusChange == AudioManager.AUDIOFOCUS_LOSS) {
- pausePlayback();
- } else if (!mIsPlaying && focusChange == AudioManager.AUDIOFOCUS_GAIN) {
+ /**
+ * Only play voicemail when audio focus is granted. When it is lost (usually by another
+ * application requesting focus), pause playback.
+ *
+ * @param gainedFocus {@code true} if the audio focus was gained, {@code} false otherwise.
+ */
+ public void onAudioFocusChange(boolean gainedFocus) {
+ if (mIsPlaying == gainedFocus) {
+ // Nothing new here, just exit.
+ return;
+ }
+
+ if (!mIsPlaying) {
resumePlayback();
+ } else {
+ pausePlayback();
}
}
@@ -587,15 +636,13 @@ public class VoicemailPlaybackPresenter
* playing.
*/
public void resumePlayback() {
- if (mView == null || mContext == null) {
+ if (mView == null) {
return;
}
if (!mIsPrepared) {
// If we haven't downloaded the voicemail yet, attempt to download it.
- checkForContent();
- mIsPlaying = true;
-
+ mIsPlaying = requestContent();
return;
}
@@ -604,20 +651,15 @@ public class VoicemailPlaybackPresenter
if (mMediaPlayer != null && !mMediaPlayer.isPlaying()) {
// Clamp the start position between 0 and the duration.
mPosition = Math.max(0, Math.min(mPosition, mDuration.get()));
+
mMediaPlayer.seekTo(mPosition);
try {
// Grab audio focus.
- int result = mAudioManager.requestAudioFocus(
- this,
- PLAYBACK_STREAM,
- AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
- if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
- throw new RejectedExecutionException("Could not capture audio focus.");
- }
-
// Can throw RejectedExecutionException.
+ mVoicemailAudioManager.requestAudioFocus();
mMediaPlayer.start();
+ setSpeakerphoneOn(mIsSpeakerphoneOn);
} catch (RejectedExecutionException e) {
handleError(e);
}
@@ -625,11 +667,6 @@ public class VoicemailPlaybackPresenter
Log.d(TAG, "Resumed playback at " + mPosition + ".");
mView.onPlaybackStarted(mDuration.get(), getScheduledExecutorServiceInstance());
- if (isSpeakerphoneOn()) {
- mActivity.getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
- } else {
- enableProximitySensor();
- }
}
/**
@@ -653,7 +690,8 @@ public class VoicemailPlaybackPresenter
if (mView != null) {
mView.onPlaybackStopped();
}
- mAudioManager.abandonAudioFocus(this);
+
+ mVoicemailAudioManager.abandonAudioFocus();
if (mActivity != null) {
mActivity.getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
@@ -681,7 +719,7 @@ public class VoicemailPlaybackPresenter
}
private void enableProximitySensor() {
- if (mProximityWakeLock == null || isSpeakerphoneOn() || !mIsPrepared
+ if (mProximityWakeLock == null || mIsSpeakerphoneOn || !mIsPrepared
|| mMediaPlayer == null || !mMediaPlayer.isPlaying()) {
return;
}
@@ -707,26 +745,46 @@ public class VoicemailPlaybackPresenter
}
}
+ /**
+ * This is for use by UI interactions only. It simplifies UI logic.
+ */
+ public void toggleSpeakerphone() {
+ mVoicemailAudioManager.setSpeakerphoneOn(!mIsSpeakerphoneOn);
+ setSpeakerphoneOn(!mIsSpeakerphoneOn);
+ }
+
+ /**
+ * This method only handles app-level changes to the speakerphone. Audio layer changes should
+ * be handled separately. This is so that the VoicemailAudioManager can trigger changes to
+ * the presenter without the presenter triggering the audio manager and duplicating actions.
+ */
public void setSpeakerphoneOn(boolean on) {
- mAudioManager.setSpeakerphoneOn(on);
+ if (mView == null) {
+ return;
+ }
- if (on) {
- disableProximitySensor(false /* waitForFarState */);
- if (mIsPrepared && mMediaPlayer != null && mMediaPlayer.isPlaying()) {
- mActivity.getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
- }
- } else {
- enableProximitySensor();
- if (mActivity != null) {
- mActivity.getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
+ mView.onSpeakerphoneOn(on);
+
+ mIsSpeakerphoneOn = on;
+
+ // This should run even if speakerphone is not being toggled because we may be switching
+ // from earpiece to headphone and vise versa. Also upon initial setup the default audio
+ // source is the earpiece, so we want to trigger the proximity sensor.
+ if (mIsPlaying) {
+ if (on || mVoicemailAudioManager.isWiredHeadsetPluggedIn()) {
+ disableProximitySensor(false /* waitForFarState */);
+ if (mIsPrepared && mMediaPlayer != null && mMediaPlayer.isPlaying()) {
+ mActivity.getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
+ }
+ } else {
+ enableProximitySensor();
+ if (mActivity != null) {
+ mActivity.getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
+ }
}
}
}
- public boolean isSpeakerphoneOn() {
- return mAudioManager.isSpeakerphoneOn();
- }
-
public void setOnVoicemailDeletedListener(OnVoicemailDeletedListener listener) {
mOnVoicemailDeletedListener = listener;
}
@@ -736,12 +794,26 @@ public class VoicemailPlaybackPresenter
}
/* package */ void onVoicemailDeleted() {
- // Trampoline the event notification to the interested listener
+ // Trampoline the event notification to the interested listener.
if (mOnVoicemailDeletedListener != null) {
mOnVoicemailDeletedListener.onVoicemailDeleted(mVoicemailUri);
}
}
+ /* package */ void onVoicemailDeleteUndo() {
+ // Trampoline the event notification to the interested listener.
+ if (mOnVoicemailDeletedListener != null) {
+ mOnVoicemailDeletedListener.onVoicemailDeleteUndo();
+ }
+ }
+
+ /* package */ void onVoicemailDeletedInDatabase() {
+ // Trampoline the event notification to the interested listener.
+ if (mOnVoicemailDeletedListener != null) {
+ mOnVoicemailDeletedListener.onVoicemailDeletedInDatabase();
+ }
+ }
+
private static synchronized ScheduledExecutorService getScheduledExecutorServiceInstance() {
if (mScheduledExecutorService == null) {
mScheduledExecutorService = Executors.newScheduledThreadPool(NUMBER_OF_THREADS_IN_POOL);
@@ -753,4 +825,14 @@ public class VoicemailPlaybackPresenter
public boolean isPlaying() {
return mIsPlaying;
}
+
+ @VisibleForTesting
+ public boolean isSpeakerphoneOn() {
+ return mIsSpeakerphoneOn;
+ }
+
+ @VisibleForTesting
+ public void clearInstance() {
+ sInstance = null;
+ }
}
diff --git a/src/com/android/dialer/voicemail/WiredHeadsetManager.java b/src/com/android/dialer/voicemail/WiredHeadsetManager.java
new file mode 100644
index 000000000..7351f4f01
--- /dev/null
+++ b/src/com/android/dialer/voicemail/WiredHeadsetManager.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.voicemail;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.media.AudioManager;
+import android.util.Log;
+
+/** Listens for and caches headset state. */
+class WiredHeadsetManager {
+ private static final String TAG = WiredHeadsetManager.class.getSimpleName();
+
+ interface Listener {
+ void onWiredHeadsetPluggedInChanged(boolean oldIsPluggedIn, boolean newIsPluggedIn);
+ }
+
+ /** Receiver for wired headset plugged and unplugged events. */
+ private class WiredHeadsetBroadcastReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (AudioManager.ACTION_HEADSET_PLUG.equals(intent.getAction())) {
+ boolean isPluggedIn = intent.getIntExtra("state", 0) == 1;
+ Log.v(TAG, "ACTION_HEADSET_PLUG event, plugged in: " + isPluggedIn);
+ onHeadsetPluggedInChanged(isPluggedIn);
+ }
+ }
+ }
+
+ private final WiredHeadsetBroadcastReceiver mReceiver;
+ private boolean mIsPluggedIn;
+ private Listener mListener;
+ private Context mContext;
+
+ WiredHeadsetManager(Context context) {
+ mContext = context;
+ mReceiver = new WiredHeadsetBroadcastReceiver();
+
+ AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+ mIsPluggedIn = audioManager.isWiredHeadsetOn();
+
+ }
+
+ void setListener(Listener listener) {
+ mListener = listener;
+ }
+
+ boolean isPluggedIn() {
+ return mIsPluggedIn;
+ }
+
+ void registerReceiver() {
+ // Register for misc other intent broadcasts.
+ IntentFilter intentFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
+ mContext.registerReceiver(mReceiver, intentFilter);
+ }
+
+ void unregisterReceiver() {
+ mContext.unregisterReceiver(mReceiver);
+ }
+
+ private void onHeadsetPluggedInChanged(boolean isPluggedIn) {
+ if (mIsPluggedIn != isPluggedIn) {
+ Log.v(TAG, "onHeadsetPluggedInChanged, mIsPluggedIn: " + mIsPluggedIn + " -> "
+ + isPluggedIn);
+ boolean oldIsPluggedIn = mIsPluggedIn;
+ mIsPluggedIn = isPluggedIn;
+ if (mListener != null) {
+ mListener.onWiredHeadsetPluggedInChanged(oldIsPluggedIn, mIsPluggedIn);
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/src/com/android/dialer/widget/ActionBarController.java b/src/com/android/dialer/widget/ActionBarController.java
index b9923d186..edf57b163 100644
--- a/src/com/android/dialer/widget/ActionBarController.java
+++ b/src/com/android/dialer/widget/ActionBarController.java
@@ -1,15 +1,28 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.android.dialer.widget;
import com.google.common.annotations.VisibleForTesting;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
-import android.app.ActionBar;
import android.os.Bundle;
import android.util.Log;
import com.android.dialer.DialtactsActivity;
-import com.android.phone.common.animation.AnimUtils;
import com.android.phone.common.animation.AnimUtils.AnimationCallback;
/**
diff --git a/src/com/android/dialer/widget/EmptyContentView.java b/src/com/android/dialer/widget/EmptyContentView.java
index f248967de..719fd3ff8 100644
--- a/src/com/android/dialer/widget/EmptyContentView.java
+++ b/src/com/android/dialer/widget/EmptyContentView.java
@@ -80,10 +80,11 @@ public class EmptyContentView extends LinearLayout implements View.OnClickListen
}
public void setImage(int resourceId) {
- mImageView.setImageResource(resourceId);
if (resourceId == NO_LABEL) {
+ mImageView.setImageDrawable(null);
mImageView.setVisibility(View.GONE);
} else {
+ mImageView.setImageResource(resourceId);
mImageView.setVisibility(View.VISIBLE);
}
}
diff --git a/src/com/android/dialer/widget/SearchEditTextLayout.java b/src/com/android/dialer/widget/SearchEditTextLayout.java
index 544749f33..4f100dc44 100644
--- a/src/com/android/dialer/widget/SearchEditTextLayout.java
+++ b/src/com/android/dialer/widget/SearchEditTextLayout.java
@@ -230,7 +230,6 @@ public class SearchEditTextLayout extends FrameLayout {
setElevation(0);
setPaddingRelative(paddingStart, paddingTop, paddingEnd, paddingBottom);
- setElevation(0);
if (requestFocus) {
mSearchView.requestFocus();
}
diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java
index 1a36b05d6..d06d55e86 100644
--- a/src/com/android/dialerbind/ObjectFactory.java
+++ b/src/com/android/dialerbind/ObjectFactory.java
@@ -19,10 +19,16 @@ package com.android.dialerbind;
import static com.android.dialer.calllog.CallLogAdapter.CallFetcher;
import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.ViewStub;
import com.android.dialer.calllog.CallLogAdapter;
import com.android.dialer.calllog.ContactInfoHelper;
+import com.android.dialer.list.RegularSearchFragment;
+import com.android.dialer.logging.Logger;
import com.android.dialer.service.CachedNumberLookupService;
+import com.android.dialer.service.SpamButtonRenderer;
import com.android.dialer.voicemail.VoicemailPlaybackPresenter;
/**
@@ -35,6 +41,16 @@ public class ObjectFactory {
return null;
}
+ public static String getFilteredNumberProviderAuthority() {
+ return "com.android.dialer.database.filterednumberprovider";
+ }
+
+ public static SpamButtonRenderer newSpamButtonRenderer(
+ Context context,
+ ViewStub stub) {
+ return null;
+ }
+
/**
* Create a new instance of the call log adapter.
* @param context The context to use.
@@ -47,12 +63,21 @@ public class ObjectFactory {
CallFetcher callFetcher,
ContactInfoHelper contactInfoHelper,
VoicemailPlaybackPresenter voicemailPlaybackPresenter,
- boolean isShowingRecentsTab) {
+ boolean isCallLogActivity) {
return new CallLogAdapter(
context,
callFetcher,
contactInfoHelper,
voicemailPlaybackPresenter,
- isShowingRecentsTab);
+ isCallLogActivity);
+ }
+
+ public static Logger getLoggerInstance() {
+ // no-op
+ return null;
+ }
+
+ public static RegularSearchFragment newRegularSearchFragment() {
+ return new RegularSearchFragment();
}
}
diff --git a/tests/Android.mk b/tests/Android.mk
index 30c6286c6..07f4f00d9 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -5,7 +5,7 @@ include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := tests
LOCAL_CERTIFICATE := shared
-LOCAL_JAVA_LIBRARIES := android.test.runner
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-test
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, src)
@@ -16,8 +16,13 @@ src_dirs := src \
# Include all test java files.
LOCAL_SRC_FILES := $(call all-java-files-under, $(src_dirs))
+LOCAL_STATIC_JAVA_LIBRARIES += \
+ mockito-target
+
LOCAL_PACKAGE_NAME := DialerTests
LOCAL_INSTRUMENTATION_FOR := Dialer
+LOCAL_SDK_VERSION := current
+
include $(BUILD_PACKAGE)
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 94aa3aada..40c5502da 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -18,6 +18,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.dialer.tests">
+ <uses-sdk
+ android:minSdkVersion="23"
+ android:targetSdkVersion="23" />
+
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
@@ -35,6 +39,8 @@
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_SOCIAL_STREAM" />
+ <uses-permission android:name="com.android.voicemail.permission.ADD_VOICEMAIL" />
+
<application>
<uses-library android:name="android.test.runner" />
<meta-data android:name="com.android.dialer.iconset" android:resource="@xml/iconset" />
diff --git a/tests/res/layout/fill_call_log_test.xml b/tests/res/layout/fill_call_log_test.xml
index 2359f2cde..43f475b52 100644
--- a/tests/res/layout/fill_call_log_test.xml
+++ b/tests/res/layout/fill_call_log_test.xml
@@ -59,7 +59,7 @@
android:text="@string/add_custom_entry"
/>
<LinearLayout
- android:orientation="horizontal"
+ android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="left"
@@ -86,6 +86,24 @@
android:layout_height="wrap_content"
android:text="@string/call_type_outgoing"
android:textSize="9sp" />
+ <RadioButton
+ android:id="@+id/call_type_voicemail"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/call_type_voicemail"
+ android:textSize="9sp" />
+ <RadioButton
+ android:id="@+id/call_type_custom"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Custom"
+ android:textSize="9sp" />
+ <EditText
+ android:id="@+id/call_type_custom_text"
+ android:layout_width="90dp"
+ android:layout_height="wrap_content"
+ android:text=""
+ android:inputType="number" />
</RadioGroup>
<CheckBox
android:id="@+id/call_type_video"
diff --git a/tests/res/values/donottranslate_strings.xml b/tests/res/values/donottranslate_strings.xml
index d4b48a6cd..2f8017cd2 100644
--- a/tests/res/values/donottranslate_strings.xml
+++ b/tests/res/values/donottranslate_strings.xml
@@ -42,6 +42,7 @@
<string name="call_type_missed">Missed</string>
<string name="call_type_outgoing">Outgoing</string>
<string name="call_type_video">Video</string>
+ <string name="call_type_voicemail">Voicemail</string>
<string name="call_date">Call date</string>
<string name="call_time">Call time</string>
<string name="edit">Edit</string>
diff --git a/tests/src-N/com/android/dialer/SdkSelectionUtilsTest.java b/tests/src-N/com/android/dialer/SdkSelectionUtilsTest.java
new file mode 100644
index 000000000..2950ea08f
--- /dev/null
+++ b/tests/src-N/com/android/dialer/SdkSelectionUtilsTest.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package com.android.dialer;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+// @formatter:off
+/**
+ * Run test with
+ * adb shell am instrument -e class com.android.dialer.SdkSelectionUtilsTest -w com.google.android.dialer.tests/android.test.InstrumentationTestRunner
+ */
+// @formatter:on
+@SmallTest
+public class SdkSelectionUtilsTest extends AndroidTestCase {
+
+ public void testTargetNSdk_True() {
+ assertTrue(SdkSelectionUtils.TARGET_N_SDK);
+ }
+} \ No newline at end of file
diff --git a/tests/src-pre-N/com/android/dialer/SdkSelectionUtilsTest.java b/tests/src-pre-N/com/android/dialer/SdkSelectionUtilsTest.java
new file mode 100644
index 000000000..595f1ccaf
--- /dev/null
+++ b/tests/src-pre-N/com/android/dialer/SdkSelectionUtilsTest.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package com.android.dialer;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+// @formatter:off
+/**
+ * Run test with
+ * adb shell am instrument -e class com.android.dialer.SdkSelectionUtilsTest -w com.google.android.dialer.tests/android.test.InstrumentationTestRunner
+ */
+// @formatter:on
+@SmallTest
+public class SdkSelectionUtilsTest extends AndroidTestCase {
+
+ public void testTargetNSdk_False() {
+ assertFalse(SdkSelectionUtils.TARGET_N_SDK);
+ }
+} \ No newline at end of file
diff --git a/tests/src/com/android/dialer/CallDetailActivityTest.java b/tests/src/com/android/dialer/CallDetailActivityTest.java
index 3b6b61141..fec25f655 100644
--- a/tests/src/com/android/dialer/CallDetailActivityTest.java
+++ b/tests/src/com/android/dialer/CallDetailActivityTest.java
@@ -16,7 +16,7 @@
package com.android.dialer;
-import static com.android.dialer.calllog.CallLogAsyncTaskUtil.Tasks.GET_CALL_DETAILS;
+import static com.android.dialer.calllog.CallLogAsyncTaskUtil.Tasks;
import android.content.ContentResolver;
import android.content.ContentUris;
@@ -29,12 +29,13 @@ import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.Suppress;
import android.view.Menu;
+import android.widget.PopupMenu;
import android.widget.TextView;
import com.android.dialer.calllog.CallLogAsyncTaskUtil;
+import com.android.dialer.util.AppCompatConstants;
import com.android.dialer.util.AsyncTaskExecutors;
import com.android.dialer.util.FakeAsyncTaskExecutor;
-import com.android.internal.view.menu.ContextMenuBuilder;
/**
* Unit tests for the {@link CallDetailActivity}. NOTE: The screen needs to be on for the
@@ -83,35 +84,49 @@ public class CallDetailActivityTest extends ActivityInstrumentationTestCase2<Cal
}
/**
- * Test for bug where voicemails should not have remove-from-call-log entry.
- * <p>
- * See http://b/5054103.
+ * Verifies the trash menu item is present and a voicemail URI is set.
*/
- public void testVoicemailDoesNotHaveRemoveFromCallLog() throws Throwable {
+ @Suppress
+ public void testVoicemailDeleteButton() throws Throwable {
setActivityIntentForTestVoicemailEntry();
startActivityUnderTest();
- mFakeAsyncTaskExecutor.runTask(GET_CALL_DETAILS);
-
- Menu menu = new ContextMenuBuilder(mActivityUnderTest);
- mActivityUnderTest.onCreateOptionsMenu(menu);
- mActivityUnderTest.onPrepareOptionsMenu(menu);
- assertFalse(menu.findItem(R.id.menu_remove_from_call_log).isVisible());
- assertTrue(menu.findItem(R.id.menu_trash).isVisible());
+ mFakeAsyncTaskExecutor.runTask(Tasks.GET_CALL_DETAILS);
+
+ Menu optionsMenu = (new PopupMenu(mActivityUnderTest, null)).getMenu();
+ mActivityUnderTest.onCreateOptionsMenu(optionsMenu);
+ mActivityUnderTest.onPrepareOptionsMenu(optionsMenu);
+
+ assertTrue(mActivityUnderTest.hasVoicemail());
+ mActivityUnderTest.runOnUiThread(new Runnable() {
+ public void run() {
+ mActivityUnderTest.findViewById(R.id.call_detail_delete_menu_item).performClick();
+ }
+ });
+ getInstrumentation().waitForIdleSync();
+ mFakeAsyncTaskExecutor.runTask(Tasks.DELETE_VOICEMAIL);
}
/**
- * Test to check that I haven't broken the remove-from-call-log entry from regular calls.
+ * Verifies the trash menu item is present and a voicemail URI is not set.
*/
+ @Suppress
public void testRegularCallDoesHaveRemoveFromCallLog() throws Throwable {
setActivityIntentForTestCallEntry();
startActivityUnderTest();
- mFakeAsyncTaskExecutor.runTask(GET_CALL_DETAILS);
-
- Menu menu = new ContextMenuBuilder(mActivityUnderTest);
- mActivityUnderTest.onCreateOptionsMenu(menu);
- mActivityUnderTest.onPrepareOptionsMenu(menu);
- assertTrue(menu.findItem(R.id.menu_remove_from_call_log).isVisible());
- assertFalse(menu.findItem(R.id.menu_trash).isVisible());
+ mFakeAsyncTaskExecutor.runTask(Tasks.GET_CALL_DETAILS);
+
+ Menu optionsMenu = (new PopupMenu(mActivityUnderTest, null)).getMenu();
+ mActivityUnderTest.onCreateOptionsMenu(optionsMenu);
+ mActivityUnderTest.onPrepareOptionsMenu(optionsMenu);
+
+ assertFalse(mActivityUnderTest.hasVoicemail());
+ mActivityUnderTest.runOnUiThread(new Runnable() {
+ public void run() {
+ mActivityUnderTest.findViewById(R.id.call_detail_delete_menu_item).performClick();
+ }
+ });
+ getInstrumentation().waitForIdleSync();
+ mFakeAsyncTaskExecutor.runTask(Tasks.DELETE_CALL);
}
private void setActivityIntentForTestCallEntry() {
@@ -121,7 +136,7 @@ public class CallDetailActivityTest extends ActivityInstrumentationTestCase2<Cal
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, CONTACT_NUMBER);
values.put(CallLog.Calls.NUMBER_PRESENTATION, CallLog.Calls.PRESENTATION_ALLOWED);
- values.put(CallLog.Calls.TYPE, CallLog.Calls.INCOMING_TYPE);
+ values.put(CallLog.Calls.TYPE, AppCompatConstants.CALLS_INCOMING_TYPE);
mCallLogUri = contentResolver.insert(CallLog.Calls.CONTENT_URI, values);
setActivityIntent(new Intent(Intent.ACTION_VIEW, mCallLogUri));
}
@@ -132,7 +147,8 @@ public class CallDetailActivityTest extends ActivityInstrumentationTestCase2<Cal
ContentValues values = new ContentValues();
values.put(VoicemailContract.Voicemails.NUMBER, CONTACT_NUMBER);
values.put(VoicemailContract.Voicemails.HAS_CONTENT, 1);
- values.put(VoicemailContract.Voicemails._DATA, VOICEMAIL_FILE_LOCATION);
+ // VoicemailContract.Voicemails._DATA
+ values.put("_data", VOICEMAIL_FILE_LOCATION);
mVoicemailUri = contentResolver.insert(VoicemailContract.Voicemails.CONTENT_URI, values);
Uri callLogUri = ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI_WITH_VOICEMAIL,
diff --git a/tests/src/com/android/dialer/DialerLaunchPerformance.java b/tests/src/com/android/dialer/DialerLaunchPerformance.java
index cf64f9449..c409cc60b 100644
--- a/tests/src/com/android/dialer/DialerLaunchPerformance.java
+++ b/tests/src/com/android/dialer/DialerLaunchPerformance.java
@@ -20,7 +20,8 @@ import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
-import android.test.LaunchPerformanceBase;
+
+import com.android.contacts.common.test.LaunchPerformanceBase;
/**
* Instrumentation class for Address Book launch performance testing.
diff --git a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
index b4162e166..80dfe3578 100644
--- a/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogAdapterTest.java
@@ -16,41 +16,71 @@
package com.android.dialer.calllog;
+import android.content.ContentUris;
import android.content.Context;
+import android.content.Intent;
import android.database.MatrixCursor;
-import android.support.v7.widget.RecyclerView.ViewHolder;
+import android.net.Uri;
+import android.provider.CallLog.Calls;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.provider.VoicemailContract;
import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.text.TextUtils;
import android.view.View;
-import android.widget.LinearLayout;
+import com.android.contacts.common.preference.ContactsPreferences;
import com.android.dialer.contactinfo.ContactInfoCache;
-import com.android.dialer.contactinfo.ContactInfoCache.OnContactInfoChangedListener;
+import com.android.dialer.util.AppCompatConstants;
+import com.android.dialer.util.TestConstants;
import com.google.common.collect.Lists;
+import java.util.Date;
import java.util.List;
+import java.util.Random;
/**
* Unit tests for {@link CallLogAdapter}.
+ *
+ * adb shell am instrument \
+ * -e com.android.dialer.calllog.CallLogAdapterTest \
+ * -w com.android.dialer.tests/android.test.InstrumentationTestRunner
*/
-@SmallTest
public class CallLogAdapterTest extends AndroidTestCase {
- private static final String TEST_NUMBER = "12345678";
- private static final String TEST_NAME = "name";
- private static final String TEST_NUMBER_LABEL = "label";
- private static final int TEST_NUMBER_TYPE = 1;
+ private static final String EMPTY_STRING = "";
+ private static final int NO_VALUE_SET = -1;
+
+ private static final String TEST_CACHED_NAME_PRIMARY = "Cached Name";
+ private static final String TEST_CACHED_NAME_ALTERNATIVE = "Name Cached";
+ private static final String CONTACT_NAME_PRIMARY = "Contact Name";
+ private static final String CONTACT_NAME_ALTERNATIVE = "Name, Contact";
+ private static final String TEST_CACHED_NUMBER_LABEL = "label";
+ private static final int TEST_CACHED_NUMBER_TYPE = 1;
private static final String TEST_COUNTRY_ISO = "US";
+ private static final String TEST_DEFAULT_CUSTOM_LABEL = "myLabel";
+ private static final Uri TEST_LOOKUP_URI = Uri.parse("content://contacts/2");
+
+ private static final String TEST_NUMBER = "12125551000";
+ private static final String TEST_NUMBER_1 = "12345678";
+ private static final String TEST_NUMBER_2 = "87654321";
+ private static final String TEST_NUMBER_3 = "18273645";
+ private static final String TEST_POST_DIAL_DIGITS = ";12345";
+ private static final String TEST_FORMATTED_NUMBER = "1 212-555-1000";
- /** The object under test. */
+ // The object under test.
private TestCallLogAdapter mAdapter;
private MatrixCursor mCursor;
+
private View mView;
- private ViewHolder mViewHolder;
+ private CallLogListItemViewHolder mViewHolder;
+ private Random mRandom;
@Override
protected void setUp() throws Exception {
super.setUp();
+ mRandom = new Random();
+
// Use a call fetcher that does not do anything.
CallLogAdapter.CallFetcher fakeCallFetcher = new CallLogAdapter.CallFetcher() {
@Override
@@ -69,62 +99,288 @@ public class CallLogAdapterTest extends AndroidTestCase {
};
mAdapter = new TestCallLogAdapter(getContext(), fakeCallFetcher, fakeContactInfoHelper);
+
// The cursor used in the tests to store the entries to display.
mCursor = new MatrixCursor(CallLogQuery._PROJECTION);
mCursor.moveToFirst();
+
// The views into which to store the data.
- mView = new LinearLayout(getContext());
mViewHolder = CallLogListItemViewHolder.createForTest(getContext());
- mView.setTag(mViewHolder);
}
@Override
protected void tearDown() throws Exception {
mAdapter = null;
mCursor = null;
- mView = null;
super.tearDown();
}
- public void testBindView_NoCallLogCacheNorMemoryCache_EnqueueRequest() {
- mCursor.addRow(createCallLogEntry());
+ @MediumTest
+ public void testBindView_NumberOnlyNoCache() {
+ createCallLogEntry();
- // Bind the views of a single row.
mAdapter.changeCursor(mCursor);
mAdapter.onBindViewHolder(mViewHolder, 0);
- // There is one request for contact details.
- assertEquals(1, mAdapter.getContactInfoCache().requests.size());
+ assertNameIs(mViewHolder, TEST_NUMBER);
+ }
- TestContactInfoCache.Request request = mAdapter.getContactInfoCache().requests.get(0);
- // It is for the number we need to show.
- assertEquals(TEST_NUMBER, request.number);
- // It has the right country.
- assertEquals(TEST_COUNTRY_ISO, request.countryIso);
- // Since there is nothing in the cache, it is an immediate request.
- assertTrue("should be immediate", request.immediate);
+ @MediumTest
+ public void testBindView_PrivateCall() {
+ createPrivateCallLogEntry();
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertEquals(Calls.PRESENTATION_RESTRICTED, mViewHolder.numberPresentation);
+ assertNull(mViewHolder.primaryActionButtonView.getTag());
+ // QC should be disabled since there are no actions to be performed on this
+ // call.
+ assertFalse(mViewHolder.quickContactView.isEnabled());
}
- public void testBindView_CallLogCacheButNoMemoryCache_EnqueueRequest() {
- mCursor.addRow(createCallLogEntryWithCachedValues());
+ @MediumTest
+ public void testBindView_UnknownCall() {
+ createUnknownCallLogEntry();
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertEquals(Calls.PRESENTATION_UNKNOWN, mViewHolder.numberPresentation);
+ assertNull(mViewHolder.primaryActionButtonView.getTag());
+ // QC should be disabled since there are no actions to be performed on this
+ // call.
+ assertFalse(mViewHolder.quickContactView.isEnabled());
+ }
+
+ @MediumTest
+ public void testBindView_WithoutQuickContactBadge() {
+ createCallLogEntry();
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ //assertFalse(mViewHolder.quickContactView.isEnabled());
+ }
+
+ @MediumTest
+ public void testBindView_CallButton() {
+ createCallLogEntry();
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ // The primaryActionView tag is set when the ViewHolder is binded. If it is possible
+ // to place a call to the phone number, a call intent will have been created which
+ // starts a phone call to the entry's number.
+ assertHasCallAction(mViewHolder);
+ }
+
+ @MediumTest
+ public void testBindView_FirstNameFirstOrder() {
+ createCallLogEntry();
+
+ mAdapter.getContactInfoCache()
+ .mockGetValue(createContactInfo(CONTACT_NAME_PRIMARY, CONTACT_NAME_ALTERNATIVE));
+
+ setNameDisplayOrder(getContext(), ContactsPreferences.DISPLAY_ORDER_PRIMARY);
- // Bind the views of a single row.
mAdapter.changeCursor(mCursor);
mAdapter.onBindViewHolder(mViewHolder, 0);
+ assertEquals(CONTACT_NAME_PRIMARY, mViewHolder.phoneCallDetailsViews.nameView.getText());
+ }
+
+ @MediumTest
+ public void testBindView_LastNameFirstOrder() {
+ createCallLogEntry();
+
+ mAdapter.getContactInfoCache()
+ .mockGetValue(createContactInfo(CONTACT_NAME_PRIMARY, CONTACT_NAME_ALTERNATIVE));
+
+ setNameDisplayOrder(getContext(), ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+ assertEquals(CONTACT_NAME_ALTERNATIVE,
+ mViewHolder.phoneCallDetailsViews.nameView.getText());
+ }
+
+ @MediumTest
+ public void testBindView_NameOrderCorrectOnChange() {
+ createCallLogEntry();
+
+ mAdapter.getContactInfoCache()
+ .mockGetValue(createContactInfo(CONTACT_NAME_PRIMARY, CONTACT_NAME_ALTERNATIVE));
+
+ Context context = getContext();
+ setNameDisplayOrder(context, ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+ assertEquals(CONTACT_NAME_PRIMARY,
+ mViewHolder.phoneCallDetailsViews.nameView.getText());
+
+ setNameDisplayOrder(context, ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
+ mAdapter.onResume();
+
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+ assertEquals(CONTACT_NAME_ALTERNATIVE,
+ mViewHolder.phoneCallDetailsViews.nameView.getText());
+ }
+
+ private void setNameDisplayOrder(Context context, int displayOrder) {
+ context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE).edit().putInt(
+ ContactsPreferences.DISPLAY_ORDER_KEY, displayOrder).commit();
+ }
+
+ @MediumTest
+ public void testBindView_CallButtonWithPostDialDigits() {
+ createCallLogEntry(TEST_NUMBER, TEST_POST_DIAL_DIGITS, NO_VALUE_SET, NO_VALUE_SET);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ if (PhoneNumberDisplayUtil.canShowPostDial()) {
+ assertHasCallActionToGivenNumber(mViewHolder, TEST_NUMBER + TEST_POST_DIAL_DIGITS);
+ }
+ }
+
+ @MediumTest
+ public void testBindView_VoicemailUri() {
+ createVoicemailCallLogEntry();
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertEquals(Uri.parse(mViewHolder.voicemailUri),
+ ContentUris.withAppendedId(VoicemailContract.Voicemails.CONTENT_URI, 0));
+ assertNull(mViewHolder.primaryActionButtonView.getTag());
+ }
+
+ @MediumTest
+ public void testBindView_NumberWithPostDialDigits() {
+ createCallLogEntry(TEST_NUMBER, TEST_POST_DIAL_DIGITS, NO_VALUE_SET, NO_VALUE_SET);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ if (PhoneNumberDisplayUtil.canShowPostDial()) {
+ assertNameIs(mViewHolder, TEST_NUMBER + TEST_POST_DIAL_DIGITS);
+ }
+ }
+
+ @MediumTest
+ public void testBindView_ContactWithPostDialDigits() {
+ createCallLogEntry(TEST_NUMBER, TEST_POST_DIAL_DIGITS, NO_VALUE_SET, NO_VALUE_SET);
+ mAdapter.injectContactInfoForTest(TEST_NUMBER + TEST_POST_DIAL_DIGITS, TEST_COUNTRY_ISO,
+ createContactInfo());
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ if (PhoneNumberDisplayUtil.canShowPostDial()) {
+ assertNameIs(mViewHolder, TEST_CACHED_NAME_PRIMARY);
+ }
+ }
+
+ @MediumTest
+ public void testPresentationAfterRebindingViewHolders() {
+ final int increment = 10;
+ final int size = increment * 4;
+
+ // Instantiate list of ViewHolders.
+ CallLogListItemViewHolder[] holders = new CallLogListItemViewHolder[size];
+ for (int i = 0; i < size; i++) {
+ holders[i] = CallLogListItemViewHolder.createForTest(getContext());
+ }
+
+ // Add first set of entries to the cursor.
+ for (int i = 0; i < increment; i++) {
+ createCallLogEntry();
+ createPrivateCallLogEntry();
+ createCallLogEntry();
+ createUnknownCallLogEntry();
+ }
+
+ mAdapter.changeCursor(mCursor);
+
+ // Verify correct appearance for presentation.
+ for (int i = 0; i < size; i++) {
+ mAdapter.onBindViewHolder(holders[i], i);
+ if (holders[i].numberPresentation == Calls.PRESENTATION_ALLOWED) {
+ assertHasCallAction(holders[i]);
+ } else {
+ assertNull(holders[i].primaryActionButtonView.getTag());
+ assertEquals(holders[i].number, EMPTY_STRING);
+ }
+ }
+
+ // Append the rest of the entries to the cursor. Keep the first set of ViewHolders
+ // so they are updated and not buitl from scratch. This checks for bugs which may
+ // be evident only after the call log is updated.
+ for (int i = 0; i < increment; i++) {
+ createPrivateCallLogEntry();
+ createCallLogEntry();
+ createUnknownCallLogEntry();
+ createCallLogEntry();
+ }
+
+ mCursor.move(size);
+
+ // Verify correct appearnce for presentation.
+ for (int i = 0; i < size; i++) {
+ mAdapter.onBindViewHolder(holders[i], i + size);
+ if (holders[i].numberPresentation == Calls.PRESENTATION_ALLOWED) {
+ assertHasCallAction(holders[i]);
+ } else {
+ assertNull(holders[i].primaryActionButtonView.getTag());
+ assertEquals(holders[i].number, EMPTY_STRING);
+ }
+ }
+ }
+
+ @MediumTest
+ public void testBindView_NoCallLogCacheNorMemoryCache_EnqueueRequest() {
+ createCallLogEntry();
+
+ // Bind the views of a single row.
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ // There is one request for contact details.
+ assertEquals(1, mAdapter.getContactInfoCache().requests.size());
+
+ TestContactInfoCache.Request request = mAdapter.getContactInfoCache().requests.get(0);
+ // It is for the number we need to show.
+ assertEquals(TEST_NUMBER, request.number);
+ // It has the right country.
+ assertEquals(TEST_COUNTRY_ISO, request.countryIso);
+ // Since there is nothing in the cache, it is an immediate request.
+ assertTrue("should be immediate", request.immediate);
+ }
+
+ @MediumTest
+ public void testBindView_CallLogCacheButNoMemoryCache_EnqueueRequest() {
+ createCallLogEntryWithCachedValues(false);
+
+ // Bind the views of a single row.
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
// There is one request for contact details.
assertEquals(1, mAdapter.getContactInfoCache().requests.size());
TestContactInfoCache.Request request = mAdapter.getContactInfoCache().requests.get(0);
+
// The values passed to the request, match the ones in the call log cache.
- assertEquals(TEST_NAME, request.callLogInfo.name);
- assertEquals(1, request.callLogInfo.type);
- assertEquals(TEST_NUMBER_LABEL, request.callLogInfo.label);
+ assertEquals(TEST_CACHED_NAME_PRIMARY, request.callLogInfo.name);
+ assertEquals(TEST_CACHED_NUMBER_TYPE, request.callLogInfo.type);
+ assertEquals(TEST_CACHED_NUMBER_LABEL, request.callLogInfo.label);
}
-
+ @MediumTest
public void testBindView_NoCallLogButMemoryCache_EnqueueRequest() {
- mCursor.addRow(createCallLogEntry());
+ createCallLogEntry();
mAdapter.injectContactInfoForTest(TEST_NUMBER, TEST_COUNTRY_ISO, createContactInfo());
// Bind the views of a single row.
@@ -139,9 +395,9 @@ public class CallLogAdapterTest extends AndroidTestCase {
assertFalse("should not be immediate", request.immediate);
}
+ @MediumTest
public void testBindView_BothCallLogAndMemoryCache_NoEnqueueRequest() {
- mCursor.addRow(createCallLogEntryWithCachedValues());
- mAdapter.injectContactInfoForTest(TEST_NUMBER, TEST_COUNTRY_ISO, createContactInfo());
+ createCallLogEntryWithCachedValues(true);
// Bind the views of a single row.
mAdapter.changeCursor(mCursor);
@@ -151,8 +407,9 @@ public class CallLogAdapterTest extends AndroidTestCase {
assertEquals(0, mAdapter.getContactInfoCache().requests.size());
}
- public void testBindView_MismatchBetwenCallLogAndMemoryCache_EnqueueRequest() {
- mCursor.addRow(createCallLogEntryWithCachedValues());
+ @MediumTest
+ public void testBindView_MismatchBetweenCallLogAndMemoryCache_EnqueueRequest() {
+ createCallLogEntryWithCachedValues(false);
// Contact info contains a different name.
ContactInfo info = createContactInfo();
@@ -171,36 +428,318 @@ public class CallLogAdapterTest extends AndroidTestCase {
assertFalse("should not be immediate", request.immediate);
}
- /** Returns a contact info with default values. */
+ @MediumTest
+ public void testBindView_WithCachedName() {
+ createCallLogEntryWithCachedValues(
+ "John Doe",
+ Phone.TYPE_HOME,
+ TEST_CACHED_NUMBER_LABEL);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertNameIs(mViewHolder, "John Doe");
+ assertLabel(mViewHolder, TEST_FORMATTED_NUMBER, getTypeLabel(Phone.TYPE_HOME));
+ }
+
+ @MediumTest
+ public void testBindView_UriNumber() {
+ createCallLogEntryWithCachedValues(
+ "sip:johndoe@gmail.com",
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ "John Doe",
+ Phone.TYPE_HOME,
+ TEST_DEFAULT_CUSTOM_LABEL,
+ EMPTY_STRING,
+ false /* inject */);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertNameIs(mViewHolder, "John Doe");
+ assertLabel(mViewHolder, "sip:johndoe@gmail.com", "sip:johndoe@gmail.com");
+ }
+
+ @MediumTest
+ public void testBindView_HomeLabel() {
+ createCallLogEntryWithCachedValues(
+ "John Doe",
+ Phone.TYPE_HOME,
+ TEST_CACHED_NUMBER_LABEL);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertNameIs(mViewHolder, "John Doe");
+ assertLabel(mViewHolder, TEST_FORMATTED_NUMBER, getTypeLabel(Phone.TYPE_HOME));
+ }
+
+ @MediumTest
+ public void testBindView_WorkLabel() {
+ createCallLogEntryWithCachedValues(
+ "John Doe",
+ Phone.TYPE_WORK,
+ TEST_CACHED_NUMBER_LABEL);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertNameIs(mViewHolder, "John Doe");
+ assertLabel(mViewHolder, TEST_FORMATTED_NUMBER, getTypeLabel(Phone.TYPE_WORK));
+ }
+
+ @MediumTest
+ public void testBindView_CustomLabel() {
+ createCallLogEntryWithCachedValues(
+ "John Doe",
+ Phone.TYPE_CUSTOM,
+ TEST_DEFAULT_CUSTOM_LABEL);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertNameIs(mViewHolder, "John Doe");
+ assertLabel(mViewHolder, TEST_FORMATTED_NUMBER, TEST_DEFAULT_CUSTOM_LABEL);
+ }
+
+ @MediumTest
+ public void testBindView_NumberOnlyDbCachedFormattedNumber() {
+ createCallLogEntryWithCachedValues(
+ TEST_NUMBER,
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ EMPTY_STRING,
+ TEST_CACHED_NUMBER_TYPE,
+ TEST_CACHED_NUMBER_LABEL,
+ TEST_FORMATTED_NUMBER,
+ false /* inject */);
+
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(mViewHolder, 0);
+
+ assertNameIs(mViewHolder, TEST_FORMATTED_NUMBER);
+ }
+
+ @MediumTest
+ public void testBindVoicemailPromoCard() {
+ createCallLogEntry(TEST_NUMBER_1);
+ createCallLogEntry(TEST_NUMBER_1);
+ createCallLogEntry(TEST_NUMBER_2);
+ createCallLogEntry(TEST_NUMBER_2);
+ createCallLogEntry(TEST_NUMBER_2);
+ createCallLogEntry(TEST_NUMBER_3);
+
+ // Bind the voicemail promo card.
+ mAdapter.showVoicemailPromoCard(true);
+ mAdapter.changeCursor(mCursor);
+ mAdapter.onBindViewHolder(PromoCardViewHolder.createForTest(getContext()), 0);
+
+ // Check that displaying the promo card does not affect the grouping or list display.
+ mAdapter.onBindViewHolder(mViewHolder, 1);
+ assertEquals(2, mAdapter.getGroupSize(1));
+ assertEquals(TEST_NUMBER_1, mViewHolder.number);
+
+ mAdapter.onBindViewHolder(mViewHolder, 2);
+ assertEquals(3, mAdapter.getGroupSize(2));
+ assertEquals(TEST_NUMBER_2, mViewHolder.number);
+
+ mAdapter.onBindViewHolder(mViewHolder, 3);
+ assertEquals(1, mAdapter.getGroupSize(3));
+ assertEquals(TEST_NUMBER_3, mViewHolder.number);
+ }
+
+ private void createCallLogEntry() {
+ createCallLogEntry(TEST_NUMBER);
+ }
+
+ private void createCallLogEntry(String testNumber) {
+ createCallLogEntry(testNumber, EMPTY_STRING, NO_VALUE_SET, NO_VALUE_SET);
+ }
+
+ private void createPrivateCallLogEntry() {
+ createCallLogEntry(
+ EMPTY_STRING,
+ EMPTY_STRING,
+ Calls.PRESENTATION_RESTRICTED,
+ AppCompatConstants.CALLS_INCOMING_TYPE);
+ }
+
+ private void createUnknownCallLogEntry() {
+ createCallLogEntry(
+ EMPTY_STRING,
+ EMPTY_STRING,
+ Calls.PRESENTATION_UNKNOWN,
+ AppCompatConstants.CALLS_INCOMING_TYPE);
+ }
+
+ private void createVoicemailCallLogEntry() {
+ createCallLogEntry(TEST_NUMBER, EMPTY_STRING, NO_VALUE_SET, Calls.VOICEMAIL_TYPE);
+ }
+
+ private void createCallLogEntry(String number, String postDialDigits, int presentation, int type) {
+ Object[] values = getValues(number, postDialDigits, presentation, type);
+ mCursor.addRow(values);
+ }
+
+ private void createCallLogEntryWithCachedValues(boolean inject) {
+ createCallLogEntryWithCachedValues(
+ TEST_NUMBER,
+ NO_VALUE_SET,
+ TEST_CACHED_NAME_PRIMARY,
+ TEST_CACHED_NUMBER_TYPE,
+ TEST_CACHED_NUMBER_LABEL,
+ EMPTY_STRING,
+ inject);
+ }
+
+ private void createCallLogEntryWithCachedValues(
+ String cachedName, int cachedNumberType, String cachedNumberLabel) {
+ createCallLogEntryWithCachedValues(
+ TEST_NUMBER,
+ NO_VALUE_SET,
+ cachedName,
+ cachedNumberType,
+ cachedNumberLabel,
+ EMPTY_STRING,
+ false /* inject */);
+ }
+
+ /**
+ * Inserts a new call log entry
+ *
+ * It includes the values for the cached contact associated with the number.
+ *
+ * @param number The phone number.
+ * @param type Valid value of {@code Calls.TYPE}.
+ * @param cachedName The name of the contact with this number
+ * @param cachedNumberType The type of the number, from the contact with this number.
+ * @param cachedNumberLabel The label of the number, from the contact with this number.
+ * @param cachedFormattedNumber The formatted number, from the contact with this number.
+ * @param inject Whether to inject the contact info into the adapter's ContactInfoCache.
+ */
+ private void createCallLogEntryWithCachedValues(
+ String number,
+ int type,
+ String cachedName,
+ int cachedNumberType,
+ String cachedNumberLabel,
+ String cachedFormattedNumber,
+ boolean inject) {
+ Object[] values = getValues(number, EMPTY_STRING, NO_VALUE_SET, type);
+ values[CallLogQuery.CACHED_NAME] = cachedName;
+ values[CallLogQuery.CACHED_NUMBER_TYPE] = cachedNumberType;
+ values[CallLogQuery.CACHED_NUMBER_LABEL] = cachedNumberLabel;
+ values[CallLogQuery.CACHED_FORMATTED_NUMBER] = cachedFormattedNumber;
+
+ mCursor.addRow(values);
+
+ if (inject) {
+ ContactInfo contactInfo =
+ createContactInfo(cachedName, cachedName, cachedNumberType, cachedNumberLabel);
+ mAdapter.injectContactInfoForTest(number, TEST_COUNTRY_ISO, contactInfo);
+ }
+ }
+
+ /**
+ * @param number The phone number.
+ * @param postDialDigits The post dial digits dialed (if any)
+ * @param presentation Number representing display rules for "allowed",
+ * "payphone", "restricted", or "unknown".
+ * @param type The type of the call (outgoing/ingoing)
+ */
+ private Object[] getValues(
+ String number,
+ String postDialDigits,
+ int presentation,
+ int type) {
+ Object[] values = CallLogQueryTestUtils.createTestValues();
+
+ values[CallLogQuery.ID] = mCursor.getCount();
+ values[CallLogQuery.COUNTRY_ISO] = TEST_COUNTRY_ISO;
+ values[CallLogQuery.DATE] = new Date().getTime();
+ values[CallLogQuery.DURATION] = mRandom.nextInt(10 * 60);
+
+ if (!TextUtils.isEmpty(number)) {
+ values[CallLogQuery.NUMBER] = number;
+ }
+ if (!TextUtils.isEmpty(postDialDigits) && PhoneNumberDisplayUtil.canShowPostDial()) {
+ values[CallLogQuery.POST_DIAL_DIGITS] = postDialDigits;
+ }
+ if (presentation != NO_VALUE_SET) {
+ values[CallLogQuery.NUMBER_PRESENTATION] = presentation;
+ }
+ if (type != NO_VALUE_SET) {
+ values[CallLogQuery.CALL_TYPE] = type;
+ }
+ if (type == AppCompatConstants.CALLS_VOICEMAIL_TYPE) {
+ values[CallLogQuery.VOICEMAIL_URI] = ContentUris.withAppendedId(
+ VoicemailContract.Voicemails.CONTENT_URI, mCursor.getCount());
+ }
+
+ return values;
+ }
+
private ContactInfo createContactInfo() {
+ return createContactInfo(
+ TEST_CACHED_NAME_PRIMARY,
+ TEST_CACHED_NAME_ALTERNATIVE);
+ }
+
+ private ContactInfo createContactInfo(String namePrimary, String nameAlternative) {
+ return createContactInfo(
+ namePrimary,
+ nameAlternative,
+ TEST_CACHED_NUMBER_TYPE,
+ TEST_CACHED_NUMBER_LABEL);
+ }
+
+ /** Returns a contact info with default values. */
+ private ContactInfo createContactInfo(String namePrimary, String nameAlternative, int type, String label) {
ContactInfo info = new ContactInfo();
info.number = TEST_NUMBER;
- info.name = TEST_NAME;
- info.type = TEST_NUMBER_TYPE;
- info.label = TEST_NUMBER_LABEL;
+ info.name = namePrimary;
+ info.nameAlternative = nameAlternative;
+ info.type = type;
+ info.label = label;
+ info.formattedNumber = TEST_FORMATTED_NUMBER;
+ info.normalizedNumber = TEST_NUMBER;
+ info.lookupUri = TEST_LOOKUP_URI;
return info;
}
- /** Returns a call log entry without cached values. */
- private Object[] createCallLogEntry() {
- Object[] values = CallLogQueryTestUtils.createTestValues();
- values[CallLogQuery.NUMBER] = TEST_NUMBER;
- values[CallLogQuery.COUNTRY_ISO] = TEST_COUNTRY_ISO;
- return values;
+ // Asserts that the name text view is shown and contains the given text.
+ private void assertNameIs(CallLogListItemViewHolder viewHolder, String name) {
+ assertEquals(View.VISIBLE, viewHolder.phoneCallDetailsViews.nameView.getVisibility());
+ assertEquals(name, viewHolder.phoneCallDetailsViews.nameView.getText());
}
- /** Returns a call log entry with a cached values. */
- private Object[] createCallLogEntryWithCachedValues() {
- Object[] values = createCallLogEntry();
- values[CallLogQuery.CACHED_NAME] = TEST_NAME;
- values[CallLogQuery.CACHED_NUMBER_TYPE] = TEST_NUMBER_TYPE;
- values[CallLogQuery.CACHED_NUMBER_LABEL] = TEST_NUMBER_LABEL;
- return values;
+ // Asserts that the label text view contains the given text.
+ private void assertLabel(
+ CallLogListItemViewHolder viewHolder, CharSequence number, CharSequence label) {
+ if (label != null) {
+ assertTrue(viewHolder.phoneCallDetailsViews.callLocationAndDate.getText()
+ .toString().contains(label));
+ }
}
- /**
- * Subclass of {@link CallLogAdapter} used in tests to intercept certain calls.
- */
+ private void assertHasCallAction(CallLogListItemViewHolder viewHolder) {
+ assertHasCallActionToGivenNumber(viewHolder, TEST_NUMBER);
+ }
+
+ private void assertHasCallActionToGivenNumber(CallLogListItemViewHolder viewHolder,
+ String number) {
+ IntentProvider intentProvider =
+ (IntentProvider) viewHolder.primaryActionButtonView.getTag();
+ Intent intent = intentProvider.getIntent(getContext());
+ assertEquals(TestConstants.CALL_INTENT_ACTION, intent.getAction());
+ assertEquals(Uri.parse("tel:" + Uri.encode(number)), intent.getData());
+ }
+
+ /** Returns the label associated with a given phone type. */
+ private CharSequence getTypeLabel(int phoneType) {
+ return Phone.getTypeLabel(getContext().getResources(), phoneType, "");
+ }
+
+ /// Subclass of {@link CallLogAdapter} used in tests to intercept certain calls.
private static final class TestCallLogAdapter extends CallLogAdapter {
public TestCallLogAdapter(Context context, CallFetcher callFetcher,
ContactInfoHelper contactInfoHelper) {
@@ -212,6 +751,10 @@ public class CallLogAdapterTest extends AndroidTestCase {
public TestContactInfoCache getContactInfoCache() {
return (TestContactInfoCache) mContactInfoCache;
}
+
+ public void showVoicemailPromoCard(boolean show) {
+ mShowVoicemailPromoCard = show;
+ }
}
private static final class TestContactInfoCache extends ContactInfoCache {
@@ -232,11 +775,35 @@ public class CallLogAdapterTest extends AndroidTestCase {
public final List<Request> requests = Lists.newArrayList();
+ /**
+ * Dummy contactInfo to return in the even that the getValue method has been mocked
+ */
+ private ContactInfo mContactInfo;
+
public TestContactInfoCache(
ContactInfoHelper contactInfoHelper, OnContactInfoChangedListener listener) {
super(contactInfoHelper, listener);
}
+ /**
+ * Sets the given value to be returned by all calls to
+ * {@link #getValue(String, String, ContactInfo)}
+ *
+ * @param contactInfo the contactInfo
+ */
+ public void mockGetValue(ContactInfo contactInfo) {
+ this.mContactInfo = contactInfo;
+ }
+
+ @Override
+ public ContactInfo getValue(String number, String countryIso,
+ ContactInfo cachedContactInfo) {
+ if (mContactInfo != null) {
+ return mContactInfo;
+ }
+ return super.getValue(number, countryIso, cachedContactInfo);
+ }
+
@Override
protected void enqueueRequest(String number, String countryIso, ContactInfo callLogInfo,
boolean immediate) {
diff --git a/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java b/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java
deleted file mode 100644
index 6f4b68b82..000000000
--- a/tests/src/com/android/dialer/calllog/CallLogFragmentTest.java
+++ /dev/null
@@ -1,658 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.dialer.calllog;
-
-import android.app.FragmentManager;
-import android.app.FragmentTransaction;
-import android.content.ComponentName;
-import android.content.ContentUris;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.database.MatrixCursor;
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
-import android.net.Uri;
-import android.provider.CallLog.Calls;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.VoicemailContract;
-import android.telephony.PhoneNumberUtils;
-import android.telephony.TelephonyManager;
-import android.test.ActivityInstrumentationTestCase2;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.util.Log;
-import android.view.View;
-import android.widget.FrameLayout;
-
-import com.android.contacts.common.test.FragmentTestActivity;
-import com.android.dialer.CallDetailActivity;
-import com.android.dialer.R;
-import com.android.dialer.util.TestConstants;
-
-import java.util.Date;
-import java.util.Formatter;
-import java.util.HashMap;
-import java.util.Random;
-
-/**
- * Tests for the contact call list activity.
- *
- * Running all tests:
- *
- * runtest contacts
- * or
- * adb shell am instrument \
- * -w com.android.dialer.tests/android.test.InstrumentationTestRunner
- */
-@LargeTest
-public class CallLogFragmentTest extends ActivityInstrumentationTestCase2<FragmentTestActivity> {
- private static final int RAND_DURATION = -1;
- private static final long NOW = -1L;
-
- /** A test value for the URI of a contact. */
- private static final Uri TEST_LOOKUP_URI = Uri.parse("content://contacts/2");
- /** A test value for the country ISO of the phone number in the call log. */
- private static final String TEST_COUNTRY_ISO = "US";
- /** A phone number to be used in tests. */
- private static final String TEST_NUMBER = "12125551000";
- /** The formatted version of {@link #TEST_NUMBER}. */
- private static final String TEST_FORMATTED_NUMBER = "1 212-555-1000";
-
- private static final String TEST_DEFAULT_CUSTOM_LABEL = "myLabel";
-
- /** The activity in which we are hosting the fragment. */
- private FragmentTestActivity mActivity;
- private CallLogFragment mFragment;
- private FrameLayout mParentView;
- /**
- * The adapter used by the fragment to build the rows in the call log. We use it with our own in
- * memory database.
- */
- private CallLogAdapter mAdapter;
- private String mVoicemail;
-
- // In memory array to hold the rows corresponding to the 'calls' table.
- private MatrixCursor mCursor;
- private int mIndex; // Of the next row.
-
- private Random mRnd;
-
- // An item in the call list. All the methods performing checks use it.
- private CallLogListItemViewHolder mItem;
-
- // The list of view holderss representing the data in the DB, in reverse order from the DB.
- private CallLogListItemViewHolder[] mList;
-
- public CallLogFragmentTest() {
- super(FragmentTestActivity.class);
- mIndex = 1;
- mRnd = new Random();
- }
-
- @Override
- public void setUp() {
- mActivity = getActivity();
- // Needed by the CallLogFragment.
- mActivity.setTheme(R.style.DialtactsTheme);
-
- // Create the fragment and load it into the activity.
- mFragment = new CallLogFragment();
- FragmentManager fragmentManager = mActivity.getFragmentManager();
- FragmentTransaction transaction = fragmentManager.beginTransaction();
- transaction.add(FragmentTestActivity.LAYOUT_ID, mFragment);
- transaction.commitAllowingStateLoss();
- // Wait for the fragment to be loaded.
- getInstrumentation().waitForIdleSync();
-
- final TelephonyManager telephonyManager =
- (TelephonyManager) mActivity.getSystemService(Context.TELEPHONY_SERVICE);
- mVoicemail = telephonyManager.getVoiceMailNumber();
- mAdapter = mFragment.getAdapter();
- // Do not process requests for details during tests. This would start a background thread,
- // which makes the tests flaky.
- mAdapter.disableRequestProcessingForTest();
- mAdapter.pauseCache();
- mParentView = new FrameLayout(mActivity);
- mCursor = new MatrixCursor(CallLogQuery._PROJECTION);
-
- getInstrumentation().runOnMainSync(new Runnable() {
- @Override
- public void run() {
- mAdapter.changeCursor(mCursor);
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-
- /**
- * Checks that the call icon is not visible for private and
- * unknown numbers.
- * Use 2 passes, one where new viewHolder are created and one where
- * half of the total viewHolder are updated and the other half created.
- */
- @MediumTest
- public void testCallViewIsNotVisibleForPrivateAndUnknownNumbers() {
- final int SIZE = 50;
- mList = new CallLogListItemViewHolder[SIZE];
-
- // Insert the first batch of entries.
- mCursor.moveToFirst();
- insertRandomEntries(SIZE / 2);
- int startOfSecondBatch = mCursor.getPosition();
-
- buildViewListFromDb();
- checkCallStatus();
-
- // Append the rest of the entries. We keep the first set of
- // viewHolder around so they get updated and not built from
- // scratch, this exposes some bugs that are not there when the
- // call log is launched for the 1st time but show up when the
- // call log gets updated afterwards.
- mCursor.move(startOfSecondBatch);
- insertRandomEntries(SIZE / 2);
-
- buildViewListFromDb();
- checkCallStatus();
- }
-
- @MediumTest
- public void testCallAndGroupviewHolder_GroupView() {
- mCursor.moveToFirst();
- insertPrivate(NOW, 0);
- insertPrivate(NOW, 0);
- insertPrivate(NOW, 0);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- mAdapter.onBindViewHolder(viewHolder, /* position */ 0);
- }
-
- @MediumTest
- public void testCallAndGroupviewHolder_StandAloneView() {
- mCursor.moveToFirst();
- insertPrivate(NOW, 0);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
- }
-
- @MediumTest
- public void testCallAndGroupviewHolder_ChildView() {
- mCursor.moveToFirst();
- insertPrivate(NOW, 0);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- mAdapter.onBindViewHolder(viewHolder, /* position */ 0);
- }
-
- @MediumTest
- public void testBindView_NumberOnlyNoCache() {
- mCursor.moveToFirst();
- insert(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, NOW, 0, Calls.INCOMING_TYPE);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertNameIs(viewHolder, TEST_NUMBER);
- }
-
- @MediumTest
- public void testBindView_NumberOnlyDbCachedFormattedNumber() {
- mCursor.moveToFirst();
- Object[] values = getValuesToInsert(TEST_NUMBER,
- Calls.PRESENTATION_ALLOWED, NOW, 0, Calls.INCOMING_TYPE);
- values[CallLogQuery.CACHED_FORMATTED_NUMBER] = TEST_FORMATTED_NUMBER;
- insertValues(values);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertNameIs(viewHolder, TEST_FORMATTED_NUMBER);
- }
-
- @MediumTest
- public void testBindView_WithCachedName() {
- mCursor.moveToFirst();
- insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
- "John Doe", Phone.TYPE_HOME, TEST_DEFAULT_CUSTOM_LABEL);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertNameIs(viewHolder, "John Doe");
- assertLabel(viewHolder, TEST_FORMATTED_NUMBER, getTypeLabel(Phone.TYPE_HOME));
- }
-
- @MediumTest
- public void testBindView_UriNumber() {
- mCursor.moveToFirst();
- insertWithCachedValues("sip:johndoe@gmail.com", NOW, 0, Calls.INCOMING_TYPE,
- "John Doe", Phone.TYPE_HOME, TEST_DEFAULT_CUSTOM_LABEL);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertNameIs(viewHolder, "John Doe");
- assertLabel(viewHolder, "sip:johndoe@gmail.com", "sip:johndoe@gmail.com");
- }
-
- @MediumTest
- public void testBindView_HomeLabel() {
- mCursor.moveToFirst();
- insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
- "John Doe", Phone.TYPE_HOME, TEST_DEFAULT_CUSTOM_LABEL);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertNameIs(viewHolder, "John Doe");
- assertLabel(viewHolder, TEST_FORMATTED_NUMBER, getTypeLabel(Phone.TYPE_HOME));
- }
-
- @MediumTest
- public void testBindView_WorkLabel() {
- mCursor.moveToFirst();
- insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
- "John Doe", Phone.TYPE_WORK, TEST_DEFAULT_CUSTOM_LABEL);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertNameIs(viewHolder, "John Doe");
- assertLabel(viewHolder, TEST_FORMATTED_NUMBER, getTypeLabel(Phone.TYPE_WORK));
- }
-
- @MediumTest
- public void testBindView_CustomLabel() {
- mCursor.moveToFirst();
- String numberLabel = "My label";
- insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
- "John Doe", Phone.TYPE_CUSTOM, numberLabel);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertNameIs(viewHolder, "John Doe");
- assertLabel(viewHolder, TEST_FORMATTED_NUMBER, numberLabel);
- }
-
- @MediumTest
- public void testBindView_WithQuickContactBadge() {
- mCursor.moveToFirst();
- insertWithCachedValues(TEST_NUMBER, NOW, 0, Calls.INCOMING_TYPE,
- "John Doe", Phone.TYPE_HOME, "");
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertTrue(viewHolder.quickContactView.isEnabled());
- }
-
- @MediumTest
- public void testBindView_WithoutQuickContactBadge() {
- mCursor.moveToFirst();
- insert(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, NOW, 0, Calls.INCOMING_TYPE);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertFalse(viewHolder.quickContactView.isEnabled());
- }
-
- @MediumTest
- public void testBindView_CallButton() {
- mCursor.moveToFirst();
- insert(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, NOW, 0, Calls.INCOMING_TYPE);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- // The primaryActionView tag is set in the
- // {@link com.android.dialer.calllog.CallLogAdapter#bindView} method. If it is possible
- // to place a call to the phone number, a call intent will have been created for the
- // primaryActionView.
- IntentProvider intentProvider =
- (IntentProvider) viewHolder.primaryActionButtonView.getTag();
- Intent intent = intentProvider.getIntent(mActivity);
- // Starts a call.
- assertEquals(TestConstants.CALL_INTENT_ACTION, intent.getAction());
- // To the entry's number.
- assertEquals(Uri.parse("tel:" + TEST_NUMBER), intent.getData());
- }
-
- @MediumTest
- public void testBindView_VoicemailUri() {
- mCursor.moveToFirst();
- insertVoicemail(TEST_NUMBER, Calls.PRESENTATION_ALLOWED, NOW, 0);
- CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* viewType */ 0);
- bindViewForTest(viewHolder);
-
- assertEquals(Uri.parse(viewHolder.voicemailUri),
- ContentUris.withAppendedId(VoicemailContract.Voicemails.CONTENT_URI, 1));
- }
-
- /** Returns the label associated with a given phone type. */
- private CharSequence getTypeLabel(int phoneType) {
- return Phone.getTypeLabel(getActivity().getResources(), phoneType, "");
- }
-
- //
- // HELPERS to check conditions on the DB/viewHolder
- //
- /**
- * Go over the viewHolder in the list and check to ensure that
- * callable numbers have an associated call intent, where numbers
- * which are not callable have a null intent.
- */
- private void checkCallStatus() {
- for (int i = 0; i < mList.length; i++) {
- if (null == mList[i]) {
- break;
- }
- mItem = (CallLogListItemViewHolder) mList[i];
- int presentation = getPhoneNumberPresentationForListEntry(i);
- if (presentation == Calls.PRESENTATION_RESTRICTED ||
- presentation == Calls.PRESENTATION_UNKNOWN) {
- //If number is not callable, the primary action view should have a null tag.
- assertNull(mItem.primaryActionButtonView.getTag());
- } else {
- //If the number is callable, the primary action view should have a non-null tag.
- assertNotNull(mItem.primaryActionButtonView.getTag());
-
- IntentProvider intentProvider =
- (IntentProvider) mItem.primaryActionButtonView.getTag();
- Intent callIntent = intentProvider.getIntent(mActivity);
-
- //The intent should be to make the call
- assertEquals(TestConstants.CALL_INTENT_ACTION, callIntent.getAction());
- }
- }
- }
-
-
- //
- // HELPERS to setup the tests.
- //
-
- /**
- * Get the Bitmap from the icons in the contacts package.
- */
- private Bitmap getBitmap(String resName) {
- Resources r = mActivity.getResources();
- int resid = r.getIdentifier(resName, "drawable",
- getInstrumentation().getTargetContext().getPackageName());
- BitmapDrawable d = (BitmapDrawable) r.getDrawable(resid);
- assertNotNull(d);
- return d.getBitmap();
- }
-
- //
- // HELPERS to build/update the call entries (viewHolder) from the DB.
- //
-
- /**
- * Read the DB and foreach call either update the existing view if
- * one exists already otherwise create one.
- * The list is build from a DESC view of the DB (last inserted entry is first).
- */
- private void buildViewListFromDb() {
- int i = 0;
- mCursor.moveToLast();
- while (!mCursor.isBeforeFirst()) {
- if (null == mList[i]) {
- mList[i] = (CallLogListItemViewHolder)
- mAdapter.onCreateViewHolder(mParentView, /* itemType */ 0);
- }
- // Bind to the proper position, despite iterating in reverse.
- bindViewForTest(mList[i], mCursor.getCount() - i - 1);
- mCursor.moveToPrevious();
- i++;
- }
- }
-
- /** Returns the number presentation associated with the given entry in {{@link #mList}. */
- private int getPhoneNumberPresentationForListEntry(int index) {
- // The entries are added backward, so count from the end of the cursor.
- mCursor.moveToPosition(mCursor.getCount() - index - 1);
- return mCursor.getInt(CallLogQuery.NUMBER_PRESENTATION);
- }
-
- //
- // HELPERS to insert numbers in the call log DB.
- //
-
- /**
- * Bind a call log entry view for testing purposes. Also inflates the action view stub so
- * unit tests can access the buttons contained within.
- *
- * @param view The current call log row.
- * @param position The position of the item.
- */
- private void bindViewForTest(final CallLogListItemViewHolder viewHolder, int position) {
- mAdapter.onBindViewHolder(viewHolder, position);
- getInstrumentation().runOnMainSync(new Runnable() {
- @Override
- public void run() {
- viewHolder.inflateActionViewStub();
- }
- });
- getInstrumentation().waitForIdleSync();
- }
-
- private void bindViewForTest(CallLogListItemViewHolder viewHolder) {
- bindViewForTest(viewHolder, /* position */ 0);
- }
-
- /**
- * Insert a certain number of random numbers in the DB. Makes sure
- * there is at least one private and one unknown number in the DB.
- * @param num Of entries to be inserted.
- */
- private void insertRandomEntries(int num) {
- if (num < 10) {
- throw new IllegalArgumentException("num should be >= 10");
- }
- boolean privateOrUnknownOrVm[];
- privateOrUnknownOrVm = insertRandomRange(0, num - 2);
-
- if (privateOrUnknownOrVm[0] && privateOrUnknownOrVm[1]) {
- insertRandomRange(num - 2, num);
- } else {
- insertPrivate(NOW, RAND_DURATION);
- insertUnknown(NOW, RAND_DURATION);
- }
- }
-
- /**
- * Insert a new call entry in the test DB.
- *
- * It includes the values for the cached contact associated with the number.
- *
- * @param number The phone number.
- * @param date In millisec since epoch. Use NOW to use the current time.
- * @param duration In seconds of the call. Use RAND_DURATION to pick a random one.
- * @param type Either Call.OUTGOING_TYPE or Call.INCOMING_TYPE or Call.MISSED_TYPE.
- * @param cachedName the name of the contact with this number
- * @param cachedNumberType the type of the number, from the contact with this number
- * @param cachedNumberLabel the label of the number, from the contact with this number
- */
- private void insertWithCachedValues(String number, long date, int duration, int type,
- String cachedName, int cachedNumberType, String cachedNumberLabel) {
- insert(number, Calls.PRESENTATION_ALLOWED, date, duration, type);
- ContactInfo contactInfo = new ContactInfo();
- contactInfo.lookupUri = TEST_LOOKUP_URI;
- contactInfo.name = cachedName;
- contactInfo.type = cachedNumberType;
- contactInfo.label = cachedNumberLabel;
- String formattedNumber = PhoneNumberUtils.formatNumber(number, TEST_COUNTRY_ISO);
- if (formattedNumber == null) {
- formattedNumber = number;
- }
- contactInfo.formattedNumber = formattedNumber;
- contactInfo.normalizedNumber = number;
- contactInfo.photoId = 0;
- mAdapter.injectContactInfoForTest(number, TEST_COUNTRY_ISO, contactInfo);
- }
-
- /**
- * Insert a new call entry in the test DB.
- * @param number The phone number.
- * @param presentation Number representing display rules for "allowed",
- * "payphone", "restricted", or "unknown".
- * @param date In millisec since epoch. Use NOW to use the current time.
- * @param duration In seconds of the call. Use RAND_DURATION to pick a random one.
- * @param type Either Call.OUTGOING_TYPE or Call.INCOMING_TYPE or Call.MISSED_TYPE.
- */
- private void insert(String number, int presentation, long date, int duration, int type) {
- insertValues(getValuesToInsert(number, presentation, date, duration, type));
- }
-
- /** Inserts the given values in the cursor. */
- private void insertValues(Object[] values) {
- mCursor.addRow(values);
- ++mIndex;
- }
-
- /**
- * Returns the values for a new call entry.
- *
- * @param number The phone number.
- * @param presentation Number representing display rules for "allowed",
- * "payphone", "restricted", or "unknown".
- * @param date In millisec since epoch. Use NOW to use the current time.
- * @param duration In seconds of the call. Use RAND_DURATION to pick a random one.
- * @param type Either Call.OUTGOING_TYPE or Call.INCOMING_TYPE or Call.MISSED_TYPE.
- */
- private Object[] getValuesToInsert(String number, int presentation,
- long date, int duration, int type) {
- Object[] values = CallLogQueryTestUtils.createTestValues();
- values[CallLogQuery.ID] = mIndex;
- values[CallLogQuery.NUMBER] = number;
- values[CallLogQuery.NUMBER_PRESENTATION] = presentation;
- values[CallLogQuery.DATE] = date == NOW ? new Date().getTime() : date;
- values[CallLogQuery.DURATION] = duration < 0 ? mRnd.nextInt(10 * 60) : duration;
- if (mVoicemail != null && mVoicemail.equals(number)) {
- assertEquals(Calls.OUTGOING_TYPE, type);
- }
- values[CallLogQuery.CALL_TYPE] = type;
- values[CallLogQuery.COUNTRY_ISO] = TEST_COUNTRY_ISO;
- return values;
- }
-
- /**
- * Insert a new voicemail entry in the test DB.
- * @param number The phone number.
- * @param presentation Number representing display rules for "allowed",
- * "payphone", "restricted", or "unknown".
- * @param date In millisec since epoch. Use NOW to use the current time.
- * @param duration In seconds of the call. Use RAND_DURATION to pick a random one.
- */
- private void insertVoicemail(String number, int presentation, long date, int duration) {
- Object[] values = getValuesToInsert(number, presentation, date, duration, Calls.VOICEMAIL_TYPE);
- // Must have the same index as the row.
- values[CallLogQuery.VOICEMAIL_URI] =
- ContentUris.withAppendedId(VoicemailContract.Voicemails.CONTENT_URI, mIndex);
- insertValues(values);
- }
-
- /**
- * Insert a new private call entry in the test DB.
- * @param date In millisec since epoch. Use NOW to use the current time.
- * @param duration In seconds of the call. Use RAND_DURATION to pick a random one.
- */
- private void insertPrivate(long date, int duration) {
- insert("", Calls.PRESENTATION_RESTRICTED, date, duration, Calls.INCOMING_TYPE);
- }
-
- /**
- * Insert a new unknown call entry in the test DB.
- * @param date In millisec since epoch. Use NOW to use the current time.
- * @param duration In seconds of the call. Use RAND_DURATION to pick a random one.
- */
- private void insertUnknown(long date, int duration) {
- insert("", Calls.PRESENTATION_UNKNOWN, date, duration, Calls.INCOMING_TYPE);
- }
-
- /**
- * Insert a new call to voicemail entry in the test DB.
- * @param date In millisec since epoch. Use NOW to use the current time.
- * @param duration In seconds of the call. Use RAND_DURATION to pick a random one.
- */
- private void insertCalltoVoicemail(long date, int duration) {
- // mVoicemail may be null
- if (mVoicemail != null) {
- insert(mVoicemail, Calls.PRESENTATION_ALLOWED, date, duration, Calls.OUTGOING_TYPE);
- }
- }
-
- /**
- * Insert a range [start, end) of random numbers in the DB. For
- * each row, there is a 1/10 probability that the number will be
- * marked as PRIVATE or UNKNOWN or VOICEMAIL. For regular numbers, a number is
- * inserted, its last 4 digits will be the number of the iteration
- * in the range.
- * @param start Of the range.
- * @param end Of the range (excluded).
- * @return An array with 2 booleans [0 = private number, 1 =
- * unknown number, 2 = voicemail] to indicate if at least one
- * private or unknown or voicemail number has been inserted. Since
- * the numbers are random some tests may want to enforce the
- * insertion of such numbers.
- */
- // TODO: Should insert numbers with contact entries too.
- private boolean[] insertRandomRange(int start, int end) {
- boolean[] privateOrUnknownOrVm = new boolean[] {false, false, false};
-
- for (int i = start; i < end; i++ ) {
- int type = mRnd.nextInt(10);
-
- if (0 == type) {
- insertPrivate(NOW, RAND_DURATION);
- privateOrUnknownOrVm[0] = true;
- } else if (1 == type) {
- insertUnknown(NOW, RAND_DURATION);
- privateOrUnknownOrVm[1] = true;
- } else if (2 == type) {
- insertCalltoVoicemail(NOW, RAND_DURATION);
- privateOrUnknownOrVm[2] = true;
- } else {
- int inout = mRnd.nextBoolean() ? Calls.OUTGOING_TYPE : Calls.INCOMING_TYPE;
- final Formatter formatter = new Formatter();
- String number = formatter.format("1800123%04d", i).toString();
- formatter.close();
- insert(number, Calls.PRESENTATION_ALLOWED, NOW, RAND_DURATION, inout);
- }
- }
- return privateOrUnknownOrVm;
- }
-
- /** Asserts that the name text view is shown and contains the given text. */
- private void assertNameIs(CallLogListItemViewHolder viewHolder, String name) {
- assertEquals(View.VISIBLE, viewHolder.phoneCallDetailsViews.nameView.getVisibility());
- assertEquals(name, viewHolder.phoneCallDetailsViews.nameView.getText().toString());
- }
-
- /** Asserts that the label text view contains the given text. */
- private void assertLabel(CallLogListItemViewHolder viewHolder, CharSequence number,
- CharSequence label) {
- if (label != null) {
- assertTrue(viewHolder.phoneCallDetailsViews.callLocationAndDate.getText()
- .toString().contains(label));
- }
- }
-}
diff --git a/tests/src/com/android/dialer/calllog/CallLogGroupBuilderTest.java b/tests/src/com/android/dialer/calllog/CallLogGroupBuilderTest.java
index 891f0686f..04463c230 100644
--- a/tests/src/com/android/dialer/calllog/CallLogGroupBuilderTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogGroupBuilderTest.java
@@ -19,10 +19,11 @@ package com.android.dialer.calllog;
import static com.google.common.collect.Lists.newArrayList;
import android.database.MatrixCursor;
-import android.provider.CallLog.Calls;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
+import com.android.dialer.util.AppCompatConstants;
+
import java.util.List;
/**
@@ -34,6 +35,8 @@ public class CallLogGroupBuilderTest extends AndroidTestCase {
private static final String TEST_NUMBER1 = "14125551234";
/** A phone number for testing. */
private static final String TEST_NUMBER2 = "14125555555";
+ /** A post-dial string for testing */
+ private static final String TEST_POST_DIAL_DIGITS = ";12435;0987";
/** The object under test. */
private CallLogGroupBuilder mBuilder;
@@ -64,94 +67,176 @@ public class CallLogGroupBuilderTest extends AndroidTestCase {
}
public void testAddGroups_OneCall() {
- addCallLogEntry(TEST_NUMBER1, Calls.INCOMING_TYPE);
+ addCallLogEntry(TEST_NUMBER1, AppCompatConstants.CALLS_INCOMING_TYPE);
mBuilder.addGroups(mCursor);
- assertEquals(0, mFakeGroupCreator.groups.size());
+ assertEquals(1, mFakeGroupCreator.groups.size());
}
public void testAddGroups_TwoCallsNotMatching() {
- addCallLogEntry(TEST_NUMBER1, Calls.INCOMING_TYPE);
- addCallLogEntry(TEST_NUMBER2, Calls.INCOMING_TYPE);
+ addCallLogEntry(TEST_NUMBER1, AppCompatConstants.CALLS_INCOMING_TYPE);
+ addCallLogEntry(TEST_NUMBER2, AppCompatConstants.CALLS_INCOMING_TYPE);
mBuilder.addGroups(mCursor);
- assertEquals(0, mFakeGroupCreator.groups.size());
+ assertEquals(2, mFakeGroupCreator.groups.size());
}
public void testAddGroups_ThreeCallsMatching() {
- addCallLogEntry(TEST_NUMBER1, Calls.INCOMING_TYPE);
- addCallLogEntry(TEST_NUMBER1, Calls.INCOMING_TYPE);
- addCallLogEntry(TEST_NUMBER1, Calls.INCOMING_TYPE);
+ addCallLogEntry(TEST_NUMBER1, AppCompatConstants.CALLS_INCOMING_TYPE);
+ addCallLogEntry(TEST_NUMBER1, AppCompatConstants.CALLS_INCOMING_TYPE);
+ addCallLogEntry(TEST_NUMBER1, AppCompatConstants.CALLS_INCOMING_TYPE);
mBuilder.addGroups(mCursor);
assertEquals(1, mFakeGroupCreator.groups.size());
- assertGroupIs(0, 3, false, mFakeGroupCreator.groups.get(0));
+ assertGroupIs(0, 3, mFakeGroupCreator.groups.get(0));
+ }
+
+ public void testAddGroups_WithPostDialMatching() {
+ addCallLogEntryWithPostDialDigits(TEST_NUMBER1, TEST_POST_DIAL_DIGITS,
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
+ addCallLogEntryWithPostDialDigits(TEST_NUMBER1, TEST_POST_DIAL_DIGITS,
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
+ addCallLogEntryWithPostDialDigits(TEST_NUMBER1, "",
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
+
+ mBuilder.addGroups(mCursor);
+
+ if (PhoneNumberDisplayUtil.canShowPostDial()) {
+ assertEquals(2, mFakeGroupCreator.groups.size());
+ assertGroupIs(0, 2, mFakeGroupCreator.groups.get(0));
+ assertGroupIs(2, 1, mFakeGroupCreator.groups.get(1));
+ } else {
+ assertEquals(1, mFakeGroupCreator.groups.size());
+ assertGroupIs(0, 3, mFakeGroupCreator.groups.get(0));
+ }
}
public void testAddGroups_MatchingIncomingAndOutgoing() {
- addCallLogEntry(TEST_NUMBER1, Calls.INCOMING_TYPE);
- addCallLogEntry(TEST_NUMBER1, Calls.OUTGOING_TYPE);
- addCallLogEntry(TEST_NUMBER1, Calls.INCOMING_TYPE);
+ addCallLogEntry(TEST_NUMBER1, AppCompatConstants.CALLS_INCOMING_TYPE);
+ addCallLogEntry(TEST_NUMBER1, AppCompatConstants.CALLS_OUTGOING_TYPE);
+ addCallLogEntry(TEST_NUMBER1, AppCompatConstants.CALLS_INCOMING_TYPE);
mBuilder.addGroups(mCursor);
assertEquals(1, mFakeGroupCreator.groups.size());
- assertGroupIs(0, 3, false, mFakeGroupCreator.groups.get(0));
+ assertGroupIs(0, 3, mFakeGroupCreator.groups.get(0));
}
- public void testAddGroups_Voicemail() {
+ public void testGrouping_Voicemail() {
// Does not group with other types of calls, include voicemail themselves.
- assertCallsAreNotGrouped(Calls.VOICEMAIL_TYPE, Calls.MISSED_TYPE);
- //assertCallsAreNotGrouped(Calls.VOICEMAIL_TYPE, Calls.MISSED_TYPE, Calls.MISSED_TYPE);
- assertCallsAreNotGrouped(Calls.VOICEMAIL_TYPE, Calls.VOICEMAIL_TYPE);
- assertCallsAreNotGrouped(Calls.VOICEMAIL_TYPE, Calls.INCOMING_TYPE);
- assertCallsAreNotGrouped(Calls.VOICEMAIL_TYPE, Calls.OUTGOING_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_VOICEMAIL_TYPE, AppCompatConstants.CALLS_MISSED_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_VOICEMAIL_TYPE, AppCompatConstants.CALLS_VOICEMAIL_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_VOICEMAIL_TYPE, AppCompatConstants.CALLS_INCOMING_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_VOICEMAIL_TYPE, AppCompatConstants.CALLS_OUTGOING_TYPE);
}
- public void testAddGroups_Missed() {
+ public void testGrouping_Missed() {
// Groups with one or more missed calls.
- assertCallsAreGrouped(Calls.MISSED_TYPE, Calls.MISSED_TYPE);
- assertCallsAreGrouped(Calls.MISSED_TYPE, Calls.MISSED_TYPE, Calls.MISSED_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_MISSED_TYPE, AppCompatConstants.CALLS_MISSED_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE);
// Does not group with other types of calls.
- assertCallsAreNotGrouped(Calls.MISSED_TYPE, Calls.VOICEMAIL_TYPE);
- assertCallsAreGrouped(Calls.MISSED_TYPE, Calls.INCOMING_TYPE);
- assertCallsAreGrouped(Calls.MISSED_TYPE, Calls.OUTGOING_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_MISSED_TYPE, AppCompatConstants.CALLS_VOICEMAIL_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_MISSED_TYPE, AppCompatConstants.CALLS_INCOMING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_MISSED_TYPE, AppCompatConstants.CALLS_OUTGOING_TYPE);
}
- public void testAddGroups_Incoming() {
+ public void testGrouping_Incoming() {
// Groups with one or more incoming or outgoing.
- assertCallsAreGrouped(Calls.INCOMING_TYPE, Calls.INCOMING_TYPE);
- assertCallsAreGrouped(Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE);
- assertCallsAreGrouped(Calls.INCOMING_TYPE, Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE);
- assertCallsAreGrouped(Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE, Calls.INCOMING_TYPE);
- assertCallsAreGrouped(Calls.INCOMING_TYPE, Calls.MISSED_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_INCOMING_TYPE, AppCompatConstants.CALLS_INCOMING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_INCOMING_TYPE, AppCompatConstants.CALLS_OUTGOING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE,
+ AppCompatConstants.CALLS_INCOMING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_INCOMING_TYPE, AppCompatConstants.CALLS_MISSED_TYPE);
// Does not group with voicemail and missed calls.
- assertCallsAreNotGrouped(Calls.INCOMING_TYPE, Calls.VOICEMAIL_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_INCOMING_TYPE, AppCompatConstants.CALLS_VOICEMAIL_TYPE);
}
- public void testAddGroups_Outgoing() {
+ public void testGrouping_Outgoing() {
// Groups with one or more incoming or outgoing.
- assertCallsAreGrouped(Calls.OUTGOING_TYPE, Calls.INCOMING_TYPE);
- assertCallsAreGrouped(Calls.OUTGOING_TYPE, Calls.OUTGOING_TYPE);
- assertCallsAreGrouped(Calls.OUTGOING_TYPE, Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE);
- assertCallsAreGrouped(Calls.OUTGOING_TYPE, Calls.OUTGOING_TYPE, Calls.INCOMING_TYPE);
- assertCallsAreGrouped(Calls.INCOMING_TYPE, Calls.MISSED_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_OUTGOING_TYPE, AppCompatConstants.CALLS_INCOMING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_OUTGOING_TYPE, AppCompatConstants.CALLS_OUTGOING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_OUTGOING_TYPE,
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_OUTGOING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE,
+ AppCompatConstants.CALLS_INCOMING_TYPE);
+ assertCallsAreGrouped(
+ AppCompatConstants.CALLS_INCOMING_TYPE, AppCompatConstants.CALLS_MISSED_TYPE);
// Does not group with voicemail and missed calls.
- assertCallsAreNotGrouped(Calls.INCOMING_TYPE, Calls.VOICEMAIL_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_INCOMING_TYPE, AppCompatConstants.CALLS_VOICEMAIL_TYPE);
+ }
+
+ public void testGrouping_Blocked() {
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_BLOCKED_TYPE, AppCompatConstants.CALLS_INCOMING_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_BLOCKED_TYPE, AppCompatConstants.CALLS_OUTGOING_TYPE);
+ assertCallsAreNotGrouped(
+ AppCompatConstants.CALLS_BLOCKED_TYPE, AppCompatConstants.CALLS_MISSED_TYPE);
+
}
public void testAddGroups_Mixed() {
addMultipleCallLogEntries(TEST_NUMBER1,
- Calls.VOICEMAIL_TYPE, // Stand-alone
- Calls.INCOMING_TYPE, // Group 1: 1-4
- Calls.OUTGOING_TYPE,
- Calls.MISSED_TYPE,
- Calls.MISSED_TYPE,
- Calls.VOICEMAIL_TYPE, // Stand-alone
- Calls.INCOMING_TYPE, // Stand-alone
- Calls.VOICEMAIL_TYPE, // Stand-alone
- Calls.MISSED_TYPE, // Group 2: 8-10
- Calls.MISSED_TYPE,
- Calls.OUTGOING_TYPE);
+ AppCompatConstants.CALLS_VOICEMAIL_TYPE, // Group 1: 0
+ AppCompatConstants.CALLS_INCOMING_TYPE, // Group 2: 1-4
+ AppCompatConstants.CALLS_OUTGOING_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_VOICEMAIL_TYPE, // Group 3: 5
+ AppCompatConstants.CALLS_INCOMING_TYPE, // Group 4: 6
+ AppCompatConstants.CALLS_VOICEMAIL_TYPE, // Group 5: 7
+ AppCompatConstants.CALLS_MISSED_TYPE, // Group 6: 8-10
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
mBuilder.addGroups(mCursor);
- assertEquals(2, mFakeGroupCreator.groups.size());
- assertGroupIs(1, 4, false, mFakeGroupCreator.groups.get(0));
- assertGroupIs(8, 3, false, mFakeGroupCreator.groups.get(1));
+
+ assertEquals(6, mFakeGroupCreator.groups.size());
+ assertGroupIs(0, 1, mFakeGroupCreator.groups.get(0));
+ assertGroupIs(1, 4, mFakeGroupCreator.groups.get(1));
+ assertGroupIs(5, 1, mFakeGroupCreator.groups.get(2));
+ assertGroupIs(6, 1, mFakeGroupCreator.groups.get(3));
+ assertGroupIs(7, 1, mFakeGroupCreator.groups.get(4));
+ assertGroupIs(8, 3, mFakeGroupCreator.groups.get(5));
+ }
+
+ public void testAddGroups_Blocked() {
+ addMultipleCallLogEntries(TEST_NUMBER1,
+ AppCompatConstants.CALLS_INCOMING_TYPE, // Group 1: 0-1
+ AppCompatConstants.CALLS_OUTGOING_TYPE,
+ AppCompatConstants.CALLS_BLOCKED_TYPE, // Group 2: 2
+ AppCompatConstants.CALLS_MISSED_TYPE, // Group 3: 3
+ AppCompatConstants.CALLS_BLOCKED_TYPE, // Group 4: 4-5
+ AppCompatConstants.CALLS_BLOCKED_TYPE);
+ mBuilder.addGroups(mCursor);
+
+ assertEquals(4, mFakeGroupCreator.groups.size());
+ assertGroupIs(0, 2, mFakeGroupCreator.groups.get(0));
+ assertGroupIs(2, 1, mFakeGroupCreator.groups.get(1));
+ assertGroupIs(3, 1, mFakeGroupCreator.groups.get(2));
+ assertGroupIs(4, 2, mFakeGroupCreator.groups.get(3));
}
public void testEqualPhoneNumbers() {
@@ -228,7 +313,7 @@ public class CallLogGroupBuilderTest extends AndroidTestCase {
addMultipleCallLogEntries(TEST_NUMBER1, types);
mBuilder.addGroups(mCursor);
assertEquals(1, mFakeGroupCreator.groups.size());
- assertGroupIs(0, types.length, false, mFakeGroupCreator.groups.get(0));
+ assertGroupIs(0, types.length, mFakeGroupCreator.groups.get(0));
}
@@ -238,7 +323,7 @@ public class CallLogGroupBuilderTest extends AndroidTestCase {
clearFakeGroupCreator();
addMultipleCallLogEntries(TEST_NUMBER1, types);
mBuilder.addGroups(mCursor);
- assertEquals(0, mFakeGroupCreator.groups.size());
+ assertEquals(types.length, mFakeGroupCreator.groups.size());
}
/** Adds a set of calls with the given types, all from the same number, in the old section. */
@@ -249,11 +334,19 @@ public class CallLogGroupBuilderTest extends AndroidTestCase {
}
/** Adds a call log entry with the given number and type to the cursor. */
private void addCallLogEntry(String number, int type) {
+ addCallLogEntryWithPostDialDigits(number, "", type);
+ }
+
+ /** Adds a call log entry with the given number, post-dial digits, and type to the cursor. */
+ private void addCallLogEntryWithPostDialDigits(String number, String postDialDigits, int type) {
mCursor.moveToNext();
Object[] values = CallLogQueryTestUtils.createTestValues();
values[CallLogQuery.ID] = mCursor.getPosition();
values[CallLogQuery.NUMBER] = number;
values[CallLogQuery.CALL_TYPE] = type;
+ if (PhoneNumberDisplayUtil.canShowPostDial()) {
+ values[CallLogQuery.POST_DIAL_DIGITS] = postDialDigits;
+ }
mCursor.addRow(values);
}
@@ -266,10 +359,9 @@ public class CallLogGroupBuilderTest extends AndroidTestCase {
}
/** Asserts that the group matches the given values. */
- private void assertGroupIs(int cursorPosition, int size, boolean expanded, GroupSpec group) {
+ private void assertGroupIs(int cursorPosition, int size, GroupSpec group) {
assertEquals(cursorPosition, group.cursorPosition);
assertEquals(size, group.size);
- assertEquals(expanded, group.expanded);
}
/** Defines an added group. Used by the {@link FakeGroupCreator}. */
@@ -278,13 +370,10 @@ public class CallLogGroupBuilderTest extends AndroidTestCase {
public final int cursorPosition;
/** The number of elements in the group. */
public final int size;
- /** Whether the group should be initially expanded. */
- public final boolean expanded;
- public GroupSpec(int cursorPosition, int size, boolean expanded) {
+ public GroupSpec(int cursorPosition, int size) {
this.cursorPosition = cursorPosition;
this.size = size;
- this.expanded = expanded;
}
}
@@ -294,8 +383,8 @@ public class CallLogGroupBuilderTest extends AndroidTestCase {
public final List<GroupSpec> groups = newArrayList();
@Override
- public void addGroup(int cursorPosition, int size, boolean expanded) {
- groups.add(new GroupSpec(cursorPosition, size, expanded));
+ public void addGroup(int cursorPosition, int size) {
+ groups.add(new GroupSpec(cursorPosition, size));
}
@Override
diff --git a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
index 8c2d8e443..28caed469 100644
--- a/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/CallLogListItemHelperTest.java
@@ -20,15 +20,19 @@ import android.content.Context;
import android.content.res.Resources;
import android.provider.CallLog.Calls;
import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
import android.view.View;
import com.android.contacts.common.CallUtil;
import com.android.dialer.PhoneCallDetails;
import com.android.dialer.R;
+import com.android.dialer.calllog.calllogcache.TestTelecomCallLogCache;
+import com.android.dialer.util.AppCompatConstants;
/**
* Unit tests for {@link CallLogListItemHelper}.
*/
+@MediumTest
public class CallLogListItemHelperTest extends AndroidTestCase {
/** A test phone number for phone calls. */
private static final String TEST_NUMBER = "14125555555";
@@ -103,20 +107,22 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
}
public void testSetPhoneCallDetails_ReadVoicemail() {
- PhoneCallDetails details = getPhoneCallDetailsWithTypes(Calls.VOICEMAIL_TYPE);
+ PhoneCallDetails details =
+ getPhoneCallDetailsWithTypes(AppCompatConstants.CALLS_VOICEMAIL_TYPE);
mHelper.setPhoneCallDetails(mViewHolder, details);
assertEquals(View.VISIBLE, mViewHolder.voicemailPlaybackView.getVisibility());
}
public void testSetPhoneCallDetails_UnreadVoicemail() {
- PhoneCallDetails details = getPhoneCallDetailsWithTypes(Calls.VOICEMAIL_TYPE);
+ PhoneCallDetails details =
+ getPhoneCallDetailsWithTypes(AppCompatConstants.CALLS_VOICEMAIL_TYPE);
mHelper.setPhoneCallDetails(mViewHolder, details);
assertEquals(View.VISIBLE, mViewHolder.voicemailPlaybackView.getVisibility());
}
public void testSetPhoneCallDetails_VoicemailFromUnknown() {
setPhoneCallDetailsWithNumberAndType("", Calls.PRESENTATION_UNKNOWN,
- "", Calls.VOICEMAIL_TYPE);
+ "", AppCompatConstants.CALLS_VOICEMAIL_TYPE);
assertEquals(View.VISIBLE, mViewHolder.voicemailPlaybackView.getVisibility());
}
@@ -124,27 +130,18 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
* Test getCallDescriptionID method used to get the accessibility description for calls.
*/
public void testGetCallDescriptionID_Answered() {
- int[] callTypes = new int[]{ Calls.INCOMING_TYPE };
+ int[] callTypes = new int[] {AppCompatConstants.CALLS_INCOMING_TYPE};
assertEquals(R.string.description_incoming_answered_call,
- mHelper.getCallDescriptionStringID(callTypes));
+ mHelper.getCallDescriptionStringID(callTypes, true));
}
/**
* Test getCallDescriptionID method used to get the accessibility description for calls.
*/
public void testGetCallDescriptionID_Missed() {
- int[] callTypes = new int[]{ Calls.MISSED_TYPE };
- assertEquals(R.string.description_incoming_missed_call,
- mHelper.getCallDescriptionStringID(callTypes));
- }
-
- /**
- * Test getCallDescriptionID method used to get the accessibility description for calls.
- */
- public void testGetCallDescriptionID_Voicemail() {
- int[] callTypes = new int[]{ Calls.VOICEMAIL_TYPE };
+ int[] callTypes = new int[] {AppCompatConstants.CALLS_MISSED_TYPE};
assertEquals(R.string.description_incoming_missed_call,
- mHelper.getCallDescriptionStringID(callTypes));
+ mHelper.getCallDescriptionStringID(callTypes, true));
}
/**
@@ -153,9 +150,9 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
* only a single call for this caller.
*/
public void testGetCallDescriptionID_OutgoingSingle() {
- int[] callTypes = new int[]{ Calls.OUTGOING_TYPE };
+ int[] callTypes = new int[] {AppCompatConstants.CALLS_OUTGOING_TYPE};
assertEquals(R.string.description_outgoing_call,
- mHelper.getCallDescriptionStringID(callTypes));
+ mHelper.getCallDescriptionStringID(callTypes, true));
}
/**
@@ -164,57 +161,32 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
* many calls for this caller.
*/
public void testGetCallDescriptionID_OutgoingMultiple() {
- int[] callTypes = new int[]{ Calls.OUTGOING_TYPE, Calls.OUTGOING_TYPE };
+ int[] callTypes = new int[] {
+ AppCompatConstants.CALLS_OUTGOING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE
+ };
assertEquals(R.string.description_outgoing_call,
- mHelper.getCallDescriptionStringID(callTypes));
+ mHelper.getCallDescriptionStringID(callTypes, true));
}
/**
* Test getCallDescription method used to get the accessibility description for calls.
- * For outgoing calls, we should NOT have "New Voicemail" in the description.
+ * For read voicemail calls, we should have "Voicemail" in the description.
*/
- public void testGetCallDescription_NoVoicemailOutgoing() {
- PhoneCallDetails details =
- getPhoneCallDetailsWithTypes(Calls.OUTGOING_TYPE, Calls.OUTGOING_TYPE);
- CharSequence description = mHelper.getCallDescription(details);
- assertFalse(description.toString()
- .contains(this.mResources.getString(R.string.description_new_voicemail)));
- }
-
- /**
- * Test getCallDescription method used to get the accessibility description for calls.
- * For regular incoming calls, we should NOT have "New Voicemail" in the description.
- */
- public void testGetCallDescription_NoVoicemailIncoming() {
- PhoneCallDetails details =
- getPhoneCallDetailsWithTypes(Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE);
- CharSequence description = mHelper.getCallDescription(details);
- assertFalse(description.toString()
- .contains(this.mResources.getString(R.string.description_new_voicemail)));
- }
-
- /**
- * Test getCallDescription method used to get the accessibility description for calls.
- * For regular missed calls, we should NOT have "New Voicemail" in the description.
- */
- public void testGetCallDescription_NoVoicemailMissed() {
- PhoneCallDetails details =
- getPhoneCallDetailsWithTypes(Calls.MISSED_TYPE, Calls.OUTGOING_TYPE);
- CharSequence description = mHelper.getCallDescription(details);
- assertFalse(description.toString()
- .contains(this.mResources.getString(R.string.description_new_voicemail)));
+ public void testGetCallDescriptionID_Voicemail() {
+ int[] callTypes = new int[] {AppCompatConstants.CALLS_VOICEMAIL_TYPE};
+ assertEquals(R.string.description_read_voicemail,
+ mHelper.getCallDescriptionStringID(callTypes, true));
}
/**
* Test getCallDescription method used to get the accessibility description for calls.
- * For voicemail calls, we should have "New Voicemail" in the description.
+ * For unread voicemail calls, we should have "Unread voicemail" in the description.
*/
- public void testGetCallDescription_Voicemail() {
- PhoneCallDetails details =
- getPhoneCallDetailsWithTypes(Calls.VOICEMAIL_TYPE, Calls.OUTGOING_TYPE);
- CharSequence description = mHelper.getCallDescription(details);
- assertTrue(description.toString()
- .contains(this.mResources.getString(R.string.description_new_voicemail)));
+ public void testGetCallDescriptionID_UnreadVoicemail() {
+ int[] callTypes = new int[] {AppCompatConstants.CALLS_VOICEMAIL_TYPE};
+ assertEquals(R.string.description_unread_voicemail,
+ mHelper.getCallDescriptionStringID(callTypes, false));
}
/**
@@ -222,7 +194,8 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
* Test that the "X calls" message is not present if there is only a single call.
*/
public void testGetCallDescription_NumCallsSingle() {
- PhoneCallDetails details = getPhoneCallDetailsWithTypes(Calls.VOICEMAIL_TYPE);
+ PhoneCallDetails details =
+ getPhoneCallDetailsWithTypes(AppCompatConstants.CALLS_VOICEMAIL_TYPE);
CharSequence description = mHelper.getCallDescription(details);
// Rather than hard coding the "X calls" string message, we'll generate it with an empty
@@ -238,8 +211,8 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
* Test that the "X calls" message is present if there are many calls.
*/
public void testGetCallDescription_NumCallsMultiple() {
- PhoneCallDetails details =
- getPhoneCallDetailsWithTypes(Calls.VOICEMAIL_TYPE, Calls.INCOMING_TYPE);
+ PhoneCallDetails details = getPhoneCallDetailsWithTypes(
+ AppCompatConstants.CALLS_VOICEMAIL_TYPE, AppCompatConstants.CALLS_INCOMING_TYPE);
CharSequence description = mHelper.getCallDescription(details);
assertTrue(description.toString()
.contains(this.mResources.getString(R.string.description_num_calls, 2)));
@@ -250,8 +223,8 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
* Test that the "Video call." message is present if the call had video capability.
*/
public void testGetCallDescription_Video() {
- PhoneCallDetails details =
- getPhoneCallDetailsWithTypes(Calls.INCOMING_TYPE, Calls.INCOMING_TYPE);
+ PhoneCallDetails details = getPhoneCallDetailsWithTypes(
+ AppCompatConstants.CALLS_INCOMING_TYPE, AppCompatConstants.CALLS_INCOMING_TYPE);
details.features = Calls.FEATURES_VIDEO;
CharSequence description = mHelper.getCallDescription(details);
@@ -266,7 +239,7 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
/** Asserts that the primary action view does not have a call intent. */
private void assertNoCallIntent() {
- Object intentProvider = (IntentProvider)mViewHolder.primaryActionView.getTag();
+ Object intentProvider = mViewHolder.primaryActionView.getTag();
// The intent provider should be null as there is no ability to make a call.
assertNull(intentProvider);
}
@@ -274,26 +247,34 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
/** Sets the details of a phone call using the specified phone number. */
private void setPhoneCallDetailsWithNumber(String number,
int presentation, String formattedNumber) {
- setPhoneCallDetailsWithNumberAndType(number, presentation,
+ setPhoneCallDetailsWithNumberTypeAndPostDialDigits(number, "", presentation,
formattedNumber, Calls.INCOMING_TYPE);
}
/** Sets the details of a phone call using the specified phone number. */
private void setPhoneCallDetailsWithNumberAndType(String number,
int presentation, String formattedNumber, int callType) {
+ setPhoneCallDetailsWithNumberTypeAndPostDialDigits(number, "", presentation,
+ formattedNumber, callType);
+ }
+
+ /** Sets the details of a phone call using the specified phone number and post-dial digits. */
+ private void setPhoneCallDetailsWithNumberTypeAndPostDialDigits(String number,
+ String postDialDigits, int presentation, String formattedNumber, int callType) {
PhoneCallDetails details = getPhoneCallDetails(
- number, presentation, formattedNumber);
- details.callTypes = new int[]{ callType };
+ number, postDialDigits, presentation, formattedNumber);
+ details.callTypes = new int[] {callType};
mHelper.setPhoneCallDetails(mViewHolder, details);
}
private PhoneCallDetails getPhoneCallDetails(
- String number, int presentation, String formattedNumber) {
+ String number, String postDialDigits, int presentation, String formattedNumber) {
PhoneCallDetails details = new PhoneCallDetails(
mContext,
number,
presentation,
formattedNumber,
+ postDialDigits,
false /* isVoicemail */);
setDefaultDetails(details);
return details;
@@ -306,6 +287,7 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
TEST_NUMBER,
Calls.PRESENTATION_ALLOWED,
TEST_FORMATTED_NUMBER,
+ "",
false /* isVoicemail */);
setDefaultDetails(details);
details.callTypes = types;
@@ -313,7 +295,7 @@ public class CallLogListItemHelperTest extends AndroidTestCase {
}
private void setDefaultDetails(PhoneCallDetails details) {
- details.callTypes = new int[]{ Calls.INCOMING_TYPE };
+ details.callTypes = new int[] {Calls.INCOMING_TYPE};
details.countryIso = TEST_COUNTRY_ISO;
details.date = TEST_DATE;
details.duration = TEST_DURATION;
diff --git a/tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java b/tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java
index 5b4629318..1e4a00000 100644
--- a/tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java
+++ b/tests/src/com/android/dialer/calllog/CallLogQueryTestUtils.java
@@ -20,17 +20,24 @@ import static junit.framework.Assert.assertEquals;
import android.provider.CallLog.Calls;
-import junit.framework.Assert;
-
/**
* Helper class to create test values for {@link CallLogQuery}.
*/
public class CallLogQueryTestUtils {
public static Object[] createTestValues() {
- Object[] values = new Object[]{
- 0L, "", 0L, 0L, Calls.INCOMING_TYPE, "", "", "", null, 0, null, null, null, null,
- 0L, null, 0, Calls.PRESENTATION_ALLOWED, null, null, 0, null, null, null
- };
+ Object[] values;
+ if (PhoneNumberDisplayUtil.canShowPostDial()) {
+ values = new Object[]{
+ 0L, "", 0L, 0L, Calls.INCOMING_TYPE, "", "", "", null, 0, null, null, null,
+ null, 0L, null, 0, Calls.PRESENTATION_ALLOWED, null, null, 0, null, null,
+ null, ""
+ };
+ } else {
+ values = new Object[]{
+ 0L, "", 0L, 0L, Calls.INCOMING_TYPE, "", "", "", null, 0, null, null, null,
+ null, 0L, null, 0, Calls.PRESENTATION_ALLOWED, null, null, 0, null, null, null
+ };
+ }
assertEquals(CallLogQuery._PROJECTION.length, values.length);
return values;
}
diff --git a/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java b/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java
new file mode 100644
index 000000000..588a27fcf
--- /dev/null
+++ b/tests/src/com/android/dialer/calllog/ContactInfoHelperTest.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.calllog;
+
+import android.net.Uri;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.PhoneLookup;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
+
+import com.android.contacts.common.test.mocks.ContactsMockContext;
+import com.android.contacts.common.test.mocks.MockContentProvider.Query;
+
+import junit.framework.Assert;
+
+@MediumTest
+public class ContactInfoHelperTest extends AndroidTestCase {
+
+ private static final String TEST_COUNTRY_ISO = "US";
+ private static final String TEST_DISPLAY_NAME = "Display Name";
+ private static final String TEST_DISPLAY_NAME_ALTERNATIVE = "Name, Display";
+ private static final String[] TEST_DISPLAY_NAME_ALTERNATIVE_ROW = new String[]{
+ TEST_DISPLAY_NAME_ALTERNATIVE};
+ private static final String TEST_LOOKUP_KEY = "lookupKey";
+ private static final String[] TEST_LOOKUP_ROW = new String[]{null, TEST_DISPLAY_NAME,
+ null, null, null, null, null, TEST_LOOKUP_KEY, null};
+
+ private Uri displayNameAlternativeUri;
+ private ContactsMockContext mContext;
+ private ContactInfo mContactInfo;
+ private ContactInfoHelper mContactInfoHelper;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+
+ displayNameAlternativeUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI,
+ TEST_LOOKUP_KEY);
+ mContext = new ContactsMockContext(getContext());
+ mContactInfo = new ContactInfo();
+ mContactInfo.name = TEST_DISPLAY_NAME;
+ mContactInfo.nameAlternative = TEST_DISPLAY_NAME_ALTERNATIVE;
+ mContactInfoHelper = new ContactInfoHelper(mContext, TEST_COUNTRY_ISO);
+ }
+
+ public void testLookupContactFromUri_NullUri() {
+ Assert.assertNull(mContactInfoHelper.lookupContactFromUri(null));
+ }
+
+ public void testLookupContactFromUri_NoResults() {
+ setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
+ PhoneQuery.PHONE_LOOKUP_PROJECTION);
+
+ Assert.assertEquals(ContactInfo.EMPTY, mContactInfoHelper.lookupContactFromUri(
+ PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI));
+ mContext.verify();
+ }
+
+ public void testLookupContactFromUri_NoDisplayNameAlternative() {
+ setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
+ PhoneQuery.PHONE_LOOKUP_PROJECTION, TEST_LOOKUP_ROW);
+ setUpQueryExpectations(displayNameAlternativeUri,
+ PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION);
+
+ ContactInfo contactInfo = mContactInfoHelper.lookupContactFromUri(
+ PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI);
+ Assert.assertEquals(TEST_DISPLAY_NAME, contactInfo.name);
+ Assert.assertNull(contactInfo.nameAlternative);
+ mContext.verify();
+ }
+
+ public void testLookupContactFromUri_HasDisplayNameAlternative() {
+ setUpQueryExpectations(PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI,
+ PhoneQuery.PHONE_LOOKUP_PROJECTION, TEST_LOOKUP_ROW);
+ setUpQueryExpectations(displayNameAlternativeUri,
+ PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION, TEST_DISPLAY_NAME_ALTERNATIVE_ROW);
+
+ ContactInfo contactInfo = mContactInfoHelper.lookupContactFromUri(
+ PhoneLookup.ENTERPRISE_CONTENT_FILTER_URI);
+ Assert.assertEquals(TEST_DISPLAY_NAME, contactInfo.name);
+ Assert.assertEquals(TEST_DISPLAY_NAME_ALTERNATIVE, contactInfo.nameAlternative);
+ mContext.verify();
+ }
+
+ public void testLookupDisplayNameAlternative_NullLookup() {
+ Assert.assertNull(mContactInfoHelper.lookUpDisplayNameAlternative(mContext, null));
+ }
+
+ public void testLookupDisplayNameAlternative_NoResults() {
+ setUpQueryExpectations(displayNameAlternativeUri,
+ PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION);
+ Assert.assertNull(mContactInfoHelper.lookUpDisplayNameAlternative(mContext, TEST_LOOKUP_KEY));
+ mContext.verify();
+ }
+
+ public void testLookupDisplayNameAlternative_HasDisplayNameAlternative() {
+ setUpQueryExpectations(displayNameAlternativeUri,
+ PhoneQuery.DISPLAY_NAME_ALTERNATIVE_PROJECTION, TEST_DISPLAY_NAME_ALTERNATIVE_ROW);
+ Assert.assertEquals(TEST_DISPLAY_NAME_ALTERNATIVE,
+ mContactInfoHelper.lookUpDisplayNameAlternative(mContext, TEST_LOOKUP_KEY));
+ mContext.verify();
+ }
+
+ /*
+ * Sets up query expectations to return the given row for all queries for the given
+ * uri and projection. If row is null, an empty cursor is returned for query calls
+ */
+ private void setUpQueryExpectations(Uri uri, String[] projection, String...row) {
+ Query query = mContext.getContactsProvider().expectQuery(uri)
+ .withProjection(projection).withAnySelection().withAnySortOrder();
+ if (row == null || row.length == 0) {
+ query.returnEmptyCursor();
+ return;
+ }
+ query.returnRow(row);
+ }
+}
diff --git a/tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java b/tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java
index 53583e0a7..4d51f72ae 100644
--- a/tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java
+++ b/tests/src/com/android/dialer/calllog/GroupingListAdapterTests.java
@@ -16,15 +16,12 @@
package com.android.dialer.calllog;
-import static com.android.dialer.calllog.GroupingListAdapter.ITEM_TYPE_GROUP_HEADER;
-import static com.android.dialer.calllog.GroupingListAdapter.ITEM_TYPE_IN_GROUP;
-import static com.android.dialer.calllog.GroupingListAdapter.ITEM_TYPE_STANDALONE;
-
import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.support.v7.widget.RecyclerView;
import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
@@ -37,6 +34,7 @@ import android.view.ViewGroup;
* adb shell am instrument -e class com.android.dialer.calllog.GroupingListAdapterTests \
* -w com.android.dialer.tests/android.test.InstrumentationTestRunner
*/
+@MediumTest
public class GroupingListAdapterTests extends AndroidTestCase {
static private final String[] PROJECTION = new String[] {
@@ -63,17 +61,12 @@ public class GroupingListAdapterTests extends AndroidTestCase {
if (TextUtils.equals(value, currentValue)) {
groupItemCount++;
} else {
- if (groupItemCount > 1) {
- addGroup(i - groupItemCount, groupItemCount, false);
- }
-
+ addGroup(i - groupItemCount, groupItemCount);
groupItemCount = 1;
currentValue = value;
}
}
- if (groupItemCount > 1) {
- addGroup(count - groupItemCount, groupItemCount, false);
- }
+ addGroup(count - groupItemCount, groupItemCount);
}
@Override
@@ -92,7 +85,6 @@ public class GroupingListAdapterTests extends AndroidTestCase {
}
};
-
private void buildCursor(String... numbers) {
mCursor = new MatrixCursor(PROJECTION);
mNextId = 1;
@@ -107,170 +99,51 @@ public class GroupingListAdapterTests extends AndroidTestCase {
mAdapter.changeCursor(mCursor);
assertEquals(3, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_STANDALONE, false, 1);
- assertPositionMetadata(2, ITEM_TYPE_STANDALONE, false, 2);
+ assertMetadata(0, 1, "1");
+ assertMetadata(1, 1, "2");
+ assertMetadata(2, 1, "3");
}
- public void testGroupingWithCollapsedGroupAtTheBeginning() {
+ public void testGroupingWithGroupAtTheBeginning() {
buildCursor("1", "1", "2");
mAdapter.changeCursor(mCursor);
assertEquals(2, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_GROUP_HEADER, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_STANDALONE, false, 2);
- }
-
- public void testGroupingWithExpandedGroupAtTheBeginning() {
- buildCursor("1", "1", "2");
- mAdapter.changeCursor(mCursor);
- mAdapter.toggleGroup(0);
-
- assertEquals(4, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_GROUP_HEADER, true, 0);
- assertPositionMetadata(1, ITEM_TYPE_IN_GROUP, false, 0);
- assertPositionMetadata(2, ITEM_TYPE_IN_GROUP, false, 1);
- assertPositionMetadata(3, ITEM_TYPE_STANDALONE, false, 2);
+ assertMetadata(0, 2, "1");
+ assertMetadata(1, 1, "2");
}
- public void testGroupingWithExpandCollapseCycleAtTheBeginning() {
- buildCursor("1", "1", "2");
- mAdapter.changeCursor(mCursor);
- mAdapter.toggleGroup(0);
- mAdapter.toggleGroup(0);
-
- assertEquals(2, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_GROUP_HEADER, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_STANDALONE, false, 2);
- }
-
- public void testGroupingWithCollapsedGroupInTheMiddle() {
+ public void testGroupingWithGroupInTheMiddle() {
buildCursor("1", "2", "2", "2", "3");
mAdapter.changeCursor(mCursor);
assertEquals(3, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_GROUP_HEADER, false, 1);
- assertPositionMetadata(2, ITEM_TYPE_STANDALONE, false, 4);
+ assertMetadata(0, 1, "1");
+ assertMetadata(1, 3, "2");
+ assertMetadata(2, 1, "3");
}
- public void testGroupingWithExpandedGroupInTheMiddle() {
- buildCursor("1", "2", "2", "2", "3");
- mAdapter.changeCursor(mCursor);
- mAdapter.toggleGroup(1);
-
- assertEquals(6, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_GROUP_HEADER, true, 1);
- assertPositionMetadata(2, ITEM_TYPE_IN_GROUP, false, 1);
- assertPositionMetadata(3, ITEM_TYPE_IN_GROUP, false, 2);
- assertPositionMetadata(4, ITEM_TYPE_IN_GROUP, false, 3);
- assertPositionMetadata(5, ITEM_TYPE_STANDALONE, false, 4);
- }
-
- public void testGroupingWithCollapsedGroupAtTheEnd() {
+ public void testGroupingWithGroupAtTheEnd() {
buildCursor("1", "2", "3", "3", "3");
mAdapter.changeCursor(mCursor);
assertEquals(3, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_STANDALONE, false, 1);
- assertPositionMetadata(2, ITEM_TYPE_GROUP_HEADER, false, 2);
+ assertMetadata(0, 1, "1");
+ assertMetadata(1, 1, "2");
+ assertMetadata(2, 3, "3");
}
- public void testGroupingWithExpandedGroupAtTheEnd() {
- buildCursor("1", "2", "3", "3", "3");
- mAdapter.changeCursor(mCursor);
- mAdapter.toggleGroup(2);
-
- assertEquals(6, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_STANDALONE, false, 1);
- assertPositionMetadata(2, ITEM_TYPE_GROUP_HEADER, true, 2);
- assertPositionMetadata(3, ITEM_TYPE_IN_GROUP, false, 2);
- assertPositionMetadata(4, ITEM_TYPE_IN_GROUP, false, 3);
- assertPositionMetadata(5, ITEM_TYPE_IN_GROUP, false, 4);
- }
-
- public void testGroupingWithMultipleCollapsedGroups() {
- buildCursor("1", "2", "2", "3", "4", "4", "5", "5", "6");
- mAdapter.changeCursor(mCursor);
-
- assertEquals(6, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_GROUP_HEADER, false, 1);
- assertPositionMetadata(2, ITEM_TYPE_STANDALONE, false, 3);
- assertPositionMetadata(3, ITEM_TYPE_GROUP_HEADER, false, 4);
- assertPositionMetadata(4, ITEM_TYPE_GROUP_HEADER, false, 6);
- assertPositionMetadata(5, ITEM_TYPE_STANDALONE, false, 8);
- }
-
- public void testGroupingWithMultipleExpandedGroups() {
- buildCursor("1", "2", "2", "3", "4", "4", "5", "5", "6");
- mAdapter.changeCursor(mCursor);
- mAdapter.toggleGroup(1);
-
- // Note that expanding the group of 2's shifted the group of 5's down from the
- // 4th to the 6th position
- mAdapter.toggleGroup(6);
-
- assertEquals(10, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_GROUP_HEADER, true, 1);
- assertPositionMetadata(2, ITEM_TYPE_IN_GROUP, false, 1);
- assertPositionMetadata(3, ITEM_TYPE_IN_GROUP, false, 2);
- assertPositionMetadata(4, ITEM_TYPE_STANDALONE, false, 3);
- assertPositionMetadata(5, ITEM_TYPE_GROUP_HEADER, false, 4);
- assertPositionMetadata(6, ITEM_TYPE_GROUP_HEADER, true, 6);
- assertPositionMetadata(7, ITEM_TYPE_IN_GROUP, false, 6);
- assertPositionMetadata(8, ITEM_TYPE_IN_GROUP, false, 7);
- assertPositionMetadata(9, ITEM_TYPE_STANDALONE, false, 8);
- }
-
- public void testPositionCache() {
+ public void testGroupingWithMultipleGroups() {
buildCursor("1", "2", "2", "3", "4", "4", "5", "5", "6");
mAdapter.changeCursor(mCursor);
- // First pass - building up cache
assertEquals(6, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_GROUP_HEADER, false, 1);
- assertPositionMetadata(2, ITEM_TYPE_STANDALONE, false, 3);
- assertPositionMetadata(3, ITEM_TYPE_GROUP_HEADER, false, 4);
- assertPositionMetadata(4, ITEM_TYPE_GROUP_HEADER, false, 6);
- assertPositionMetadata(5, ITEM_TYPE_STANDALONE, false, 8);
-
- // Second pass - using cache
- assertEquals(6, mAdapter.getItemCount());
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_GROUP_HEADER, false, 1);
- assertPositionMetadata(2, ITEM_TYPE_STANDALONE, false, 3);
- assertPositionMetadata(3, ITEM_TYPE_GROUP_HEADER, false, 4);
- assertPositionMetadata(4, ITEM_TYPE_GROUP_HEADER, false, 6);
- assertPositionMetadata(5, ITEM_TYPE_STANDALONE, false, 8);
-
- // Invalidate cache by expanding a group
- mAdapter.toggleGroup(1);
-
- // First pass - building up cache
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_GROUP_HEADER, true, 1);
- assertPositionMetadata(2, ITEM_TYPE_IN_GROUP, false, 1);
- assertPositionMetadata(3, ITEM_TYPE_IN_GROUP, false, 2);
- assertPositionMetadata(4, ITEM_TYPE_STANDALONE, false, 3);
- assertPositionMetadata(5, ITEM_TYPE_GROUP_HEADER, false, 4);
- assertPositionMetadata(6, ITEM_TYPE_GROUP_HEADER, false, 6);
- assertPositionMetadata(7, ITEM_TYPE_STANDALONE, false, 8);
-
- // Second pass - using cache
- assertPositionMetadata(0, ITEM_TYPE_STANDALONE, false, 0);
- assertPositionMetadata(1, ITEM_TYPE_GROUP_HEADER, true, 1);
- assertPositionMetadata(2, ITEM_TYPE_IN_GROUP, false, 1);
- assertPositionMetadata(3, ITEM_TYPE_IN_GROUP, false, 2);
- assertPositionMetadata(4, ITEM_TYPE_STANDALONE, false, 3);
- assertPositionMetadata(5, ITEM_TYPE_GROUP_HEADER, false, 4);
- assertPositionMetadata(6, ITEM_TYPE_GROUP_HEADER, false, 6);
- assertPositionMetadata(7, ITEM_TYPE_STANDALONE, false, 8);
+ assertMetadata(0, 1, "1");
+ assertMetadata(1, 2, "2");
+ assertMetadata(2, 1, "3");
+ assertMetadata(3, 2, "4");
+ assertMetadata(4, 2, "5");
+ assertMetadata(5, 1, "6");
}
public void testGroupDescriptorArrayGrowth() {
@@ -287,14 +160,9 @@ public class GroupingListAdapterTests extends AndroidTestCase {
assertEquals(250, mAdapter.getItemCount());
}
- private void assertPositionMetadata(int position, int itemType, boolean isExpanded,
- int cursorPosition) {
- GroupingListAdapter.PositionMetadata metadata = new GroupingListAdapter.PositionMetadata();
- mAdapter.obtainPositionMetadata(metadata, position);
- assertEquals(itemType, metadata.itemType);
- if (metadata.itemType == ITEM_TYPE_GROUP_HEADER) {
- assertEquals(isExpanded, metadata.isExpanded);
- }
- assertEquals(cursorPosition, metadata.cursorPosition);
+ private void assertMetadata(int listPosition, int groupSize, String objectValue) {
+ assertEquals(groupSize, mAdapter.getGroupSize(listPosition));
+ MatrixCursor cursor = (MatrixCursor) mAdapter.getItem(listPosition);
+ assertEquals(objectValue, cursor.getString(GROUPING_COLUMN_INDEX));
}
}
diff --git a/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java b/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
index 318250247..b6202b904 100644
--- a/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
+++ b/tests/src/com/android/dialer/calllog/PhoneCallDetailsHelperTest.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.res.Resources;
import android.provider.CallLog.Calls;
import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.MediumTest;
import android.text.Html;
import android.text.Spanned;
import android.view.View;
@@ -27,20 +28,25 @@ import android.widget.TextView;
import com.android.dialer.PhoneCallDetails;
import com.android.dialer.R;
+import com.android.dialer.calllog.calllogcache.TestTelecomCallLogCache;
+import com.android.dialer.util.AppCompatConstants;
import com.android.dialer.util.LocaleTestUtils;
import java.util.GregorianCalendar;
import java.util.Locale;
/**
- * Unit tests for {@link PhoneCallDetailsHelper}.m
+ * Unit tests for {@link PhoneCallDetailsHelper}.
*/
+@MediumTest
public class PhoneCallDetailsHelperTest extends AndroidTestCase {
/** The number to be used to access the voicemail. */
private static final String TEST_VOICEMAIL_NUMBER = "125";
/** The date of the call log entry. */
private static final long TEST_DATE =
new GregorianCalendar(2011, 5, 3, 13, 0, 0).getTimeInMillis();
+ private static final long INJECTED_CURRENT_DATE =
+ new GregorianCalendar(2011, 5, 4, 13, 0, 0).getTimeInMillis();
/** A test duration value for phone calls. */
private static final long TEST_DURATION = 62300;
/** The number of the caller/callee in the log entry. */
@@ -53,6 +59,8 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
private static final String TEST_GEOCODE = "United States";
/** Empty geocode label */
private static final String EMPTY_GEOCODE = "";
+ /** Empty post-dial digits label */
+ private static final String EMPTY_POSTDIAL = "";
/** The object under test. */
private PhoneCallDetailsHelper mHelper;
@@ -73,8 +81,7 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
final TestTelecomCallLogCache phoneUtils = new TestTelecomCallLogCache(
mContext, TEST_VOICEMAIL_NUMBER);
mHelper = new PhoneCallDetailsHelper(mContext, resources, phoneUtils);
- mHelper.setCurrentTimeForTest(
- new GregorianCalendar(2011, 5, 4, 13, 0, 0).getTimeInMillis());
+ mHelper.setCurrentTimeForTest(INJECTED_CURRENT_DATE);
mViews = PhoneCallDetailsViews.createForTest(mContext);
mNameView = new TextView(mContext);
mLocaleTestUtils = new LocaleTestUtils(mContext);
@@ -111,10 +118,30 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
assertNameEqualsResource(R.string.voicemail);
}
- public void testSetPhoneCallDetails_Normal() {
- setPhoneCallDetailsWithNumber("14125551212",
- Calls.PRESENTATION_ALLOWED, "1-412-555-1212");
- assertTrue(mViews.callLocationAndDate.getText().toString().contains("Yesterday"));
+ // Voicemail date string has 3 different formats depending on how long ago the call was placed
+ public void testSetVoicemailPhoneCallDetails_Today() {
+ setVoicemailPhoneCallDetailsWithDate(System.currentTimeMillis());
+ assertLocationAndDateContains("Today at");
+ }
+
+ public void testSetVoicemailPhoneCallDetails_WithinCurrentYear() {
+ mHelper.setCurrentTimeForTest(INJECTED_CURRENT_DATE);
+ String formattedTestDate = "Jun 3 at 1:00 PM";
+ setVoicemailPhoneCallDetailsWithDate(TEST_DATE);
+ assertLocationAndDateContains(formattedTestDate);
+ }
+
+ public void testSetVoicemailPhoneCallDetails_OutsideCurrentYear() {
+ mHelper.setCurrentTimeForTest(INJECTED_CURRENT_DATE);
+ long testDate = new GregorianCalendar(2009, 5, 3, 13, 0, 0).getTimeInMillis();
+ String formattedTestDate = "Jun 3, 2009 at 1:00 PM";
+ setVoicemailPhoneCallDetailsWithDate(testDate);
+ assertLocationAndDateContains(formattedTestDate);
+ }
+
+ public void testVoicemailLocationNotShownWithDate() {
+ setVoicemailPhoneCallDetailsWithDate(TEST_DATE);
+ assertLocationAndDateExactEquals("Jun 3 at 1:00 PM");
}
/** Asserts that a char sequence is actually a Spanned corresponding to the expected HTML. */
@@ -133,33 +160,33 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
setPhoneCallDetailsWithDate(
new GregorianCalendar(2011, 5, 3, 13, 0, 0).getTimeInMillis());
- assertDateEquals("0 min. ago");
+ assertLocationAndDateContains("0 min. ago");
setPhoneCallDetailsWithDate(
new GregorianCalendar(2011, 5, 3, 12, 0, 0).getTimeInMillis());
- assertDateEquals("1 hr. ago");
+ assertLocationAndDateContains("1 hr. ago");
setPhoneCallDetailsWithDate(
new GregorianCalendar(2011, 5, 2, 13, 0, 0).getTimeInMillis());
- assertDateEquals("Yesterday");
+ assertLocationAndDateContains("Yesterday");
setPhoneCallDetailsWithDate(
new GregorianCalendar(2011, 5, 1, 13, 0, 0).getTimeInMillis());
- assertDateEquals("2 days ago");
+ assertLocationAndDateContains("2 days ago");
}
public void testSetPhoneCallDetails_CallTypeIcons() {
- setPhoneCallDetailsWithCallTypeIcons(Calls.INCOMING_TYPE);
- assertCallTypeIconsEquals(Calls.INCOMING_TYPE);
+ setPhoneCallDetailsWithCallTypeIcons(AppCompatConstants.CALLS_INCOMING_TYPE);
+ assertCallTypeIconsEquals(AppCompatConstants.CALLS_INCOMING_TYPE);
- setPhoneCallDetailsWithCallTypeIcons(Calls.OUTGOING_TYPE);
- assertCallTypeIconsEquals(Calls.OUTGOING_TYPE);
+ setPhoneCallDetailsWithCallTypeIcons(AppCompatConstants.CALLS_OUTGOING_TYPE);
+ assertCallTypeIconsEquals(AppCompatConstants.CALLS_OUTGOING_TYPE);
- setPhoneCallDetailsWithCallTypeIcons(Calls.MISSED_TYPE);
- assertCallTypeIconsEquals(Calls.MISSED_TYPE);
+ setPhoneCallDetailsWithCallTypeIcons(AppCompatConstants.CALLS_MISSED_TYPE);
+ assertCallTypeIconsEquals(AppCompatConstants.CALLS_MISSED_TYPE);
- setPhoneCallDetailsWithCallTypeIcons(Calls.VOICEMAIL_TYPE);
- assertCallTypeIconsEquals(Calls.VOICEMAIL_TYPE);
+ setPhoneCallDetailsWithCallTypeIcons(AppCompatConstants.CALLS_VOICEMAIL_TYPE);
+ assertCallTypeIconsEquals(AppCompatConstants.CALLS_VOICEMAIL_TYPE);
}
/**
@@ -185,41 +212,54 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
}
public void testSetPhoneCallDetails_MultipleCallTypeIcons() {
- setPhoneCallDetailsWithCallTypeIcons(Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE);
- assertCallTypeIconsEquals(Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE);
+ setPhoneCallDetailsWithCallTypeIcons(
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
+ assertCallTypeIconsEquals(
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
- setPhoneCallDetailsWithCallTypeIcons(Calls.MISSED_TYPE, Calls.MISSED_TYPE);
- assertCallTypeIconsEquals(Calls.MISSED_TYPE, Calls.MISSED_TYPE);
+ setPhoneCallDetailsWithCallTypeIcons(
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE);
+ assertCallTypeIconsEquals(
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE);
}
public void testSetPhoneCallDetails_MultipleCallTypeIconsLastOneDropped() {
- setPhoneCallDetailsWithCallTypeIcons(Calls.MISSED_TYPE, Calls.MISSED_TYPE,
- Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE);
+ setPhoneCallDetailsWithCallTypeIcons(
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE);
assertCallTypeIconsEqualsPlusOverflow("(4)",
- Calls.MISSED_TYPE, Calls.MISSED_TYPE, Calls.INCOMING_TYPE);
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE,
+ AppCompatConstants.CALLS_INCOMING_TYPE);
}
public void testSetPhoneCallDetails_Geocode() {
setPhoneCallDetailsWithNumberAndGeocode("+14125555555", "1-412-555-5555", "Pennsylvania");
assertNameEquals("1-412-555-5555"); // The phone number is shown as the name.
- assertLabelEquals("Pennsylvania"); // The geocode is shown as the label.
+ assertLocationAndDateContains("Pennsylvania"); // The geocode is shown as the label.
}
public void testSetPhoneCallDetails_NoGeocode() {
setPhoneCallDetailsWithNumberAndGeocode("+14125555555", "1-412-555-5555", null);
assertNameEquals("1-412-555-5555"); // The phone number is shown as the name.
- assertLabelEquals(EMPTY_GEOCODE); // The empty geocode is shown as the label.
+ assertLocationAndDateContains(EMPTY_GEOCODE); // The empty geocode is shown as the label.
}
public void testSetPhoneCallDetails_EmptyGeocode() {
setPhoneCallDetailsWithNumberAndGeocode("+14125555555", "1-412-555-5555", "");
assertNameEquals("1-412-555-5555"); // The phone number is shown as the name.
- assertLabelEquals(EMPTY_GEOCODE); // The empty geocode is shown as the label.
+ assertLocationAndDateContains(EMPTY_GEOCODE); // The empty geocode is shown as the label.
}
public void testSetPhoneCallDetails_NoGeocodeForVoicemail() {
setPhoneCallDetailsWithNumberAndGeocode(TEST_VOICEMAIL_NUMBER, "", "United States");
- assertLabelEquals(EMPTY_GEOCODE); // The empty geocode is shown as the label.
+ assertLocationAndDateContains(EMPTY_GEOCODE); // The empty geocode is shown as the label.
}
public void testSetPhoneCallDetails_Highlighted() {
@@ -267,6 +307,25 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
assertEquals("John Doe", mNameView.getText().toString());
}
+ public void testGetCallTypeOrLocation_Geocode() {
+ assertEquals(TEST_GEOCODE, mHelper.getCallTypeOrLocation(getPhoneCallDetails()));
+ }
+
+ public void testGetCallTypeOrLocation_CallType() {
+ PhoneCallDetails details = getPhoneCallDetails();
+ details.geocode = null;
+ details.numberType = Calls.INCOMING_TYPE;
+ mHelper.setPhoneTypeLabelForTest("mobile");
+ assertEquals("mobile", mHelper.getCallTypeOrLocation(details));
+ }
+
+ public void testGetCallTypeOrLocation_DisplayNumber() {
+ PhoneCallDetails details = getPhoneCallDetails("", Calls.PRESENTATION_ALLOWED,
+ TEST_FORMATTED_NUMBER);
+ details.namePrimary = "name";
+ assertEquals(TEST_FORMATTED_NUMBER, mHelper.getCallTypeOrLocation(details));
+ }
+
/** Asserts that the name text field contains the value of the given string resource. */
private void assertNameEqualsResource(int resId) {
assertNameEquals(getContext().getString(resId));
@@ -277,14 +336,14 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
assertEquals(text, mViews.nameView.getText().toString());
}
- /** Asserts that the label text field contains the given string value. */
- private void assertLabelEquals(String text) {
+ /** Asserts that the location and date text field contains the given string value. */
+ private void assertLocationAndDateContains(String text) {
assertTrue(mViews.callLocationAndDate.getText().toString().contains(text));
}
- /** Asserts that the date text field contains the given string value. */
- private void assertDateEquals(String text) {
- assertTrue(mViews.callLocationAndDate.getText().toString().contains(text));
+ /** Asserts that the location and date text field exactly equals the given string value. */
+ private void assertLocationAndDateExactEquals(String text) {
+ assertEquals(text, mViews.callLocationAndDate.getText());
}
/** Asserts that the video icon is shown. */
@@ -300,7 +359,6 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
assertEquals(id, mViews.callTypeIcons.getCallType(index));
}
assertEquals(View.VISIBLE, mViews.callTypeIcons.getVisibility());
- assertTrue(mViews.callLocationAndDate.getText().toString().contains("Yesterday"));
}
/**
@@ -322,7 +380,7 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
private void setPhoneCallDetailsWithNumber(String number, int presentation,
String formattedNumber) {
PhoneCallDetails details = getPhoneCallDetails(number, presentation, formattedNumber);
- details.callTypes = new int[]{ Calls.VOICEMAIL_TYPE };
+ details.callTypes = new int[]{ AppCompatConstants.CALLS_VOICEMAIL_TYPE };
mHelper.setPhoneCallDetails(mViews, details);
}
@@ -342,6 +400,13 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
mHelper.setPhoneCallDetails(mViews, details);
}
+ private void setVoicemailPhoneCallDetailsWithDate(long date) {
+ PhoneCallDetails details = getPhoneCallDetails();
+ details.date = date;
+ details.callTypes = new int[] {Calls.VOICEMAIL_TYPE};
+ mHelper.setPhoneCallDetails(mViews, details);
+ }
+
/** Sets the phone call details with default values and the given call types using icons. */
private void setPhoneCallDetailsWithCallTypeIcons(int... callTypes) {
PhoneCallDetails details = getPhoneCallDetails();
@@ -356,7 +421,7 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
private void setCallDetailsHeader(String name) {
PhoneCallDetails details = getPhoneCallDetails();
- details.name = name;
+ details.namePrimary = name;
mHelper.setCallDetailsHeader(mNameView, details);
}
@@ -366,6 +431,7 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
TEST_NUMBER,
Calls.PRESENTATION_ALLOWED,
TEST_FORMATTED_NUMBER,
+ EMPTY_POSTDIAL,
false /* isVoicemail */);
setDefaultDetails(details);
return details;
@@ -378,13 +444,14 @@ public class PhoneCallDetailsHelperTest extends AndroidTestCase {
number,
presentation,
formattedNumber,
+ EMPTY_POSTDIAL,
isVoicemail(number));
setDefaultDetails(details);
return details;
}
private void setDefaultDetails(PhoneCallDetails details) {
- details.callTypes = new int[]{ Calls.INCOMING_TYPE };
+ details.callTypes = new int[]{ AppCompatConstants.CALLS_INCOMING_TYPE };
details.countryIso = TEST_COUNTRY_ISO;
details.date = TEST_DATE;
details.duration = TEST_DURATION;
diff --git a/tests/src/com/android/dialer/calllog/TestTelecomCallLogCache.java b/tests/src/com/android/dialer/calllog/calllogcache/TestTelecomCallLogCache.java
index 5475ec337..077a498c9 100644
--- a/tests/src/com/android/dialer/calllog/TestTelecomCallLogCache.java
+++ b/tests/src/com/android/dialer/calllog/calllogcache/TestTelecomCallLogCache.java
@@ -14,16 +14,21 @@
* limitations under the License
*/
-package com.android.dialer.calllog;
+package com.android.dialer.calllog.calllogcache;
import android.content.Context;
+import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
/**
- * Modified version of {@link com.android.dialer.calllog.PhoneNumberDisplayHelper} to be used in
+ * Modified version of {@link com.android.dialer.calllog.calllogcache.CallLogCache} to be used in
* tests that allows injecting the voicemail number.
+ *
+ * NOTE: This tests the pre-LMR1 version because currently none of the tests involve multi-SIM,
+ * but...
+ * TODO: write tests to test multi-SIM functionality in TelecomCallLogCache.
*/
-public final class TestTelecomCallLogCache extends TelecomCallLogCache {
+public final class TestTelecomCallLogCache extends CallLogCache {
private CharSequence mVoicemailNumber;
public TestTelecomCallLogCache(Context context, CharSequence voicemailNumber) {
@@ -35,4 +40,19 @@ public final class TestTelecomCallLogCache extends TelecomCallLogCache {
public boolean isVoicemailNumber(PhoneAccountHandle accountHandle, CharSequence number) {
return mVoicemailNumber.equals(number);
}
+
+ @Override
+ public String getAccountLabel(PhoneAccountHandle accountHandle) {
+ return null;
+ }
+
+ @Override
+ public int getAccountColor(PhoneAccountHandle accountHandle) {
+ return PhoneAccount.NO_HIGHLIGHT_COLOR;
+ }
+
+ @Override
+ public boolean doesAccountSupportCallSubject(PhoneAccountHandle accountHandle) {
+ return false;
+ }
}
diff --git a/tests/src/com/android/dialer/compat/UserManagerCompatTest.java b/tests/src/com/android/dialer/compat/UserManagerCompatTest.java
new file mode 100644
index 000000000..ff734a19d
--- /dev/null
+++ b/tests/src/com/android/dialer/compat/UserManagerCompatTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.compat;
+
+import android.test.AndroidTestCase;
+
+import com.android.contacts.common.compat.CompatUtils;
+
+public class UserManagerCompatTest extends AndroidTestCase {
+
+ public void testIsUserUnlocked_N_NullContext() {
+ if (!CompatUtils.isNCompatible()) {
+ return;
+ }
+ try {
+ UserManagerCompat.isUserUnlocked(null);
+ fail("Expected NullPointerException but none was thrown");
+ } catch (NullPointerException e) {}
+ }
+
+ public void testIsUserUnlocked_M_NullContext() {
+ if (CompatUtils.isNCompatible()) {
+ return;
+ }
+ assertTrue(UserManagerCompat.isUserUnlocked(null));
+ }
+
+ public void testIsUserUnlocked() {
+ assertTrue(UserManagerCompat.isUserUnlocked(getContext()));
+ }
+}
diff --git a/tests/src/com/android/dialer/database/DatabaseTestUtils.java b/tests/src/com/android/dialer/database/DatabaseTestUtils.java
new file mode 100644
index 000000000..03b493895
--- /dev/null
+++ b/tests/src/com/android/dialer/database/DatabaseTestUtils.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.database;
+
+import android.database.MatrixCursor;
+import android.provider.ContactsContract.Contacts;
+import android.provider.ContactsContract.Data;
+import android.provider.ContactsContract.CommonDataKinds.Phone;
+import android.text.TextUtils;
+
+import com.android.dialer.database.DialerDatabaseHelper.ContactNumber;
+
+public class DatabaseTestUtils {
+ public static MatrixCursor constructNewNameCursor() {
+ final MatrixCursor cursor = new MatrixCursor(new String[]{
+ DialerDatabaseHelper.SmartDialDbColumns.DISPLAY_NAME_PRIMARY,
+ DialerDatabaseHelper.SmartDialDbColumns.CONTACT_ID});
+ return cursor;
+ }
+
+ public static MatrixCursor constructNewContactCursor() {
+ final MatrixCursor cursor = new MatrixCursor(new String[]{
+ Phone._ID, // 0
+ Phone.TYPE, // 1
+ Phone.LABEL, // 2
+ Phone.NUMBER, // 3
+ Phone.CONTACT_ID, // 4
+ Phone.LOOKUP_KEY, // 5
+ Phone.DISPLAY_NAME_PRIMARY, // 6
+ Phone.PHOTO_ID, // 7
+ Data.LAST_TIME_USED, // 8
+ Data.TIMES_USED, // 9
+ Contacts.STARRED, // 10
+ Data.IS_SUPER_PRIMARY, // 11
+ Contacts.IN_VISIBLE_GROUP, // 12
+ Data.IS_PRIMARY}); // 13
+ return cursor;
+ }
+
+ public static ContactNumber constructNewContactWithDummyIds(MatrixCursor contactCursor,
+ MatrixCursor nameCursor, String number, int id, String displayName) {
+ return constructNewContact(contactCursor, nameCursor, id, number, id, String.valueOf(id),
+ displayName, 0, 0, 0, 0, 0, 0, 0);
+ }
+
+ public static ContactNumber constructNewContact(MatrixCursor contactCursor,
+ MatrixCursor nameCursor, int id, String number, int contactId, String lookupKey,
+ String displayName, int photoId, int lastTimeUsed, int timesUsed, int starred,
+ int isSuperPrimary, int inVisibleGroup, int isPrimary) {
+ if (contactCursor == null || nameCursor == null) {
+ throw new IllegalArgumentException("Provided MatrixCursors cannot be null");
+ }
+
+ if (TextUtils.isEmpty(number)) {
+ // Add a dummy number, otherwise DialerDatabaseHelper simply ignores the entire
+ // row if the number is empty
+ number = "0";
+ }
+
+ contactCursor.addRow(new Object[]{id, "", "", number, contactId, lookupKey, displayName,
+ photoId, lastTimeUsed, timesUsed, starred, isSuperPrimary, inVisibleGroup,
+ isPrimary});
+ nameCursor.addRow(new Object[]{displayName, contactId});
+
+ return new ContactNumber(contactId, id, displayName, number, lookupKey, 0, 0);
+ }
+}
diff --git a/tests/src/com/android/dialer/database/DialerDatabaseHelperTest.java b/tests/src/com/android/dialer/database/DialerDatabaseHelperTest.java
new file mode 100644
index 000000000..a95a79e08
--- /dev/null
+++ b/tests/src/com/android/dialer/database/DialerDatabaseHelperTest.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.dialer.database;
+
+import static com.android.dialer.database.DatabaseTestUtils.*;
+
+import android.database.MatrixCursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.test.suitebuilder.annotation.Suppress;
+import android.test.AndroidTestCase;
+
+import com.android.dialer.database.DialerDatabaseHelper;
+import com.android.dialer.database.DialerDatabaseHelper.ContactNumber;
+import com.android.dialer.dialpad.SmartDialNameMatcher;
+import com.android.dialer.dialpad.SmartDialPrefix;
+
+import java.lang.Exception;
+import java.lang.Override;
+import java.util.ArrayList;
+
+/**
+ * Validates the behavior of the smart dial database helper with regards to contact updates and
+ * deletes.
+ * To run this test, use the command:
+ * adb shell am instrument -w -e class com.android.dialer.database.DialerDatabaseHelperTest /
+ * com.android.dialer.tests/android.test.InstrumentationTestRunner
+ */
+@SmallTest
+public class DialerDatabaseHelperTest extends AndroidTestCase {
+
+ private DialerDatabaseHelper mTestHelper;
+ private SQLiteDatabase mDb;
+
+ @Override
+ protected void setUp() {
+ mTestHelper = DialerDatabaseHelper.getNewInstanceForTest(getContext());
+ mDb = mTestHelper.getWritableDatabase();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ final SQLiteDatabase db = mTestHelper.getWritableDatabase();
+ mTestHelper.removeAllContacts(db);
+ super.tearDown();
+ }
+
+ /**
+ * Verifies that a new contact added into the database is a match after the update.
+ */
+ public void testForNewContacts() {
+ final MatrixCursor nameCursor = constructNewNameCursor();
+ final MatrixCursor contactCursor = constructNewContactCursor();
+
+ mTestHelper.insertUpdatedContactsAndNumberPrefix(mDb, contactCursor, 0L);
+ mTestHelper.insertNamePrefixes(mDb, nameCursor);
+ assertEquals(0, getMatchesFromDb("5105272357").size());
+
+ // Insert new contact
+ constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "510-527-2357", 0, "James");
+ mTestHelper.insertUpdatedContactsAndNumberPrefix(mDb, contactCursor, 1L);
+ mTestHelper.insertNamePrefixes(mDb, nameCursor);
+ assertEquals(1, getMatchesFromDb("5105272357").size());
+ }
+
+ /**
+ * Verifies that a contact that has its phone number changed is a match after the update.
+ */
+ public void testForUpdatedContacts() {
+ final MatrixCursor nameCursor = constructNewNameCursor();
+ final MatrixCursor contactCursor = constructNewContactCursor();
+ constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "510-527-2357", 0, "James");
+ mTestHelper.insertUpdatedContactsAndNumberPrefix(mDb, contactCursor, 0L);
+ mTestHelper.insertNamePrefixes(mDb, nameCursor);
+ assertEquals(1, getMatchesFromDb("5105272357").size());
+ assertEquals(0, getMatchesFromDb("6501234567").size());
+
+ // Update the database with the new contact information
+ final MatrixCursor nameCursor2 = constructNewNameCursor();
+ final MatrixCursor contactCursor2 = constructNewContactCursor();
+ constructNewContactWithDummyIds(contactCursor2, nameCursor2,
+ "650-123-4567", 0, "James");
+ mTestHelper.removeUpdatedContacts(mDb, contactCursor2);
+ mTestHelper.insertUpdatedContactsAndNumberPrefix(mDb, contactCursor2, 1L);
+ mTestHelper.insertNamePrefixes(mDb, nameCursor2);
+
+ // Now verify the matches are correct based on the new information
+ assertEquals(0, getMatchesFromDb("5105272357").size());
+ assertEquals(1, getMatchesFromDb("6501234567").size());
+ }
+
+ /**
+ * Verifies that a contact that is deleted from CP2 is similarly deleted from the database
+ */
+ public void testForDeletedContacts() {
+ final MatrixCursor nameCursor = constructNewNameCursor();
+ final MatrixCursor contactCursor = constructNewContactCursor();
+ constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "510-527-2357", 0, "James");
+ mTestHelper.insertUpdatedContactsAndNumberPrefix(mDb, contactCursor, 0L);
+ mTestHelper.insertNamePrefixes(mDb, nameCursor);
+ assertEquals(1, getMatchesFromDb("5105272357").size());
+
+ // Delete the contact and update its projection.
+ final MatrixCursor deletedCursor =
+ new MatrixCursor(DialerDatabaseHelper.DeleteContactQuery.PROJECTION);
+ deletedCursor.addRow(new Object[] {0, 1L});
+ mTestHelper.removeDeletedContacts(mDb, deletedCursor);
+ assertEquals(0, getMatchesFromDb("5105272357").size());
+ }
+
+ /**
+ * Verifies that when a contact's number is deleted (but not the entire contact), the
+ * number is correctly deleted from the database.
+ */
+ public void testForDeletedNumber() {
+ final MatrixCursor nameCursor = constructNewNameCursor();
+ final MatrixCursor contactCursor = constructNewContactCursor();
+ constructNewContactWithDummyIds(contactCursor, nameCursor,
+ "510-527-2357", 0, "James");
+ mTestHelper.insertUpdatedContactsAndNumberPrefix(mDb, contactCursor, 0L);
+ mTestHelper.insertNamePrefixes(mDb, nameCursor);
+ assertEquals(1, getMatchesFromDb("5105272357").size());
+
+ // Match no longer exists after number was deleted from contact
+ final MatrixCursor updatedContactCursor =
+ new MatrixCursor(DialerDatabaseHelper.UpdatedContactQuery.PROJECTION);
+ updatedContactCursor.addRow(new Object[] {0});
+ mTestHelper.removeUpdatedContacts(mDb, updatedContactCursor);
+ assertEquals(0, getMatchesFromDb("5105272357").size());
+ }
+
+ private ArrayList<ContactNumber> getMatchesFromDb(String query) {
+ final SmartDialNameMatcher nameMatcher = new SmartDialNameMatcher(query,
+ SmartDialPrefix.getMap());
+ return mTestHelper.getLooseMatches(query, nameMatcher);
+ }
+}
diff --git a/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java b/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java
new file mode 100644
index 000000000..1191560f5
--- /dev/null
+++ b/tests/src/com/android/dialer/database/FilteredNumberProviderTest.java
@@ -0,0 +1,232 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.database;
+
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.DatabaseUtils;
+import android.net.Uri;
+import android.test.ProviderTestCase2;
+import android.test.suitebuilder.annotation.MediumTest;
+
+@MediumTest
+public class FilteredNumberProviderTest extends
+ ProviderTestCase2<FilteredNumberProviderTest.TestFilteredNumberProvider> {
+ private ContentResolver mResolver;
+
+ private static final String TIME_ZONE_AMERICA_LOS_ANGELES = "America/Los_Angeles";
+ private static final String DEFAULT_TIMEZONE = TIME_ZONE_AMERICA_LOS_ANGELES;
+ private static final String DEFAULT_COUNTRY_ISO = "US";
+ private static final String TEST_NUMBER = "234567890";
+ private static final String TEST_NORMALIZED_NUMBER = "+1234567890";
+ private static final long TEST_TIME = 1439936706;
+
+ public FilteredNumberProviderTest () {
+ super(TestFilteredNumberProvider.class, FilteredNumberContract.AUTHORITY);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mResolver = getMockContentResolver();
+ }
+
+ public void testInsert() {
+ // Insert row
+ Uri uri = mResolver.insert(
+ FilteredNumberContract.FilteredNumber.CONTENT_URI,
+ getTestValues(null));
+ assertNotNull(uri);
+ long id = ContentUris.parseId(uri);
+ assertTrue(id > 0);
+ }
+
+ public void testQuery() {
+ Cursor cursor = mResolver.query(
+ FilteredNumberContract.FilteredNumber.CONTENT_URI, null, null, null, null);
+ assertNotNull(cursor);
+ assertEquals(cursor.getCount(), 0);
+ cursor.close();
+ }
+
+ public void testInsertAndQuery() {
+ // Insert row
+ ContentValues testValues = getTestValues(null);
+ Uri uri = mResolver.insert(FilteredNumberContract.FilteredNumber.CONTENT_URI, testValues);
+
+ // Query
+ Cursor cursor = mResolver.query(uri, null, null, null, null);
+ assertNotNull(cursor);
+ assertEquals(cursor.getCount(), 1);
+
+ cursor.moveToFirst();
+ assertCursorValues(cursor, testValues);
+ cursor.close();
+ }
+
+ public void testIllegalUri() {
+ try {
+ mResolver.query(
+ Uri.withAppendedPath(
+ FilteredNumberContract.FilteredNumber.CONTENT_URI,
+ "ILLEGAL"), null, null, null, null);
+ fail("Expecting exception but none was thrown.");
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ public void testQueryWithId() {
+ // Insert row
+ ContentValues testValues = getTestValues(null);
+ Uri uri = mResolver.insert(FilteredNumberContract.FilteredNumber.CONTENT_URI, testValues);
+ long id = ContentUris.parseId(uri);
+
+ // Query
+ Cursor cursor = mResolver.query(
+ ContentUris.withAppendedId(
+ FilteredNumberContract.FilteredNumber.CONTENT_URI,
+ id), null, null, null, null);
+ assertNotNull(cursor);
+ assertEquals(cursor.getCount(), 1);
+
+ cursor.moveToFirst();
+ assertCursorValues(cursor, testValues);
+ cursor.close();
+ }
+
+ public void testDelete() {
+ // Insert row
+ Uri uri = mResolver.insert(
+ FilteredNumberContract.FilteredNumber.CONTENT_URI,
+ getTestValues(null));
+ long id = ContentUris.parseId(uri);
+
+ // Delete row
+ int rows = mResolver.delete(
+ FilteredNumberContract.FilteredNumber.CONTENT_URI,
+ FilteredNumberContract.FilteredNumberColumns._ID + " = ?",
+ new String[]{Long.toString(id)});
+ assertEquals(rows, 1);
+
+ // Query
+ Cursor cursor = mResolver.query(uri, null, null, null, null);
+ assertNotNull(cursor);
+ assertEquals(cursor.getCount(), 0);
+ cursor.close();
+ }
+
+ public void testUpdate() {
+ // Insert row
+ Uri uri = mResolver.insert(
+ FilteredNumberContract.FilteredNumber.CONTENT_URI,
+ getTestValues(null));
+
+ // Update row
+ ContentValues v = new ContentValues();
+ v.put(FilteredNumberContract.FilteredNumberColumns.TIMES_FILTERED, 3);
+ v.put(FilteredNumberContract.FilteredNumberColumns.LAST_TIME_FILTERED, TEST_TIME);
+ int rows = mResolver.update(FilteredNumberContract.FilteredNumber.CONTENT_URI, v,
+ FilteredNumberContract.FilteredNumberColumns.NORMALIZED_NUMBER + " = ?",
+ new String[]{TEST_NORMALIZED_NUMBER});
+ assertEquals(rows, 1);
+
+ ContentValues expected = getTestValues(TEST_TIME);
+ expected.put(FilteredNumberContract.FilteredNumberColumns.TIMES_FILTERED, 3);
+ expected.put(FilteredNumberContract.FilteredNumberColumns.LAST_TIME_FILTERED, TEST_TIME);
+
+ // Re-query
+ Cursor cursor = mResolver.query(uri, null, null, null, null);
+ assertNotNull(cursor);
+ assertEquals(cursor.getCount(), 1);
+ cursor.moveToFirst();
+ assertCursorValues(cursor, expected);
+ cursor.close();
+ }
+
+ public void testInsertDefaultValues() {
+ // Insert row
+ ContentValues v = getTestValues(null);
+ Uri uri = mResolver.insert(FilteredNumberContract.FilteredNumber.CONTENT_URI, v);
+ assertNotNull(uri);
+ long id = ContentUris.parseId(uri);
+ assertTrue(id > 0);
+
+ // Query
+ Cursor cursor = mResolver.query(uri, null, null, null, null);
+ assertNotNull(cursor);
+ assertEquals(cursor.getCount(), 1);
+
+ int creationTimeIndex =
+ cursor.getColumnIndex(FilteredNumberContract.FilteredNumberColumns.CREATION_TIME);
+ cursor.moveToFirst();
+ assertEquals(cursor.getLong(creationTimeIndex), TEST_TIME);
+ cursor.close();
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ getProvider().closeDb();
+ super.tearDown();
+ }
+
+ private ContentValues getTestValues(Long timeNow) {
+ ContentValues v = new ContentValues();
+ v.putNull(FilteredNumberContract.FilteredNumberColumns._ID);
+ v.put(FilteredNumberContract.FilteredNumberColumns.NORMALIZED_NUMBER,
+ TEST_NORMALIZED_NUMBER);
+ v.put(FilteredNumberContract.FilteredNumberColumns.NUMBER, TEST_NUMBER);
+ v.put(FilteredNumberContract.FilteredNumberColumns.COUNTRY_ISO, DEFAULT_COUNTRY_ISO);
+ v.put(FilteredNumberContract.FilteredNumberColumns.TIMES_FILTERED, 0);
+ v.putNull(FilteredNumberContract.FilteredNumberColumns.LAST_TIME_FILTERED);
+ v.put(FilteredNumberContract.FilteredNumberColumns.CREATION_TIME, timeNow);
+ v.put(FilteredNumberContract.FilteredNumberColumns.SOURCE, 1);
+ v.put(FilteredNumberContract.FilteredNumberColumns.TYPE, 1);
+ return v;
+ }
+
+ private void assertCursorValues(Cursor cursor, ContentValues expectedValues) {
+ ContentValues v = new ContentValues();
+ DatabaseUtils.cursorRowToContentValues(cursor, v);
+ v.remove(FilteredNumberContract.FilteredNumberColumns._ID);
+ expectedValues.remove(FilteredNumberContract.FilteredNumberColumns._ID);
+ assertEquals(v.toString(), expectedValues.toString());
+ }
+
+ public static class TestFilteredNumberProvider extends FilteredNumberProvider {
+ private DialerDatabaseHelper mDialerDatabaseHelper;
+
+ @Override
+ protected DialerDatabaseHelper getDatabaseHelper(Context context) {
+ if (mDialerDatabaseHelper == null) {
+ mDialerDatabaseHelper = DialerDatabaseHelper.getNewInstanceForTest(context);
+ }
+ return mDialerDatabaseHelper;
+ }
+
+ protected void closeDb() {
+ mDialerDatabaseHelper.close();
+ }
+
+ @Override
+ protected long getCurrentTimeMs() {
+ return TEST_TIME;
+ }
+ }
+}
diff --git a/tests/src/com/android/dialer/database/SmartDialPrefixTest.java b/tests/src/com/android/dialer/database/SmartDialPrefixTest.java
index 9cb842e56..78962e3f4 100644
--- a/tests/src/com/android/dialer/database/SmartDialPrefixTest.java
+++ b/tests/src/com/android/dialer/database/SmartDialPrefixTest.java
@@ -16,16 +16,12 @@
package com.android.dialer.database;
+import static com.android.dialer.database.DatabaseTestUtils.*;
+
import android.database.MatrixCursor;
import android.database.sqlite.SQLiteDatabase;
import android.test.suitebuilder.annotation.SmallTest;
-import android.test.suitebuilder.annotation.Suppress;
import android.test.AndroidTestCase;
-import android.text.TextUtils;
-import android.util.Log;
-import android.provider.ContactsContract.CommonDataKinds.Phone;
-import android.provider.ContactsContract.Contacts;
-import android.provider.ContactsContract.Data;
import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.database.DialerDatabaseHelper.ContactNumber;
@@ -91,76 +87,6 @@ public class SmartDialPrefixTest extends AndroidTestCase {
super.tearDown();
}
- @Suppress
- public void testForNewContacts() {
- }
-
- @Suppress
- public void testForUpdatedContacts() {
- }
-
- @Suppress
- public void testForDeletedContacts() {
- }
-
- @Suppress
- public void testSize() {
- }
-
-
- private MatrixCursor constructNewNameCursor() {
- final MatrixCursor cursor = new MatrixCursor(new String[]{
- DialerDatabaseHelper.SmartDialDbColumns.DISPLAY_NAME_PRIMARY,
- DialerDatabaseHelper.SmartDialDbColumns.CONTACT_ID});
- return cursor;
- }
-
- private MatrixCursor constructNewContactCursor() {
- final MatrixCursor cursor = new MatrixCursor(new String[]{
- Phone._ID, // 0
- Phone.TYPE, // 1
- Phone.LABEL, // 2
- Phone.NUMBER, // 3
- Phone.CONTACT_ID, // 4
- Phone.LOOKUP_KEY, // 5
- Phone.DISPLAY_NAME_PRIMARY, // 6
- Phone.PHOTO_ID, // 7
- Data.LAST_TIME_USED, // 8
- Data.TIMES_USED, // 9
- Contacts.STARRED, // 10
- Data.IS_SUPER_PRIMARY, // 11
- Contacts.IN_VISIBLE_GROUP, // 12
- Data.IS_PRIMARY}); // 13
- return cursor;
- }
-
- private ContactNumber constructNewContactWithDummyIds(MatrixCursor contactCursor,
- MatrixCursor nameCursor, String number, int id, String displayName) {
- return constructNewContact(contactCursor, nameCursor, id, number, id, String.valueOf(id),
- displayName, 0, 0, 0, 0, 0, 0, 0);
- }
-
- private ContactNumber constructNewContact(MatrixCursor contactCursor, MatrixCursor nameCursor,
- int id, String number, int contactId, String lookupKey, String displayName, int photoId,
- int lastTimeUsed, int timesUsed, int starred, int isSuperPrimary, int inVisibleGroup,
- int isPrimary) {
- assertNotNull(contactCursor);
- assertNotNull(nameCursor);
-
- if (TextUtils.isEmpty(number)) {
- // Add a dummy number, otherwise DialerDatabaseHelper simply ignores the entire
- // row if the number is empty
- number = "0";
- }
-
- contactCursor.addRow(new Object[]{id, "", "", number, contactId, lookupKey, displayName,
- photoId, lastTimeUsed, timesUsed, starred, isSuperPrimary, inVisibleGroup,
- isPrimary});
- nameCursor.addRow(new Object[]{displayName, contactId});
-
- return new ContactNumber(contactId, id, displayName, number, lookupKey, 0);
- }
-
private ArrayList<ContactNumber> getLooseMatchesFromDb(String query) {
final SmartDialNameMatcher nameMatcher = new SmartDialNameMatcher(query,
SmartDialPrefix.getMap());
diff --git a/tests/src/com/android/dialer/dialpad/DialpadFragmentInstrumentationTest.java b/tests/src/com/android/dialer/dialpad/DialpadFragmentInstrumentationTest.java
new file mode 100644
index 000000000..876c13ba1
--- /dev/null
+++ b/tests/src/com/android/dialer/dialpad/DialpadFragmentInstrumentationTest.java
@@ -0,0 +1,121 @@
+package com.android.dialer.dialpad;
+
+import android.test.ActivityInstrumentationTestCase2;
+import android.view.View;
+
+import com.android.dialer.DialtactsActivity;
+import com.android.dialer.R;
+
+/**
+ * Tests that rely on instrumenting an actual instance of a {@link DialpadFragment}.
+ */
+public class DialpadFragmentInstrumentationTest extends
+ ActivityInstrumentationTestCase2<DialtactsActivity> {
+ private DialtactsActivity mActivity;
+
+ public DialpadFragmentInstrumentationTest() {
+ super(DialtactsActivity.class);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ mActivity = getActivity();
+ }
+
+ /**
+ * Simulates a long click event on the zero key with a prior onPressed callback.
+ *
+ */
+ public void testManualLongClickZero_DeletesPreviousCharacter() {
+ final DialpadFragment fragment = showDialpad();
+ pressAndReleaseKey(9, fragment);
+
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ final View zeroKey = findViewByDigit(0, fragment);
+ fragment.onPressed(zeroKey, true);
+ fragment.onLongClick(zeroKey);
+ }
+ });
+
+ assertEquals("9+", fragment.getDigitsWidget().getText().toString());
+ }
+
+ /**
+ * Simulates a long click event on the zero key without a prior onPressed
+ * callback.
+ */
+ public void testSystemLongClickZero_PreservesPreviousCharacter() {
+ final DialpadFragment fragment = showDialpad();
+ pressAndReleaseKey(9, fragment);
+
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ final View zeroKey = findViewByDigit(0, fragment);
+ fragment.onLongClick(zeroKey);
+ }
+ });
+
+ assertEquals("9+", fragment.getDigitsWidget().getText().toString());
+ }
+
+ private DialpadFragment showDialpad() {
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ mActivity.showDialpad();
+ }
+ });
+ getInstrumentation().waitForIdleSync();
+ return (DialpadFragment) mActivity.getFragmentManager().findFragmentByTag(
+ DialtactsActivity.TAG_DIALPAD_FRAGMENT);
+ }
+
+ private void pressAndReleaseKey(int digit, final DialpadFragment fragment) {
+ final View dialpadKey = findViewByDigit(digit, fragment);
+ final String digitsBefore = fragment.getDigitsWidget().getText().toString();
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ fragment.onPressed(dialpadKey, true);
+ fragment.onPressed(dialpadKey, false);
+ }
+ });
+ assertEquals(digitsBefore + String.valueOf(digit),
+ fragment.getDigitsWidget().getText().toString());
+ }
+
+ private View findViewByDigit(int digit, DialpadFragment fragment) {
+ return fragment.getView().findViewById(getViewIdByDigit(digit));
+ }
+
+ private int getViewIdByDigit(int digit) {
+ switch (digit) {
+ case 0:
+ return R.id.zero;
+ case 1:
+ return R.id.one;
+ case 2:
+ return R.id.two;
+ case 3:
+ return R.id.three;
+ case 4:
+ return R.id.four;
+ case 5:
+ return R.id.five;
+ case 6:
+ return R.id.six;
+ case 7:
+ return R.id.seven;
+ case 8:
+ return R.id.eight;
+ case 9:
+ return R.id.nine;
+ default:
+ return 0;
+ }
+ }
+}
diff --git a/tests/src/com/android/dialer/dialpad/DialpadFragmentTest.java b/tests/src/com/android/dialer/dialpad/DialpadFragmentTest.java
index 6f18fe69a..3015e87ff 100644
--- a/tests/src/com/android/dialer/dialpad/DialpadFragmentTest.java
+++ b/tests/src/com/android/dialer/dialpad/DialpadFragmentTest.java
@@ -82,4 +82,30 @@ public class DialpadFragmentTest extends TestCase {
assertTrue(DialpadFragment.canAddDigit("55;55", 3, 3, ',')); // WAIT & PAUSE
assertTrue(DialpadFragment.canAddDigit("55,55", 3, 4, ';'));
}
+
+ public void testGetFormattedDigits_NoPostDialString() {
+ assertEquals("(510) 333-7596",
+ DialpadFragment.getFormattedDigits("5103337596", null, "US"));
+ assertEquals("(510) 333-7596",
+ DialpadFragment.getFormattedDigits("5103337596", "+15103337596", "US"));
+ }
+
+ public void testGetFormattedDigits_WithPostDialString() {
+ assertEquals("(510) 333-7596,1234",
+ DialpadFragment.getFormattedDigits("5103337596,1234", null, "US"));
+ assertEquals("(510) 333-7596;;1234",
+ DialpadFragment.getFormattedDigits("5103337596;;1234", null, "US"));
+ assertEquals("(510) 333-7596;123,,4",
+ DialpadFragment.getFormattedDigits("(510)3337596;123,,4", "+15103337596", "US"));
+ }
+
+ public void testGetFormattedDigits_PostDialStringOnly() {
+ assertEquals(",1234567", DialpadFragment.getFormattedDigits(",1234567", null, "US"));
+ assertEquals(";4321", DialpadFragment.getFormattedDigits(";4321", null, "US"));
+ }
+
+ public void testGetFormattedDigits_Invalid() {
+ assertEquals(null, DialpadFragment.getFormattedDigits(null, null, "US"));
+ assertEquals("", DialpadFragment.getFormattedDigits("", "+15104233335", "US"));
+ }
}
diff --git a/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java b/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
new file mode 100644
index 000000000..ccd95ab69
--- /dev/null
+++ b/tests/src/com/android/dialer/filterednumber/FilteredNumbersUtilTest.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.dialer.filterednumber;
+
+import android.preference.PreferenceManager;
+import android.test.AndroidTestCase;
+
+import com.android.contacts.common.test.mocks.ContactsMockContext;
+import com.android.contacts.common.test.mocks.MockContentProvider.Query;
+import com.android.dialer.database.FilteredNumberContract;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumber;
+import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+
+public class FilteredNumbersUtilTest extends AndroidTestCase {
+
+ private static final String COUNTRY_ISO = "US";
+
+ // Wed Nov 11 2015 15:00:00
+ private static final long EARLIER_TIME = 1447282800000l;
+
+ // Wed Nov 11 2015 15:01:40
+ private static final long LATER_TIME = 1447282900000l;
+
+ private static final String[] FILTERED_NUMBER_PROJECTION = new String[] {
+ FilteredNumberColumns.CREATION_TIME };
+
+ private static final String NORMALIZED_NUMBER = "+16503903411";
+
+ private static final long NULL_CREATION_TIME = -1;
+
+ private ContactsMockContext mContext;
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ mContext = new ContactsMockContext(getContext(), FilteredNumberContract.AUTHORITY);
+
+ // Reset whether an emergency number was dialed
+ PreferenceManager.getDefaultSharedPreferences(mContext)
+ .edit()
+ .putLong(FilteredNumbersUtil.LAST_EMERGENCY_CALL_MS_PREF_KEY, 0)
+ .apply();
+ }
+
+ public void testShouldBlockVoicemail_NotBlocked() {
+ setupShouldBlockVoicemailQuery(NULL_CREATION_TIME);
+ assertFalse(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, EARLIER_TIME));
+ }
+
+ public void testShouldBlockVoicemail_BlockedBeforeVoicemail() {
+ setupShouldBlockVoicemailQuery(EARLIER_TIME);
+ assertTrue(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, LATER_TIME));
+ }
+
+ public void testShouldBlockVoicemail_BlockedAfterVoicemail() {
+ setupShouldBlockVoicemailQuery(LATER_TIME);
+ assertFalse(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, EARLIER_TIME));
+ }
+
+ public void testShouldBlockVoicemail_BlockedSameTimeAsVoicemail() {
+ setupShouldBlockVoicemailQuery(EARLIER_TIME);
+ assertTrue(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, EARLIER_TIME));
+ }
+
+ public void testShouldBlockVoicemail_BlockedInSameMinuteAsVoicemail() {
+ setupShouldBlockVoicemailQuery(EARLIER_TIME);
+ assertTrue(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, EARLIER_TIME + 30000));
+ }
+
+ public void testShouldBlockVoicemail_AfterEmergencyCall() {
+ // Just called emergency services
+ PreferenceManager.getDefaultSharedPreferences(mContext)
+ .edit()
+ .putLong(FilteredNumbersUtil.LAST_EMERGENCY_CALL_MS_PREF_KEY,
+ System.currentTimeMillis())
+ .apply();
+ assertFalse(FilteredNumbersUtil.shouldBlockVoicemail(mContext, NORMALIZED_NUMBER,
+ COUNTRY_ISO, 0));
+ }
+
+ private void setupShouldBlockVoicemailQuery(long creationTimeMs) {
+ Query query = mContext.getContactsProvider().expectQuery(FilteredNumber.CONTENT_URI)
+ .withProjection(FILTERED_NUMBER_PROJECTION)
+ .withAnySelection()
+ .withAnySortOrder();
+ if (creationTimeMs == NULL_CREATION_TIME) {
+ query.returnEmptyCursor();
+ return;
+ }
+ query.returnRow(creationTimeMs);
+ }
+}
diff --git a/tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java b/tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java
index 8d5b53eb2..54a07cc3a 100644
--- a/tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java
+++ b/tests/src/com/android/dialer/interactions/PhoneNumberInteractionTest.java
@@ -18,6 +18,7 @@ package com.android.dialer.interactions;
import android.content.ContentUris;
import android.content.Context;
+import android.content.CursorLoader;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.net.Uri;
@@ -36,6 +37,7 @@ import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.dialer.interactions.PhoneNumberInteraction.PhoneItem;
import com.android.dialer.util.TestConstants;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
@@ -59,6 +61,16 @@ public class PhoneNumberInteractionTest extends InstrumentationTestCase {
void showDisambiguationDialog(ArrayList<PhoneItem> phoneList) {
this.mPhoneList = phoneList;
}
+
+ public void waitForLoader() {
+ final CursorLoader loader = getLoader();
+ try {
+ final Method waitMethod = CursorLoader.class.getMethod("waitForLoader");
+ waitMethod.invoke(loader, null);
+ } catch(Exception e) {
+ // ignore
+ }
+ }
}
private ContactsMockContext mContext;
@@ -87,7 +99,7 @@ public class PhoneNumberInteractionTest extends InstrumentationTestCase {
mContext, ContactDisplayUtils.INTERACTION_SMS, null);
interaction.startInteraction(contactUri);
- interaction.getLoader().waitForLoader();
+ interaction.waitForLoader();
Intent intent = mContext.getIntentForStartActivity();
assertNotNull(intent);
@@ -106,7 +118,7 @@ public class PhoneNumberInteractionTest extends InstrumentationTestCase {
mContext, ContactDisplayUtils.INTERACTION_SMS, null);
interaction.startInteraction(dataUri);
- interaction.getLoader().waitForLoader();
+ interaction.waitForLoader();
Intent intent = mContext.getIntentForStartActivity();
assertNotNull(intent);
@@ -127,7 +139,7 @@ public class PhoneNumberInteractionTest extends InstrumentationTestCase {
mContext, ContactDisplayUtils.INTERACTION_SMS, null);
interaction.startInteraction(contactUri);
- interaction.getLoader().waitForLoader();
+ interaction.waitForLoader();
Intent intent = mContext.getIntentForStartActivity();
assertNotNull(intent);
@@ -168,7 +180,7 @@ public class PhoneNumberInteractionTest extends InstrumentationTestCase {
mContext, ContactDisplayUtils.INTERACTION_CALL, null);
interaction.startInteraction(contactUri);
- interaction.getLoader().waitForLoader();
+ interaction.waitForLoader();
Intent intent = mContext.getIntentForStartActivity();
assertNotNull(intent);
@@ -186,7 +198,7 @@ public class PhoneNumberInteractionTest extends InstrumentationTestCase {
mContext, ContactDisplayUtils.INTERACTION_CALL, null);
interaction.startInteraction(contactUri);
- interaction.getLoader().waitForLoader();
+ interaction.waitForLoader();
Intent intent = mContext.getIntentForStartActivity();
assertNotNull(intent);
@@ -207,7 +219,7 @@ public class PhoneNumberInteractionTest extends InstrumentationTestCase {
mContext, ContactDisplayUtils.INTERACTION_CALL, null);
interaction.startInteraction(contactUri);
- interaction.getLoader().waitForLoader();
+ interaction.waitForLoader();
List<PhoneItem> items = interaction.mPhoneList;
assertNotNull(items);
diff --git a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
index c2069bda7..881938400 100644
--- a/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
+++ b/tests/src/com/android/dialer/list/PhoneFavoritesTileAdapterTest.java
@@ -1,20 +1,28 @@
package com.android.dialer.list;
+import com.google.common.collect.Lists;
+
+import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.provider.ContactsContract.PinnedPositions;
import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
import com.android.contacts.common.ContactTileLoaderFactory;
import com.android.contacts.common.list.ContactEntry;
+import com.android.contacts.common.preference.ContactsPreferences;
import com.android.dialer.list.PhoneFavoritesTileAdapter.OnDataSetChangedForAnimationListener;
+import junit.framework.Assert;
+
import java.util.ArrayList;
+@SmallTest
public class PhoneFavoritesTileAdapterTest extends AndroidTestCase {
- private PhoneFavoritesTileAdapter mAdapter;
- private static final OnDataSetChangedForAnimationListener
- sOnDataSetChangedForAnimationListener = new OnDataSetChangedForAnimationListener() {
+
+ private static final OnDataSetChangedForAnimationListener NOOP_ANIMATION_LISTENER =
+ new OnDataSetChangedForAnimationListener() {
@Override
public void onDataSetChangedForAnimation(long... idsInPlace) {}
@@ -22,18 +30,161 @@ public class PhoneFavoritesTileAdapterTest extends AndroidTestCase {
public void cacheOffsetsForDatasetChange() {}
};
+ private PhoneFavoritesTileAdapter mAdapter;
+
+ @Override
+ public void setUp() {
+ this.mAdapter = new PhoneFavoritesTileAdapter(getContext(), null, NOOP_ANIMATION_LISTENER);
+ }
+
/**
- * TODO: Add tests
- *
- * Test cases (various combinations of):
- * No pinned contacts
- * One pinned contact
- * Multiple pinned contacts with differing pinned positions
- * Multiple pinned contacts with conflicting pinned positions
- * Pinned contacts with pinned positions at the start, middle, end, and outside the list
+ * For all arrangeContactsByPinnedPosition tests, the id for a particular ContactEntry
+ * represents the index at which it should be located after calling
+ * arrangeContactsByPinnedPosition
*/
- public void testArrangeContactsByPinnedPosition() {
+ public void testArrangeContactsByPinnedPosition_NoPinned() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(0),
+ getTestContactEntry(1), getTestContactEntry(2));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_NoPinned_RemoveDemoted() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(0),
+ getTestContactEntry(-1, PinnedPositions.DEMOTED), getTestContactEntry(1));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 2);
+ }
+
+ public void testArrangeContactsByPinnedPosition_OnePinned_Beginning() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(1),
+ getTestContactEntry(0, 1), getTestContactEntry(2));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_OnePinned_Middle() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(0),
+ getTestContactEntry(1, 2), getTestContactEntry(2));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_OnePinned_End() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(0),
+ getTestContactEntry(2, 3), getTestContactEntry(1));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_OnePinned_Outside() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(0),
+ getTestContactEntry(2, 5), getTestContactEntry(1));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_OnePinned_RemoveDemoted() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(1, 2),
+ getTestContactEntry(-1, PinnedPositions.DEMOTED), getTestContactEntry(0));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 2);
+ }
+
+ public void testArrangeContactsByPinnedPosition_TwoPinned_Split() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(0, 1),
+ getTestContactEntry(1), getTestContactEntry(2, 3));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_TwoPinned_Adjacent() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(1, 2),
+ getTestContactEntry(0), getTestContactEntry(2, 3));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_TwoPinned_Conflict_UnpinnedBefore() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(1, 2),
+ getTestContactEntry(0), getTestContactEntry(2, 2));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_TwoPinned_Conflict_UnpinnedAfter() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(0, 1),
+ getTestContactEntry(2), getTestContactEntry(1, 1));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_TwoPinned_Conflict_RemoveDemoted() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(1, 2),
+ getTestContactEntry(-1, PinnedPositions.DEMOTED), getTestContactEntry(0, 2));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 2);
+ }
+
+ public void testArrangeContactsByPinnedPosition_AllPinned() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(1, 2),
+ getTestContactEntry(0, 1), getTestContactEntry(2, 3));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_AllPinned_TwoConflicts_ConflictsFirst() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(1, 2),
+ getTestContactEntry(0, 2), getTestContactEntry(2, 3));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_AllPinned_TwoConflicts_ConflictsLast() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(0, 2),
+ getTestContactEntry(1, 3), getTestContactEntry(2, 3));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_AllPinned_AllConflicts() {
+ ArrayList<ContactEntry> toArrange = Lists.newArrayList(getTestContactEntry(2, 3),
+ getTestContactEntry(1, 3), getTestContactEntry(0, 3));
+ mAdapter.arrangeContactsByPinnedPosition(toArrange);
+
+ assertContactEntryListPositionsMatchId(toArrange, 3);
+ }
+
+ public void testArrangeContactsByPinnedPosition_All_Pinned_AllConflicts_SortNameAlternative() {
+ Context context = getContext();
+ context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE).edit()
+ .putInt(ContactsPreferences.SORT_ORDER_KEY,
+ ContactsPreferences.SORT_ORDER_ALTERNATIVE)
+ .commit();
+ ArrayList<ContactEntry> actual = Lists.newArrayList(
+ getTestContactEntry(1, 3, "2", "1"),
+ getTestContactEntry(2, 3, "0", "2"),
+ getTestContactEntry(0, 3, "1", "0")
+ );
+ mAdapter.arrangeContactsByPinnedPosition(actual);
+
+ assertContactEntryListPositionsMatchId(actual, 3);
}
/**
@@ -53,6 +204,45 @@ public class PhoneFavoritesTileAdapterTest extends AndroidTestCase {
}
+ public void testSetContactCursor_DisplayNameOrder_Primary() {
+ setNameDisplayOrder(getContext(), ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+ Cursor testCursor = getCursorForTest(1, 0);
+ mAdapter.setContactCursor(testCursor);
+ Assert.assertEquals(1, mAdapter.mContactEntries.size());
+ Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
+ mAdapter.mContactEntries.get(0).nameDisplayOrder);
+ }
+
+ public void testSetContactCursor_DisplayNameOrder_Alternative() {
+ setNameDisplayOrder(getContext(), ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
+ Cursor testCursor = getCursorForTest(1, 0);
+ mAdapter.setContactCursor(testCursor);
+ Assert.assertEquals(1, mAdapter.mContactEntries.size());
+ Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE,
+ mAdapter.mContactEntries.get(0).nameDisplayOrder);
+ }
+
+ public void testSetContactCursor_DisplayNameOrder_Changed() {
+ setNameDisplayOrder(getContext(), ContactsPreferences.DISPLAY_ORDER_PRIMARY);
+ Cursor testCursor = getCursorForTest(1, 0);
+ mAdapter.setContactCursor(testCursor);
+ Assert.assertEquals(1, mAdapter.mContactEntries.size());
+ Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
+ mAdapter.mContactEntries.get(0).nameDisplayOrder);
+
+ setNameDisplayOrder(getContext(), ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
+ mAdapter.refreshContactsPreferences();
+ mAdapter.setContactCursor(testCursor);
+ Assert.assertEquals(1, mAdapter.mContactEntries.size());
+ Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE,
+ mAdapter.mContactEntries.get(0).nameDisplayOrder);
+ }
+
+ private void setNameDisplayOrder(Context context, int displayOrder) {
+ context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE).edit().putInt(
+ ContactsPreferences.DISPLAY_ORDER_KEY, displayOrder).commit();
+ }
+
/**
* Returns a cursor containing starred and frequent contacts for test purposes.
*
@@ -70,38 +260,42 @@ public class PhoneFavoritesTileAdapterTest extends AndroidTestCase {
// The only field that really matters for testing is the contact id.
for (int i = 0; i < numStarred; i++) {
c.addRow(new Object[] {countId, null, 1, null, null, 0, 0, null, 0,
- PinnedPositions.UNPINNED, countId});
+ PinnedPositions.UNPINNED, countId, null});
countId++;
}
// Add frequent contact entries. These entries have the starred field set to 0 (false).
for (int i = 0; i < numFrequents; i++) {
c.addRow(new Object[] {countId, null, 0, null, null, 0, 0, null, 0,
- PinnedPositions.UNPINNED, countId});
+ PinnedPositions.UNPINNED, countId, null});
countId++;
}
return c;
}
- /**
- * Returns a ContactEntry with test data corresponding to the provided contact Id
- *
- * @param id Non-negative id
- * @return ContactEntry item used for testing
- */
- private ContactEntry getTestContactEntry(int id, boolean isFavorite) {
+ private ContactEntry getTestContactEntry(int id) {
+ return getTestContactEntry(id, PinnedPositions.UNPINNED);
+ }
+
+ private ContactEntry getTestContactEntry(int id, int pinned) {
+ return getTestContactEntry(id, pinned, String.valueOf(id), String.valueOf(id));
+ }
+
+ private ContactEntry getTestContactEntry(int id, int pinned, String namePrimaryAppend,
+ String nameAlternativeAppend) {
ContactEntry contactEntry = new ContactEntry();
contactEntry.id = id;
- contactEntry.isFavorite = isFavorite;
+ contactEntry.pinned = pinned;
+ contactEntry.namePrimary = namePrimaryAppend;
+ contactEntry.nameAlternative = nameAlternativeAppend;
return contactEntry;
}
- private void assertContactEntryRowsEqual(ArrayList<ContactEntry> expected,
- ArrayList<ContactEntry> actual) {
- assertEquals(expected.size(), actual.size());
- for (int i = 0; i < actual.size(); i++) {
- assertEquals(expected.get(i).id, actual.get(i).id);
- assertEquals(expected.get(i).isFavorite, actual.get(i).isFavorite);
+ private void assertContactEntryListPositionsMatchId(ArrayList<ContactEntry> contactEntries,
+ int expectedSize) {
+ Assert.assertEquals(expectedSize, contactEntries.size());
+ for (int i = 0; i < expectedSize; ++i) {
+ Assert.assertEquals(i, contactEntries.get(i).id);
}
}
}
diff --git a/tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java b/tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java
index 2e90c4d33..da41dfce4 100644
--- a/tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java
+++ b/tests/src/com/android/dialer/tests/calllog/FillCallLogTestActivity.java
@@ -23,18 +23,27 @@ import android.app.DialogFragment;
import android.app.LoaderManager;
import android.app.TimePickerDialog;
import android.content.ContentProviderClient;
+import android.content.ContentResolver;
import android.content.ContentValues;
+import android.content.Context;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
+import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.RemoteException;
import android.provider.CallLog.Calls;
+import android.provider.VoicemailContract;
+import android.provider.VoicemailContract.Status;
+import android.provider.VoicemailContract.Voicemails;
+import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
+import android.text.Editable;
+import android.text.TextWatcher;
import android.text.format.DateFormat;
import android.util.Log;
+import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
@@ -46,7 +55,10 @@ import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;
+import com.android.contacts.common.compat.telecom.TelecomManagerCompat;
import com.android.dialer.tests.R;
+import com.android.dialer.util.AppCompatConstants;
+import com.android.dialer.util.TelecomUtil;
import java.util.Calendar;
import java.util.List;
@@ -62,7 +74,9 @@ public class FillCallLogTestActivity extends Activity {
private static final Random RNG = new Random();
private static final int[] CALL_TYPES = new int[] {
- Calls.INCOMING_TYPE, Calls.OUTGOING_TYPE, Calls.MISSED_TYPE,
+ AppCompatConstants.CALLS_INCOMING_TYPE,
+ AppCompatConstants.CALLS_OUTGOING_TYPE,
+ AppCompatConstants.CALLS_MISSED_TYPE
};
private TextView mNumberTextView;
@@ -72,6 +86,9 @@ public class FillCallLogTestActivity extends Activity {
private RadioButton mCallTypeIncoming;
private RadioButton mCallTypeMissed;
private RadioButton mCallTypeOutgoing;
+ private RadioButton mCallTypeVoicemail;
+ private RadioButton mCallTypeCustom;
+ private EditText mCustomCallTypeTextView;
private CheckBox mCallTypeVideo;
private RadioButton mPresentationAllowed;
private RadioButton mPresentationRestricted;
@@ -125,6 +142,9 @@ public class FillCallLogTestActivity extends Activity {
mCallTypeIncoming = (RadioButton) findViewById(R.id.call_type_incoming);
mCallTypeMissed = (RadioButton) findViewById(R.id.call_type_missed);
mCallTypeOutgoing = (RadioButton) findViewById(R.id.call_type_outgoing);
+ mCallTypeVoicemail = (RadioButton) findViewById(R.id.call_type_voicemail);
+ mCallTypeCustom = (RadioButton) findViewById(R.id.call_type_custom);
+ mCustomCallTypeTextView = (EditText) findViewById(R.id.call_type_custom_text);
mCallTypeVideo = (CheckBox) findViewById(R.id.call_type_video);
mPresentationAllowed = (RadioButton) findViewById(R.id.presentation_allowed);
mPresentationPayphone = (RadioButton) findViewById(R.id.presentation_payphone);
@@ -137,6 +157,24 @@ public class FillCallLogTestActivity extends Activity {
mAccount0 = (RadioButton) findViewById(R.id.account0);
mAccount1 = (RadioButton) findViewById(R.id.account1);
+ mCustomCallTypeTextView.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+ // Do nothing.
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ // Toggle the custom call type radio button if the text is changed/focused.
+ mCallTypeCustom.toggle();
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ // Do nothing.
+ }
+ });
+
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
mCallTimeHour = c.get(Calendar.HOUR_OF_DAY);
@@ -372,11 +410,15 @@ public class FillCallLogTestActivity extends Activity {
*/
private int getManualCallType() {
if (mCallTypeIncoming.isChecked()) {
- return Calls.INCOMING_TYPE;
+ return AppCompatConstants.CALLS_INCOMING_TYPE;
} else if (mCallTypeOutgoing.isChecked()) {
- return Calls.OUTGOING_TYPE;
+ return AppCompatConstants.CALLS_OUTGOING_TYPE;
+ } else if (mCallTypeVoicemail.isChecked()) {
+ return AppCompatConstants.CALLS_VOICEMAIL_TYPE;
+ } else if (mCallTypeCustom.isChecked()) {
+ return Integer.parseInt(mCustomCallTypeTextView.getText().toString());
} else {
- return Calls.MISSED_TYPE;
+ return AppCompatConstants.CALLS_MISSED_TYPE;
}
}
@@ -398,8 +440,8 @@ public class FillCallLogTestActivity extends Activity {
}
private PhoneAccountHandle getManualAccount() {
- TelecomManager telecomManager = TelecomManager.from(this);
- List <PhoneAccountHandle> accountHandles = telecomManager.getCallCapablePhoneAccounts();
+ List <PhoneAccountHandle> accountHandles = TelecomUtil.getCallCapablePhoneAccounts(this);
+ //TODO: hide the corresponding radio buttons if no accounts are available.
if (mAccount0.isChecked()) {
return accountHandles.get(0);
} else if (mAccount1.isChecked()){
@@ -497,9 +539,13 @@ public class FillCallLogTestActivity extends Activity {
dataUsage = (long) RNG.nextInt(52428800);
}
- Calls.addCall(null, this, mPhoneNumber.getText().toString(), getManualPresentation(),
- getManualCallType(), features, getManualAccount(),
- dateTime.getTimeInMillis(), RNG.nextInt(60 * 60), dataUsage);
+ if (getManualCallType() == AppCompatConstants.CALLS_VOICEMAIL_TYPE) {
+ addManualVoicemail(dateTime.getTimeInMillis());
+ } else {
+ addCall(mPhoneNumber.getText().toString(), getManualPresentation(),
+ getManualCallType(), features, getManualAccount(),
+ dateTime.getTimeInMillis(), RNG.nextInt(60 * 60), dataUsage);
+ }
// Subtract offset from the call date/time and store as new date/time
int offset = Integer.parseInt(mOffset.getText().toString());
@@ -513,4 +559,100 @@ public class FillCallLogTestActivity extends Activity {
setDisplayDate();
setDisplayTime();
}
+
+ // Copied and modified to compile unbundled from android.provider.CallLog
+ public Uri addCall(String number,
+ int presentation, int callType, int features, PhoneAccountHandle accountHandle,
+ long start, int duration, Long dataUsage) {
+ final ContentResolver resolver = getContentResolver();
+ int numberPresentation = Calls.PRESENTATION_ALLOWED;
+
+ String accountAddress = null;
+ if (accountHandle != null) {
+ PhoneAccount account = TelecomUtil.getPhoneAccount(this, accountHandle);
+ if (account != null) {
+ Uri address = account.getSubscriptionAddress();
+ if (address != null) {
+ accountAddress = address.getSchemeSpecificPart();
+ }
+ }
+ }
+
+ if (numberPresentation != Calls.PRESENTATION_ALLOWED) {
+ number = "";
+ }
+
+ // accountHandle information
+ String accountComponentString = null;
+ String accountId = null;
+ if (accountHandle != null) {
+ accountComponentString = accountHandle.getComponentName().flattenToString();
+ accountId = accountHandle.getId();
+ }
+
+ ContentValues values = new ContentValues(6);
+
+ values.put(Calls.NUMBER, number);
+ values.put(Calls.NUMBER_PRESENTATION, Integer.valueOf(numberPresentation));
+ values.put(Calls.TYPE, Integer.valueOf(callType));
+ values.put(Calls.FEATURES, features);
+ values.put(Calls.DATE, Long.valueOf(start));
+ values.put(Calls.DURATION, Long.valueOf(duration));
+ if (dataUsage != null) {
+ values.put(Calls.DATA_USAGE, dataUsage);
+ }
+ values.put(Calls.PHONE_ACCOUNT_COMPONENT_NAME, accountComponentString);
+ values.put(Calls.PHONE_ACCOUNT_ID, accountId);
+ // Calls.PHONE_ACCOUNT_ADDRESS
+ values.put("phone_account_address", accountAddress);
+ values.put(Calls.NEW, Integer.valueOf(1));
+
+ if (callType == AppCompatConstants.CALLS_MISSED_TYPE) {
+ values.put(Calls.IS_READ, 0);
+ }
+
+ return addEntryAndRemoveExpiredEntries(this, Calls.CONTENT_URI, values);
+ }
+
+ // Copied from android.provider.CallLog
+ private static Uri addEntryAndRemoveExpiredEntries(Context context, Uri uri,
+ ContentValues values) {
+ final ContentResolver resolver = context.getContentResolver();
+ Uri result = resolver.insert(uri, values);
+ resolver.delete(uri, "_id IN " +
+ "(SELECT _id FROM calls ORDER BY " + Calls.DEFAULT_SORT_ORDER
+ + " LIMIT -1 OFFSET 500)", null);
+ return result;
+ }
+
+ private void addManualVoicemail(Long time) {
+ final ContentValues contentValues = new ContentValues();
+ contentValues.put(Voicemails.DATE, time);
+ contentValues.put(Voicemails.NUMBER, mPhoneNumber.getText().toString());
+ contentValues.put(Voicemails.DURATION, 5000);
+ contentValues.put(Voicemails.SOURCE_PACKAGE, getPackageName());
+ contentValues.put(Voicemails.SOURCE_DATA, 500);
+ contentValues.put(Voicemails.IS_READ, 0);
+
+ getContentResolver().insert(VoicemailContract.Voicemails.buildSourceUri(getPackageName()),
+ contentValues);
+
+ updateVoicemailStatus();
+ }
+
+ private void updateVoicemailStatus() {
+ ContentResolver contentResolver = getContentResolver();
+ Uri statusUri = VoicemailContract.Status.buildSourceUri(getPackageName());
+ final PhoneAccountHandle accountHandle = getManualAccount();
+
+ ContentValues values = new ContentValues();
+ values.put(Status.PHONE_ACCOUNT_COMPONENT_NAME, getPackageName());
+ values.put(Status.PHONE_ACCOUNT_ID, "ACCOUNT_ID");
+ values.put(Status.CONFIGURATION_STATE, VoicemailContract.Status.CONFIGURATION_STATE_OK);
+ values.put(Status.DATA_CHANNEL_STATE, VoicemailContract.Status.DATA_CHANNEL_STATE_OK);
+ values.put(Status.NOTIFICATION_CHANNEL_STATE,
+ VoicemailContract.Status.NOTIFICATION_CHANNEL_STATE_OK);
+
+ contentResolver.insert(statusUri, values);
+ }
}
diff --git a/tests/src/com/android/dialer/voicemail/VoicemailPlaybackTest.java b/tests/src/com/android/dialer/voicemail/VoicemailPlaybackTest.java
index 58b4f558d..630789cf7 100644
--- a/tests/src/com/android/dialer/voicemail/VoicemailPlaybackTest.java
+++ b/tests/src/com/android/dialer/voicemail/VoicemailPlaybackTest.java
@@ -17,6 +17,7 @@
package com.android.dialer.voicemail;
import static com.android.dialer.voicemail.VoicemailPlaybackPresenter.Tasks.CHECK_FOR_CONTENT;
+import static com.android.dialer.voicemail.VoicemailPlaybackPresenter.Tasks.CHECK_CONTENT_AFTER_CHANGE;
import android.app.Activity;
import android.content.ContentResolver;
@@ -28,10 +29,10 @@ import android.net.Uri;
import android.provider.VoicemailContract;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.LargeTest;
+import android.test.suitebuilder.annotation.Suppress;
import android.view.View;
import android.widget.TextView;
-import com.android.contacts.common.test.IntegrationTestUtils;
import com.android.dialer.R;
import com.android.dialer.calllog.CallLogActivity;
import com.android.dialer.util.AsyncTaskExecutors;
@@ -61,7 +62,6 @@ public class VoicemailPlaybackTest extends ActivityInstrumentationTestCase2<Call
private VoicemailPlaybackLayout mLayout;
private Uri mVoicemailUri;
- private IntegrationTestUtils mTestUtils;
private LocaleTestUtils mLocaleTestUtils;
private FakeAsyncTaskExecutor mFakeAsyncTaskExecutor;
@@ -75,7 +75,6 @@ public class VoicemailPlaybackTest extends ActivityInstrumentationTestCase2<Call
mFakeAsyncTaskExecutor = new FakeAsyncTaskExecutor(getInstrumentation());
AsyncTaskExecutors.setFactoryForTest(mFakeAsyncTaskExecutor.getFactory());
- mTestUtils = new IntegrationTestUtils(getInstrumentation());
// Some of the tests rely on the text - safest to force a specific locale.
mLocaleTestUtils = new LocaleTestUtils(getInstrumentation().getTargetContext());
@@ -95,56 +94,71 @@ public class VoicemailPlaybackTest extends ActivityInstrumentationTestCase2<Call
mLocaleTestUtils.restoreLocale();
mLocaleTestUtils = null;
- mLayout = null;
- mPresenter = null;
- mTestUtils = null;
+ mPresenter.clearInstance();
AsyncTaskExecutors.setFactoryForTest(null);
+ mActivity = null;
+ mPresenter = null;
+ mLayout = null;
+
super.tearDown();
}
public void testFetchingVoicemail() throws Throwable {
- setUriForRealFileVoicemailEntry();
+ setUriForUnfetchedVoicemailEntry();
setPlaybackViewForPresenter();
- assertHasOneTextViewContaining("Loading voicemail");
+
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ mPresenter.resumePlayback();
+ assertStateTextContains("Loading voicemail");
+ }
+ });
}
+ @Suppress
public void testWhenCheckForContentCompletes() throws Throwable {
setUriForRealFileVoicemailEntry();
setPlaybackViewForPresenter();
- // There is a background check that is testing to see if we have the content available.
- // Once that task completes, we shouldn't be showing the fetching message.
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ mPresenter.resumePlayback();
+ }
+ });
mFakeAsyncTaskExecutor.runTask(CHECK_FOR_CONTENT);
getInstrumentation().waitForIdleSync();
- assertHasOneTextViewContaining("Buffering");
- assertHasZeroTextViewsContaining("Loading voicemail");
+ assertStateTextContains("Loading voicemail");
}
+ @Suppress
public void testInvalidVoicemailShowsErrorMessage() throws Throwable {
setUriForInvalidVoicemailEntry();
setPlaybackViewForPresenter();
+ getInstrumentation().runOnMainSync(new Runnable() {
+ @Override
+ public void run() {
+ mPresenter.resumePlayback();
+ }
+ });
mFakeAsyncTaskExecutor.runTask(CHECK_FOR_CONTENT);
getInstrumentation().waitForIdleSync();
// The media player will have thrown an IOException since the file doesn't exist.
// This should have put a failed to play message on screen, buffering is gone.
- assertHasOneTextViewContaining("Couldn't play voicemail");
- assertHasZeroTextViewsContaining("Buffering");
+ assertStateTextContains("Couldn't play voicemail");
+ assertStateTextNotContains("Buffering");
}
public void testClickingSpeakerphoneButton() throws Throwable {
setUriForRealFileVoicemailEntry();
setPlaybackViewForPresenter();
- // Wait for check for content to complete.
- mFakeAsyncTaskExecutor.runTask(CHECK_FOR_CONTENT);
- getInstrumentation().waitForIdleSync();
-
- // Force the speakerphone to false to start.
- mPresenter.setSpeakerphoneOn(false);
+ // Check that the speakerphone is false to start.
assertFalse(mPresenter.isSpeakerphoneOn());
View speakerphoneButton = mLayout.findViewById(R.id.playback_speakerphone);
@@ -177,13 +191,26 @@ public class VoicemailPlaybackTest extends ActivityInstrumentationTestCase2<Call
}
}
+ private void setUriForUnfetchedVoicemailEntry() {
+ assertNull(mVoicemailUri);
+ ContentValues values = new ContentValues();
+ values.put(VoicemailContract.Voicemails.DATE, String.valueOf(System.currentTimeMillis()));
+ values.put(VoicemailContract.Voicemails.NUMBER, CONTACT_NUMBER);
+ values.put(VoicemailContract.Voicemails.MIME_TYPE, MIME_TYPE);
+ values.put(VoicemailContract.Voicemails.HAS_CONTENT, 0);
+ String packageName = getInstrumentation().getTargetContext().getPackageName();
+ mVoicemailUri = getContentResolver().insert(
+ VoicemailContract.Voicemails.buildSourceUri(packageName), values);
+ }
+
private void setUriForInvalidVoicemailEntry() {
assertNull(mVoicemailUri);
ContentResolver contentResolver = getContentResolver();
ContentValues values = new ContentValues();
values.put(VoicemailContract.Voicemails.NUMBER, CONTACT_NUMBER);
values.put(VoicemailContract.Voicemails.HAS_CONTENT, 1);
- values.put(VoicemailContract.Voicemails._DATA, VOICEMAIL_FILE_LOCATION);
+ // VoicemailContract.Voicemails._DATA
+ values.put("_data", VOICEMAIL_FILE_LOCATION);
mVoicemailUri = contentResolver.insert(VoicemailContract.Voicemails.CONTENT_URI, values);
}
@@ -204,18 +231,14 @@ public class VoicemailPlaybackTest extends ActivityInstrumentationTestCase2<Call
}
}
- private void assertHasOneTextViewContaining(String text) throws Throwable {
+ private void assertStateTextContains(String text) {
assertNotNull(mLayout);
- List<TextView> views = mTestUtils.getTextViewsWithString(mLayout, text);
- assertEquals("There should have been one TextView with text '" + text + "' but found "
- + views, 1, views.size());
+ assertTrue(mLayout.getStateText().contains(text));
}
- private void assertHasZeroTextViewsContaining(String text) throws Throwable {
+ private void assertStateTextNotContains(String text) {
assertNotNull(mLayout);
- List<TextView> views = mTestUtils.getTextViewsWithString(mLayout, text);
- assertEquals("There should have been no TextViews with text '" + text + "' but found "
- + views, 0, views.size());
+ assertFalse(mLayout.getStateText().contains(text));
}
private ContentResolver getContentResolver() {