summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.mk7
-rw-r--r--AndroidManifest.xml2
-rw-r--r--assets/quantum/res/drawable-hdpi/quantum_ic_image_white_24.pngbin0 -> 261 bytes
-rw-r--r--assets/quantum/res/drawable-mdpi/quantum_ic_image_white_24.pngbin0 -> 185 bytes
-rw-r--r--assets/quantum/res/drawable-xhdpi/quantum_ic_image_white_24.pngbin0 -> 304 bytes
-rw-r--r--assets/quantum/res/drawable-xxhdpi/quantum_ic_image_white_24.pngbin0 -> 450 bytes
-rw-r--r--assets/quantum/res/drawable-xxxhdpi/quantum_ic_image_white_24.pngbin0 -> 570 bytes
-rw-r--r--assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_forward_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml10
-rw-r--r--assets/quantum/res/drawable/quantum_ic_network_wifi_vd_theme_24.xml14
-rw-r--r--java/com/android/contacts/common/AndroidManifest.xml8
-rw-r--r--java/com/android/contacts/common/ContactPhotoManager.java2
-rw-r--r--java/com/android/contacts/common/compat/TelephonyManagerCompat.java3
-rw-r--r--java/com/android/contacts/common/dialog/CallSubjectDialog.java6
-rw-r--r--java/com/android/contacts/common/dialog/ClearFrequentsDialog.java2
-rw-r--r--java/com/android/contacts/common/list/ContactListItemView.java210
-rw-r--r--java/com/android/contacts/common/list/DirectoryListLoader.java19
-rw-r--r--java/com/android/contacts/common/list/PhoneNumberListAdapter.java89
-rw-r--r--java/com/android/contacts/common/list/PhoneNumberPickerFragment.java46
-rw-r--r--java/com/android/contacts/common/model/ContactLoader.java33
-rw-r--r--java/com/android/contacts/common/res/drawable/ic_call_and_share.xml22
-rw-r--r--java/com/android/contacts/common/res/drawable/ic_search_video_call.xml3
-rw-r--r--java/com/android/contacts/common/res/values-af/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-am/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ar/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-az/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-be/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-bg/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-bn/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-bs/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ca/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-cs/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-da/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-de/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-el/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-en-rAU/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-en-rGB/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-en-rIN/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-es-rUS/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-es/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-et/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-eu/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-fa/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-fi/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-fr-rCA/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-fr/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-gl/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-gu/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-hi/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-hr/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-hu/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-hy/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-in/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-is/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-it/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-iw/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ja/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ka/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-kk/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-km/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-kn/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ko/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ky/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-lo/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-lt/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-lv/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-mk/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ml/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-mn/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-mr/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ms/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-my/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-nb/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ne/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-nl/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-no/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-pa/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-pl/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-pt-rBR/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-pt-rPT/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-pt/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ro/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ru/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-si/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-sk/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-sl/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-sq/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-sr/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-sv/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-sw/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ta/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-te/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-th/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-tl/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-tr/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-uk/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-ur/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-uz/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-vi/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-zh-rCN/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-zh-rHK/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-zh-rTW/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values-zu/strings.xml5
-rw-r--r--java/com/android/contacts/common/res/values/strings.xml9
-rw-r--r--java/com/android/contacts/common/widget/FloatingActionButtonController.java8
-rw-r--r--java/com/android/dialer/about/AboutPhoneFragment.java64
-rw-r--r--java/com/android/dialer/about/AndroidManifest.xml17
-rw-r--r--java/com/android/dialer/about/License.java99
-rw-r--r--java/com/android/dialer/about/LicenseActivity.java87
-rw-r--r--java/com/android/dialer/about/LicenseLoader.java57
-rw-r--r--java/com/android/dialer/about/LicenseMenuActivity.java101
-rw-r--r--java/com/android/dialer/about/Licenses.java106
-rw-r--r--java/com/android/dialer/about/res/layout/dummy_placeholder.xml21
-rw-r--r--java/com/android/dialer/about/res/layout/license.xml40
-rw-r--r--java/com/android/dialer/about/res/layout/license_menu_activity.xml35
-rw-r--r--java/com/android/dialer/about/res/layout/license_scrollview.xml34
-rw-r--r--java/com/android/dialer/about/res/raw/keep.xml19
-rw-r--r--java/com/android/dialer/about/res/raw/third_party_license_metadata34
-rw-r--r--java/com/android/dialer/about/res/raw/third_party_licenses6414
-rw-r--r--java/com/android/dialer/about/res/values-af/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-am/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ar/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-az/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-b+sr+Latn/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-be/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-bg/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-bn/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-bs/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ca/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-cs/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-da/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-de/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-el/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-en-rAU/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-en-rGB/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-en-rIN/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-es-rUS/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-es/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-et/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-eu/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-fa/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-fi/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-fr-rCA/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-fr/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-gl/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-gu/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-hi/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-hr/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-hu/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-hy/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-in/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-is/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-it/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-iw/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ja/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ka/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-kk/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-km/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-kn/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ko/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ky/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-lo/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-lt/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-lv/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-mk/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ml/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-mn/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-mr/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ms/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-my/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-nb/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ne/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-nl/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-no/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-pa/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-pl/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-pt-rBR/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-pt-rPT/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-pt/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ro/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ru/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-si/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-sk/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-sl/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-sq/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-sr/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-sv/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-sw/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ta/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-te/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-th/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-tl/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-tr/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-uk/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-ur/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-uz/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-vi/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-zh-rCN/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-zh-rHK/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-zh-rTW/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values-zu/strings.xml14
-rw-r--r--java/com/android/dialer/about/res/values/strings.xml39
-rw-r--r--java/com/android/dialer/about/res/xml/about_phone_fragment.xml31
-rw-r--r--java/com/android/dialer/app/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java70
-rw-r--r--java/com/android/dialer/app/calllog/BlockReportSpamListener.java5
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAdapter.java36
-rw-r--r--java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java16
-rw-r--r--java/com/android/dialer/app/calllog/CallLogFragment.java22
-rw-r--r--java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java15
-rw-r--r--java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java2
-rw-r--r--java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java7
-rw-r--r--java/com/android/dialer/app/calllog/CallLogNotificationsService.java89
-rw-r--r--java/com/android/dialer/app/calllog/CallLogReceiver.java6
-rw-r--r--java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java84
-rw-r--r--java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java38
-rw-r--r--java/com/android/dialer/app/calllog/MissedCallNotifier.java23
-rw-r--r--java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java52
-rw-r--r--java/com/android/dialer/app/calllog/VoicemailQueryHandler.java15
-rw-r--r--java/com/android/dialer/app/contactinfo/ContactInfoCache.java22
-rw-r--r--java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java2
-rw-r--r--java/com/android/dialer/app/dialpad/DialpadFragment.java9
-rw-r--r--java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java29
-rw-r--r--java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java2
-rw-r--r--java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java2
-rw-r--r--java/com/android/dialer/app/list/BlockedListSearchAdapter.java2
-rw-r--r--java/com/android/dialer/app/list/BlockedListSearchFragment.java2
-rw-r--r--java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java12
-rw-r--r--java/com/android/dialer/app/list/ListsFragment.java14
-rw-r--r--java/com/android/dialer/app/list/OldSpeedDialFragment.java4
-rw-r--r--java/com/android/dialer/app/list/SearchFragment.java2
-rw-r--r--java/com/android/dialer/app/list/SmartDialSearchFragment.java38
-rw-r--r--java/com/android/dialer/app/manifests/activities/AndroidManifest.xml5
-rw-r--r--java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml2
-rw-r--r--java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml171
-rw-r--r--java/com/android/dialer/app/res/layout/search_edittext.xml2
-rw-r--r--java/com/android/dialer/app/res/values-af/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-am/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ar/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-az/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-be/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-bg/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-bn/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-bs/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ca/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-cs/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-da/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-de/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-el/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-en-rAU/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-en-rGB/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-en-rIN/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-es-rUS/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-es/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-et/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-eu/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-fa/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-fi/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-fr-rCA/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-fr/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-gl/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-gu/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-hi/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-hr/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-hu/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-hy/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-in/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-is/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-it/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-iw/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ja/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ka/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-kk/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-km/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-kn/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ko/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ky/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-lo/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-lt/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-lv/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-mk/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ml/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-mn/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-mr/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ms/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-my/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-nb/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ne/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-nl/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-no/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-pa/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-pl/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-pt-rBR/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-pt-rPT/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-pt/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ro/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ru/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-si/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-sk/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-sl/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-sq/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-sr/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-sv/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-sw/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ta/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-te/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-th/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-tl/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-tr/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-uk/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-ur/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-uz/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-vi/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-zh-rCN/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-zh-rHK/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-zh-rTW/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values-zu/strings.xml4
-rw-r--r--java/com/android/dialer/app/res/values/strings.xml6
-rw-r--r--java/com/android/dialer/app/res/values/styles.xml2
-rw-r--r--java/com/android/dialer/app/settings/DialerSettingsActivity.java67
-rw-r--r--java/com/android/dialer/app/settings/PhoneAccountSelectionFragment.java126
-rw-r--r--java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java74
-rw-r--r--java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java8
-rw-r--r--java/com/android/dialer/app/widget/ActionBarController.java29
-rw-r--r--java/com/android/dialer/app/widget/SearchEditTextLayout.java9
-rw-r--r--java/com/android/dialer/backup/DialerBackupAgent.java5
-rw-r--r--java/com/android/dialer/binary/common/DialerApplication.java3
-rw-r--r--java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java5
-rw-r--r--java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java20
-rw-r--r--java/com/android/dialer/blocking/FilteredNumberProvider.java7
-rw-r--r--java/com/android/dialer/blocking/FilteredNumbersUtil.java57
-rw-r--r--java/com/android/dialer/callcomposer/CallComposerActivity.java39
-rw-r--r--java/com/android/dialer/calldetails/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsActivity.java23
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java16
-rw-r--r--java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java13
-rw-r--r--java/com/android/dialer/calldetails/res/layout/call_details_entry.xml12
-rw-r--r--java/com/android/dialer/calldetails/res/layout/contact_container.xml4
-rw-r--r--java/com/android/dialer/calldetails/res/layout/ec_data_container.xml7
-rw-r--r--java/com/android/dialer/calldetails/res/values/dimens.xml1
-rw-r--r--java/com/android/dialer/callintent/CallIntentParser.java25
-rw-r--r--java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java4
-rw-r--r--java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java6
-rw-r--r--java/com/android/dialer/calllogutils/CallEntryFormatter.java74
-rw-r--r--java/com/android/dialer/calllogutils/res/values-af/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-am/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ar/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-az/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-b+sr+Latn/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-be/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-bg/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-bn/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-bs/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ca/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-cs/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-da/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-de/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-el/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-en-rAU/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-en-rGB/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-en-rIN/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-es-rUS/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-es/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-et/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-eu/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-fa/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-fi/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-fr-rCA/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-fr/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-gl/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-gu/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-hi/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-hr/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-hu/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-hy/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-in/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-is/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-it/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-iw/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ja/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ka/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-kk/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-km/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-kn/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ko/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ky/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-lo/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-lt/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-lv/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-mk/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ml/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-mn/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-mr/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ms/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-my/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-nb/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ne/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-nl/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-no/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-pa/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-pl/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-pt-rBR/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-pt-rPT/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-pt/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ro/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ru/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-si/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-sk/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-sl/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-sq/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-sr/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-sv/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-sw/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ta/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-te/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-th/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-tl/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-tr/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-uk/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-ur/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-uz/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-vi/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-zh-rCN/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-zh-rHK/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-zh-rTW/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values-zu/strings.xml18
-rw-r--r--java/com/android/dialer/calllogutils/res/values/strings.xml58
-rw-r--r--java/com/android/dialer/common/ConfigProviderBindings.java8
-rw-r--r--java/com/android/dialer/constants/ScheduledJobIds.java7
-rw-r--r--java/com/android/dialer/contactsfragment/ContactsFragment.java6
-rw-r--r--java/com/android/dialer/database/DialerDatabaseHelper.java16
-rw-r--r--java/com/android/dialer/enrichedcall/EnrichedCallManager.java28
-rw-r--r--java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java19
-rw-r--r--java/com/android/dialer/location/AndroidManifest.xml22
-rw-r--r--java/com/android/dialer/location/CountryDetector.java262
-rw-r--r--java/com/android/dialer/location/GeoUtil.java47
-rw-r--r--java/com/android/dialer/logging/contact_lookup_result.proto1
-rw-r--r--java/com/android/dialer/logging/contact_source.proto1
-rw-r--r--java/com/android/dialer/logging/dialer_impression.proto20
-rw-r--r--java/com/android/dialer/logging/interaction_event.proto1
-rw-r--r--java/com/android/dialer/logging/reporting_location.proto1
-rw-r--r--java/com/android/dialer/logging/screen_event.proto1
-rw-r--r--java/com/android/dialer/notification/AndroidManifest.xml16
-rw-r--r--java/com/android/dialer/notification/NotificationChannelManager.java145
-rw-r--r--java/com/android/dialer/notification/PackageUpdatedReceiver.java37
-rw-r--r--java/com/android/dialer/notification/res/values-af/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-am/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ar/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-az/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-b+sr+Latn/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-be/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-bg/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-bn/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-bs/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ca/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-cs/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-da/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-de/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-el/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-en-rAU/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-en-rGB/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-en-rIN/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-es-rUS/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-es/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-et/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-eu/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-fa/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-fi/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-fr-rCA/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-fr/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-gl/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-gu/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-hi/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-hr/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-hu/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-hy/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-in/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-is/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-it/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-iw/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ja/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ka/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-kk/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-km/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-kn/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ko/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ky/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-lo/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-lt/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-lv/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-mk/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ml/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-mn/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-mr/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ms/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-my/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-nb/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ne/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-nl/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-no/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-pa/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-pl/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-pt-rBR/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-pt-rPT/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-pt/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ro/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ru/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-si/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-sk/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-sl/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-sq/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-sr/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-sv/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-sw/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ta/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-te/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-th/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-tl/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-tr/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-uk/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-ur/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-uz/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-vi/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-zh-rCN/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-zh-rHK/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-zh-rTW/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values-zu/strings.xml3
-rw-r--r--java/com/android/dialer/notification/res/values/ids.xml1
-rw-r--r--java/com/android/dialer/notification/res/values/strings.xml3
-rw-r--r--java/com/android/dialer/oem/CequintCallerIdManager.java8
-rw-r--r--java/com/android/dialer/persistentlog/PersistentLogFileHandler.java33
-rw-r--r--java/com/android/dialer/persistentlog/PersistentLogger.java4
-rw-r--r--java/com/android/dialer/phonenumbercache/ContactInfo.java5
-rw-r--r--java/com/android/dialer/phonenumbercache/ContactInfoHelper.java2
-rw-r--r--java/com/android/dialer/postcall/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/postcall/PostCall.java38
-rw-r--r--java/com/android/dialer/postcall/PostCallActivity.java19
-rw-r--r--java/com/android/dialer/postcall/res/values-af/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-am/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ar/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-az/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-b+sr+Latn/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-be/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-bg/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-bn/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-bs/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ca/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-cs/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-da/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-de/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-el/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-en-rAU/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-en-rGB/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-en-rIN/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-es-rUS/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-es/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-et/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-eu/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-fa/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-fi/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-fr-rCA/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-fr/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-gl/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-gu/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-hi/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-hr/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-hu/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-hy/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-in/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-is/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-it/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-iw/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ja/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ka/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-kk/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-km/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-kn/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ko/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ky/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-lo/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-lt/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-lv/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-mk/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ml/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-mn/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-mr/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ms/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-my/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-nb/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ne/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-nl/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-no/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-pa/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-pl/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-pt-rBR/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-pt-rPT/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-pt/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ro/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ru/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-si/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-sk/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-sl/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-sq/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-sr/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-sv/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-sw/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ta/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-te/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-th/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-tl/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-tr/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-uk/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-ur/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-uz/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-vi/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-zh-rCN/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-zh-rHK/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-zh-rTW/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values-zu/strings.xml2
-rw-r--r--java/com/android/dialer/postcall/res/values/strings.xml2
-rw-r--r--java/com/android/dialer/protos/ProtoParsers.java188
-rw-r--r--java/com/android/dialer/shortcuts/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/theme/res/values-af/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-am/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ar/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-az/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-be/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-bg/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-bn/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-bs/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ca/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-cs/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-da/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-de/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-el/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-en-rAU/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-en-rGB/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-en-rIN/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-es-rUS/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-es/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-et/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-eu/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-fa/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-fi/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-fr-rCA/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-fr/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-gl/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-gu/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-hi/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-hr/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-hu/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-hy/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-in/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-is/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-it/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-iw/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ja/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ka/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-kk/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-km/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-kn/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ko/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ky/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-lo/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-lt/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-lv/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-mk/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ml/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-mn/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-mr/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ms/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-my/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-nb/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ne/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-nl/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-no/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-pa/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-pl/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-pt-rBR/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-pt-rPT/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-pt/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ro/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ru/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-si/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-sk/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-sl/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-sq/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-sr/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-sv/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-sw/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ta/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-te/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-th/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-tl/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-tr/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-uk/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-ur/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-uz/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-vi/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-zh-rCN/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-zh-rHK/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-zh-rTW/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values-zu/strings.xml4
-rw-r--r--java/com/android/dialer/theme/res/values/colors.xml2
-rw-r--r--java/com/android/dialer/theme/res/values/strings.xml10
-rw-r--r--java/com/android/dialer/util/PermissionsUtil.java27
-rw-r--r--java/com/android/dialer/util/TouchPointManager.java2
-rw-r--r--java/com/android/incallui/AndroidManifest.xml2
-rw-r--r--java/com/android/incallui/AnswerScreenPresenter.java3
-rw-r--r--java/com/android/incallui/CallCardPresenter.java17
-rw-r--r--java/com/android/incallui/CallerInfoUtils.java2
-rw-r--r--java/com/android/incallui/ConferenceParticipantListAdapter.java7
-rw-r--r--java/com/android/incallui/ContactInfoCache.java6
-rw-r--r--java/com/android/incallui/InCallActivity.java12
-rw-r--r--java/com/android/incallui/InCallActivityCommon.java70
-rw-r--r--java/com/android/incallui/InCallPresenter.java25
-rw-r--r--java/com/android/incallui/StatusBarNotifier.java127
-rw-r--r--java/com/android/incallui/answer/impl/AnswerFragment.java14
-rw-r--r--java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java15
-rw-r--r--java/com/android/incallui/answer/impl/hint/DotAnswerHint.java8
-rw-r--r--java/com/android/incallui/answer/impl/hint/PawAnswerHint.java9
-rw-r--r--java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java5
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-af/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-am/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ar/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-az/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-b+sr+Latn/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-be/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-bg/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-bn/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-bs/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ca/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-cs/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-da/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-de/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-el/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-en-rAU/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-en-rGB/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-en-rIN/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-es-rUS/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-es/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-et/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-eu/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-fa/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-fi/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-fr-rCA/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-fr/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-gl/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-gu/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-hi/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-hr/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-hu/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-hy/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-in/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-is/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-it/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-iw/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ja/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ka/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-kk/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-km/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-kn/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ko/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ky/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-lo/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-lt/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-lv/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-mk/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ml/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-mn/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-mr/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ms/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-my/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-nb/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ne/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-nl/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-no/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-pa/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-pl/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-pt-rBR/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-pt-rPT/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-pt/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ro/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ru/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-si/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-sk/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-sl/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-sq/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-sr/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-sv/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-sw/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ta/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-te/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-th/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-tl/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-tr/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-uk/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-ur/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-uz/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-vi/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-zh-rCN/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-zh-rHK/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-zh-rTW/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values-zu/strings.xml4
-rw-r--r--java/com/android/incallui/answer/impl/hint/res/values/strings.xml6
-rw-r--r--java/com/android/incallui/answer/impl/res/drawable/urgent_call_background.xml22
-rw-r--r--java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml10
-rw-r--r--java/com/android/incallui/answer/impl/res/values-af/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-am/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ar/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-az/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-be/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-bg/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-bn/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-bs/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ca/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-cs/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-da/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-de/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-el/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-es/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-et/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-eu/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-fa/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-fi/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-fr/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-gl/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-gu/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-hi/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-hr/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-hu/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-hy/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-in/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-is/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-it/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-iw/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ja/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ka/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-kk/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-km/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-kn/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ko/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ky/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-lo/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-lt/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-lv/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-mk/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ml/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-mn/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-mr/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ms/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-my/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-nb/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ne/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-nl/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-no/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pa/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pl/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-pt/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ro/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ru/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-si/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sk/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sl/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sq/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sr/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sv/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-sw/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ta/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-te/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-th/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-tl/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-tr/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-uk/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-ur/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-uz/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-vi/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values-zu/strings.xml3
-rw-r--r--java/com/android/incallui/answer/impl/res/values/strings.xml2
-rw-r--r--java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java3
-rw-r--r--java/com/android/incallui/autoresizetext/AndroidManifest.xml2
-rw-r--r--java/com/android/incallui/call/CallList.java26
-rw-r--r--java/com/android/incallui/call/DialerCall.java47
-rw-r--r--java/com/android/incallui/call/DialerCallListener.java2
-rw-r--r--java/com/android/incallui/call/InCallVideoCallCallbackNotifier.java2
-rw-r--r--java/com/android/incallui/calllocation/impl/LocationFragment.java7
-rw-r--r--java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml21
-rw-r--r--java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml2
-rw-r--r--java/com/android/incallui/commontheme/res/values/styles.xml3
-rw-r--r--java/com/android/incallui/contactgrid/ContactGridManager.java92
-rw-r--r--java/com/android/incallui/contactgrid/TopRow.java12
-rw-r--r--java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator.xml22
-rw-r--r--java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator2.xml22
-rw-r--r--java/com/android/incallui/contactgrid/res/anim/trim_end_interpolator.xml19
-rw-r--r--java/com/android/incallui/contactgrid/res/anim/trim_start_interpolator.xml19
-rw-r--r--java/com/android/incallui/contactgrid/res/drawable/asd_hd_icon.xml108
-rw-r--r--java/com/android/incallui/contactgrid/res/drawable/avd_hd_attempting.xml95
-rw-r--r--java/com/android/incallui/contactgrid/res/drawable/vd_hd_attempting.xml56
-rw-r--r--java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml83
-rw-r--r--java/com/android/incallui/incall/impl/InCallFragment.java9
-rw-r--r--java/com/android/incallui/incall/impl/InCallPagerAdapter.java2
-rw-r--r--java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java10
-rw-r--r--java/com/android/incallui/sessiondata/MultimediaFragment.java40
-rw-r--r--java/com/android/incallui/sessiondata/res/drawable/answer_data_background.xml7
-rw-r--r--java/com/android/incallui/sessiondata/res/drawable/answer_text_only_background.xml23
-rw-r--r--java/com/android/incallui/sessiondata/res/drawable/spam_container_background.xml22
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_composer_frag.xml46
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml57
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_composer_image_frag.xml87
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_composer_text.xml54
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_frag.xml82
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image.xml95
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image_frag.xml122
-rw-r--r--java/com/android/incallui/sessiondata/res/layout/fragment_spam.xml51
-rw-r--r--java/com/android/incallui/sessiondata/res/values-af/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-am/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ar/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-az/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-b+sr+Latn/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-be/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-bg/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-bn/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-bs/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ca/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-cs/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-da/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-de/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-el/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-en-rAU/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-en-rGB/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-en-rIN/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-es-rUS/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-es/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-et/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-eu/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-fa/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-fi/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-fr-rCA/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-fr/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-gl/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-gu/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-hi/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-hr/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-hu/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-hy/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-in/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-is/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-it/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-iw/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ja/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ka/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-kk/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-km/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-kn/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ko/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ky/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-lo/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-lt/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-lv/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-mk/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ml/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-mn/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-mr/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ms/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-my/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-nb/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ne/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-nl/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-no/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-pa/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-pl/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-pt-rBR/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-pt-rPT/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-pt/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ro/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ru/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-si/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-sk/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-sl/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-sq/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-sr/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-sv/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-sw/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ta/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-te/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-th/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-tl/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-tr/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-uk/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-ur/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-uz/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-vi/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-zh-rCN/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-zh-rHK/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-zh-rTW/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values-zu/strings.xml24
-rw-r--r--java/com/android/incallui/sessiondata/res/values/dimens.xml5
-rw-r--r--java/com/android/incallui/sessiondata/res/values/ids.xml1
-rw-r--r--java/com/android/incallui/sessiondata/res/values/strings.xml20
-rw-r--r--java/com/android/incallui/spam/SpamCallListListener.java8
-rw-r--r--java/com/android/incallui/spam/SpamNotificationActivity.java2
-rw-r--r--java/com/android/incallui/spam/SpamNotificationService.java2
-rw-r--r--java/com/android/incallui/telecomeventui/AndroidManifest.xml15
-rw-r--r--java/com/android/incallui/telecomeventui/InternationalCallOnWifiDialogFragment.java179
-rw-r--r--java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml43
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-af/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-am/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ar/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-az/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-b+sr+Latn/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-be/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-bg/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-bn/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-bs/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ca/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-cs/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-da/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-de/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-el/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-en-rAU/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-en-rGB/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-en-rIN/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-es-rUS/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-es/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-et/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-eu/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-fa/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-fi/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-fr-rCA/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-fr/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-gl/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-gu/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-hi/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-hr/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-hu/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-hy/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-in/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-is/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-it/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-iw/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ja/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ka/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-kk/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-km/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-kn/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ko/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ky/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-lo/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-lt/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-lv/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-mk/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ml/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-mn/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-mr/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ms/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-my/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-nb/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ne/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-nl/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-no/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-pa/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-pl/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-pt-rBR/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-pt-rPT/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-pt/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ro/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ru/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-si/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-sk/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-sl/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-sq/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-sr/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-sv/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-sw/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ta/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-te/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-th/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-tl/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-tr/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-uk/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-ur/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-uz/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-vi/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-zh-rCN/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-zh-rHK/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-zh-rTW/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values-zu/strings.xml23
-rw-r--r--java/com/android/incallui/telecomeventui/res/values/strings.xml24
-rw-r--r--java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java1
-rw-r--r--java/com/android/incallui/video/impl/VideoCallFragment.java1
-rw-r--r--java/com/android/incallui/video/protocol/AndroidManifest.xml2
-rw-r--r--java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java13
-rw-r--r--java/com/android/incallui/videotech/ims/ImsVideoTech.java28
-rw-r--r--java/com/android/voicemail/impl/ActivationTask.java92
-rw-r--r--java/com/android/voicemail/impl/AndroidManifest.xml34
-rw-r--r--java/com/android/voicemail/impl/DeviceProvisionedJobService.java85
-rw-r--r--java/com/android/voicemail/impl/OmtpService.java159
-rw-r--r--java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java13
-rw-r--r--java/com/android/voicemail/impl/PreOMigrationHandler.java102
-rw-r--r--java/com/android/voicemail/impl/StatusCheckTask.java2
-rw-r--r--java/com/android/voicemail/impl/TelephonyMangerCompat.java82
-rw-r--r--java/com/android/voicemail/impl/TelephonyVvmConfigManager.java24
-rw-r--r--java/com/android/voicemail/impl/VoicemailClientImpl.java8
-rw-r--r--java/com/android/voicemail/impl/VvmPackageInstallHandler.java167
-rw-r--r--java/com/android/voicemail/impl/imap/ImapHelper.java63
-rw-r--r--java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java56
-rw-r--r--java/com/android/voicemail/impl/res/values-af/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-am/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ar/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-az/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-b+sr+Latn/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-be/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-bg/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-bn/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-bs/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ca/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-cs/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-da/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-de/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-el/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-en-rAU/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-en-rGB/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-en-rIN/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-es-rUS/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-es/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-et/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-eu/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-fa/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-fi/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-fr-rCA/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-fr/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-gl/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-gu/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-hi/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-hr/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-hu/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-hy/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-in/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-is/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-it/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-iw/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ja/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ka/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-kk/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-km/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-kn/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ko/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ky/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-lo/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-lt/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-lv/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-mk/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ml/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-mn/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-mr/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ms/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-my/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-nb/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ne/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-nl/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-no/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-pa/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-pl/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-pt-rBR/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-pt-rPT/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-pt/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ro/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ru/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-si/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-sk/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-sl/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-sq/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-sr/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-sv/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-sw/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ta/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-te/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-th/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-tl/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-tr/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-uk/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-ur/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-uz/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-vi/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-zh-rCN/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-zh-rHK/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-zh-rTW/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values-zu/strings.xml5
-rw-r--r--java/com/android/voicemail/impl/res/values/strings.xml15
-rw-r--r--java/com/android/voicemail/impl/res/xml/voicemail_settings.xml13
-rw-r--r--java/com/android/voicemail/impl/res/xml/vvm_config.xml64
-rw-r--r--java/com/android/voicemail/impl/scheduling/BaseTask.java2
-rw-r--r--java/com/android/voicemail/impl/scheduling/MinimalIntervalPolicy.java2
-rw-r--r--java/com/android/voicemail/impl/scheduling/RetryPolicy.java2
-rw-r--r--java/com/android/voicemail/impl/scheduling/Task.java8
-rw-r--r--java/com/android/voicemail/impl/scheduling/TaskExecutor.java462
-rw-r--r--java/com/android/voicemail/impl/scheduling/TaskReceiver.java81
-rw-r--r--java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java95
-rw-r--r--java/com/android/voicemail/impl/scheduling/Tasks.java5
-rw-r--r--java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java50
-rw-r--r--java/com/android/voicemail/impl/sms/OmtpMessageReceiver.java4
-rw-r--r--java/com/android/voicemail/impl/sms/OmtpMessageSender.java6
-rw-r--r--java/com/android/voicemail/impl/sms/StatusSmsFetcher.java6
-rw-r--r--java/com/android/voicemail/impl/sync/OmtpVvmSyncService.java39
-rw-r--r--java/com/android/voicemail/impl/sync/SyncOneTask.java2
-rw-r--r--java/com/android/voicemail/impl/sync/SyncTask.java2
-rw-r--r--java/com/android/voicemail/impl/sync/UploadTask.java2
-rw-r--r--java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java24
-rw-r--r--java/com/android/voicemail/permissions.xml2
1224 files changed, 20406 insertions, 2562 deletions
diff --git a/Android.mk b/Android.mk
index b00519f48..f46e4d839 100644
--- a/Android.mk
+++ b/Android.mk
@@ -47,6 +47,7 @@ RES_DIRS := \
assets/product/res \
assets/quantum/res \
$(BASE_DIR)/contacts/common/res \
+ $(BASE_DIR)/dialer/about/res \
$(BASE_DIR)/dialer/app/res \
$(BASE_DIR)/dialer/app/voicemail/error/res \
$(BASE_DIR)/dialer/blocking/res \
@@ -83,6 +84,7 @@ RES_DIRS := \
$(BASE_DIR)/incallui/incall/impl/res \
$(BASE_DIR)/incallui/res \
$(BASE_DIR)/incallui/sessiondata/res \
+ $(BASE_DIR)/incallui/telecomeventui/res \
$(BASE_DIR)/incallui/video/impl/res \
$(BASE_DIR)/incallui/video/protocol/res \
$(BASE_DIR)/incallui/wifi/res \
@@ -93,6 +95,7 @@ RES_DIRS := \
# find . -type f -name "AndroidManifest.xml" | uniq | sort
DIALER_MANIFEST_FILES += \
$(BASE_DIR)/contacts/common/AndroidManifest.xml \
+ $(BASE_DIR)/dialer/about/AndroidManifest.xml \
$(BASE_DIR)/dialer/app/AndroidManifest.xml \
$(BASE_DIR)/dialer/app/manifests/activities/AndroidManifest.xml \
$(BASE_DIR)/dialer/app/voicemail/error/AndroidManifest.xml \
@@ -132,6 +135,7 @@ DIALER_MANIFEST_FILES += \
$(BASE_DIR)/incallui/hold/AndroidManifest.xml \
$(BASE_DIR)/incallui/incall/impl/AndroidManifest.xml \
$(BASE_DIR)/incallui/sessiondata/AndroidManifest.xml \
+ $(BASE_DIR)/incallui/telecomeventui/AndroidManifest.xml \
$(BASE_DIR)/incallui/video/impl/AndroidManifest.xml \
$(BASE_DIR)/incallui/video/protocol/AndroidManifest.xml \
$(BASE_DIR)/incallui/wifi/AndroidManifest.xml \
@@ -158,6 +162,7 @@ LOCAL_RESOURCE_DIR := \
LOCAL_AAPT_FLAGS := \
--auto-add-overlay \
--extra-packages com.android.contacts.common \
+ --extra-packages com.android.dialer.about \
--extra-packages com.android.dialer.app \
--extra-packages com.android.dialer.app.voicemail.error \
--extra-packages com.android.dialer.blocking \
@@ -179,6 +184,7 @@ LOCAL_AAPT_FLAGS := \
--extra-packages com.android.dialer.postcall \
--extra-packages com.android.dialer.shortcuts \
--extra-packages com.android.dialer.speeddial \
+ --extra-packages com.android.dialer.theme \
--extra-packages com.android.dialer.util \
--extra-packages com.android.dialer.voicemailstatus \
--extra-packages com.android.dialer.widget \
@@ -198,6 +204,7 @@ LOCAL_AAPT_FLAGS := \
--extra-packages com.android.incallui.incall.impl \
--extra-packages com.android.incallui.maps.impl \
--extra-packages com.android.incallui.sessiondata \
+ --extra-packages com.android.incallui.telecomeventui \
--extra-packages com.android.incallui.video \
--extra-packages com.android.incallui.video.impl \
--extra-packages com.android.incallui.wifi \
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 022cb174a..c04f8bec9 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -21,7 +21,7 @@
<uses-sdk
android:minSdkVersion="23"
- android:targetSdkVersion="25"/>
+ android:targetSdkVersion="26"/>
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_image_white_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_image_white_24.png
new file mode 100644
index 000000000..b414cf5b6
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_image_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_image_white_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_image_white_24.png
new file mode 100644
index 000000000..d474bd577
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_image_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_image_white_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_image_white_24.png
new file mode 100644
index 000000000..2642b9e09
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_image_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_image_white_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_image_white_24.png
new file mode 100644
index 000000000..f9f1defa6
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_image_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_image_white_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_image_white_24.png
new file mode 100644
index 000000000..2ffdb55f2
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_image_white_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml
new file mode 100644
index 000000000..4f1fd4920
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_enterprise_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M14,16.5h-4L10,15L3,15v4c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2v-4h-7v1.5zM20,6h-3.5L16.5,4.5L15,3L9,3L7.5,4.55L7.5,6L4,6c-1.1,0 -2,0.9 -2,2v4c0,1.1 0.9,2 2,2h6v-1.5h4L14,14h6c1.1,0 2,-0.9 2,-2L22,8c0,-1.1 -0.9,-2 -2,-2zM15,6L9,6L9,4.5h6L15,6z"/>
+</vector> \ No newline at end of file
diff --git a/assets/quantum/res/drawable/quantum_ic_forward_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_forward_vd_theme_24.xml
new file mode 100644
index 000000000..ce26499e7
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_forward_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M12,8V4l8,8 -8,8v-4H4V8z"/>
+</vector>
diff --git a/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml
new file mode 100644
index 000000000..c67509cbf
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_hd_vd_theme_24.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM11,15L9.5,15v-2h-2v2L6,15L6,9h1.5v2.5h2L9.5,9L11,9v6zM13,9h4c0.55,0 1,0.45 1,1v4c0,0.55 -0.45,1 -1,1h-4L13,9zM14.5,13.5h2v-3h-2v3z"/>
+</vector> \ No newline at end of file
diff --git a/assets/quantum/res/drawable/quantum_ic_network_wifi_vd_theme_24.xml b/assets/quantum/res/drawable/quantum_ic_network_wifi_vd_theme_24.xml
new file mode 100644
index 000000000..495d9ce57
--- /dev/null
+++ b/assets/quantum/res/drawable/quantum_ic_network_wifi_vd_theme_24.xml
@@ -0,0 +1,14 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?attr/colorControlNormal">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M12.01,21.49L23.64,7c-0.45,-0.34 -4.93,-4 -11.64,-4C5.28,3 0.81,6.66 0.36,7l11.63,14.49 0.01,0.01 0.01,-0.01z"
+ android:fillAlpha=".3"/>
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M3.53,10.95l8.46,10.54 0.01,0.01 0.01,-0.01 8.46,-10.54C20.04,10.62 16.81,8 12,8c-4.81,0 -8.04,2.62 -8.47,2.95z"/>
+</vector>
diff --git a/java/com/android/contacts/common/AndroidManifest.xml b/java/com/android/contacts/common/AndroidManifest.xml
index eae70cd30..e97221549 100644
--- a/java/com/android/contacts/common/AndroidManifest.xml
+++ b/java/com/android/contacts/common/AndroidManifest.xml
@@ -26,14 +26,6 @@
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
-
- <!-- Broadcast receiver that passively listens to location updates -->
- <receiver android:name="com.android.contacts.common.location.CountryDetector$LocationChangedReceiver"/>
-
- <!-- IntentService to update the user's current country -->
- <service
- android:exported="false"
- android:name="com.android.contacts.common.location.UpdateCountryService"/>
</application>
</manifest>
diff --git a/java/com/android/contacts/common/ContactPhotoManager.java b/java/com/android/contacts/common/ContactPhotoManager.java
index 652e93637..169348b25 100644
--- a/java/com/android/contacts/common/ContactPhotoManager.java
+++ b/java/com/android/contacts/common/ContactPhotoManager.java
@@ -191,7 +191,7 @@ public abstract class ContactPhotoManager implements ComponentCallbacks2 {
Context applicationContext = context.getApplicationContext();
sInstance = createContactPhotoManager(applicationContext);
applicationContext.registerComponentCallbacks(sInstance);
- if (PermissionsUtil.hasContactsPermissions(context)) {
+ if (PermissionsUtil.hasContactsReadPermissions(context)) {
sInstance.preloadPhotosInBackground();
}
}
diff --git a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
index 84002256a..7e4803ca5 100644
--- a/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
+++ b/java/com/android/contacts/common/compat/TelephonyManagerCompat.java
@@ -41,6 +41,9 @@ public class TelephonyManagerCompat {
public static final String EVENT_CALL_REMOTELY_UNHELD =
"android.telecom.event.CALL_REMOTELY_UNHELD";
+ public static final String EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC =
+ "android.telephony.event.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC";
+
public static final String TELEPHONY_MANAGER_CLASS = "android.telephony.TelephonyManager";
private static final String SECRET_CODE_ACTION = "android.provider.Telephony.SECRET_CODE";
diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
index 117ac5e4e..0e7937102 100644
--- a/java/com/android/contacts/common/dialog/CallSubjectDialog.java
+++ b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
@@ -330,10 +330,12 @@ public class CallSubjectDialog extends Activity {
mContactPhoto.setVisibility(View.GONE);
}
mNameView.setText(mNameOrNumber);
- if (!TextUtils.isEmpty(mNumberLabel) && !TextUtils.isEmpty(mDisplayNumber)) {
+ if (!TextUtils.isEmpty(mDisplayNumber)) {
mNumberView.setVisibility(View.VISIBLE);
mNumberView.setText(
- getString(R.string.call_subject_type_and_number, mNumberLabel, mDisplayNumber));
+ TextUtils.isEmpty(mNumberLabel)
+ ? mDisplayNumber
+ : getString(R.string.call_subject_type_and_number, mNumberLabel, mDisplayNumber));
} else {
mNumberView.setVisibility(View.GONE);
mNumberView.setText(null);
diff --git a/java/com/android/contacts/common/dialog/ClearFrequentsDialog.java b/java/com/android/contacts/common/dialog/ClearFrequentsDialog.java
index e96496cda..751490a22 100644
--- a/java/com/android/contacts/common/dialog/ClearFrequentsDialog.java
+++ b/java/com/android/contacts/common/dialog/ClearFrequentsDialog.java
@@ -48,7 +48,7 @@ public class ClearFrequentsDialog extends DialogFragment {
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- if (!PermissionsUtil.hasContactsPermissions(context)) {
+ if (!PermissionsUtil.hasContactsReadPermissions(context)) {
return;
}
diff --git a/java/com/android/contacts/common/list/ContactListItemView.java b/java/com/android/contacts/common/list/ContactListItemView.java
index 76842483a..7a3194720 100644
--- a/java/com/android/contacts/common/list/ContactListItemView.java
+++ b/java/com/android/contacts/common/list/ContactListItemView.java
@@ -29,6 +29,7 @@ import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.SearchSnippets;
+import android.support.annotation.IntDef;
import android.support.v4.content.ContextCompat;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.text.Spannable;
@@ -51,10 +52,13 @@ import com.android.contacts.common.ContactStatusUtil;
import com.android.contacts.common.R;
import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
import com.android.contacts.common.format.TextHighlighter;
+import com.android.contacts.common.list.PhoneNumberListAdapter.Listener;
import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.contacts.common.util.SearchUtil;
import com.android.dialer.compat.CompatUtils;
import com.android.dialer.util.ViewUtil;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@@ -74,6 +78,16 @@ import java.util.regex.Pattern;
* contact's data and a divider between contact view.
*/
public class ContactListItemView extends ViewGroup implements SelectionBoundsAdjuster {
+
+ /** IntDef for indices of ViewPager tabs. */
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({NONE, VIDEO, CALL_AND_SHARE})
+ public @interface CallToAction {}
+
+ public static final int NONE = 0;
+ public static final int VIDEO = 1;
+ public static final int CALL_AND_SHARE = 2;
+
private static final Pattern SPLIT_PATTERN =
Pattern.compile("([\\w-\\.]+)@((?:[\\w]+\\.)+)([a-zA-Z]{2,4})|[\\w]+");
static final char SNIPPET_START_MATCH = '[';
@@ -92,8 +106,8 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
private int mNameTextViewTextSize;
private int mHeaderWidth;
private Drawable mActivatedBackgroundDrawable;
- private int mVideoCallIconSize = 32;
- private int mVideoCallIconMargin = 16;
+ private int mCallToActionSize = 32;
+ private int mCallToActionMargin = 16;
// Set in onLayout. Represent left and right position of the View on the screen.
private int mLeftOffset;
private int mRightOffset;
@@ -106,12 +120,10 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
private ArrayList<HighlightSequence> mNumberHighlightSequence;
// Highlighting prefix for names.
private String mHighlightedPrefix;
- /** Used to notify listeners when a video call icon is clicked. */
- private PhoneNumberListAdapter.Listener mPhoneNumberListAdapterListener;
- /** Indicates whether to show the "video call" icon, used to initiate a video call. */
- private boolean mShowVideoCallIcon = false;
/** Indicates whether the view should leave room for the "video call" icon. */
- private boolean mSupportVideoCallIcon = false;
+ private boolean mSupportVideoCall;
+ /** Indicates whether the view should leave room for the "call and share" icon. */
+ private boolean mSupportCallAndShare;
private PhotoPosition mPhotoPosition = getDefaultPhotoPosition(false /* normal/non opposite */);
// Header layout data
@@ -127,7 +139,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
private TextView mSnippetView;
private TextView mStatusView;
private ImageView mPresenceIcon;
- private ImageView mVideoCallIcon;
+ private ImageView mCallToAction;
private ImageView mWorkProfileIcon;
private ColorStateList mSecondaryTextColor;
private int mDefaultPhotoViewSize = 0;
@@ -168,20 +180,24 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
private boolean mAdjustSelectionBoundsEnabled = true;
private Rect mBoundsWithoutHeader = new Rect();
private CharSequence mUnknownNameText;
- private int mPosition;
public ContactListItemView(Context context) {
super(context);
mTextHighlighter = new TextHighlighter(Typeface.BOLD);
- mNameHighlightSequence = new ArrayList<HighlightSequence>();
- mNumberHighlightSequence = new ArrayList<HighlightSequence>();
+ mNameHighlightSequence = new ArrayList<>();
+ mNumberHighlightSequence = new ArrayList<>();
}
- public ContactListItemView(Context context, AttributeSet attrs, boolean supportVideoCallIcon) {
+ public ContactListItemView(
+ Context context,
+ AttributeSet attrs,
+ boolean supportVideoCallIcon,
+ boolean supportCallAndShare) {
this(context, attrs);
- mSupportVideoCallIcon = supportVideoCallIcon;
+ mSupportVideoCall = supportVideoCallIcon;
+ mSupportCallAndShare = supportCallAndShare;
}
public ContactListItemView(Context context, AttributeSet attrs) {
@@ -197,7 +213,6 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
R.styleable.ContactListItemView_list_item_height, mPreferredHeight);
mActivatedBackgroundDrawable =
a.getDrawable(R.styleable.ContactListItemView_activated_background);
-
mGapBetweenImageAndText =
a.getDimensionPixelOffset(
R.styleable.ContactListItemView_list_item_gap_between_image_and_text,
@@ -235,13 +250,13 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
a.getDimension(
R.styleable.ContactListItemView_list_item_name_text_size,
(int) getResources().getDimension(R.dimen.contact_browser_list_item_text_size));
- mVideoCallIconSize =
+ mCallToActionSize =
a.getDimensionPixelOffset(
- R.styleable.ContactListItemView_list_item_video_call_icon_size, mVideoCallIconSize);
- mVideoCallIconMargin =
+ R.styleable.ContactListItemView_list_item_video_call_icon_size, mCallToActionSize);
+ mCallToActionMargin =
a.getDimensionPixelOffset(
R.styleable.ContactListItemView_list_item_video_call_icon_margin,
- mVideoCallIconMargin);
+ mCallToActionMargin);
setPaddingRelative(
a.getDimensionPixelOffset(R.styleable.ContactListItemView_list_item_padding_left, 0),
@@ -266,13 +281,13 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mActivatedBackgroundDrawable.setCallback(this);
}
- mNameHighlightSequence = new ArrayList<HighlightSequence>();
- mNumberHighlightSequence = new ArrayList<HighlightSequence>();
+ mNameHighlightSequence = new ArrayList<>();
+ mNumberHighlightSequence = new ArrayList<>();
setLayoutDirection(View.LAYOUT_DIRECTION_LOCALE);
}
- public static final PhotoPosition getDefaultPhotoPosition(boolean opposite) {
+ public static PhotoPosition getDefaultPhotoPosition(boolean opposite) {
final Locale locale = Locale.getDefault();
final int layoutDirection = TextUtils.getLayoutDirectionFromLocale(locale);
switch (layoutDirection) {
@@ -310,45 +325,43 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
}
/**
- * Sets whether the video calling icon is shown. For the video calling icon to be shown, {@link
- * #mSupportVideoCallIcon} must be {@code true}.
+ * Sets whether the call to action is shown. For the {@link CallToAction} to be shown, it must be
+ * supported as well.
*
- * @param showVideoCallIcon {@code true} if the video calling icon is shown, {@code false}
- * otherwise.
- * @param listener Listener to notify when the video calling icon is clicked.
- * @param position The position in the adapater of the video calling icon.
+ * @param action {@link CallToAction} you want to display (if it's supported).
+ * @param listener Listener to notify when the call to action is clicked.
+ * @param position The position in the adapter of the call to action.
*/
- public void setShowVideoCallIcon(
- boolean showVideoCallIcon, PhoneNumberListAdapter.Listener listener, int position) {
- mShowVideoCallIcon = showVideoCallIcon;
- mPhoneNumberListAdapterListener = listener;
- mPosition = position;
-
- if (mShowVideoCallIcon) {
- if (mVideoCallIcon == null) {
- mVideoCallIcon = new ImageView(getContext());
- addView(mVideoCallIcon);
- }
- mVideoCallIcon.setContentDescription(
- getContext().getString(R.string.description_search_video_call));
- mVideoCallIcon.setImageResource(R.drawable.ic_search_video_call);
- mVideoCallIcon.setScaleType(ScaleType.CENTER);
- mVideoCallIcon.setVisibility(View.VISIBLE);
- mVideoCallIcon.setOnClickListener(
- new OnClickListener() {
- @Override
- public void onClick(View v) {
- // Inform the adapter that the video calling icon was clicked.
- if (mPhoneNumberListAdapterListener != null) {
- mPhoneNumberListAdapterListener.onVideoCallIconClicked(mPosition);
- }
- }
- });
+ public void setCallToAction(@CallToAction int action, Listener listener, int position) {
+ int drawable;
+ int description;
+ OnClickListener onClickListener;
+ if (action == CALL_AND_SHARE && mSupportCallAndShare) {
+ drawable = R.drawable.ic_call_and_share;
+ description = R.string.description_search_video_call;
+ onClickListener = v -> listener.onCallAndShareIconClicked(position);
+ } else if (action == VIDEO && mSupportVideoCall) {
+ drawable = R.drawable.ic_search_video_call;
+ description = R.string.description_search_call_and_share;
+ onClickListener = v -> listener.onVideoCallIconClicked(position);
} else {
- if (mVideoCallIcon != null) {
- mVideoCallIcon.setVisibility(View.GONE);
+ if (mCallToAction != null) {
+ mCallToAction.setVisibility(View.GONE);
+ mCallToAction.setOnClickListener(null);
}
+ return;
}
+
+ if (mCallToAction == null) {
+ mCallToAction = new ImageView(getContext());
+ mCallToAction.setLayoutParams(new LayoutParams(mCallToActionSize, mCallToActionSize));
+ mCallToAction.setScaleType(ScaleType.CENTER);
+ addView(mCallToAction);
+ }
+ mCallToAction.setContentDescription(getContext().getString(description));
+ mCallToAction.setOnClickListener(onClickListener);
+ mCallToAction.setImageResource(drawable);
+ mCallToAction.setVisibility(View.VISIBLE);
}
/**
@@ -356,11 +369,23 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
* actually showing an icon. Support for the video calling icon ensures that the layout leaves
* space for the video icon, should it be shown.
*
- * @param supportVideoCallIcon {@code true} if the video call icon is supported, {@code false}
+ * @param supportVideoCall {@code true} if the video call icon is supported, {@code false}
+ * otherwise.
+ */
+ public void setSupportVideoCallIcon(boolean supportVideoCall) {
+ mSupportVideoCall = supportVideoCall;
+ }
+
+ /**
+ * Sets whether the view supports a call and share icon. This is independent of whether the view
+ * is actually showing an icon. Support for the icon ensures that the layout leaves space for it,
+ * should it be shown.
+ *
+ * @param supportCallAndShare {@code true} if the call and share icon is supported, {@code false}
* otherwise.
*/
- public void setSupportVideoCallIcon(boolean supportVideoCallIcon) {
- mSupportVideoCallIcon = supportVideoCallIcon;
+ public void setSupportCallAndShareIcon(boolean supportCallAndShare) {
+ mSupportCallAndShare = supportCallAndShare;
}
@Override
@@ -398,8 +423,8 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
effectiveWidth -= mHeaderWidth + mGapBetweenImageAndText;
}
- if (mSupportVideoCallIcon) {
- effectiveWidth -= (mVideoCallIconSize + mVideoCallIconMargin);
+ if (mSupportVideoCall || mSupportCallAndShare) {
+ effectiveWidth -= (mCallToActionSize + mCallToActionMargin);
}
// Go over all visible text views and measure actual width of each of them.
@@ -471,10 +496,10 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mStatusTextViewHeight = mPresenceIcon.getMeasuredHeight();
}
- if (mSupportVideoCallIcon && isVisible(mVideoCallIcon)) {
- mVideoCallIcon.measure(
- MeasureSpec.makeMeasureSpec(mVideoCallIconSize, MeasureSpec.EXACTLY),
- MeasureSpec.makeMeasureSpec(mVideoCallIconSize, MeasureSpec.EXACTLY));
+ if ((mSupportVideoCall || mSupportCallAndShare) && isVisible(mCallToAction)) {
+ mCallToAction.measure(
+ MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY),
+ MeasureSpec.makeMeasureSpec(mCallToActionSize, MeasureSpec.EXACTLY));
}
if (isVisible(mWorkProfileIcon)) {
@@ -529,7 +554,6 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
// Determine the vertical bounds by laying out the header first.
int topBound = 0;
- int bottomBound = height;
int leftBound = getPaddingLeft();
int rightBound = width - getPaddingRight();
@@ -545,7 +569,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
}
if (mHeaderTextView != null) {
int headerHeight = mHeaderTextView.getMeasuredHeight();
- int headerTopBound = (bottomBound + topBound - headerHeight) / 2 + mTextOffsetTop;
+ int headerTopBound = (height + topBound - headerHeight) / 2 + mTextOffsetTop;
mHeaderTextView.layout(
isLayoutRtl ? rightBound - mHeaderWidth : leftBound,
@@ -560,7 +584,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
}
}
- mBoundsWithoutHeader.set(left + leftBound, topBound, left + rightBound, bottomBound);
+ mBoundsWithoutHeader.set(left + leftBound, topBound, left + rightBound, height);
mLeftOffset = left + leftBound;
mRightOffset = left + rightBound;
if (mIsSectionHeaderEnabled) {
@@ -580,7 +604,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
// Photo is the left most view. All the other Views should on the right of the photo.
if (photoView != null) {
// Center the photo vertically
- final int photoTop = topBound + (bottomBound - topBound - mPhotoViewHeight) / 2;
+ final int photoTop = topBound + (height - topBound - mPhotoViewHeight) / 2;
photoView.layout(
leftBound, photoTop, leftBound + mPhotoViewWidth, photoTop + mPhotoViewHeight);
leftBound += mPhotoViewWidth + mGapBetweenImageAndText;
@@ -592,7 +616,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
// Photo is the right most view. Right bound should be adjusted that way.
if (photoView != null) {
// Center the photo vertically
- final int photoTop = topBound + (bottomBound - topBound - mPhotoViewHeight) / 2;
+ final int photoTop = topBound + (height - topBound - mPhotoViewHeight) / 2;
photoView.layout(
rightBound - mPhotoViewWidth, photoTop, rightBound, photoTop + mPhotoViewHeight);
rightBound -= (mPhotoViewWidth + mGapBetweenImageAndText);
@@ -605,33 +629,33 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
leftBound += mTextIndent;
}
- if (mSupportVideoCallIcon) {
- // Place the video call button at the end of the list (e.g. take into account RTL mode).
- if (isVisible(mVideoCallIcon)) {
- // Center the video icon vertically
- final int videoIconTop = topBound + (bottomBound - topBound - mVideoCallIconSize) / 2;
+ if (mSupportVideoCall || mSupportCallAndShare) {
+ // Place the call to action at the end of the list (e.g. take into account RTL mode).
+ if (isVisible(mCallToAction)) {
+ // Center the icon vertically
+ final int callToActionTop = topBound + (height - topBound - mCallToActionSize) / 2;
if (!isLayoutRtl) {
- // When photo is on left, video icon is placed on the right edge.
- mVideoCallIcon.layout(
- rightBound - mVideoCallIconSize,
- videoIconTop,
+ // When photo is on left, icon is placed on the right edge.
+ mCallToAction.layout(
+ rightBound - mCallToActionSize,
+ callToActionTop,
rightBound,
- videoIconTop + mVideoCallIconSize);
+ callToActionTop + mCallToActionSize);
} else {
- // When photo is on right, video icon is placed on the left edge.
- mVideoCallIcon.layout(
+ // When photo is on right, icon is placed on the left edge.
+ mCallToAction.layout(
leftBound,
- videoIconTop,
- leftBound + mVideoCallIconSize,
- videoIconTop + mVideoCallIconSize);
+ callToActionTop,
+ leftBound + mCallToActionSize,
+ callToActionTop + mCallToActionSize);
}
}
if (mPhotoPosition == PhotoPosition.LEFT) {
- rightBound -= (mVideoCallIconSize + mVideoCallIconMargin);
+ rightBound -= (mCallToActionSize + mCallToActionMargin);
} else {
- leftBound += mVideoCallIconSize + mVideoCallIconMargin;
+ leftBound += mCallToActionSize + mCallToActionMargin;
}
}
@@ -642,7 +666,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
+ mLabelAndDataViewMaxHeight
+ mSnippetTextViewHeight
+ mStatusTextViewHeight;
- int textTopBound = (bottomBound + topBound - totalTextHeight) / 2 + mTextOffsetTop;
+ int textTopBound = (height + topBound - totalTextHeight) / 2 + mTextOffsetTop;
// Work Profile icon align top
int workProfileIconWidth = 0;
@@ -854,7 +878,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
if (!TextUtils.isEmpty(title)) {
if (mHeaderTextView == null) {
mHeaderTextView = new TextView(getContext());
- mHeaderTextView.setTextAppearance(getContext(), R.style.SectionHeaderStyle);
+ mHeaderTextView.setTextAppearance(R.style.SectionHeaderStyle);
mHeaderTextView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
addView(mHeaderTextView);
}
@@ -1014,7 +1038,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mLabelView.setSingleLine(true);
mLabelView.setEllipsize(getTextEllipsis());
- mLabelView.setTextAppearance(getContext(), R.style.TextAppearanceSmall);
+ mLabelView.setTextAppearance(R.style.TextAppearanceSmall);
if (mPhotoPosition == PhotoPosition.LEFT) {
mLabelView.setAllCaps(true);
} else {
@@ -1081,7 +1105,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mDataView = new TextView(getContext());
mDataView.setSingleLine(true);
mDataView.setEllipsize(getTextEllipsis());
- mDataView.setTextAppearance(getContext(), R.style.TextAppearanceSmall);
+ mDataView.setTextAppearance(R.style.TextAppearanceSmall);
mDataView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
mDataView.setActivated(isActivated());
mDataView.setId(R.id.cliv_data_view);
@@ -1117,7 +1141,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mSnippetView = new TextView(getContext());
mSnippetView.setSingleLine(true);
mSnippetView.setEllipsize(getTextEllipsis());
- mSnippetView.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);
+ mSnippetView.setTextAppearance(android.R.style.TextAppearance_Small);
mSnippetView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
mSnippetView.setActivated(isActivated());
addView(mSnippetView);
@@ -1131,7 +1155,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
mStatusView = new TextView(getContext());
mStatusView.setSingleLine(true);
mStatusView.setEllipsize(getTextEllipsis());
- mStatusView.setTextAppearance(getContext(), android.R.style.TextAppearance_Small);
+ mStatusView.setTextAppearance(android.R.style.TextAppearance_Small);
mStatusView.setTextColor(mSecondaryTextColor);
mStatusView.setActivated(isActivated());
mStatusView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
@@ -1483,7 +1507,7 @@ public class ContactListItemView extends ViewGroup implements SelectionBoundsAdj
}
}
- private final boolean pointIsInView(float localX, float localY) {
+ private boolean pointIsInView(float localX, float localY) {
return localX >= mLeftOffset
&& localX < mRightOffset
&& localY >= 0
diff --git a/java/com/android/contacts/common/list/DirectoryListLoader.java b/java/com/android/contacts/common/list/DirectoryListLoader.java
index 48b098c07..be62cc7a8 100644
--- a/java/com/android/contacts/common/list/DirectoryListLoader.java
+++ b/java/com/android/contacts/common/list/DirectoryListLoader.java
@@ -25,9 +25,10 @@ import android.net.Uri;
import android.os.Handler;
import android.provider.ContactsContract.Directory;
import android.text.TextUtils;
-import android.util.Log;
import com.android.contacts.common.R;
import com.android.contacts.common.compat.DirectoryCompat;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.PermissionsUtil;
/** A specialized loader for the list of directories, see {@link Directory}. */
public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
@@ -38,7 +39,6 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
public static final int SEARCH_MODE_DATA_SHORTCUT = 3;
// This is a virtual column created for a MatrixCursor.
public static final String DIRECTORY_TYPE = "directoryType";
- private static final String TAG = "ContactEntryListAdapter";
private static final String[] RESULT_PROJECTION = {
Directory._ID, DIRECTORY_TYPE, Directory.DISPLAY_NAME, Directory.PHOTO_SUPPORT,
};
@@ -71,7 +71,13 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
@Override
protected void onStartLoading() {
- getContext().getContentResolver().registerContentObserver(DirectoryQuery.URI, false, mObserver);
+ if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+ getContext()
+ .getContentResolver()
+ .registerContentObserver(DirectoryQuery.URI, false, mObserver);
+ } else {
+ LogUtil.w("DirectoryListLoader.onStartLoading", "contacts permission not available.");
+ }
forceLoad();
}
@@ -141,7 +147,9 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
try {
directoryType = pm.getResourcesForApplication(packageName).getString(typeResourceId);
} catch (Exception e) {
- Log.e(TAG, "Cannot obtain directory type from package: " + packageName);
+ LogUtil.e(
+ "ContactEntryListAdapter.loadInBackground",
+ "cannot obtain directory type from package: " + packageName);
}
}
String displayName = cursor.getString(DirectoryQuery.DISPLAY_NAME);
@@ -149,7 +157,8 @@ public class DirectoryListLoader extends AsyncTaskLoader<Cursor> {
result.addRow(new Object[] {directoryId, directoryType, displayName, photoSupport});
}
} catch (RuntimeException e) {
- Log.w(TAG, "Runtime Exception when querying directory");
+ LogUtil.w(
+ "ContactEntryListAdapter.loadInBackground", "runtime exception when querying directory");
} finally {
if (cursor != null) {
cursor.close();
diff --git a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
index c7b24229f..9a490d78a 100644
--- a/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
+++ b/java/com/android/contacts/common/list/PhoneNumberListAdapter.java
@@ -28,20 +28,26 @@ import android.provider.ContactsContract.CommonDataKinds.SipAddress;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.Directory;
import android.text.TextUtils;
-import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
+import com.android.contacts.common.ContactPhotoManager;
import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest;
import com.android.contacts.common.ContactsUtils;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.R;
import com.android.contacts.common.compat.CallableCompat;
import com.android.contacts.common.compat.DirectoryCompat;
import com.android.contacts.common.compat.PhoneCompat;
import com.android.contacts.common.extensions.PhoneDirectoryExtenderAccessor;
+import com.android.contacts.common.list.ContactListItemView.CallToAction;
import com.android.contacts.common.preference.ContactsPreferences;
import com.android.contacts.common.util.Constants;
+import com.android.dialer.callcomposer.CallComposerContact;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
+import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.enrichedcall.EnrichedCallManager;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.util.CallUtil;
import java.util.ArrayList;
import java.util.Arrays;
@@ -62,6 +68,7 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
// A list of extended directories to add to the directories from the database
private final List<DirectoryPartition> mExtendedDirectories;
private final CharSequence mUnknownNameText;
+ private final boolean mCallAndShareEnabled;
// Extended directories will have ID's that are higher than any of the id's from the database,
// so that we can identify them and set them up properly. If no extended directories
// exist, this will be Long.MAX_VALUE
@@ -83,6 +90,9 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
int videoCapabilities = CallUtil.getVideoCallingAvailability(context);
mIsVideoEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_ENABLED) != 0;
mIsPresenceEnabled = (videoCapabilities & CallUtil.VIDEO_CALLING_PRESENCE) != 0;
+
+ // TODO
+ mCallAndShareEnabled = true;
}
@Override
@@ -207,7 +217,7 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
case ContactListFilter.FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY:
break; // This adapter is always "phone only", so no selection needed either.
default:
- Log.w(
+ LogUtil.w(
TAG,
"Unsupported filter type came "
+ "(type: "
@@ -239,6 +249,48 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
return item != null ? item.getString(PhoneQuery.LOOKUP_KEY) : null;
}
+ public CallComposerContact getCallComposerContact(int position) {
+ Cursor cursor = (Cursor) getItem(position);
+ if (cursor == null) {
+ LogUtil.e("PhoneNumberListAdapter.getCallComposerContact", "cursor was null.");
+ return null;
+ }
+
+ String displayName = cursor.getString(PhoneQuery.DISPLAY_NAME);
+ String number = cursor.getString(PhoneQuery.PHONE_NUMBER);
+ String photoUri = cursor.getString(PhoneQuery.PHOTO_URI);
+ Uri contactUri =
+ Contacts.getLookupUri(
+ cursor.getLong(PhoneQuery.CONTACT_ID), cursor.getString(PhoneQuery.LOOKUP_KEY));
+
+ CallComposerContact.Builder contact = CallComposerContact.newBuilder();
+ contact
+ .setNumber(number)
+ .setPhotoId(cursor.getLong(PhoneQuery.PHOTO_ID))
+ .setContactType(ContactPhotoManager.TYPE_DEFAULT)
+ .setNameOrNumber(displayName)
+ .setNumberLabel(
+ Phone.getTypeLabel(
+ mContext.getResources(),
+ cursor.getInt(PhoneQuery.PHONE_TYPE),
+ cursor.getString(PhoneQuery.PHONE_LABEL))
+ .toString());
+
+ if (photoUri != null) {
+ contact.setPhotoUri(photoUri);
+ }
+
+ if (contactUri != null) {
+ contact.setContactUri(contactUri.toString());
+ }
+
+ if (!TextUtils.isEmpty(displayName)) {
+ contact.setDisplayNumber(number);
+ }
+
+ return contact.build();
+ }
+
@Override
protected ContactListItemView newView(
Context context, int partition, Cursor cursor, int position, ViewGroup parent) {
@@ -323,12 +375,13 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
final String customLabel = cursor.getString(PhoneQuery.PHONE_LABEL);
// TODO cache
- label = Phone.getTypeLabel(getContext().getResources(), type, customLabel);
+ label = Phone.getTypeLabel(mContext.getResources(), type, customLabel);
}
view.setLabel(label);
final String text;
+ String number = cursor.getString(PhoneQuery.PHONE_NUMBER);
if (displayNumber) {
- text = cursor.getString(PhoneQuery.PHONE_NUMBER);
+ text = number;
} else {
// Display phone label. If that's null, display geocoded location for the number
final String phoneLabel = cursor.getString(PhoneQuery.PHONE_LABEL);
@@ -341,14 +394,32 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
}
view.setPhoneNumber(text);
+ @CallToAction int action = ContactListItemView.NONE;
+
if (CompatUtils.isVideoCompatible()) {
// Determine if carrier presence indicates the number supports video calling.
int carrierPresence = cursor.getInt(PhoneQuery.CARRIER_PRESENCE);
boolean isPresent = (carrierPresence & Phone.CARRIER_PRESENCE_VT_CAPABLE) != 0;
boolean isVideoIconShown = mIsVideoEnabled && (!mIsPresenceEnabled || isPresent);
- view.setShowVideoCallIcon(isVideoIconShown, mListener, position);
+ if (isVideoIconShown) {
+ action = ContactListItemView.VIDEO;
+ }
+ }
+
+ if (isCallAndShareEnabled() && action == ContactListItemView.NONE && number != null) {
+ EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
+ EnrichedCallCapabilities capabilities = manager.getCapabilities(number);
+ if (capabilities != null && capabilities.supportsCallComposer()) {
+ action = ContactListItemView.CALL_AND_SHARE;
+ } else if (capabilities == null
+ && getQueryString() != null
+ && getQueryString().length() >= 3) {
+ manager.requestCapabilities(number);
+ }
}
+
+ view.setCallToAction(action, mListener, position);
}
protected void bindSectionHeaderAndDivider(final ContactListItemView view, int position) {
@@ -499,9 +570,15 @@ public class PhoneNumberListAdapter extends ContactEntryListAdapter {
mListener = listener;
}
+ public boolean isCallAndShareEnabled() {
+ return mCallAndShareEnabled;
+ }
+
public interface Listener {
void onVideoCallIconClicked(int position);
+
+ void onCallAndShareIconClicked(int position);
}
public static class PhoneQuery {
diff --git a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
index 99c41f92d..8f25f82a5 100644
--- a/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
+++ b/java/com/android/contacts/common/list/PhoneNumberPickerFragment.java
@@ -15,6 +15,8 @@
*/
package com.android.contacts.common.list;
+import android.content.ComponentName;
+import android.content.Intent;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
@@ -28,19 +30,23 @@ import android.view.View;
import android.view.ViewGroup;
import com.android.contacts.common.R;
import com.android.contacts.common.util.AccountFilterUtil;
+import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallInitiationType.Type;
import com.android.dialer.callintent.CallSpecificAppData;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.enrichedcall.EnrichedCallManager;
import com.android.dialer.logging.Logger;
+import com.android.dialer.protos.ProtoParsers;
import java.util.Set;
import org.json.JSONException;
import org.json.JSONObject;
/** Fragment containing a phone number list for picking. */
public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactEntryListAdapter>
- implements PhoneNumberListAdapter.Listener {
+ implements PhoneNumberListAdapter.Listener, EnrichedCallManager.CapabilitiesListener {
private static final String KEY_FILTER = "filter";
private OnPhoneNumberPickerActionListener mListener;
@@ -58,8 +64,7 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
private ContactListItemView.PhotoPosition mPhotoPosition =
ContactListItemView.getDefaultPhotoPosition(false /* normal/non opposite */);
- private final Set<OnLoadFinishedListener> mLoadFinishedListeners =
- new ArraySet<OnLoadFinishedListener>();
+ private final Set<OnLoadFinishedListener> mLoadFinishedListeners = new ArraySet<>();
private CursorReranker mCursorReranker;
@@ -83,6 +88,18 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
callNumber(position, true /* isVideoCall */);
}
+ @Override
+ public void onCallAndShareIconClicked(int position) {
+ // Required because of cyclic dependencies of everything depending on contacts/common.
+ String componentName = "com.android.dialer.callcomposer.CallComposerActivity";
+ Intent intent = new Intent();
+ intent.setComponent(new ComponentName(getContext(), componentName));
+ CallComposerContact contact =
+ ((PhoneNumberListAdapter) getAdapter()).getCallComposerContact(position);
+ ProtoParsers.put(intent, "CALL_COMPOSER_CONTACT", contact);
+ startActivity(intent);
+ }
+
public void setDirectorySearchEnabled(boolean flag) {
setDirectorySearchMode(
flag ? DirectoryListLoader.SEARCH_MODE_DEFAULT : DirectoryListLoader.SEARCH_MODE_NONE);
@@ -110,6 +127,22 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
setVisibleScrollbarEnabled(getVisibleScrollbarEnabled());
}
+ @Override
+ public void onPause() {
+ super.onPause();
+ EnrichedCallComponent.get(getContext())
+ .getEnrichedCallManager()
+ .unregisterCapabilitiesListener(this);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ EnrichedCallComponent.get(getContext())
+ .getEnrichedCallManager()
+ .registerCapabilitiesListener(this);
+ }
+
protected boolean getVisibleScrollbarEnabled() {
return true;
}
@@ -284,6 +317,13 @@ public class PhoneNumberPickerFragment extends ContactEntryListFragment<ContactE
}
}
+ @Override
+ public void onCapabilitiesUpdated() {
+ if (getAdapter() != null) {
+ getAdapter().notifyDataSetChanged();
+ }
+ }
+
@MainThread
@Override
public void onDetach() {
diff --git a/java/com/android/contacts/common/model/ContactLoader.java b/java/com/android/contacts/common/model/ContactLoader.java
index eb16bffcd..55464b161 100644
--- a/java/com/android/contacts/common/model/ContactLoader.java
+++ b/java/com/android/contacts/common/model/ContactLoader.java
@@ -36,8 +36,6 @@ import android.provider.ContactsContract.Directory;
import android.provider.ContactsContract.Groups;
import android.provider.ContactsContract.RawContacts;
import android.text.TextUtils;
-import android.util.Log;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.GroupMetaData;
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.common.model.account.AccountTypeWithDataSet;
@@ -47,7 +45,9 @@ import com.android.contacts.common.model.dataitem.PhotoDataItem;
import com.android.contacts.common.util.Constants;
import com.android.contacts.common.util.ContactLoaderUtils;
import com.android.contacts.common.util.UriUtils;
-import com.android.dialer.compat.CompatUtils;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.location.GeoUtil;
+import com.android.dialer.util.PermissionsUtil;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -218,7 +218,7 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
@Override
public Contact loadInBackground() {
- Log.e(TAG, "loadInBackground=" + mLookupUri);
+ LogUtil.e(TAG, "loadInBackground=" + mLookupUri);
try {
final ContentResolver resolver = getContext().getContentResolver();
final Uri uriCurrentFormat = ContactLoaderUtils.ensureIsContactUri(resolver, mLookupUri);
@@ -264,7 +264,7 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
}
return result;
} catch (Exception e) {
- Log.e(TAG, "Error loading the contact: " + mLookupUri, e);
+ LogUtil.e(TAG, "Error loading the contact: " + mLookupUri, e);
return Contact.forError(mRequestedUri, e);
}
}
@@ -274,7 +274,7 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
Cursor cursor =
resolver.query(entityUri, ContactQuery.COLUMNS, null, null, Contacts.Entity.RAW_CONTACT_ID);
if (cursor == null) {
- Log.e(TAG, "No cursor returned in loadContactEntity");
+ LogUtil.e(TAG, "No cursor returned in loadContactEntity");
return Contact.forNotFound(mRequestedUri);
}
@@ -521,10 +521,7 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
cursorColumnToContentValues(cursor, cv, ContactQuery.CHAT_CAPABILITY);
cursorColumnToContentValues(cursor, cv, ContactQuery.TIMES_USED);
cursorColumnToContentValues(cursor, cv, ContactQuery.LAST_TIME_USED);
- if (CompatUtils.isMarshmallowCompatible()) {
- cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE);
- }
-
+ cursorColumnToContentValues(cursor, cv, ContactQuery.CARRIER_PRESENCE);
return cv;
}
@@ -577,7 +574,7 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
Resources resources = pm.getResourcesForApplication(packageName);
directoryType = resources.getString(typeResourceId);
} catch (NameNotFoundException e) {
- Log.w(
+ LogUtil.w(
TAG, "Contact directory resource not found: " + packageName + "." + typeResourceId);
}
}
@@ -692,11 +689,15 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
mLookupUri = result.getLookupUri();
if (!result.isDirectoryEntry()) {
- Log.i(TAG, "Registering content observer for " + mLookupUri);
if (mObserver == null) {
mObserver = new ForceLoadContentObserver();
}
- getContext().getContentResolver().registerContentObserver(mLookupUri, true, mObserver);
+
+ if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+ getContext().getContentResolver().registerContentObserver(mLookupUri, true, mObserver);
+ } else {
+ LogUtil.w("ContactLoader.deliverResult", "contacts permission not available");
+ }
}
if (mPostViewNotification) {
@@ -732,7 +733,7 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
try {
context.startService(intent);
} catch (Exception e) {
- Log.e(TAG, "Error sending message to source-app", e);
+ LogUtil.e(TAG, "Error sending message to source-app", e);
}
}
}
@@ -919,9 +920,7 @@ public class ContactLoader extends AsyncTaskLoader<Contact> {
static {
List<String> projectionList = Lists.newArrayList(COLUMNS_INTERNAL);
- if (CompatUtils.isMarshmallowCompatible()) {
- projectionList.add(Data.CARRIER_PRESENCE);
- }
+ projectionList.add(Data.CARRIER_PRESENCE);
COLUMNS = projectionList.toArray(new String[projectionList.size()]);
}
}
diff --git a/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml b/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
new file mode 100644
index 000000000..be0cdd358
--- /dev/null
+++ b/java/com/android/contacts/common/res/drawable/ic_call_and_share.xml
@@ -0,0 +1,22 @@
+<?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:autoMirrored="true"
+ android:src="@drawable/ic_phone_attach"
+ android:tint="@color/search_video_call_icon_tint"
+ android:background="?attr/selectableItemBackgroundBorderless"/> \ No newline at end of file
diff --git a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
index 68c46fed6..0fe0367e1 100644
--- a/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
+++ b/java/com/android/contacts/common/res/drawable/ic_search_video_call.xml
@@ -18,4 +18,5 @@
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:autoMirrored="true"
android:src="@drawable/quantum_ic_videocam_white_24"
- android:tint="@color/search_video_call_icon_tint"/>
+ android:tint="@color/search_video_call_icon_tint"
+ android:background="?attr/selectableItemBackgroundBorderless"/>
diff --git a/java/com/android/contacts/common/res/values-af/strings.xml b/java/com/android/contacts/common/res/values-af/strings.xml
index 1f1b33c62..9b8bf7886 100644
--- a/java/com/android/contacts/common/res/values-af/strings.xml
+++ b/java/com/android/contacts/common/res/values-af/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Diensbepalings"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Oopbronlisensies"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Kon nie die URL oopmaak nie."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Maak video-oproep"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-am/strings.xml b/java/com/android/contacts/common/res/values-am/strings.xml
index 81b87fc61..1e56dd26b 100644
--- a/java/com/android/contacts/common/res/values-am/strings.xml
+++ b/java/com/android/contacts/common/res/values-am/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"የአገልግሎት ውል"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"የክፍት ምንጭ ፈቃዶች"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"ዩ አር ኤሉን ለመክፈት አልተሳካም።"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"የቪዲዮ ጥሪ አስቀምጥ"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ar/strings.xml b/java/com/android/contacts/common/res/values-ar/strings.xml
index b878582a1..366613d85 100644
--- a/java/com/android/contacts/common/res/values-ar/strings.xml
+++ b/java/com/android/contacts/common/res/values-ar/strings.xml
@@ -269,5 +269,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"بنود الخدمة"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"تراخيص البرامج مفتوحة المصدر"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"‏فشل فتح عنوان URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"إجراء مكالمة فيديو"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-az/strings.xml b/java/com/android/contacts/common/res/values-az/strings.xml
index da6f0a940..04647a580 100644
--- a/java/com/android/contacts/common/res/values-az/strings.xml
+++ b/java/com/android/contacts/common/res/values-az/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Xidmət şərtləri"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Açıq mənbə lisenziyaları"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Linki açmaq alınmadı."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Video zəng edin"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
index 0d8cdee95..4ef8bebc3 100644
--- a/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/contacts/common/res/values-b+sr+Latn/strings.xml
@@ -263,5 +263,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Uslovi korišćenja usluge"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licence otvorenog koda"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Otvaranje URL-a nije uspelo."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Uputi video poziv"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-be/strings.xml b/java/com/android/contacts/common/res/values-be/strings.xml
index d4f8e4cf2..95be65221 100644
--- a/java/com/android/contacts/common/res/values-be/strings.xml
+++ b/java/com/android/contacts/common/res/values-be/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Умовы абслугоўвання"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Ліцэнзіі ПЗ з адкрытым зыходным кодам"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Не ўдалося адкрыць URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Зрабіць відэавыклік"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-bg/strings.xml b/java/com/android/contacts/common/res/values-bg/strings.xml
index 23345d8ea..68a9d1215 100644
--- a/java/com/android/contacts/common/res/values-bg/strings.xml
+++ b/java/com/android/contacts/common/res/values-bg/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Общи условия"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Лицензи за отворен код"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Отварянето на URL адреса не бе успешно."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Извършване на видеообаждане"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-bn/strings.xml b/java/com/android/contacts/common/res/values-bn/strings.xml
index d7df63aa1..0c10cc828 100644
--- a/java/com/android/contacts/common/res/values-bn/strings.xml
+++ b/java/com/android/contacts/common/res/values-bn/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"পরিষেবার শর্তাবলী"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"মুক্ত উৎস লাইসেন্সগুলি"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url খুলতে ব্যর্থ হয়েছে৷"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ভিডিও কল করুন"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-bs/strings.xml b/java/com/android/contacts/common/res/values-bs/strings.xml
index d8916d7d5..b00806927 100644
--- a/java/com/android/contacts/common/res/values-bs/strings.xml
+++ b/java/com/android/contacts/common/res/values-bs/strings.xml
@@ -263,5 +263,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Uslovi pružanja usluge"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licence otvorenog koda"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Otvaranje URL-a nije uspjelo."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Uputi videopoziv"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ca/strings.xml b/java/com/android/contacts/common/res/values-ca/strings.xml
index c08c13e7a..0e4b2c5ee 100644
--- a/java/com/android/contacts/common/res/values-ca/strings.xml
+++ b/java/com/android/contacts/common/res/values-ca/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Condicions del servei"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Llicències de programari lliure"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"No s\'ha pogut obrir l\'URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Fa una videotrucada"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-cs/strings.xml b/java/com/android/contacts/common/res/values-cs/strings.xml
index 743a12ce9..0e9646fe2 100644
--- a/java/com/android/contacts/common/res/values-cs/strings.xml
+++ b/java/com/android/contacts/common/res/values-cs/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Smluvní podmínky"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licence open source"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Adresu URL se nepodařilo otevřít."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Zahájit videohovor"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-da/strings.xml b/java/com/android/contacts/common/res/values-da/strings.xml
index 8bfa56d93..534225ece 100644
--- a/java/com/android/contacts/common/res/values-da/strings.xml
+++ b/java/com/android/contacts/common/res/values-da/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Servicevilkår"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Open source-licenser"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Webadressen kunne ikke åbnes."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Foretag videoopkald"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-de/strings.xml b/java/com/android/contacts/common/res/values-de/strings.xml
index 146fa966e..ffc5de0e9 100644
--- a/java/com/android/contacts/common/res/values-de/strings.xml
+++ b/java/com/android/contacts/common/res/values-de/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Nutzungsbedingungen"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Open-Source-Lizenzen"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Die URL konnte nicht geöffnet werden."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Videoanruf starten"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-el/strings.xml b/java/com/android/contacts/common/res/values-el/strings.xml
index 510fcb046..5b1c7da2b 100644
--- a/java/com/android/contacts/common/res/values-el/strings.xml
+++ b/java/com/android/contacts/common/res/values-el/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Όροι Παροχής Υπηρεσιών"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Άδειες λογισμικού ανοικτού κώδικα"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Αποτυχία ανοίγματος url."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Πραγματοποίηση βιντεοκλήσης"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-en-rAU/strings.xml b/java/com/android/contacts/common/res/values-en-rAU/strings.xml
index 79a09fff0..1040b1d4e 100644
--- a/java/com/android/contacts/common/res/values-en-rAU/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rAU/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Terms of Service"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Open-source licences"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Failed to open the URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Place video call"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-en-rGB/strings.xml b/java/com/android/contacts/common/res/values-en-rGB/strings.xml
index 79a09fff0..1040b1d4e 100644
--- a/java/com/android/contacts/common/res/values-en-rGB/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rGB/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Terms of Service"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Open-source licences"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Failed to open the URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Place video call"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-en-rIN/strings.xml b/java/com/android/contacts/common/res/values-en-rIN/strings.xml
index 79a09fff0..1040b1d4e 100644
--- a/java/com/android/contacts/common/res/values-en-rIN/strings.xml
+++ b/java/com/android/contacts/common/res/values-en-rIN/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Terms of Service"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Open-source licences"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Failed to open the URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Place video call"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-es-rUS/strings.xml b/java/com/android/contacts/common/res/values-es-rUS/strings.xml
index f44426beb..59ac2ce8b 100644
--- a/java/com/android/contacts/common/res/values-es-rUS/strings.xml
+++ b/java/com/android/contacts/common/res/values-es-rUS/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Condiciones del servicio"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licencias de código abierto"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"No se pudo abrir la url."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Hacer una videollamada"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-es/strings.xml b/java/com/android/contacts/common/res/values-es/strings.xml
index 39ab71487..3307e6a78 100644
--- a/java/com/android/contacts/common/res/values-es/strings.xml
+++ b/java/com/android/contacts/common/res/values-es/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Condiciones de Servicio"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licencias de código abierto"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"No se ha podido abrir la URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Hacer videollamada"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-et/strings.xml b/java/com/android/contacts/common/res/values-et/strings.xml
index 5e9d5c729..82d44b254 100644
--- a/java/com/android/contacts/common/res/values-et/strings.xml
+++ b/java/com/android/contacts/common/res/values-et/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Teenusetingimused"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Avatud lähtekoodi litsentsid"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"URL-i avamine ebaõnnestus."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Videokõne tegemine"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-eu/strings.xml b/java/com/android/contacts/common/res/values-eu/strings.xml
index 84c933094..1a101c92e 100644
--- a/java/com/android/contacts/common/res/values-eu/strings.xml
+++ b/java/com/android/contacts/common/res/values-eu/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Zerbitzu-baldintzak"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Kode irekiko lizentziak"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Ezin izan da ireki URLa."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Egin bideo-deia"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-fa/strings.xml b/java/com/android/contacts/common/res/values-fa/strings.xml
index e583a765d..dde50c136 100644
--- a/java/com/android/contacts/common/res/values-fa/strings.xml
+++ b/java/com/android/contacts/common/res/values-fa/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"شرایط خدمات"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"مجوزهای منبع آزاد"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"نشانی وب باز نشد."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"برقراری تماس ویدئویی"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-fi/strings.xml b/java/com/android/contacts/common/res/values-fi/strings.xml
index 01468c354..370827a15 100644
--- a/java/com/android/contacts/common/res/values-fi/strings.xml
+++ b/java/com/android/contacts/common/res/values-fi/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Käyttöehdot"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Avoimen lähdekoodin käyttöluvat"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"URL-osoitteen avaus epäonnistui."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Soita videopuhelu"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
index cdeb4f097..d392e0c9b 100644
--- a/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
+++ b/java/com/android/contacts/common/res/values-fr-rCA/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Modalités"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licences de logiciels libres"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Échec de l\'ouverture de l\'URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Faire un appel vidéo"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-fr/strings.xml b/java/com/android/contacts/common/res/values-fr/strings.xml
index c0b20db1f..504f40b8a 100644
--- a/java/com/android/contacts/common/res/values-fr/strings.xml
+++ b/java/com/android/contacts/common/res/values-fr/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Conditions d\'utilisation"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licences Open Source"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Impossible d\'ouvrir l\'URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Passer un appel vidéo"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-gl/strings.xml b/java/com/android/contacts/common/res/values-gl/strings.xml
index 672f82baf..e1e2c11d6 100644
--- a/java/com/android/contacts/common/res/values-gl/strings.xml
+++ b/java/com/android/contacts/common/res/values-gl/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Condicións de servizo"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licenzas de código aberto"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Produciuse un erro ao abrir o URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Facer videochamada"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-gu/strings.xml b/java/com/android/contacts/common/res/values-gu/strings.xml
index 787e1d93a..19dbb8caf 100644
--- a/java/com/android/contacts/common/res/values-gu/strings.xml
+++ b/java/com/android/contacts/common/res/values-gu/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"સેવાની શરતો"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ખુલ્લા સ્રોત લાઇસન્સીસ"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url ખોલવામાં નિષ્ફળ થયાં."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"વિડિઓ કૉલ કરો"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-hi/strings.xml b/java/com/android/contacts/common/res/values-hi/strings.xml
index 736ce97f8..841a69021 100644
--- a/java/com/android/contacts/common/res/values-hi/strings.xml
+++ b/java/com/android/contacts/common/res/values-hi/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"सेवा की शर्तें"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ओपन सोर्स लाइसेंस"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url खोलने में विफल रहा."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"वीडियो कॉल करें"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-hr/strings.xml b/java/com/android/contacts/common/res/values-hr/strings.xml
index a65b73c5b..ece6fe789 100644
--- a/java/com/android/contacts/common/res/values-hr/strings.xml
+++ b/java/com/android/contacts/common/res/values-hr/strings.xml
@@ -263,5 +263,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Uvjeti pružanja usluge"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licence otvorenog izvornog koda"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Otvaranje URL-a nije uspjelo."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Upućivanje videopoziva"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-hu/strings.xml b/java/com/android/contacts/common/res/values-hu/strings.xml
index 82c983b94..696ed1d1e 100644
--- a/java/com/android/contacts/common/res/values-hu/strings.xml
+++ b/java/com/android/contacts/common/res/values-hu/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Általános Szerződési Feltételek"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Nyílt forráskódú licencek"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Nem sikerült megnyitni az URL-címet."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Videohívás indítása"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-hy/strings.xml b/java/com/android/contacts/common/res/values-hy/strings.xml
index 384156e86..1340a0efa 100644
--- a/java/com/android/contacts/common/res/values-hy/strings.xml
+++ b/java/com/android/contacts/common/res/values-hy/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Օգտագործման պայմաններ"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Բաց կոդով ծրագրակազմի արտոնագրեր"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Չհաջողվեց բացել url-ը:"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Կատարել տեսազանգ"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-in/strings.xml b/java/com/android/contacts/common/res/values-in/strings.xml
index d2f596d57..17e54f00d 100644
--- a/java/com/android/contacts/common/res/values-in/strings.xml
+++ b/java/com/android/contacts/common/res/values-in/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Persyaratan layanan"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Lisensi sumber terbuka"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Gagal membuka url."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Lakukan video call"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-is/strings.xml b/java/com/android/contacts/common/res/values-is/strings.xml
index 054dedf1d..7fa50d674 100644
--- a/java/com/android/contacts/common/res/values-is/strings.xml
+++ b/java/com/android/contacts/common/res/values-is/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Þjónustuskilmálar"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Leyfi opins kóða"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Ekki tókst að opna slóðina."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Hringja myndsímtal"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-it/strings.xml b/java/com/android/contacts/common/res/values-it/strings.xml
index 80ddf2409..591ad851e 100644
--- a/java/com/android/contacts/common/res/values-it/strings.xml
+++ b/java/com/android/contacts/common/res/values-it/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Termini di servizio"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licenze open source"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Impossibile aprire l\'URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Effettua videochiamata"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-iw/strings.xml b/java/com/android/contacts/common/res/values-iw/strings.xml
index b95998bae..7ad55d88e 100644
--- a/java/com/android/contacts/common/res/values-iw/strings.xml
+++ b/java/com/android/contacts/common/res/values-iw/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"תנאים והגבלות"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"רישיונות קוד פתוח"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"לא ניתן לפתוח את כתובת האתר."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"בצע שיחת וידאו"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ja/strings.xml b/java/com/android/contacts/common/res/values-ja/strings.xml
index 0135da0ce..2e7c5382e 100644
--- a/java/com/android/contacts/common/res/values-ja/strings.xml
+++ b/java/com/android/contacts/common/res/values-ja/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"利用規約"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"オープンソース ライセンス"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"この URL を開けませんでした。"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ビデオハングアウトを発信"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ka/strings.xml b/java/com/android/contacts/common/res/values-ka/strings.xml
index f126d4c81..26585942a 100644
--- a/java/com/android/contacts/common/res/values-ka/strings.xml
+++ b/java/com/android/contacts/common/res/values-ka/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"მომსახურების პირობები"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ღია კოდის ლიცენზიები"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Url-ის გახსნა ვერ მოხერხდა."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ვიდეოზარის განხორციელება"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-kk/strings.xml b/java/com/android/contacts/common/res/values-kk/strings.xml
index 3d2e9bd69..47acf5e83 100644
--- a/java/com/android/contacts/common/res/values-kk/strings.xml
+++ b/java/com/android/contacts/common/res/values-kk/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Қызмет көрсету шарттары"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Бастапқы коды ашық бағдарлама лицензиялары"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Url ашылған жоқ."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Бейне қоңырау соғу"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-km/strings.xml b/java/com/android/contacts/common/res/values-km/strings.xml
index 7715f401c..98abe6882 100644
--- a/java/com/android/contacts/common/res/values-km/strings.xml
+++ b/java/com/android/contacts/common/res/values-km/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"លក្ខខណ្ឌប្រើប្រាស់"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"អាជ្ញាប័ណ្ណប្រភពកូដចំហ"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"បាន​បរាជ័យ​ក្នុង​ការ​បើក URL។"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ធ្វើការហៅជាវីដេអូ"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-kn/strings.xml b/java/com/android/contacts/common/res/values-kn/strings.xml
index 8b8b3f293..3dd4f5ada 100644
--- a/java/com/android/contacts/common/res/values-kn/strings.xml
+++ b/java/com/android/contacts/common/res/values-kn/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"ಸೇವಾ ನಿಯಮಗಳು"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ಮುಕ್ತ ಮೂಲ ಪರವಾನಗಿಗಳು"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ವೀಡಿಯೊ ಕರೆ ಮಾಡಿ"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ko/strings.xml b/java/com/android/contacts/common/res/values-ko/strings.xml
index a0eb767e5..ccf1845bd 100644
--- a/java/com/android/contacts/common/res/values-ko/strings.xml
+++ b/java/com/android/contacts/common/res/values-ko/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"서비스 약관"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"오픈소스 라이선스"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"URL을 열지 못했습니다."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"화상 통화 걸기"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ky/strings.xml b/java/com/android/contacts/common/res/values-ky/strings.xml
index 116da198d..c3309b7ee 100644
--- a/java/com/android/contacts/common/res/values-ky/strings.xml
+++ b/java/com/android/contacts/common/res/values-ky/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Тейлөө шарттары"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Ачык программа уруксаттамалары"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url ачылбай калды."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Видео чалуу"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-lo/strings.xml b/java/com/android/contacts/common/res/values-lo/strings.xml
index 68d485c95..ec684beec 100644
--- a/java/com/android/contacts/common/res/values-lo/strings.xml
+++ b/java/com/android/contacts/common/res/values-lo/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"​ເງື່ອນ​ໄຂ​ການ​ໃຫ້​ບໍ​ລິ​ການ"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ລິຂະສິດໂອເພນຊອດ"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"ເປີດ URL ລົ້ມເຫລວ."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ເຮັດການໂທວິດີໂອ"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-lt/strings.xml b/java/com/android/contacts/common/res/values-lt/strings.xml
index 15095f8ea..082950a08 100644
--- a/java/com/android/contacts/common/res/values-lt/strings.xml
+++ b/java/com/android/contacts/common/res/values-lt/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Paslaugų teikimo sąlygos"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Atvirojo šaltinio licencijos"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Nepavyko atidaryti URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Atlikti vaizdo skambutį"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-lv/strings.xml b/java/com/android/contacts/common/res/values-lv/strings.xml
index feb575dd8..54a2481ea 100644
--- a/java/com/android/contacts/common/res/values-lv/strings.xml
+++ b/java/com/android/contacts/common/res/values-lv/strings.xml
@@ -263,5 +263,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Pakalpojumu sniegšanas noteikumi"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Atklātā pirmkoda licences"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Neizdevās atvērt URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Sākt videozvanu"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-mk/strings.xml b/java/com/android/contacts/common/res/values-mk/strings.xml
index b49f2a9e9..060519fd8 100644
--- a/java/com/android/contacts/common/res/values-mk/strings.xml
+++ b/java/com/android/contacts/common/res/values-mk/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Услови на користење"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Лиценци за софтвер со отворен код"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Врската не успеа да се отвори."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Воспостави видеоповик"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ml/strings.xml b/java/com/android/contacts/common/res/values-ml/strings.xml
index 5645d8667..bd77e7ea2 100644
--- a/java/com/android/contacts/common/res/values-ml/strings.xml
+++ b/java/com/android/contacts/common/res/values-ml/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"സേവന നിബന്ധനകൾ"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ഓപ്പൺ സോഴ്‌സ് ലൈസൻസ്"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url തുറക്കാനായില്ല."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"വീഡിയോ കോൾ ചെയ്യുക"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-mn/strings.xml b/java/com/android/contacts/common/res/values-mn/strings.xml
index b8c5dbbc3..e6e1ab12a 100644
--- a/java/com/android/contacts/common/res/values-mn/strings.xml
+++ b/java/com/android/contacts/common/res/values-mn/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Үйлчилгээний нөхцөл"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Нээлттэй эхийн лиценз"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"URL-г нээж чадсангүй."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Видео дуудлага хийх"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-mr/strings.xml b/java/com/android/contacts/common/res/values-mr/strings.xml
index 72e52823b..52b989fe9 100644
--- a/java/com/android/contacts/common/res/values-mr/strings.xml
+++ b/java/com/android/contacts/common/res/values-mr/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"सेवा अटी"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"मुक्त स्त्रोत परवाने"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url उघडण्यात अयशस्वी झाले."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"व्हिडिओ कॉल करा"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ms/strings.xml b/java/com/android/contacts/common/res/values-ms/strings.xml
index 91cf2de87..c3ae12a92 100644
--- a/java/com/android/contacts/common/res/values-ms/strings.xml
+++ b/java/com/android/contacts/common/res/values-ms/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Syarat perkhidmatan"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Lesen sumber terbuka"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Gagal membuka url."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Buat panggilan video"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-my/strings.xml b/java/com/android/contacts/common/res/values-my/strings.xml
index e162b0cf7..3a90758d5 100644
--- a/java/com/android/contacts/common/res/values-my/strings.xml
+++ b/java/com/android/contacts/common/res/values-my/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"ဝန်ဆောင်မှုဆိုင်ရာ စည်းမျဉ်းများ"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"အခမဲ့ရင်းမြစ်လိုင်စင်များ"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url ကို ဖွင့်၍မရပါ။"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ဗီဒီယို ခေါ်ဆိုမှုကို ပြုလုပ်ပါ"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-nb/strings.xml b/java/com/android/contacts/common/res/values-nb/strings.xml
index 930e949fd..ab1fd57d4 100644
--- a/java/com/android/contacts/common/res/values-nb/strings.xml
+++ b/java/com/android/contacts/common/res/values-nb/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Vilkår for bruk"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Lisenser for åpen kildekode"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Kunne ikke åpne nettadressen."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Start et videoanrop"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ne/strings.xml b/java/com/android/contacts/common/res/values-ne/strings.xml
index 50b44fdb7..1d3e5a2b3 100644
--- a/java/com/android/contacts/common/res/values-ne/strings.xml
+++ b/java/com/android/contacts/common/res/values-ne/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"सेवा सर्तहरू"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"खुला स्रोत सम्बन्धी इजाजतपत्रहरू"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url खोल्न सकिएन।"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"भिडियो कल गर्नुहोस्"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-nl/strings.xml b/java/com/android/contacts/common/res/values-nl/strings.xml
index cfeb7dfa4..fb7d571dc 100644
--- a/java/com/android/contacts/common/res/values-nl/strings.xml
+++ b/java/com/android/contacts/common/res/values-nl/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Servicevoorwaarden"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Open-sourcelicenties"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Kan de URL niet openen."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Videogesprek starten"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-no/strings.xml b/java/com/android/contacts/common/res/values-no/strings.xml
index 930e949fd..ab1fd57d4 100644
--- a/java/com/android/contacts/common/res/values-no/strings.xml
+++ b/java/com/android/contacts/common/res/values-no/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Vilkår for bruk"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Lisenser for åpen kildekode"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Kunne ikke åpne nettadressen."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Start et videoanrop"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-pa/strings.xml b/java/com/android/contacts/common/res/values-pa/strings.xml
index c043ab7d0..fef6578b0 100644
--- a/java/com/android/contacts/common/res/values-pa/strings.xml
+++ b/java/com/android/contacts/common/res/values-pa/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"ਸੇਵਾ ਦੀਆਂ ਮਦਾਂ"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ਖੁੱਲ੍ਹਾ ਸਰੋਤ ਲਾਇਸੰਸ"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ।"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ਵੀਡੀਓ ਕਾਲ ਕਰੋ"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-pl/strings.xml b/java/com/android/contacts/common/res/values-pl/strings.xml
index f48e2ce38..c2268d492 100644
--- a/java/com/android/contacts/common/res/values-pl/strings.xml
+++ b/java/com/android/contacts/common/res/values-pl/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Warunki usługi"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licencje open source"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Nie udało się otworzyć URL-a."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Rozpocznij rozmowę wideo"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
index 1dbdce966..4ab169e91 100644
--- a/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt-rBR/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Termos de Serviço"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licenças de código aberto"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Falha ao abrir o URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Realizar videochamada"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
index 08fe820d7..f979fdc3e 100644
--- a/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt-rPT/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Termos de Utilização"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licenças de código aberto"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Falha ao abrir o URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Efetuar videochamada"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-pt/strings.xml b/java/com/android/contacts/common/res/values-pt/strings.xml
index 1dbdce966..4ab169e91 100644
--- a/java/com/android/contacts/common/res/values-pt/strings.xml
+++ b/java/com/android/contacts/common/res/values-pt/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Termos de Serviço"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licenças de código aberto"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Falha ao abrir o URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Realizar videochamada"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ro/strings.xml b/java/com/android/contacts/common/res/values-ro/strings.xml
index 0f1b98d81..ae2ea6599 100644
--- a/java/com/android/contacts/common/res/values-ro/strings.xml
+++ b/java/com/android/contacts/common/res/values-ro/strings.xml
@@ -263,5 +263,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Termeni și condiții"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licențe open source"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Adresa URL nu a putut fi deschisă."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Efectuați un apel video"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ru/strings.xml b/java/com/android/contacts/common/res/values-ru/strings.xml
index a75cc6400..eaa998335 100644
--- a/java/com/android/contacts/common/res/values-ru/strings.xml
+++ b/java/com/android/contacts/common/res/values-ru/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Условия использования"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Лицензии открытого ПО"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Не удалось открыть URL."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Видеовызов"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-si/strings.xml b/java/com/android/contacts/common/res/values-si/strings.xml
index 42a851723..238bcfee1 100644
--- a/java/com/android/contacts/common/res/values-si/strings.xml
+++ b/java/com/android/contacts/common/res/values-si/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"සේවා නියම"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"විවෘත මූලාශ්‍ර බලපත්‍ර"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"url විවෘත කිරීමට අසමත් විය."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"වීඩියෝ ඇමතුම සිදු කිරීම"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-sk/strings.xml b/java/com/android/contacts/common/res/values-sk/strings.xml
index 22e47bfac..6daafb7b0 100644
--- a/java/com/android/contacts/common/res/values-sk/strings.xml
+++ b/java/com/android/contacts/common/res/values-sk/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Zmluvné podmienky"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licencie open source"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Webovú adresu nebolo možné otvoriť"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Uskutočniť videohovor"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-sl/strings.xml b/java/com/android/contacts/common/res/values-sl/strings.xml
index f2826c6d1..964bac24c 100644
--- a/java/com/android/contacts/common/res/values-sl/strings.xml
+++ b/java/com/android/contacts/common/res/values-sl/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Pogoji storitve"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Odprtokodne licence"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Naslova URL ni bilo mogoče odpreti."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Začetek videoklica"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-sq/strings.xml b/java/com/android/contacts/common/res/values-sq/strings.xml
index 83920fa12..d46841b4b 100644
--- a/java/com/android/contacts/common/res/values-sq/strings.xml
+++ b/java/com/android/contacts/common/res/values-sq/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Kushtet e shërbimit"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licencat me burim të hapur"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Dështoi në hapjen e url-së."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Kryej një telefonatë me video"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-sr/strings.xml b/java/com/android/contacts/common/res/values-sr/strings.xml
index 9801a29a3..6151ef960 100644
--- a/java/com/android/contacts/common/res/values-sr/strings.xml
+++ b/java/com/android/contacts/common/res/values-sr/strings.xml
@@ -263,5 +263,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Услови коришћења услуге"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Лиценце отвореног кода"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Отварање URL-а није успело."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Упути видео позив"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-sv/strings.xml b/java/com/android/contacts/common/res/values-sv/strings.xml
index 9fa33bee8..94f7abd35 100644
--- a/java/com/android/contacts/common/res/values-sv/strings.xml
+++ b/java/com/android/contacts/common/res/values-sv/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Användarvillkor"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Licenser för öppen källkod"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Det gick inte att öppna webbadressen."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Ring ett videosamtal"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-sw/strings.xml b/java/com/android/contacts/common/res/values-sw/strings.xml
index 43e81e500..717f1b87e 100644
--- a/java/com/android/contacts/common/res/values-sw/strings.xml
+++ b/java/com/android/contacts/common/res/values-sw/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Sheria na masharti"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Leseni za programu huria"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Imeshindwa kufungua url."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Anzisha Hangout ya Video"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ta/strings.xml b/java/com/android/contacts/common/res/values-ta/strings.xml
index 6a66f60cd..0bbee79f7 100644
--- a/java/com/android/contacts/common/res/values-ta/strings.xml
+++ b/java/com/android/contacts/common/res/values-ta/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"சேவை விதிமுறைகள்"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ஓப்பன் சோர்ஸ் உரிமங்கள்"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"urlஐத் திறக்க முடியவில்லை."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"வீடியோ அழைப்பைச் செய்"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-te/strings.xml b/java/com/android/contacts/common/res/values-te/strings.xml
index 59acd5b17..474bb9359 100644
--- a/java/com/android/contacts/common/res/values-te/strings.xml
+++ b/java/com/android/contacts/common/res/values-te/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"సేవా నిబంధనలు"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ఓపెన్ సోర్స్ లైసెన్స్‌లు"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"urlని తెరవడంలో విఫలమైంది."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"వీడియో కాల్ చేస్తుంది"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-th/strings.xml b/java/com/android/contacts/common/res/values-th/strings.xml
index 0585fba9f..598b810b4 100644
--- a/java/com/android/contacts/common/res/values-th/strings.xml
+++ b/java/com/android/contacts/common/res/values-th/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"ข้อกำหนดในการให้บริการ"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"ใบอนุญาตโอเพนซอร์ส"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"เปิด URL ไม่สำเร็จ"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"เริ่มแฮงเอาท์วิดีโอ"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-tl/strings.xml b/java/com/android/contacts/common/res/values-tl/strings.xml
index 49a2830a8..fd51f1f2a 100644
--- a/java/com/android/contacts/common/res/values-tl/strings.xml
+++ b/java/com/android/contacts/common/res/values-tl/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Tuntunin ng serbisyo"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Mga open source na lisensya"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Nabigong buksan ang url."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Magsimula ng video call"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-tr/strings.xml b/java/com/android/contacts/common/res/values-tr/strings.xml
index b0d4a91aa..20b076e2e 100644
--- a/java/com/android/contacts/common/res/values-tr/strings.xml
+++ b/java/com/android/contacts/common/res/values-tr/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Hizmet şartları"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Açık kaynak lisansları"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"URL açılamadı."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Video görüşmesi yap"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-uk/strings.xml b/java/com/android/contacts/common/res/values-uk/strings.xml
index fe936d5cf..2e9c3cb84 100644
--- a/java/com/android/contacts/common/res/values-uk/strings.xml
+++ b/java/com/android/contacts/common/res/values-uk/strings.xml
@@ -265,5 +265,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Умови використання"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Ліцензії на ПЗ з відкритим кодом"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Не вдалося відкрити посилання."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Почати відеодзвінок"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-ur/strings.xml b/java/com/android/contacts/common/res/values-ur/strings.xml
index 3273fb2ef..8db576e08 100644
--- a/java/com/android/contacts/common/res/values-ur/strings.xml
+++ b/java/com/android/contacts/common/res/values-ur/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"سروس کی شرائط"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"اوپن سورس لائسنسز"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"‏URL کھولنے میں ناکامی۔"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"ویڈیو کال کریں"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-uz/strings.xml b/java/com/android/contacts/common/res/values-uz/strings.xml
index 93fc0841d..9fe0e5086 100644
--- a/java/com/android/contacts/common/res/values-uz/strings.xml
+++ b/java/com/android/contacts/common/res/values-uz/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Foydalanish shartlari"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Ochiq kodli dasturiy ta’minot litsenziyalari"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"URLni ochishda xatolik yuz berdi."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Video qo‘ng‘iroq qilish"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-vi/strings.xml b/java/com/android/contacts/common/res/values-vi/strings.xml
index c444245b1..3a6f59473 100644
--- a/java/com/android/contacts/common/res/values-vi/strings.xml
+++ b/java/com/android/contacts/common/res/values-vi/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Điều khoản dịch vụ"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Giấy phép nguồn mở"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Không mở được url."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Gọi điện video"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
index 764664bb0..89c8e8d0d 100644
--- a/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rCN/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"服务条款"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"开放源代码许可"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"无法打开网址。"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"发起视频通话"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
index 8c37a02b9..bd912b6ff 100644
--- a/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rHK/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"服務條款"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"開放原始碼授權"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"無法開啟網址。"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"開始視像通話"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
index 015683eb0..14e1e901f 100644
--- a/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
+++ b/java/com/android/contacts/common/res/values-zh-rTW/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"服務條款"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"開放原始碼授權"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"無法開啟網址。"</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"撥打視訊通話"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values-zu/strings.xml b/java/com/android/contacts/common/res/values-zu/strings.xml
index f128b2a2a..1c93e4c11 100644
--- a/java/com/android/contacts/common/res/values-zu/strings.xml
+++ b/java/com/android/contacts/common/res/values-zu/strings.xml
@@ -261,5 +261,8 @@
<string name="about_terms_of_service" msgid="9004506174858804172">"Imigomo yesevisi"</string>
<string name="activity_title_licenses" msgid="2416018204229261875">"Amalayisense womthombo ovulekile"</string>
<string name="url_open_error_toast" msgid="3814442157861318482">"Yehlulekile ukuvula i-url."</string>
- <string name="description_search_video_call" msgid="7229218423556643079">"Yenza ikholi yevidiyo"</string>
+ <!-- no translation found for description_search_video_call (4337369876888024909) -->
+ <skip />
+ <!-- no translation found for description_search_call_and_share (4912772842755050467) -->
+ <skip />
</resources>
diff --git a/java/com/android/contacts/common/res/values/strings.xml b/java/com/android/contacts/common/res/values/strings.xml
index d58787087..9ac9fef28 100644
--- a/java/com/android/contacts/common/res/values/strings.xml
+++ b/java/com/android/contacts/common/res/values/strings.xml
@@ -791,5 +791,12 @@
This is especially valuable for views without textual representation like ImageView.
[CHAR LIMIT=NONE]-->
- <string name="description_search_video_call">Place video call</string>
+ <string name="description_search_video_call">Video call</string>
+
+ <!-- Description string for an action button to initiate an enriched call from search results.
+ Note: AccessibilityServices use this attribute to announce what the view represents.
+ This is especially valuable for views without textual representation like ImageView.
+
+ [CHAR LIMIT=NONE]-->
+ <string name="description_search_call_and_share">Share and call</string>
</resources>
diff --git a/java/com/android/contacts/common/widget/FloatingActionButtonController.java b/java/com/android/contacts/common/widget/FloatingActionButtonController.java
index 368d09207..d924681ea 100644
--- a/java/com/android/contacts/common/widget/FloatingActionButtonController.java
+++ b/java/com/android/contacts/common/widget/FloatingActionButtonController.java
@@ -72,12 +72,16 @@ public class FloatingActionButtonController {
}
/**
- * Sets FAB as View.VISIBLE or View.GONE.
+ * Sets FAB as shown or hidden.
*
* @param visible Whether or not to make the container visible.
*/
public void setVisible(boolean visible) {
- mFab.setVisibility(visible ? View.VISIBLE : View.GONE);
+ if (visible) {
+ mFab.show();
+ } else {
+ mFab.hide();
+ }
}
public void changeIcon(Drawable icon, String description) {
diff --git a/java/com/android/dialer/about/AboutPhoneFragment.java b/java/com/android/dialer/about/AboutPhoneFragment.java
new file mode 100644
index 000000000..ecd7c0f76
--- /dev/null
+++ b/java/com/android/dialer/about/AboutPhoneFragment.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.about;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceFragment;
+import android.text.TextUtils;
+
+/** The fragment for information about the Phone App */
+public class AboutPhoneFragment extends PreferenceFragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ addPreferencesFromResource(R.xml.about_phone_fragment);
+
+ // We set the intent here, instead of in XML, to avoid specifying a target package, which
+ // differs between AOSP and the GoogleDialer.
+ Intent openSourceActivity =
+ new Intent(getActivity().getApplicationContext(), LicenseMenuActivity.class);
+ findPreference(getString(R.string.open_source_licenses_key)).setIntent(openSourceActivity);
+ populateBuildVersion();
+ }
+
+ private void populateBuildVersion() {
+ Preference buildVersion = findPreference(getResources().getString(R.string.build_version_key));
+ String versionName = getVersionName();
+ if (!TextUtils.isEmpty(versionName)) {
+ buildVersion.setSummary(versionName);
+ }
+ }
+
+ private String getVersionName() {
+ Context context = getContext();
+ try {
+ return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
+ } catch (NameNotFoundException e) {
+ return "";
+ }
+ }
+
+ @Override
+ public Context getContext() {
+ return getActivity();
+ }
+}
diff --git a/java/com/android/dialer/about/AndroidManifest.xml b/java/com/android/dialer/about/AndroidManifest.xml
new file mode 100644
index 000000000..e9489ce1e
--- /dev/null
+++ b/java/com/android/dialer/about/AndroidManifest.xml
@@ -0,0 +1,17 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.dialer.about">
+ <application>
+ <activity
+ android:name="com.android.dialer.about.LicenseMenuActivity"
+ android:label="@string/licenseActivityLabel"
+ android:exported="false"
+ android:theme="@style/Theme.AppCompat.Light">
+ </activity>
+ <activity
+ android:name="com.android.dialer.about.LicenseActivity"
+ android:label="@string/licenseActivityLabel"
+ android:exported="false"
+ android:theme="@style/Theme.AppCompat.Light">
+ </activity>
+ </application>
+</manifest>
diff --git a/java/com/android/dialer/about/License.java b/java/com/android/dialer/about/License.java
new file mode 100644
index 000000000..d0d73b8e1
--- /dev/null
+++ b/java/com/android/dialer/about/License.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.about;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * Container class to store the name of a library and the filename of its associated license file.
+ */
+public final class License implements Comparable<License>, Parcelable {
+ // Name of the third-party library.
+ private final String libraryName;
+ // Byte offset in the file to the start of the license text.
+ private final long licenseOffset;
+ // Byte length of the license text.
+ private final int licenseLength;
+
+ /**
+ * Create an object representing a stored license. The text for all licenses is stored in a single
+ * file, so the offset and length describe this license's position within the file.
+ */
+ static License create(String libraryName, long licenseOffset, int licenseLength) {
+ return new License(libraryName, licenseOffset, licenseLength);
+ }
+
+ public static final Parcelable.Creator<License> CREATOR =
+ new Parcelable.Creator<License>() {
+ @Override
+ public License createFromParcel(Parcel in) {
+ return new License(in);
+ }
+
+ @Override
+ public License[] newArray(int size) {
+ return new License[size];
+ }
+ };
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeString(libraryName);
+ dest.writeLong(licenseOffset);
+ dest.writeInt(licenseLength);
+ }
+
+ @Override
+ public int compareTo(License o) {
+ return libraryName.compareToIgnoreCase(o.getLibraryName());
+ }
+
+ @Override
+ public String toString() {
+ return getLibraryName();
+ }
+
+ private License(String libraryName, long licenseOffset, int licenseLength) {
+ this.libraryName = libraryName;
+ this.licenseOffset = licenseOffset;
+ this.licenseLength = licenseLength;
+ }
+
+ private License(Parcel in) {
+ libraryName = in.readString();
+ licenseOffset = in.readLong();
+ licenseLength = in.readInt();
+ }
+
+ String getLibraryName() {
+ return libraryName;
+ }
+
+ long getLicenseOffset() {
+ return licenseOffset;
+ }
+
+ int getLicenseLength() {
+ return licenseLength;
+ }
+}
diff --git a/java/com/android/dialer/about/LicenseActivity.java b/java/com/android/dialer/about/LicenseActivity.java
new file mode 100644
index 000000000..24822235f
--- /dev/null
+++ b/java/com/android/dialer/about/LicenseActivity.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.about;
+
+import android.os.Bundle;
+import android.support.v7.app.ActionBarActivity;
+import android.view.MenuItem;
+import android.widget.ScrollView;
+import android.widget.TextView;
+
+/** Simple Activity that renders locally stored open source legal info in a text view. */
+public final class LicenseActivity extends ActionBarActivity {
+ private static final String TAG = "LicenseActivity";
+ private static final String STATE_SCROLL_POS = "scroll_pos";
+
+ @Override
+ public void onCreate(Bundle bundle) {
+ super.onCreate(bundle);
+ setContentView(R.layout.license_scrollview);
+
+ License license = getIntent().getParcelableExtra(LicenseMenuActivity.ARGS_LICENSE);
+ getSupportActionBar().setTitle(license.getLibraryName());
+
+ // Show 'up' button with no logo.
+ getSupportActionBar().setDisplayShowHomeEnabled(true);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getSupportActionBar().setLogo(null);
+
+ TextView textView = (TextView) findViewById(R.id.license_activity_textview);
+ String licenseText = Licenses.getLicenseText(this, license);
+ if (licenseText == null) {
+ finish();
+ return;
+ }
+ textView.setText(licenseText);
+ }
+
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ ScrollView scrollView = (ScrollView) findViewById(R.id.license_activity_scrollview);
+ TextView textView = (TextView) findViewById(R.id.license_activity_textview);
+ int firstVisibleLine = textView.getLayout().getLineForVertical(scrollView.getScrollY());
+ int firstVisibleChar = textView.getLayout().getLineStart(firstVisibleLine);
+ outState.putInt(STATE_SCROLL_POS, firstVisibleChar);
+ }
+
+ @Override
+ public void onRestoreInstanceState(Bundle savedInstanceState) {
+ super.onRestoreInstanceState(savedInstanceState);
+ final ScrollView scrollView = (ScrollView) findViewById(R.id.license_activity_scrollview);
+ final int firstVisibleChar = savedInstanceState.getInt(STATE_SCROLL_POS);
+ scrollView.post(
+ new Runnable() {
+ @Override
+ public void run() {
+ TextView textView = (TextView) findViewById(R.id.license_activity_textview);
+ int firstVisibleLine = textView.getLayout().getLineForOffset(firstVisibleChar);
+ int offset = textView.getLayout().getLineTop(firstVisibleLine);
+ scrollView.scrollTo(0, offset);
+ }
+ });
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(final MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ finish();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+}
diff --git a/java/com/android/dialer/about/LicenseLoader.java b/java/com/android/dialer/about/LicenseLoader.java
new file mode 100644
index 000000000..50d6834d9
--- /dev/null
+++ b/java/com/android/dialer/about/LicenseLoader.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.about;
+
+import android.content.Context;
+import android.support.v4.content.AsyncTaskLoader;
+import java.util.List;
+
+/** {@link AsyncTaskLoader} to load the list of licenses for the license menu activity. */
+final class LicenseLoader extends AsyncTaskLoader<List<License>> {
+
+ private List<License> licenses;
+
+ LicenseLoader(Context context) {
+ // This must only pass the application context to avoid leaking a pointer to the Activity.
+ super(context.getApplicationContext());
+ }
+
+ @Override
+ public List<License> loadInBackground() {
+ return Licenses.getLicenses(getContext());
+ }
+
+ @Override
+ public void deliverResult(List<License> licenses) {
+ this.licenses = licenses;
+ super.deliverResult(licenses);
+ }
+
+ @Override
+ protected void onStartLoading() {
+ if (licenses != null) {
+ deliverResult(licenses);
+ } else {
+ forceLoad();
+ }
+ }
+
+ @Override
+ protected void onStopLoading() {
+ cancelLoad();
+ }
+}
diff --git a/java/com/android/dialer/about/LicenseMenuActivity.java b/java/com/android/dialer/about/LicenseMenuActivity.java
new file mode 100644
index 000000000..73047989c
--- /dev/null
+++ b/java/com/android/dialer/about/LicenseMenuActivity.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.about;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.LoaderManager.LoaderCallbacks;
+import android.support.v4.content.Loader;
+import android.support.v7.app.ActionBarActivity;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+import java.util.ArrayList;
+import java.util.List;
+
+/** An Activity listing third party libraries with notice licenses. */
+public final class LicenseMenuActivity extends ActionBarActivity
+ implements LoaderCallbacks<List<License>> {
+
+ static final String ARGS_LICENSE = "license";
+
+ private static final int LOADER_ID = 54321;
+
+ private ArrayAdapter<License> listAdapter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.license_menu_activity);
+
+ if (getSupportActionBar() != null) {
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ }
+
+ listAdapter = new ArrayAdapter<>(this, R.layout.license, R.id.license, new ArrayList<>());
+ getSupportLoaderManager().initLoader(LOADER_ID, null, this);
+ ListView listView = (ListView) findViewById(R.id.license_list);
+ listView.setAdapter(listAdapter);
+ listView.setOnItemClickListener(
+ new OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+ License license = (License) parent.getItemAtPosition(position);
+ Intent licenseIntent = new Intent(LicenseMenuActivity.this, LicenseActivity.class);
+ licenseIntent.putExtra(ARGS_LICENSE, license);
+ startActivity(licenseIntent);
+ }
+ });
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ // Go back one place in the history stack, if the app icon is clicked.
+ finish();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ getSupportLoaderManager().destroyLoader(LOADER_ID);
+ }
+
+ @Override
+ public Loader<List<License>> onCreateLoader(int id, Bundle args) {
+ return new LicenseLoader(this);
+ }
+
+ @Override
+ public void onLoadFinished(Loader<List<License>> loader, List<License> licenses) {
+ listAdapter.clear();
+ listAdapter.addAll(licenses);
+ listAdapter.notifyDataSetChanged();
+ }
+
+ @Override
+ public void onLoaderReset(Loader<List<License>> loader) {
+ listAdapter.clear();
+ listAdapter.notifyDataSetChanged();
+ }
+}
diff --git a/java/com/android/dialer/about/Licenses.java b/java/com/android/dialer/about/Licenses.java
new file mode 100644
index 000000000..d90c282b6
--- /dev/null
+++ b/java/com/android/dialer/about/Licenses.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.about;
+
+import android.content.Context;
+import android.content.res.Resources;
+import com.android.dialer.common.Assert;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
+import java.util.Collections;
+
+/** A helper for extracting licenses. */
+public final class Licenses {
+ private static final String TAG = "Licenses";
+ private static final String LICENSE_FILENAME = "third_party_licenses";
+ private static final String LICENSE_METADATA_FILENAME = "third_party_license_metadata";
+
+ /** Return the licenses bundled into this app. */
+ public static ArrayList<License> getLicenses(Context context) {
+ return getLicenseListFromMetadata(
+ getTextFromResource(context.getApplicationContext(), LICENSE_METADATA_FILENAME, 0, -1));
+ }
+
+ /**
+ * Returns a list of {@link License}s parsed from a license metadata file.
+ *
+ * @param metadata a {@code String} containing the contents of a license metadata file.
+ */
+ private static ArrayList<License> getLicenseListFromMetadata(String metadata) {
+ String[] entries = metadata.split("\n");
+ ArrayList<License> licenses = new ArrayList<License>(entries.length);
+ for (String entry : entries) {
+ int delimiter = entry.indexOf(' ');
+ String[] licenseLocation = entry.substring(0, delimiter).split(":");
+ Assert.checkState(
+ delimiter > 0 && licenseLocation.length == 2,
+ "Invalid license meta-data line:\n" + entry);
+ long licenseOffset = Long.parseLong(licenseLocation[0]);
+ int licenseLength = Integer.parseInt(licenseLocation[1]);
+ licenses.add(License.create(entry.substring(delimiter + 1), licenseOffset, licenseLength));
+ }
+ Collections.sort(licenses);
+ return licenses;
+ }
+
+ /** Return the text of a bundled license file. */
+ public static String getLicenseText(Context context, License license) {
+ long offset = license.getLicenseOffset();
+ int length = license.getLicenseLength();
+ return getTextFromResource(context, LICENSE_FILENAME, offset, length);
+ }
+
+ private static String getTextFromResource(
+ Context context, String filename, long offset, int length) {
+ Resources resources = context.getApplicationContext().getResources();
+ // When aapt is called with --rename-manifest-package, the package name is changed for the
+ // application, but not for the resources. This is to find the package name of a known
+ // resource to know what package to lookup the license files in.
+ String packageName = resources.getResourcePackageName(R.id.dummy_placeholder);
+ InputStream stream =
+ resources.openRawResource(resources.getIdentifier(filename, "raw", packageName));
+ return getTextFromInputStream(stream, offset, length);
+ }
+
+ private static String getTextFromInputStream(InputStream stream, long offset, int length) {
+ byte[] buffer = new byte[1024];
+ ByteArrayOutputStream textArray = new ByteArrayOutputStream();
+
+ try {
+ stream.skip(offset);
+ int bytesRemaining = length > 0 ? length : Integer.MAX_VALUE;
+ int bytes = 0;
+
+ while (bytesRemaining > 0
+ && (bytes = stream.read(buffer, 0, Math.min(bytesRemaining, buffer.length))) != -1) {
+ textArray.write(buffer, 0, bytes);
+ bytesRemaining -= bytes;
+ }
+ stream.close();
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to read license or metadata text.", e);
+ }
+ try {
+ return textArray.toString("UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException("Unsupported encoding UTF8. This should always be supported.", e);
+ }
+ }
+}
diff --git a/java/com/android/dialer/about/res/layout/dummy_placeholder.xml b/java/com/android/dialer/about/res/layout/dummy_placeholder.xml
new file mode 100644
index 000000000..6d867ef55
--- /dev/null
+++ b/java/com/android/dialer/about/res/layout/dummy_placeholder.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<!-- See Licenses.java for why this exists. -->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/dummy_placeholder"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
diff --git a/java/com/android/dialer/about/res/layout/license.xml b/java/com/android/dialer/about/res/layout/license.xml
new file mode 100644
index 000000000..ef67982a1
--- /dev/null
+++ b/java/com/android/dialer/about/res/layout/license.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:gravity="center_vertical"
+ android:paddingRight="?android:attr/scrollbarSize"
+ android:baselineAligned="false" >
+
+ <TextView android:id="@+id/license"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="15dip"
+ android:layout_marginLeft="15dip"
+ android:layout_marginEnd="6dip"
+ android:layout_marginRight="6dip"
+ android:layout_marginTop="6dip"
+ android:layout_marginBottom="6dip"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMediumInverse"
+ android:textColor="?android:attr/textColorPrimary"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal" />
+
+</LinearLayout>
diff --git a/java/com/android/dialer/about/res/layout/license_menu_activity.xml b/java/com/android/dialer/about/res/layout/license_menu_activity.xml
new file mode 100644
index 000000000..8ed47bf68
--- /dev/null
+++ b/java/com/android/dialer/about/res/layout/license_menu_activity.xml
@@ -0,0 +1,35 @@
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ android:background="@android:color/transparent">
+
+ <ListView android:id="@+id/license_list"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:paddingTop="0dp"
+ android:paddingBottom="0dp"
+ android:paddingLeft="16dp"
+ android:paddingRight="16dp"
+ android:scrollbarStyle="outsideOverlay"
+ android:clipToPadding="false"
+ android:drawSelectorOnTop="false"
+ android:cacheColorHint="@android:color/transparent"
+ android:scrollbarAlwaysDrawVerticalTrack="true" />
+</LinearLayout>
diff --git a/java/com/android/dialer/about/res/layout/license_scrollview.xml b/java/com/android/dialer/about/res/layout/license_scrollview.xml
new file mode 100644
index 000000000..f58bc2f43
--- /dev/null
+++ b/java/com/android/dialer/about/res/layout/license_scrollview.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/license_activity_scrollview"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:id="@+id/license_activity_textview"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:typeface="monospace"
+ android:paddingStart="16dip"
+ android:paddingLeft="16dip"
+ android:paddingEnd="16dip"
+ android:paddingRight="16dip"
+ android:paddingTop="8dip"
+ android:paddingBottom="8dip" />
+</ScrollView> \ No newline at end of file
diff --git a/java/com/android/dialer/about/res/raw/keep.xml b/java/com/android/dialer/about/res/raw/keep.xml
new file mode 100644
index 000000000..e41b8b8d0
--- /dev/null
+++ b/java/com/android/dialer/about/res/raw/keep.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<resources xmlns:tools="http://schemas.android.com/tools"
+ tools:keep="@raw/*"/>
+
diff --git a/java/com/android/dialer/about/res/raw/third_party_license_metadata b/java/com/android/dialer/about/res/raw/third_party_license_metadata
new file mode 100644
index 000000000..1acf3480c
--- /dev/null
+++ b/java/com/android/dialer/about/res/raw/third_party_license_metadata
@@ -0,0 +1,34 @@
+40:10695 Android Annotations Support Library
+10770:10695 Android Compat Support Library
+21501:10695 Android Core UI Support Library
+32235:10691 Android Core Utils Support Library
+42961:10695 Android Design Support Library
+53694:10695 Android Fragments Support Library
+64426:10695 Android Graphics Support Library
+75162:10691 Android Media Compat Support Library
+85892:10691 Android Transition Support Library
+96621:10695 Android Compatibility Library v13
+107353:10695 Android Compatibility Library v4
+118085:10695 Android Compatibility Library v7
+128796:16013 Android SDK
+144828:11358 Android Common
+156196:4771 Glide
+160982:11358 Guava JDK5
+172358:12847 jibercsclient
+185224:10173 libphonenumber
+195416:10699 shortcutbadger
+206126:11358 Volley
+217495:18982 mime4j
+236493:11358 Google Auto
+247862:11358 Dagger
+259236:11357 Error Prone
+270604:11358 J2ObjC
+281984:11359 Apache Commons IO
+293355:11358 JSR 250
+304725:1602 JSR 305
+306339:11365 JSR 330
+317738:12847 carrierservices
+317738:12847 rcsclientlib
+330614:11358 material_components
+330614:11358 lib
+341987:11362 Guava JDK7
diff --git a/java/com/android/dialer/about/res/raw/third_party_licenses b/java/com/android/dialer/about/res/raw/third_party_licenses
new file mode 100644
index 000000000..c56f8a42c
--- /dev/null
+++ b/java/com/android/dialer/about/res/raw/third_party_licenses
@@ -0,0 +1,6414 @@
+
+
+Android Annotations Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android Compat Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android Core UI Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android Core Utils Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+Android Design Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android Fragments Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android Graphics Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android Media Compat Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+Android Transition Support Library:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+Android Compatibility Library v13:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android Compatibility Library v4:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android Compatibility Library v7:
+
+
+ Copyright (c) 2005-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.
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+Android SDK:
+
+ANDROID SOFTWARE DEVELOPMENT KIT
+
+Terms and Conditions
+
+This is the Android Software Development Kit License Agreement.
+
+1. Introduction
+
+1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and
+specifically including the Android system files, packaged APIs, and Google APIs add-ons) is
+licensed to you subject to the terms of this License Agreement. This License Agreement forms a
+legally binding contract between you and Google in relation to your use of the SDK.
+
+1.2 "Google" means Google Inc., a Delaware corporation with principal place of business at 1600
+Amphitheatre Parkway, Mountain View, CA 94043, United States.
+
+2. Accepting this License Agreement
+
+2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the
+SDK if you do not accept this License Agreement.
+
+2.2 You can accept this License Agreement by:
+
+(A) clicking to accept or agree to this License Agreement, where this option is made available to
+you; or
+
+(B) by actually using the SDK. In this case, you agree that use of the SDK constitutes acceptance of
+the Licensing Agreement from that point onwards.
+
+2.3 You may not use the SDK and may not accept the Licensing Agreement if you are a person barred
+from receiving the SDK under the laws of the United States or other countries including the country
+in which you are resident or from which you use the SDK.
+
+2.4 If you are agreeing to be bound by this License Agreement on behalf of your employer or other
+entity, you represent and warrant that you have full legal authority to bind your employer or such
+entity to this License Agreement. If you do not have the requisite authority, you may not accept
+the Licensing Agreement or use the SDK on behalf of your employer or other entity.
+
+3. SDK License from Google
+
+3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide,
+royalty-free, non- assignable and non-exclusive license to use the SDK solely to develop
+applications to run on the Android platform.
+
+3.2 You agree that Google or third parties own all legal right, title and interest in and to the
+SDK, including any Intellectual Property Rights that subsist in the SDK. "Intellectual Property
+Rights" means any and all rights under patent law, copyright law, trade secret law, trademark law,
+and any and all other proprietary rights. Google reserves all rights not expressly granted to you.
+
+3.3 Except to the extent required by applicable third party licenses, you may not copy (except for
+backup purposes), modify, adapt, redistribute, decompile, reverse engineer, disassemble, or create
+derivative works of the SDK or any part of the SDK. Except to the extent required by applicable
+third party licenses, you may not load any part of the SDK onto a mobile handset or any other
+hardware device except a personal computer, combine any part of the SDK with other software, or
+distribute any software or device incorporating a part of the SDK.
+
+3.4 Use, reproduction and distribution of components of the SDK licensed under an open source
+software license are governed solely by the terms of that open source software license and not
+this License Agreement.
+
+3.5 You agree that the form and nature of the SDK that Google provides may change without prior
+notice to you and that future versions of the SDK may be incompatible with applications developed
+on previous versions of the SDK. You agree that Google may stop (permanently or temporarily)
+providing the SDK (or any features within the SDK) to you or to users generally at Google's sole
+discretion, without prior notice to you.
+
+3.6 Nothing in this License Agreement gives you a right to use any of Google's trade names,
+trademarks, service marks, logos, domain names, or other distinctive brand features.
+
+3.7 You agree that you will not remove, obscure, or alter any proprietary rights notices (including
+copyright and trademark notices) that may be affixed to or contained within the SDK.
+
+4. Use of the SDK by You
+
+4.1 Google agrees that it obtains no right, title or interest from you (or your licensors) under
+this License Agreement in or to any software applications that you develop using the SDK, including
+any intellectual property rights that subsist in those applications.
+
+4.2 You agree to use the SDK and write applications only for purposes that are permitted by (a) this
+License Agreement and (b) any applicable law, regulation or generally accepted practices or
+guidelines in the relevant jurisdictions (including any laws regarding the export of data or
+software to and from the United States or other relevant countries).
+
+4.3 You agree that if you use the SDK to develop applications for general public users, you will
+protect the privacy and legal rights of those users. If the users provide you with user names,
+passwords, or other login information or personal information, your must make the users aware that
+the information will be available to your application, and you must provide legally adequate privacy
+notice and protection for those users. If your application stores personal or sensitive information
+provided by users, it must do so securely. If the user provides your application with Google Account
+information, your application may only use that information to access the user's Google Account
+when, and for the limited purposes for which, the user has given you permission to do so.
+
+4.4 You agree that you will not engage in any activity with the SDK, including the development or
+distribution of an application, that interferes with, disrupts, damages, or accesses in an
+unauthorized manner the servers, networks, or other properties or services of any third party
+including, but not limited to, Google or any mobile communications carrier.
+
+4.5 You agree that you are solely responsible for (and that Google has no responsibility to you or
+to any third party for) any data, content, or resources that you create, transmit or display through
+the Android platform and/or applications for the Android platform, and for the consequences of your
+actions (including any loss or damage which Google may suffer) by doing so.
+
+4.6 You agree that you are solely responsible for (and that Google has no responsibility to you or
+to any third party for) any breach of your obligations under this License Agreement, any applicable
+third party contract or Terms of Service, or any applicable law or regulation, and for the
+consequences (including any loss or damage which Google or any third party may suffer) of any such
+breach.
+
+5. Your Developer Credentials
+
+5.1 You agree that you are responsible for maintaining the confidentiality of any developer
+credentials that may be issued to you by Google or which you may choose yourself and that you will
+be solely responsible for all applications that are developed under your developer credentials.
+
+6. Privacy and Information
+
+6.1 In order to continually innovate and improve the SDK, Google may collect certain usage
+statistics from the software including but not limited to a unique identifier, associated IP
+address, version number of the software, and information on which tools and/or services in the SDK
+are being used and how they are being used. Before any of this information is collected, the SDK
+will notify you and seek your consent. If you withhold consent, the information will not be
+collected.
+
+6.2 The data collected is examined in the aggregate to improve the SDK and is maintained in
+accordance with Google's Privacy Policy.
+
+7. Third Party Applications for the Android Platform
+
+7.1 If you use the SDK to run applications developed by a third party or that access data, content
+or resources provided by a third party, you agree that Google is not responsible for those
+applications, data, content, or resources. You understand that all data, content or resources which
+you may access through such third party applications are the sole responsibility of the person from
+which they originated and that Google is not liable for any loss or damage that you may experience
+as a result of the use or access of any of those third party applications, data, content, or
+resources.
+
+7.2 You should be aware the data, content, and resources presented to you through such a third party
+application may be protected by intellectual property rights which are owned by the providers (or by
+other persons or companies on their behalf). You may not modify, rent, lease, loan, sell, distribute
+or create derivative works based on these data, content, or resources (either in whole or in part)
+unless you have been specifically given permission to do so by the relevant owners.
+
+7.3 You acknowledge that your use of such third party applications, data, content, or resources may
+be subject to separate terms between you and the relevant third party. In that case, this License
+Agreement does not affect your legal relationship with these third parties.
+
+8. Using Android APIs
+
+8.1 Google Data APIs
+
+8.1.1 If you use any API to retrieve data from Google, you acknowledge that the data may be
+protected by intellectual property rights which are owned by Google or those parties that provide
+the data (or by other persons or companies on their behalf). Your use of any such API may be subject
+to additional Terms of Service. You may not modify, rent, lease, loan, sell, distribute or create
+derivative works based on this data (either in whole or in part) unless allowed by the relevant
+Terms of Service.
+
+8.1.2 If you use any API to retrieve a user's data from Google, you acknowledge and agree that you
+shall retrieve data only with the user's explicit consent and only when, and for the limited
+purposes for which, the user has given you permission to do so.
+
+9. Terminating this License Agreement
+
+9.1 This License Agreement will continue to apply until terminated by either you or Google as set
+out below.
+
+9.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK
+and any relevant developer credentials.
+
+9.3 Google may at any time, terminate this License Agreement with you if:
+
+(A) you have breached any provision of this License Agreement; or
+
+(B) Google is required to do so by law; or
+
+(C) the partner with whom Google offered certain parts of SDK (such as APIs) to you has terminated
+its relationship with Google or ceased to offer certain parts of the SDK to you; or
+
+(D) Google decides to no longer providing the SDK or certain parts of the SDK to users in the
+country in which you are resident or from which you use the service, or the provision of the SDK or
+certain SDK services to you by Google is, in Google's sole discretion, no longer commercially
+viable.
+
+9.4 When this License Agreement comes to an end, all of the legal rights, obligations and
+liabilities that you and Google have benefited from, been subject to (or which have accrued over
+time whilst this License Agreement has been in force) or which are expressed to continue
+indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 14.7 shall
+continue to apply to such rights, obligations and liabilities indefinitely.
+
+10. DISCLAIMER OF WARRANTIES
+
+10.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE
+SDK IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND FROM GOOGLE.
+
+10.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE
+SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR
+COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.
+
+10.3 GOOGLE FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+11. LIMITATION OF LIABILITY
+
+11.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT GOOGLE, ITS SUBSIDIARIES AND AFFILIATES, AND ITS
+LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY
+LOSS OF DATA, WHETHER OR NOT GOOGLE OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN
+AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.
+
+12. Indemnification
+
+12.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless
+Google, its affiliates and their respective directors, officers, employees and agents from and
+against any and all claims, actions, suits or proceedings, as well as any and all losses,
+liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or
+accruing from (a) your use of the SDK, (b) any application you develop on the SDK that infringes any
+copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any
+person or defames any person or violates their rights of publicity or privacy, and (c) any
+non-compliance by you with this License Agreement.
+
+13. Changes to the License Agreement
+
+13.1 Google may make changes to the License Agreement as it distributes new versions of the SDK.
+When these changes are made, Google will make a new version of the License Agreement available on
+the website where the SDK is made available.
+
+14. General Legal Terms
+
+14.1 This License Agreement constitute the whole legal agreement between you and Google and govern
+your use of the SDK (excluding any services which Google may provide to you under a separate written
+agreement), and completely replace any prior agreements between you and Google in relation to the
+SDK.
+
+14.2 You agree that if Google does not exercise or enforce any legal right or remedy which is
+contained in this License Agreement (or which Google has the benefit of under any applicable law),
+this will not be taken to be a formal waiver of Google's rights and that those rights or remedies
+will still be available to Google.
+
+14.3 If any court of law, having the jurisdiction to decide on this matter, rules that any provision
+of this License Agreement is invalid, then that provision will be removed from this License
+Agreement without affecting the rest of this License Agreement. The remaining provisions of this
+License Agreement will continue to be valid and enforceable.
+
+14.4 You acknowledge and agree that each member of the group of companies of which Google is the
+parent shall be third party beneficiaries to this License Agreement and that such other companies
+shall be entitled to directly enforce, and rely upon, any provision of this License Agreement that
+confers a benefit on (or rights in favor of) them. Other than this, no other person or company shall
+be third party beneficiaries to this License Agreement.
+
+14.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO UNITED STATES EXPORT LAWS AND REGULATIONS. YOU MUST
+COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE
+LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.
+
+14.6 The rights granted in this License Agreement may not be assigned or transferred by either you
+or Google without the prior written approval of the other party. Neither you nor Google shall be
+permitted to delegate their responsibilities or obligations under this License Agreement without the
+prior written approval of the other party.
+
+14.7 This License Agreement, and your relationship with Google under this License Agreement, shall
+be governed by the laws of the State of California without regard to its conflict of laws
+provisions. You and Google agree to submit to the exclusive jurisdiction of the courts located
+within the county of Santa Clara, California to resolve any legal matter arising from this License
+Agreement. Notwithstanding this, you agree that Google shall still be allowed to apply for
+injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.
+
+April 10, 2009
+
+
+Android Common:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+Glide:
+
+Covers library/
+
+Copyright 2014 Google, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice, this list of
+ conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ of conditions and the following disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY GOOGLE, INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GOOGLE, INC. OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+The views and conclusions contained in the software and documentation are those of the
+authors and should not be interpreted as representing official policies, either expressed
+or implied, of Google, Inc.
+
+--------------------------------------------------------------------------
+Covers third_party/gif_decoder
+
+Copyright (c) 2013 Xcellent Creations, Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+--------------------------------------------------------------------------
+Covers third_party/disklrucache
+
+Copyright 2012 Jake Wharton
+Copyright 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.
+--------------------------------------------------------------------------
+Covers third_party/gif_encoder/AnimatedGifEncoder.java and
+third_party/gif_encoder/LZWEncoder.java:
+
+No copyright asserted on the source code of this class. May be used for any
+purpose, however, refer to the Unisys LZW patent for restrictions on use of
+the associated LZWEncoder class. Please forward any corrections to
+kweiner@fmsware.com.
+
+-----------------------------------------------------------------------------
+Covers third_party/gif_encoder/NeuQuant.java
+
+Copyright (c) 1994 Anthony Dekker
+
+NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994. See
+"Kohonen neural networks for optimal colour quantization" in "Network:
+Computation in Neural Systems" Vol. 5 (1994) pp 351-367. for a discussion of
+the algorithm.
+
+Any party obtaining a copy of these files from the author, directly or
+indirectly, is granted, free of charge, a full and unrestricted irrevocable,
+world-wide, paid up, royalty-free, nonexclusive right and license to deal in
+this software and documentation files (the "Software"), including without
+limitation the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to permit persons who
+receive copies from any such party to do so, with the only requirement being
+that this copyright notice remain intact.
+
+
+Guava JDK5:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+jibercsclient:
+
+These components
+ com.google.android.rcs.core,
+ com.google.android.rcs.core.utils.CaseInsensitiveMap,
+ com.google.android.rcs.core.utils.DateTime,
+ com.google.android.rcs.core.utils.InetAddresses,
+ com.google.android.rcs.core.network.ConnectivityMonitor,
+ com.google.android.rcs.client.PrivateDataStorage,
+ com.google.android.rcs.client.utils.FastXmlSerializer,
+ com.google.android.rcs.client.utils.XmlUtils,
+ com.google.android.rcs.client.utils.QueuedWork
+are licensed under Apache v2.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+===============================================================================
+
+These components
+ com.google.android.rcs.core.utils.FastBase64,
+ com.google.android.rcs.core.utils.LibraryLoaderHelper
+are licensed under BSD.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+libphonenumber:
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+shortcutbadger:
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+Volley:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+mime4j:
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+
+
+
+ THIS PRODUCT ALSO INCLUDES THIRD PARTY SOFTWARE REDISTRIBUTED UNDER THE
+ FOLLOWING LICENSES:
+
+ Apache Commons Logging,
+ The Apache Software License, Version 1.1 (commons-logging-1.1.1.jar)
+
+ The Apache Software License, Version 1.1
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ 3. The end-user documentation included with the redistribution,
+ if any, must include the following acknowledgment:
+ "This product includes software developed by the
+ Apache Software Foundation (http://www.apache.org/)."
+ Alternately, this acknowledgment may appear in the software itself,
+ if and wherever such third-party acknowledgments normally appear.
+
+ 4. The names "Apache" and "Apache Software Foundation" must
+ not be used to endorse or promote products derived from this
+ software without prior written permission. For written
+ permission, please contact apache@apache.org.
+
+ 5. Products derived from this software may not be called "Apache",
+ nor may "Apache" appear in their name, without prior written
+ permission of the Apache Software Foundation.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+
+ Test messages from the Perl-MIME-Tools project,
+
+ The "Artistic License"
+
+ Preamble
+
+ The intent of this document is to state the conditions under which a
+ Package may be copied, such that the Copyright Holder maintains some
+ semblance of artistic control over the development of the package,
+ while giving the users of the package the right to use and distribute
+ the Package in a more-or-less customary fashion, plus the right to make
+ reasonable modifications.
+
+ Definitions:
+
+ "Package" refers to the collection of files distributed by the
+ Copyright Holder, and derivatives of that collection of files
+ created through textual modification.
+
+ "Standard Version" refers to such a Package if it has not been
+ modified, or has been modified in accordance with the wishes
+ of the Copyright Holder as specified below.
+
+ "Copyright Holder" is whoever is named in the copyright or
+ copyrights for the package.
+
+ "You" is you, if you're thinking about copying or distributing
+ this Package.
+
+ "Reasonable copying fee" is whatever you can justify on the
+ basis of media cost, duplication charges, time of people involved,
+ and so on. (You will not be required to justify it to the
+ Copyright Holder, but only to the computing community at large
+ as a market that must bear the fee.)
+
+ "Freely Available" means that no fee is charged for the item
+ itself, though there may be fees involved in handling the item.
+ It also means that recipients of the item may redistribute it
+ under the same conditions they received it.
+
+ 1. You may make and give away verbatim copies of the source form of the
+ Standard Version of this Package without restriction, provided that you
+ duplicate all of the original copyright notices and associated disclaimers.
+
+ 2. You may apply bug fixes, portability fixes and other modifications
+ derived from the Public Domain or from the Copyright Holder. A Package
+ modified in such a way shall still be considered the Standard Version.
+
+ 3. You may otherwise modify your copy of this Package in any way, provided
+ that you insert a prominent notice in each changed file stating how and
+ when you changed that file, and provided that you do at least ONE of the
+ following:
+
+ a) place your modifications in the Public Domain or otherwise make them
+ Freely Available, such as by posting said modifications to Usenet or
+ an equivalent medium, or placing the modifications on a major archive
+ site such as uunet.uu.net, or by allowing the Copyright Holder to include
+ your modifications in the Standard Version of the Package.
+
+ b) use the modified Package only within your corporation or organization.
+
+ c) rename any non-standard executables so the names do not conflict
+ with standard executables, which must also be provided, and provide
+ a separate manual page for each non-standard executable that clearly
+ documents how it differs from the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+ 4. You may distribute the programs of this Package in object code or
+ executable form, provided that you do at least ONE of the following:
+
+ a) distribute a Standard Version of the executables and library files,
+ together with instructions (in the manual page or equivalent) on where
+ to get the Standard Version.
+
+ b) accompany the distribution with the machine-readable source of
+ the Package with your modifications.
+
+ c) give non-standard executables non-standard names, and clearly
+ document the differences in manual pages (or equivalent), together
+ with instructions on where to get the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+ 5. You may charge a reasonable copying fee for any distribution of this
+ Package. You may charge any fee you choose for support of this
+ Package. You may not charge a fee for this Package itself. However,
+ you may distribute this Package in aggregate with other (possibly
+ commercial) programs as part of a larger (possibly commercial) software
+ distribution provided that you do not advertise this Package as a
+ product of your own. You may embed this Package's interpreter within
+ an executable of yours (by linking); this shall be construed as a mere
+ form of aggregation, provided that the complete Standard Version of the
+ interpreter is so embedded.
+
+ 6. The scripts and library files supplied as input to or produced as
+ output from the programs of this Package do not automatically fall
+ under the copyright of this Package, but belong to whoever generated
+ them, and may be sold commercially, and may be aggregated with this
+ Package. If such scripts or library files are aggregated with this
+ Package via the so-called "undump" or "unexec" methods of producing a
+ binary executable image, then distribution of such an image shall
+ neither be construed as a distribution of this Package nor shall it
+ fall under the restrictions of Paragraphs 3 and 4, provided that you do
+ not represent such an executable image as a Standard Version of this
+ Package.
+
+ 7. C subroutines (or comparably compiled subroutines in other
+ languages) supplied by you and linked into this Package in order to
+ emulate subroutines and variables of the language defined by this
+ Package shall not be considered part of this Package, but are the
+ equivalent of input as in Paragraph 6, provided these subroutines do
+ not change the language in any way that would cause it to fail the
+ regression tests for the language.
+
+ 8. Aggregation of this Package with a commercial distribution is always
+ permitted provided that the use of this Package is embedded; that is,
+ when no overt attempt is made to make this Package's interfaces visible
+ to the end user of the commercial distribution. Such use shall not be
+ construed as a distribution of this Package.
+
+ 9. The name of the Copyright Holder may not be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+ The End
+
+
+
+
+Google Auto:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+Dagger:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+Error Prone:
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+J2ObjC:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+Apache Commons IO:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+JSR 250:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+JSR 305:
+
+Copyright (c) 2007-2009, JSR305 expert group
+All rights reserved.
+
+http://www.opensource.org/licenses/bsd-license.php
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of the JSR305 expert group nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+
+JSR 330:
+
+JSR-330
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+carrierservices, rcsclientlib:
+
+These components
+ com.google.android.rcs.core,
+ com.google.android.rcs.core.utils.CaseInsensitiveMap,
+ com.google.android.rcs.core.utils.DateTime,
+ com.google.android.rcs.core.utils.InetAddresses,
+ com.google.android.rcs.core.network.ConnectivityMonitor,
+ com.google.android.rcs.client.PrivateDataStorage,
+ com.google.android.rcs.client.utils.FastXmlSerializer,
+ com.google.android.rcs.client.utils.XmlUtils,
+ com.google.android.rcs.client.utils.QueuedWork
+are licensed under Apache v2.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+===============================================================================
+
+These components
+ com.google.android.rcs.core.utils.FastBase64,
+ com.google.android.rcs.core.utils.LibraryLoaderHelper
+are licensed under BSD.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+material_components, lib:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+Guava JDK7:
+
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
diff --git a/java/com/android/dialer/about/res/values-af/strings.xml b/java/com/android/dialer/about/res/values-af/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-af/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-am/strings.xml b/java/com/android/dialer/about/res/values-am/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-am/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ar/strings.xml b/java/com/android/dialer/about/res/values-ar/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ar/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-az/strings.xml b/java/com/android/dialer/about/res/values-az/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-az/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/about/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-be/strings.xml b/java/com/android/dialer/about/res/values-be/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-be/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-bg/strings.xml b/java/com/android/dialer/about/res/values-bg/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-bg/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-bn/strings.xml b/java/com/android/dialer/about/res/values-bn/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-bn/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-bs/strings.xml b/java/com/android/dialer/about/res/values-bs/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-bs/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ca/strings.xml b/java/com/android/dialer/about/res/values-ca/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ca/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-cs/strings.xml b/java/com/android/dialer/about/res/values-cs/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-cs/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-da/strings.xml b/java/com/android/dialer/about/res/values-da/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-da/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-de/strings.xml b/java/com/android/dialer/about/res/values-de/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-de/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-el/strings.xml b/java/com/android/dialer/about/res/values-el/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-el/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-en-rAU/strings.xml b/java/com/android/dialer/about/res/values-en-rAU/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-en-rAU/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-en-rGB/strings.xml b/java/com/android/dialer/about/res/values-en-rGB/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-en-rGB/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-en-rIN/strings.xml b/java/com/android/dialer/about/res/values-en-rIN/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-en-rIN/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-es-rUS/strings.xml b/java/com/android/dialer/about/res/values-es-rUS/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-es-rUS/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-es/strings.xml b/java/com/android/dialer/about/res/values-es/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-es/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-et/strings.xml b/java/com/android/dialer/about/res/values-et/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-et/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-eu/strings.xml b/java/com/android/dialer/about/res/values-eu/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-eu/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-fa/strings.xml b/java/com/android/dialer/about/res/values-fa/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-fa/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-fi/strings.xml b/java/com/android/dialer/about/res/values-fi/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-fi/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-fr-rCA/strings.xml b/java/com/android/dialer/about/res/values-fr-rCA/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-fr-rCA/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-fr/strings.xml b/java/com/android/dialer/about/res/values-fr/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-fr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-gl/strings.xml b/java/com/android/dialer/about/res/values-gl/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-gl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-gu/strings.xml b/java/com/android/dialer/about/res/values-gu/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-gu/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-hi/strings.xml b/java/com/android/dialer/about/res/values-hi/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-hi/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-hr/strings.xml b/java/com/android/dialer/about/res/values-hr/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-hr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-hu/strings.xml b/java/com/android/dialer/about/res/values-hu/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-hu/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-hy/strings.xml b/java/com/android/dialer/about/res/values-hy/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-hy/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-in/strings.xml b/java/com/android/dialer/about/res/values-in/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-in/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-is/strings.xml b/java/com/android/dialer/about/res/values-is/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-is/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-it/strings.xml b/java/com/android/dialer/about/res/values-it/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-it/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-iw/strings.xml b/java/com/android/dialer/about/res/values-iw/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-iw/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ja/strings.xml b/java/com/android/dialer/about/res/values-ja/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ja/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ka/strings.xml b/java/com/android/dialer/about/res/values-ka/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ka/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-kk/strings.xml b/java/com/android/dialer/about/res/values-kk/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-kk/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-km/strings.xml b/java/com/android/dialer/about/res/values-km/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-km/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-kn/strings.xml b/java/com/android/dialer/about/res/values-kn/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-kn/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ko/strings.xml b/java/com/android/dialer/about/res/values-ko/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ko/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ky/strings.xml b/java/com/android/dialer/about/res/values-ky/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ky/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-lo/strings.xml b/java/com/android/dialer/about/res/values-lo/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-lo/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-lt/strings.xml b/java/com/android/dialer/about/res/values-lt/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-lt/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-lv/strings.xml b/java/com/android/dialer/about/res/values-lv/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-lv/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-mk/strings.xml b/java/com/android/dialer/about/res/values-mk/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-mk/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ml/strings.xml b/java/com/android/dialer/about/res/values-ml/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ml/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-mn/strings.xml b/java/com/android/dialer/about/res/values-mn/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-mn/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-mr/strings.xml b/java/com/android/dialer/about/res/values-mr/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-mr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ms/strings.xml b/java/com/android/dialer/about/res/values-ms/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ms/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-my/strings.xml b/java/com/android/dialer/about/res/values-my/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-my/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-nb/strings.xml b/java/com/android/dialer/about/res/values-nb/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-nb/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ne/strings.xml b/java/com/android/dialer/about/res/values-ne/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ne/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-nl/strings.xml b/java/com/android/dialer/about/res/values-nl/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-nl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-no/strings.xml b/java/com/android/dialer/about/res/values-no/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-no/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pa/strings.xml b/java/com/android/dialer/about/res/values-pa/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pa/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pl/strings.xml b/java/com/android/dialer/about/res/values-pl/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pt-rBR/strings.xml b/java/com/android/dialer/about/res/values-pt-rBR/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pt-rBR/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pt-rPT/strings.xml b/java/com/android/dialer/about/res/values-pt-rPT/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pt-rPT/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-pt/strings.xml b/java/com/android/dialer/about/res/values-pt/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-pt/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ro/strings.xml b/java/com/android/dialer/about/res/values-ro/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ro/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ru/strings.xml b/java/com/android/dialer/about/res/values-ru/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ru/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-si/strings.xml b/java/com/android/dialer/about/res/values-si/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-si/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sk/strings.xml b/java/com/android/dialer/about/res/values-sk/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sk/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sl/strings.xml b/java/com/android/dialer/about/res/values-sl/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sq/strings.xml b/java/com/android/dialer/about/res/values-sq/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sq/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sr/strings.xml b/java/com/android/dialer/about/res/values-sr/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sv/strings.xml b/java/com/android/dialer/about/res/values-sv/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sv/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-sw/strings.xml b/java/com/android/dialer/about/res/values-sw/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-sw/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ta/strings.xml b/java/com/android/dialer/about/res/values-ta/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ta/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-te/strings.xml b/java/com/android/dialer/about/res/values-te/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-te/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-th/strings.xml b/java/com/android/dialer/about/res/values-th/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-th/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-tl/strings.xml b/java/com/android/dialer/about/res/values-tl/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-tl/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-tr/strings.xml b/java/com/android/dialer/about/res/values-tr/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-tr/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-uk/strings.xml b/java/com/android/dialer/about/res/values-uk/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-uk/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-ur/strings.xml b/java/com/android/dialer/about/res/values-ur/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-ur/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-uz/strings.xml b/java/com/android/dialer/about/res/values-uz/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-uz/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-vi/strings.xml b/java/com/android/dialer/about/res/values-vi/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-vi/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-zh-rCN/strings.xml b/java/com/android/dialer/about/res/values-zh-rCN/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-zh-rCN/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-zh-rHK/strings.xml b/java/com/android/dialer/about/res/values-zh-rHK/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-zh-rHK/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-zh-rTW/strings.xml b/java/com/android/dialer/about/res/values-zh-rTW/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-zh-rTW/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values-zu/strings.xml b/java/com/android/dialer/about/res/values-zu/strings.xml
new file mode 100644
index 000000000..ec60d0e6b
--- /dev/null
+++ b/java/com/android/dialer/about/res/values-zu/strings.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for build_version_label (3876300343684966840) -->
+ <skip />
+ <!-- no translation found for open_source_license_detail_label (2860076509914623912) -->
+ <skip />
+ <!-- no translation found for licenseActivityLabel (8258726177561826066) -->
+ <skip />
+ <!-- no translation found for privacy_policy_label (6567158248788870442) -->
+ <skip />
+ <!-- no translation found for terms_of_service_label (6788126078040996084) -->
+ <skip />
+</resources>
diff --git a/java/com/android/dialer/about/res/values/strings.xml b/java/com/android/dialer/about/res/values/strings.xml
new file mode 100644
index 000000000..be7697cf2
--- /dev/null
+++ b/java/com/android/dialer/about/res/values/strings.xml
@@ -0,0 +1,39 @@
+<resources>
+
+ <!-- Internal preferences key for displaying the build version -->
+ <string name="build_version_key" translatable="false">build_version</string>
+
+ <!-- Label shown in the About Phone screen for the build version [CHAR LIMIT=40]-->
+ <string name="build_version_label">Build version</string>
+
+ <!-- Internal preferences key for displaying the open source license
+ libraries -->
+ <string name="open_source_licenses_key" translatable="false">open_source_licenses</string>
+
+ <!-- Detail label text shown on the About Phone screen to supplement
+ @string/licenseActivityLabel -->
+ <string name="open_source_license_detail_label">License details for open source software</string>
+
+ <!-- Title for the activity that displays licenses for open source libraries used in the
+ application. -->
+ <string name="licenseActivityLabel">Open source licenses</string>
+
+ <!-- Internal preferences key for displaying the privacy policy -->
+ <string name="privacy_policy_key" translatable="false">privacy_policy</string>
+
+ <!-- Label shown on the About Phone screen for the privacy policy option [CHAR LIMIT=40]-->
+ <string name="privacy_policy_label">Privacy policy</string>
+
+ <!-- URL for privacy policy -->
+ <string name="privacy_policy_url" translatable="false">http://www.google.com/policies/privacy</string>
+
+ <!-- Label shown on the About Phone screen for the terms of service option [CHAR LIMIT=50]-->
+ <string name="terms_of_service_label">Terms of service</string>
+
+ <!-- Internal preferences key for displaying the terms of service-->
+ <string name="terms_of_service_key" translatable="false">terms_of_service</string>
+
+ <!-- URL for terms of service -->
+ <string name="terms_of_service_url" translatable="false">http://www.google.com/policies/terms</string>
+
+</resources>
diff --git a/java/com/android/dialer/about/res/xml/about_phone_fragment.xml b/java/com/android/dialer/about/res/xml/about_phone_fragment.xml
new file mode 100644
index 000000000..51f1d3eb0
--- /dev/null
+++ b/java/com/android/dialer/about/res/xml/about_phone_fragment.xml
@@ -0,0 +1,31 @@
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+ <Preference
+ android:key="@string/build_version_key"
+ android:persistent="false"
+ android:title="@string/build_version_label"/>
+
+ <Preference
+ android:key="@string/open_source_licenses_key"
+ android:persistent="false"
+ android:summary="@string/open_source_license_detail_label"
+ android:title="@string/licenseActivityLabel">
+ </Preference>
+
+ <Preference
+ android:key="@string/privacy_policy_key"
+ android:persistent="false"
+ android:title="@string/privacy_policy_label">
+ <intent
+ android:action="android.intent.action.VIEW"
+ android:data="@string/privacy_policy_url"/>
+ </Preference>
+
+ <Preference
+ android:key="@string/terms_of_service_key"
+ android:persistent="false"
+ android:title="@string/terms_of_service_label">
+ <intent
+ android:action="android.intent.action.VIEW"
+ android:data="@string/terms_of_service_url"/>
+ </Preference>
+</PreferenceScreen>
diff --git a/java/com/android/dialer/app/AndroidManifest.xml b/java/com/android/dialer/app/AndroidManifest.xml
index 5b7e75751..de4b48c51 100644
--- a/java/com/android/dialer/app/AndroidManifest.xml
+++ b/java/com/android/dialer/app/AndroidManifest.xml
@@ -55,7 +55,7 @@
<uses-sdk
android:minSdkVersion="23"
- android:targetSdkVersion="25"/>
+ android:targetSdkVersion="26"/>
<application android:theme="@style/Theme.AppCompat">
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 139f27af8..6e2c6be7d 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -18,6 +18,7 @@ package com.android.dialer.app;
import android.app.Fragment;
import android.app.FragmentTransaction;
+import android.app.KeyguardManager;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
@@ -379,12 +380,8 @@ public class DialtactsActivity extends TransactionSafeActivity
mSearchView.addTextChangedListener(mPhoneSearchQueryTextListener);
mVoiceSearchButton = searchEditTextLayout.findViewById(R.id.voice_search_button);
searchEditTextLayout
- .findViewById(R.id.search_magnifying_glass)
+ .findViewById(R.id.search_box_collapsed)
.setOnClickListener(mSearchViewOnClickListener);
- searchEditTextLayout
- .findViewById(R.id.search_box_start_search)
- .setOnClickListener(mSearchViewOnClickListener);
- searchEditTextLayout.setOnClickListener(mSearchViewOnClickListener);
searchEditTextLayout.setCallback(
new SearchEditTextLayout.Callback() {
@Override
@@ -505,8 +502,6 @@ public class DialtactsActivity extends TransactionSafeActivity
mVoiceSearchQuery = null;
}
- mFirstLaunch = false;
-
if (mIsRestarting) {
// This is only called when the activity goes from resumed -> paused -> resumed, so it
// will not cause an extra view to be sent out on rotation
@@ -522,33 +517,39 @@ public class DialtactsActivity extends TransactionSafeActivity
}
mFloatingActionButtonController.align(getFabAlignment(), false /* animate */);
- if (Calls.CONTENT_TYPE.equals(getIntent().getType())) {
- // Externally specified extras take precedence to EXTRA_SHOW_TAB, which is only
- // used internally.
- final Bundle extras = getIntent().getExtras();
- if (extras != null && extras.getInt(Calls.EXTRA_CALL_TYPE_FILTER) == Calls.VOICEMAIL_TYPE) {
- mListsFragment.showTab(DialtactsPagerAdapter.TAB_INDEX_VOICEMAIL);
- Logger.get(this).logImpression(DialerImpression.Type.VVM_NOTIFICATION_CLICKED);
- } else {
- mListsFragment.showTab(DialtactsPagerAdapter.TAB_INDEX_HISTORY);
+ if (mFirstLaunch) {
+ // Only process the Intent the first time onResume() is called after receiving it
+ if (Calls.CONTENT_TYPE.equals(getIntent().getType())) {
+ // Externally specified extras take precedence to EXTRA_SHOW_TAB, which is only
+ // used internally.
+ final Bundle extras = getIntent().getExtras();
+ if (extras != null && extras.getInt(Calls.EXTRA_CALL_TYPE_FILTER) == Calls.VOICEMAIL_TYPE) {
+ mListsFragment.showTab(DialtactsPagerAdapter.TAB_INDEX_VOICEMAIL);
+ Logger.get(this).logImpression(DialerImpression.Type.VVM_NOTIFICATION_CLICKED);
+ } else {
+ mListsFragment.showTab(DialtactsPagerAdapter.TAB_INDEX_HISTORY);
+ }
+ } else if (getIntent().hasExtra(EXTRA_SHOW_TAB)) {
+ int index =
+ getIntent().getIntExtra(EXTRA_SHOW_TAB, DialtactsPagerAdapter.TAB_INDEX_SPEED_DIAL);
+ if (index < mListsFragment.getTabCount()) {
+ // Hide dialpad since this is an explicit intent to show a specific tab, which is coming
+ // from missed call or voicemail notification.
+ hideDialpadFragment(false, false);
+ exitSearchUi();
+ mListsFragment.showTab(index);
+ }
}
- } else if (getIntent().hasExtra(EXTRA_SHOW_TAB)) {
- int index =
- getIntent().getIntExtra(EXTRA_SHOW_TAB, DialtactsPagerAdapter.TAB_INDEX_SPEED_DIAL);
- if (index < mListsFragment.getTabCount()) {
- // Hide dialpad since this is an explicit intent to show a specific tab, which is coming
- // from missed call or voicemail notification.
- hideDialpadFragment(false, false);
- exitSearchUi();
- mListsFragment.showTab(index);
+
+ if (getIntent().getBooleanExtra(EXTRA_CLEAR_NEW_VOICEMAILS, false)) {
+ CallLogNotificationsService.markNewVoicemailsAsOld(this, null);
}
}
- if (getIntent().getBooleanExtra(EXTRA_CLEAR_NEW_VOICEMAILS, false)) {
- CallLogNotificationsService.markNewVoicemailsAsOld(this, null);
- }
+ mFirstLaunch = false;
setSearchBoxHint();
+ timeTabSelected = SystemClock.elapsedRealtime();
mP13nLogger.reset();
mP13nRanker.refresh(
@@ -586,7 +587,10 @@ public class DialtactsActivity extends TransactionSafeActivity
SystemClock.elapsedRealtime() - timeTabSelected >= HISTORY_TAB_SEEN_TIMEOUT;
boolean isOnHistoryTab =
mListsFragment.getCurrentTabIndex() == DialtactsPagerAdapter.TAB_INDEX_HISTORY;
- if (isOnHistoryTab && timeoutElapsed && !isChangingConfigurations()) {
+ if (isOnHistoryTab
+ && timeoutElapsed
+ && !isChangingConfigurations()
+ && !getSystemService(KeyguardManager.class).isKeyguardLocked()) {
mListsFragment.markMissedCallsAsReadAndRemoveNotifications();
}
}
@@ -857,7 +861,10 @@ public class DialtactsActivity extends TransactionSafeActivity
/** Finishes hiding the dialpad fragment after any animations are completed. */
private void commitDialpadFragmentHide() {
- if (!mStateSaved && mDialpadFragment != null && !mDialpadFragment.isHidden()) {
+ if (!mStateSaved
+ && mDialpadFragment != null
+ && !mDialpadFragment.isHidden()
+ && !isDestroyed()) {
final FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.hide(mDialpadFragment);
ft.commit();
@@ -1006,6 +1013,7 @@ public class DialtactsActivity extends TransactionSafeActivity
@Override
public void onNewIntent(Intent newIntent) {
setIntent(newIntent);
+ mFirstLaunch = true;
mStateSaved = false;
displayFragment(newIntent);
@@ -1480,7 +1488,7 @@ public class DialtactsActivity extends TransactionSafeActivity
Menu menu = getMenu();
MenuItem clearFrequents = menu.findItem(R.id.menu_clear_frequents);
clearFrequents.setVisible(
- PermissionsUtil.hasContactsPermissions(DialtactsActivity.this)
+ PermissionsUtil.hasContactsReadPermissions(DialtactsActivity.this)
&& mListsFragment != null
&& mListsFragment.hasFrequents());
diff --git a/java/com/android/dialer/app/calllog/BlockReportSpamListener.java b/java/com/android/dialer/app/calllog/BlockReportSpamListener.java
index 740d6b361..28082df2b 100644
--- a/java/com/android/dialer/app/calllog/BlockReportSpamListener.java
+++ b/java/com/android/dialer/app/calllog/BlockReportSpamListener.java
@@ -20,6 +20,7 @@ import android.app.FragmentManager;
import android.content.ContentValues;
import android.content.Context;
import android.net.Uri;
+import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import com.android.dialer.blocking.BlockReportSpamDialogs;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
@@ -55,7 +56,7 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic
final String number,
final String countryIso,
final int callType,
- final ContactSource.Type contactSourceType) {
+ @NonNull final ContactSource.Type contactSourceType) {
BlockReportSpamDialogs.BlockReportSpamDialogFragment.newInstance(
displayNumber,
Spam.get(mContext).isDialogReportSpamCheckedByDefault(),
@@ -99,7 +100,7 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic
final String number,
final String countryIso,
final int callType,
- final ContactSource.Type contactSourceType) {
+ @NonNull final ContactSource.Type contactSourceType) {
BlockReportSpamDialogs.BlockDialogFragment.newInstance(
displayNumber,
Spam.get(mContext).isSpamEnabled(),
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index d4872d5b3..2f8a58c8a 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -77,6 +77,7 @@ import com.android.dialer.enrichedcall.historyquery.proto.HistoryResult;
import com.android.dialer.lightbringer.Lightbringer;
import com.android.dialer.lightbringer.LightbringerComponent;
import com.android.dialer.lightbringer.LightbringerListener;
+import com.android.dialer.logging.ContactSource;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.phonenumbercache.CallLogQuery;
@@ -107,6 +108,9 @@ public class CallLogAdapter extends GroupingListAdapter
public static final String LOAD_DATA_TASK_IDENTIFIER = "load_data";
+ public static final String ENABLE_CALL_LOG_MULTI_SELECT = "enable_call_log_multiselect";
+ public static final boolean ENABLE_CALL_LOG_MULTI_SELECT_FLAG = false;
+
protected final Activity mActivity;
protected final VoicemailPlaybackPresenter mVoicemailPlaybackPresenter;
/** Cache for repeated requests to Telecom/Telephony. */
@@ -177,13 +181,14 @@ public class CallLogAdapter extends GroupingListAdapter
}
};
+ // Todo (uabdullah): Use plurals http://b/37751831
private void showDeleteSelectedItemsDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);
Assert.checkArgument(selectedItems.size() > 0);
String voicemailString =
selectedItems.size() == 1
? mActivity.getResources().getString(R.string.voicemailMultiSelectVoicemail)
- : mActivity.getResources().getString(R.string.voicemailMultiSelectVoicemail);
+ : mActivity.getResources().getString(R.string.voicemailMultiSelectVoicemails);
String deleteVoicemailTitle =
mActivity
.getResources()
@@ -226,16 +231,17 @@ public class CallLogAdapter extends GroupingListAdapter
@Override
public boolean onLongClick(View v) {
if (ConfigProviderBindings.get(v.getContext())
- .getBoolean("enable_call_log_multiselect", true)
+ .getBoolean(ENABLE_CALL_LOG_MULTI_SELECT, ENABLE_CALL_LOG_MULTI_SELECT_FLAG)
&& mVoicemailPlaybackPresenter != null) {
- if (v.getId() == R.id.primary_action_view) {
+ if (v.getId() == R.id.primary_action_view || v.getId() == R.id.quick_contact_photo) {
if (mActionMode == null) {
mActionMode = v.startActionMode(mActionModeCallback);
}
CallLogListItemViewHolder viewHolder = (CallLogListItemViewHolder) v.getTag();
viewHolder.quickContactView.setVisibility(View.GONE);
viewHolder.checkBoxView.setVisibility(View.VISIBLE);
- return false;
+ mExpandCollapseListener.onClick(v);
+ return true;
}
}
return true;
@@ -370,7 +376,7 @@ public class CallLogAdapter extends GroupingListAdapter
mContactInfoCache = contactInfoCache;
- if (!PermissionsUtil.hasContactsPermissions(activity)) {
+ if (!PermissionsUtil.hasContactsReadPermissions(activity)) {
mContactInfoCache.disableRequestProcessing();
}
@@ -522,6 +528,7 @@ public class CallLogAdapter extends GroupingListAdapter
viewHolder.callLogEntryView.setTag(viewHolder);
viewHolder.primaryActionView.setTag(viewHolder);
+ viewHolder.quickContactView.setTag(viewHolder);
return viewHolder;
}
@@ -630,7 +637,7 @@ public class CallLogAdapter extends GroupingListAdapter
@Override
protected Boolean doInBackground(Void... params) {
views.blockId =
- mFilteredNumberAsyncQueryHandler.getBlockedIdSynchronousForCalllogOnly(
+ mFilteredNumberAsyncQueryHandler.getBlockedIdSynchronous(
views.number, views.countryIso);
details.isBlocked = views.blockId != null;
if (isCancelled()) {
@@ -872,14 +879,25 @@ public class CallLogAdapter extends GroupingListAdapter
}
views.info = info;
- views.numberType =
- (String)
- Phone.getTypeLabel(mActivity.getResources(), details.numberType, details.numberLabel);
+ views.numberType = getNumberType(mActivity.getResources(), details);
mCallLogListItemHelper.updatePhoneCallDetails(details);
return true;
}
+ private static String getNumberType(Resources res, PhoneCallDetails details) {
+ // Label doesn't make much sense if the information is coming from CNAP or Cequint Caller ID.
+ if (details.sourceType == ContactSource.Type.SOURCE_TYPE_CNAP
+ || details.sourceType == ContactSource.Type.SOURCE_TYPE_CEQUINT_CALLER_ID) {
+ return "";
+ }
+ // Returns empty label instead of "custom" if the custom label is empty.
+ if (details.numberType == Phone.TYPE_CUSTOM && TextUtils.isEmpty(details.numberLabel)) {
+ return "";
+ }
+ return (String) Phone.getTypeLabel(res, details.numberType, details.numberLabel);
+ }
+
/**
* Render item view given position. This is running on UI thread so DO NOT put any expensive
* operation into it.
diff --git a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
index 2aedb6f17..a58357448 100644
--- a/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
+++ b/java/com/android/dialer/app/calllog/CallLogAsyncTaskUtil.java
@@ -83,12 +83,7 @@ public class CallLogAsyncTaskUtil {
new AsyncTask<Void, Void, Void>() {
@Override
public Void doInBackground(Void... params) {
- ContentValues values = new ContentValues();
- values.put(Voicemails.DELETED, "1");
- context.getContentResolver().update(voicemailUri, values, null, null);
- // TODO(b/35440541): check which source package is changed. Don't need
- // to upload changes on foreign voicemails, they will get a PROVIDER_CHANGED
- uploadVoicemailLocalChangesToServer(context);
+ deleteVoicemailSynchronous(context, voicemailUri);
return null;
}
@@ -101,6 +96,15 @@ public class CallLogAsyncTaskUtil {
});
}
+ public static void deleteVoicemailSynchronous(Context context, Uri voicemailUri) {
+ ContentValues values = new ContentValues();
+ values.put(Voicemails.DELETED, "1");
+ context.getContentResolver().update(voicemailUri, values, null, null);
+ // TODO(b/35440541): check which source package is changed. Don't need
+ // to upload changes on foreign voicemails, they will get a PROVIDER_CHANGED
+ uploadVoicemailLocalChangesToServer(context);
+ }
+
public static void markCallAsRead(@NonNull final Context context, @NonNull final long[] callIds) {
if (!PermissionsUtil.hasPhonePermissions(context)) {
return;
diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java
index fcc34ebef..6e4b23fc1 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -41,7 +41,6 @@ import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import com.android.contacts.common.GeoUtil;
import com.android.dialer.app.Bindings;
import com.android.dialer.app.R;
import com.android.dialer.app.calllog.calllogcache.CallLogCache;
@@ -56,6 +55,7 @@ import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.database.CallLogQueryHandler;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.phonenumbercache.ContactInfoHelper;
import com.android.dialer.util.PermissionsUtil;
@@ -200,9 +200,18 @@ public class CallLogFragment extends Fragment
final ContentResolver resolver = activity.getContentResolver();
mCallLogQueryHandler = new CallLogQueryHandler(activity, resolver, this, mLogLimit);
mKeyguardManager = (KeyguardManager) activity.getSystemService(Context.KEYGUARD_SERVICE);
- resolver.registerContentObserver(CallLog.CONTENT_URI, true, mCallLogObserver);
- resolver.registerContentObserver(
- ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
+
+ if (PermissionsUtil.hasCallLogReadPermissions(getContext())) {
+ resolver.registerContentObserver(CallLog.CONTENT_URI, true, mCallLogObserver);
+ } else {
+ LogUtil.w("CallLogFragment.onCreate", "call log permission not available");
+ }
+ if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+ resolver.registerContentObserver(
+ ContactsContract.Contacts.CONTENT_URI, true, mContactsObserver);
+ } else {
+ LogUtil.w("CallLogFragment.onCreate", "contacts permission not available.");
+ }
setHasOptionsMenu(true);
}
@@ -376,6 +385,7 @@ public class CallLogFragment extends Fragment
super.onStop();
mAdapter.onStop();
+ mContactInfoCache.stop();
}
@Override
@@ -398,8 +408,6 @@ public class CallLogFragment extends Fragment
outState.putBoolean(KEY_HAS_READ_CALL_LOG_PERMISSION, mHasReadCallLogPermission);
outState.putBoolean(KEY_REFRESH_DATA_REQUIRED, mRefreshDataRequired);
- mContactInfoCache.stop();
-
mAdapter.onSaveInstanceState(outState);
}
@@ -495,7 +503,7 @@ public class CallLogFragment extends Fragment
if (mKeyguardManager != null
&& !mKeyguardManager.inKeyguardRestrictedInputMode()
&& mCallTypeFilter == Calls.VOICEMAIL_TYPE) {
- CallLogNotificationsQueryHelper.updateVoicemailNotifications(getActivity());
+ CallLogNotificationsService.markNewVoicemailsAsOld(getActivity(), null);
}
}
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index b57f9b04a..1daccd1a4 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -26,6 +26,7 @@ import android.provider.CallLog;
import android.provider.CallLog.Calls;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
@@ -59,6 +60,7 @@ import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.callcomposer.CallComposerActivity;
import com.android.dialer.callcomposer.CallComposerContact;
import com.android.dialer.calldetails.CallDetailsEntries;
+import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.CompatUtils;
import com.android.dialer.lightbringer.Lightbringer;
@@ -182,7 +184,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
* The name or number associated with the call. Cached here for use when setting content
* descriptions on buttons in the actions ViewStub when it is inflated.
*/
- public CharSequence nameOrNumber;
+ @Nullable public CharSequence nameOrNumber;
/**
* The call type or Location associated with the call. Cached here for use when setting text for a
* voicemail log's call button
@@ -255,8 +257,13 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
}
primaryActionButtonView.setOnClickListener(this);
primaryActionView.setOnClickListener(mExpandCollapseListener);
- if (mVoicemailPlaybackPresenter != null) {
+ if (mVoicemailPlaybackPresenter != null
+ && ConfigProviderBindings.get(mContext)
+ .getBoolean(
+ CallLogAdapter.ENABLE_CALL_LOG_MULTI_SELECT,
+ CallLogAdapter.ENABLE_CALL_LOG_MULTI_SELECT_FLAG)) {
primaryActionView.setOnLongClickListener(longPressListener);
+ quickContactView.setOnLongClickListener(longPressListener);
} else {
primaryActionView.setOnCreateContextMenuListener(this);
}
@@ -808,7 +815,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder
if (info.lookupUri != null) {
contact.setContactUri(info.lookupUri.toString());
}
- contact.setNameOrNumber((String) nameOrNumber);
+ if (nameOrNumber != null) {
+ contact.setNameOrNumber((String) nameOrNumber);
+ }
contact.setContactType(getContactType());
contact.setNumber(number);
/* second line of contact view. */
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java b/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
index c08d2c02b..0b4da7521 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsActivity.java
@@ -57,7 +57,7 @@ public class CallLogNotificationsActivity extends AppCompatActivity {
String action = intent.getAction();
switch (action) {
case ACTION_SEND_SMS_FROM_MISSED_CALL_NOTIFICATION:
- MissedCallNotifier.getInstance(this)
+ MissedCallNotifier.getIstance(this)
.sendSmsFromMissedCall(
intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER), intent.getData());
break;
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
index 79a32afe3..e169b8de9 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java
@@ -32,10 +32,10 @@ import android.support.annotation.WorkerThread;
import android.support.v4.os.UserManagerCompat;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
-import com.android.contacts.common.GeoUtil;
import com.android.dialer.app.R;
import com.android.dialer.calllogutils.PhoneNumberDisplayUtil;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.notification.GroupedNotificationUtil;
import com.android.dialer.phonenumbercache.ContactInfo;
import com.android.dialer.phonenumbercache.ContactInfoHelper;
@@ -114,11 +114,6 @@ public class CallLogNotificationsQueryHelper {
MissedCallNotifier.NOTIFICATION_TAG);
}
- /** Update the voice mail notifications. */
- public static void updateVoicemailNotifications(Context context) {
- CallLogNotificationsService.updateVoicemailNotifications(context);
- }
-
/** Create a new instance of {@link NewCallsQuery}. */
public static NewCallsQuery createNewCallsQuery(
Context context, ContentResolver contentResolver) {
diff --git a/java/com/android/dialer/app/calllog/CallLogNotificationsService.java b/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
index f67837f8a..7dfd2cb69 100644
--- a/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
+++ b/java/com/android/dialer/app/calllog/CallLogNotificationsService.java
@@ -26,7 +26,6 @@ import android.support.annotation.Nullable;
import com.android.dialer.common.LogUtil;
import com.android.dialer.telecom.TelecomUtil;
import com.android.dialer.util.PermissionsUtil;
-import me.leolin.shortcutbadger.ShortcutBadger;
/**
* Provides operations for managing call-related notifications.
@@ -47,17 +46,6 @@ public class CallLogNotificationsService extends IntentService {
/** Action to mark all the new voicemails as old. */
public static final String ACTION_MARK_NEW_VOICEMAILS_AS_OLD =
"com.android.dialer.calllog.ACTION_MARK_NEW_VOICEMAILS_AS_OLD";
- /** Action to update voicemail notifications. */
- public static final String ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS =
- "com.android.dialer.calllog.UPDATE_VOICEMAIL_NOTIFICATIONS";
- /**
- * 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 =
@@ -72,22 +60,6 @@ public class CallLogNotificationsService extends IntentService {
"com.android.dialer.calllog.CALL_BACK_FROM_MISSED_CALL_NOTIFICATION";
/**
- * Extra to be included with {@link #ACTION_UPDATE_MISSED_CALL_NOTIFICATIONS} 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";
-
- /**
* Extra to be included with {@link #ACTION_INCOMING_POST_CALL} to represent a post call note.
*
* <p>It must be a {@link String}
@@ -109,40 +81,6 @@ public class CallLogNotificationsService extends IntentService {
super("CallLogNotificationsService");
}
- /**
- * Updates notifications for any new voicemails.
- *
- * @param context a valid context.
- */
- public static void updateVoicemailNotifications(Context context) {
- if (!TelecomUtil.isDefaultDialer(context)) {
- LogUtil.i(
- "CallLogNotificationsService.updateVoicemailNotifications",
- "not default dialer, ignoring voicemail notifications");
- return;
- }
- if (TelecomUtil.hasReadWriteVoicemailPermissions(context)) {
- Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
- serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS);
- 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);
- }
-
public static void insertPostCallNote(Context context, String number, String postCallNote) {
Intent serviceIntent = new Intent(context, CallLogNotificationsService.class);
serviceIntent.setAction(ACTION_INCOMING_POST_CALL);
@@ -165,16 +103,6 @@ public class CallLogNotificationsService extends IntentService {
context.startService(serviceIntent);
}
- public static boolean updateBadgeCount(Context context, int count) {
- boolean success = ShortcutBadger.applyCount(context, count);
- LogUtil.i(
- "CallLogNotificationsService.updateBadgeCount",
- "update badge count: %d success: %b",
- count,
- success);
- return success;
- }
-
@Override
protected void onHandleIntent(Intent intent) {
if (intent == null) {
@@ -200,28 +128,21 @@ public class CallLogNotificationsService extends IntentService {
mVoicemailQueryHandler.markNewVoicemailsAsOld(intent.getData());
});
break;
- case ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS:
- DefaultVoicemailNotifier.getInstance(this).updateNotification();
- 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);
- updateBadgeCount(this, count);
- break;
case ACTION_INCOMING_POST_CALL:
String note = intent.getStringExtra(EXTRA_POST_CALL_NOTE);
String phoneNumber = intent.getStringExtra(EXTRA_POST_CALL_NUMBER);
- MissedCallNotifier.getInstance(this).insertPostCallNotification(phoneNumber, note);
+ MissedCallNotifier.getIstance(this).insertPostCallNotification(phoneNumber, note);
break;
case ACTION_MARK_NEW_MISSED_CALLS_AS_OLD:
CallLogNotificationsQueryHelper.removeMissedCallNotifications(this, intent.getData());
TelecomUtil.cancelMissedCallsNotification(this);
break;
case ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION:
- MissedCallNotifier.getInstance(this)
+ MissedCallNotifier.getIstance(this)
.callBackFromMissedCall(
- intent.getStringExtra(EXTRA_MISSED_CALL_NUMBER), intent.getData());
+ intent.getStringExtra(
+ MissedCallNotificationReceiver.EXTRA_NOTIFICATION_PHONE_NUMBER),
+ intent.getData());
break;
default:
LogUtil.d("CallLogNotificationsService.onHandleIntent", "could not handle: " + intent);
diff --git a/java/com/android/dialer/app/calllog/CallLogReceiver.java b/java/com/android/dialer/app/calllog/CallLogReceiver.java
index 8fd1502bc..172d00100 100644
--- a/java/com/android/dialer/app/calllog/CallLogReceiver.java
+++ b/java/com/android/dialer/app/calllog/CallLogReceiver.java
@@ -38,9 +38,11 @@ public class CallLogReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
if (VoicemailContract.ACTION_NEW_VOICEMAIL.equals(intent.getAction())) {
checkVoicemailStatus(context);
- CallLogNotificationsService.updateVoicemailNotifications(context);
+ PendingResult pendingResult = goAsync();
+ DefaultVoicemailNotifier.updateVoicemailNotifications(context, pendingResult::finish);
} else if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
- CallLogNotificationsService.updateVoicemailNotifications(context);
+ PendingResult pendingResult = goAsync();
+ DefaultVoicemailNotifier.updateVoicemailNotifications(context, pendingResult::finish);
} else {
LogUtil.w("CallLogReceiver.onReceive", "could not handle: " + intent);
}
diff --git a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
index 0007d1863..58fe6fa2c 100644
--- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
+++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java
@@ -31,6 +31,7 @@ import android.os.PersistableBundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
+import android.support.annotation.WorkerThread;
import android.support.v4.os.BuildCompat;
import android.support.v4.util.Pair;
import android.telecom.PhoneAccount;
@@ -48,21 +49,25 @@ import com.android.dialer.app.R;
import com.android.dialer.app.calllog.CallLogNotificationsQueryHelper.NewCall;
import com.android.dialer.app.contactinfo.ContactPhotoLoader;
import com.android.dialer.app.list.DialtactsPagerAdapter;
+import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.calllogutils.PhoneAccountUtils;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.common.concurrent.DialerExecutors;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.notification.NotificationChannelManager;
import com.android.dialer.notification.NotificationChannelManager.Channel;
import com.android.dialer.phonenumbercache.ContactInfo;
+import com.android.dialer.telecom.TelecomUtil;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/** Shows a voicemail notification in the status bar. */
-public class DefaultVoicemailNotifier {
+public class DefaultVoicemailNotifier implements Worker<Void, Void> {
public static final String TAG = "VoicemailNotifier";
@@ -76,17 +81,30 @@ public class DefaultVoicemailNotifier {
private final Context context;
private final CallLogNotificationsQueryHelper queryHelper;
+ private final FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler;
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
- DefaultVoicemailNotifier(Context context, CallLogNotificationsQueryHelper queryHelper) {
+ DefaultVoicemailNotifier(
+ Context context,
+ CallLogNotificationsQueryHelper queryHelper,
+ FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler) {
this.context = context;
this.queryHelper = queryHelper;
+ this.filteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler;
}
- /** Returns an instance of {@link DefaultVoicemailNotifier}. */
- public static DefaultVoicemailNotifier getInstance(Context context) {
- return new DefaultVoicemailNotifier(
- context, CallLogNotificationsQueryHelper.getInstance(context));
+ public DefaultVoicemailNotifier(Context context) {
+ this(
+ context,
+ CallLogNotificationsQueryHelper.getInstance(context),
+ new FilteredNumberAsyncQueryHandler(context));
+ }
+
+ @Nullable
+ @Override
+ public Void doInBackground(@Nullable Void input) throws Throwable {
+ updateNotification();
+ return null;
}
/**
@@ -97,7 +115,10 @@ public class DefaultVoicemailNotifier {
*
* <p>It is not safe to call this method from the main thread.
*/
- public void updateNotification() {
+ @VisibleForTesting
+ @WorkerThread
+ void updateNotification() {
+ Assert.isWorkerThread();
// Lookup the list of new voicemails to include in the notification.
final List<NewCall> newCalls = queryHelper.getNewVoicemails();
@@ -121,13 +142,15 @@ public class DefaultVoicemailNotifier {
NewCall newCall = itr.next();
// Skip notifying for numbers which are blocked.
- if (FilteredNumbersUtil.shouldBlockVoicemail(
- context, newCall.number, newCall.countryIso, newCall.dateMs)) {
+ if (!FilteredNumbersUtil.hasRecentEmergencyCall(context)
+ && filteredNumberAsyncQueryHandler.getBlockedIdSynchronous(
+ newCall.number, newCall.countryIso)
+ != null) {
itr.remove();
if (newCall.voicemailUri != null) {
// Delete the voicemail.
- context.getContentResolver().delete(newCall.voicemailUri, null, null);
+ CallLogAsyncTaskUtil.deleteVoicemailSynchronous(context, newCall.voicemailUri);
}
continue;
}
@@ -165,6 +188,10 @@ public class DefaultVoicemailNotifier {
.setGroupSummary(true)
.setContentIntent(newVoicemailIntent(null));
+ if (BuildCompat.isAtLeastO()) {
+ groupSummary.setGroupAlertBehavior(Notification.GROUP_ALERT_CHILDREN);
+ }
+
NotificationChannelManager.applyChannel(
groupSummary,
context,
@@ -379,4 +406,41 @@ public class DefaultVoicemailNotifier {
intent.putExtra(DialtactsActivity.EXTRA_CLEAR_NEW_VOICEMAILS, true);
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
+
+ /**
+ * Updates the voicemail notifications displayed.
+ *
+ * @param runnable Called when the async update task completes no matter if it succeeds or fails.
+ * May be null.
+ */
+ static void updateVoicemailNotifications(Context context, Runnable runnable) {
+ if (!TelecomUtil.isDefaultDialer(context)) {
+ LogUtil.i(
+ "DefaultVoicemailNotifier.updateVoicemailNotifications",
+ "not default dialer, not scheduling update to voicemail notifications");
+ return;
+ }
+
+ DialerExecutors.createNonUiTaskBuilder(new DefaultVoicemailNotifier(context))
+ .onSuccess(
+ output -> {
+ LogUtil.i(
+ "DefaultVoicemailNotifier.updateVoicemailNotifications",
+ "update voicemail notifications successful");
+ if (runnable != null) {
+ runnable.run();
+ }
+ })
+ .onFailure(
+ throwable -> {
+ LogUtil.i(
+ "DefaultVoicemailNotifier.updateVoicemailNotifications",
+ "update voicemail notifications failed");
+ if (runnable != null) {
+ runnable.run();
+ }
+ })
+ .build()
+ .executeParallel(null);
+ }
}
diff --git a/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java b/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
index 3a202034e..65bb6fa57 100644
--- a/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
+++ b/java/com/android/dialer/app/calllog/MissedCallNotificationReceiver.java
@@ -13,11 +13,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package com.android.dialer.app.calllog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.support.v4.util.Pair;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutors;
+import me.leolin.shortcutbadger.ShortcutBadger;
/**
* Receives broadcasts that should trigger a refresh of the missed call notification. This includes
@@ -44,7 +49,36 @@ public class MissedCallNotificationReceiver extends BroadcastReceiver {
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);
+ String phoneNumber = intent.getStringExtra(EXTRA_NOTIFICATION_PHONE_NUMBER);
+
+ PendingResult pendingResult = goAsync();
+
+ DialerExecutors.createNonUiTaskBuilder(MissedCallNotifier.getIstance(context))
+ .onSuccess(
+ output -> {
+ LogUtil.i(
+ "MissedCallNotificationReceiver.onReceive",
+ "update missed call notifications successful");
+ updateBadgeCount(context, count);
+ pendingResult.finish();
+ })
+ .onFailure(
+ throwable -> {
+ LogUtil.i(
+ "MissedCallNotificationReceiver.onReceive",
+ "update missed call notifications failed");
+ pendingResult.finish();
+ })
+ .build()
+ .executeParallel(new Pair<>(count, phoneNumber));
+ }
+
+ private static void updateBadgeCount(Context context, int count) {
+ boolean success = ShortcutBadger.applyCount(context, count);
+ LogUtil.i(
+ "MissedCallNotificationReceiver.updateBadgeCount",
+ "update badge count: %d success: %b",
+ count,
+ success);
}
}
diff --git a/java/com/android/dialer/app/calllog/MissedCallNotifier.java b/java/com/android/dialer/app/calllog/MissedCallNotifier.java
index de07bb437..dd13298bc 100644
--- a/java/com/android/dialer/app/calllog/MissedCallNotifier.java
+++ b/java/com/android/dialer/app/calllog/MissedCallNotifier.java
@@ -31,6 +31,7 @@ import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.support.annotation.WorkerThread;
import android.support.v4.os.UserManagerCompat;
+import android.support.v4.util.Pair;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
@@ -44,6 +45,7 @@ import com.android.dialer.app.list.DialtactsPagerAdapter;
import com.android.dialer.callintent.CallInitiationType;
import com.android.dialer.callintent.CallIntentBuilder;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
import com.android.dialer.notification.NotificationChannelManager;
import com.android.dialer.notification.NotificationChannelManager.Channel;
import com.android.dialer.phonenumbercache.ContactInfo;
@@ -55,7 +57,7 @@ import java.util.List;
import java.util.Set;
/** Creates a notification for calls that the user missed (neither answered nor rejected). */
-public class MissedCallNotifier {
+public class MissedCallNotifier implements Worker<Pair<Integer, String>, Void> {
/** The tag used to identify notifications from this class. */
static final String NOTIFICATION_TAG = "MissedCallNotifier";
@@ -72,11 +74,15 @@ public class MissedCallNotifier {
this.callLogNotificationsQueryHelper = callLogNotificationsQueryHelper;
}
- /** Returns an instance of {@link MissedCallNotifier}. */
- public static MissedCallNotifier getInstance(Context context) {
- CallLogNotificationsQueryHelper callLogNotificationsQueryHelper =
- CallLogNotificationsQueryHelper.getInstance(context);
- return new MissedCallNotifier(context, callLogNotificationsQueryHelper);
+ static MissedCallNotifier getIstance(Context context) {
+ return new MissedCallNotifier(context, CallLogNotificationsQueryHelper.getInstance(context));
+ }
+
+ @Nullable
+ @Override
+ public Void doInBackground(@Nullable Pair<Integer, String> input) throws Throwable {
+ updateMissedCallNotification(input.first, input.second);
+ return null;
}
/**
@@ -88,8 +94,9 @@ public class MissedCallNotifier {
* @param number the phone number of the most recent call to display if the call log cannot be
* accessed. May be null if unknown.
*/
+ @VisibleForTesting
@WorkerThread
- public void updateMissedCallNotification(int count, @Nullable String number) {
+ void updateMissedCallNotification(int count, @Nullable String number) {
final int titleResId;
CharSequence expandedText; // The text in the notification's line 1 and 2.
@@ -375,7 +382,7 @@ public class MissedCallNotifier {
private PendingIntent createCallBackPendingIntent(String number, @NonNull Uri callUri) {
Intent intent = new Intent(context, CallLogNotificationsService.class);
intent.setAction(CallLogNotificationsService.ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION);
- intent.putExtra(CallLogNotificationsService.EXTRA_MISSED_CALL_NUMBER, number);
+ intent.putExtra(MissedCallNotificationReceiver.EXTRA_NOTIFICATION_PHONE_NUMBER, number);
intent.setData(callUri);
// Use FLAG_UPDATE_CURRENT to make sure any previous pending intent is updated with the new
// extra.
diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
index 7c25e7d39..893d6bed9 100644
--- a/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/VisualVoicemailCallLogFragment.java
@@ -33,6 +33,7 @@ import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter;
import com.android.dialer.common.LogUtil;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.util.PermissionsUtil;
public class VisualVoicemailCallLogFragment extends CallLogFragment {
@@ -46,31 +47,43 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment {
}
@Override
- public void onCreate(Bundle state) {
- super.onCreate(state);
- mVoicemailPlaybackPresenter = VoicemailPlaybackPresenter.getInstance(getActivity(), state);
- getActivity()
- .getContentResolver()
- .registerContentObserver(
- VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
- }
-
- @Override
protected VoicemailPlaybackPresenter getVoicemailPlaybackPresenter() {
return mVoicemailPlaybackPresenter;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
+ mVoicemailPlaybackPresenter =
+ VoicemailPlaybackPresenter.getInstance(getActivity(), savedInstanceState);
+
+ if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+ && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+ getActivity()
+ .getContentResolver()
+ .registerContentObserver(
+ VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+ } else {
+ LogUtil.w(
+ "VisualVoicemailCallLogFragment.onActivityCreated",
+ "read voicemail permission unavailable.");
+ }
super.onActivityCreated(savedInstanceState);
mVoicemailErrorManager =
new VoicemailErrorManager(getContext(), getAdapter().getAlertManager(), mModalAlertManager);
- getActivity()
- .getContentResolver()
- .registerContentObserver(
- VoicemailContract.Status.CONTENT_URI,
- true,
- mVoicemailErrorManager.getContentObserver());
+
+ if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+ && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+ getActivity()
+ .getContentResolver()
+ .registerContentObserver(
+ VoicemailContract.Status.CONTENT_URI,
+ true,
+ mVoicemailErrorManager.getContentObserver());
+ } else {
+ LogUtil.w(
+ "VisualVoicemailCallLogFragment.onActivityCreated",
+ "read voicemail permission unavailable.");
+ }
}
@Override
@@ -122,7 +135,9 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment {
LogUtil.enterBlock("VisualVoicemailCallLogFragment.onPageSelected");
super.onVisible();
if (getActivity() != null) {
- getActivity().sendBroadcast(new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL));
+ Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
+ intent.setPackage(getActivity().getPackageName());
+ getActivity().sendBroadcast(intent);
Logger.get(getActivity()).logImpression(DialerImpression.Type.VVM_TAB_VIEWED);
getActivity().setVolumeControlStream(VoicemailAudioManager.PLAYBACK_STREAM);
}
@@ -132,9 +147,6 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment {
public void onNotVisible() {
LogUtil.enterBlock("VisualVoicemailCallLogFragment.onPageUnselected");
super.onNotVisible();
- if (getAdapter() != null && getAdapter().mActionMode != null) {
- getAdapter().mActionMode.finish();
- }
if (getActivity() != null) {
getActivity().setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE);
}
diff --git a/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java b/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
index 024394728..777f4c79f 100644
--- a/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
+++ b/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
@@ -20,14 +20,12 @@ import android.content.AsyncQueryHandler;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
-import android.content.Intent;
import android.net.Uri;
import android.provider.CallLog.Calls;
import android.support.annotation.MainThread;
import android.support.annotation.Nullable;
import com.android.dialer.app.R;
import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
import com.android.dialer.notification.GroupedNotificationUtil;
/** Handles asynchronous queries to the call log for voicemail. */
@@ -79,17 +77,4 @@ public class VoicemailQueryHandler extends AsyncQueryHandler {
R.id.notification_visual_voicemail,
DefaultVoicemailNotifier.VISUAL_VOICEMAIL_NOTIFICATION_TAG);
}
-
- @Override
- protected void onUpdateComplete(int token, Object cookie, int result) {
- if (token == UPDATE_MARK_VOICEMAILS_AS_OLD_TOKEN) {
- if (mContext != null) {
- Intent serviceIntent = new Intent(mContext, CallLogNotificationsService.class);
- serviceIntent.setAction(CallLogNotificationsService.ACTION_UPDATE_VOICEMAIL_NOTIFICATIONS);
- mContext.startService(serviceIntent);
- } else {
- LogUtil.w(TAG, "Unknown update completed: ignoring: " + token);
- }
- }
- }
}
diff --git a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
index 7a5db19f2..e561b5607 100644
--- a/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
+++ b/java/com/android/dialer/app/contactinfo/ContactInfoCache.java
@@ -28,6 +28,7 @@ import com.android.dialer.phonenumbercache.ContactInfo;
import com.android.dialer.phonenumbercache.ContactInfoHelper;
import com.android.dialer.util.ExpirableCache;
import java.lang.ref.WeakReference;
+import java.util.Objects;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.PriorityBlockingQueue;
@@ -77,6 +78,8 @@ public class ContactInfoCache {
break;
case START_THREAD:
reference.startRequestProcessing();
+ break;
+ default: // fall out
}
}
}
@@ -125,7 +128,7 @@ public class ContactInfoCache {
enqueueRequest(number, countryIso, callLogContactInfo, /* immediate */ false, requestType);
}
- if (info == ContactInfo.EMPTY) {
+ if (Objects.equals(info, ContactInfo.EMPTY)) {
// Use the cached contact info from the call log.
info = callLogContactInfo;
}
@@ -153,11 +156,15 @@ public class ContactInfoCache {
ContactInfo info;
if (request.isLocalRequest()) {
info = mContactInfoHelper.lookupNumber(request.number, request.countryIso);
- // TODO: Maybe skip look up if it's already available in cached number lookup service.
- long start = SystemClock.elapsedRealtime();
- mContactInfoHelper.updateFromCequintCallerId(info, request.number);
- long time = SystemClock.elapsedRealtime() - start;
- LogUtil.d("ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time);
+ if (!info.contactExists) {
+ // TODO: Maybe skip look up if it's already available in cached number lookup
+ // service.
+ long start = SystemClock.elapsedRealtime();
+ mContactInfoHelper.updateFromCequintCallerId(info, request.number);
+ long time = SystemClock.elapsedRealtime() - start;
+ LogUtil.d(
+ "ContactInfoCache.queryContactInfo", "Cequint Caller Id look up takes %d ms", time);
+ }
if (request.type == ContactInfoRequest.TYPE_LOCAL_AND_REMOTE) {
if (!mContactInfoHelper.hasName(info)) {
enqueueRequest(
@@ -192,7 +199,8 @@ public class ContactInfoCache {
// Exception: Photo uris for contacts from remote sources are not cached in the call log
// cache, so we have to force a redraw for these contacts regardless.
boolean updated =
- (existingInfo != ContactInfo.EMPTY || isRemoteSource) && !info.equals(existingInfo);
+ (!Objects.equals(existingInfo, ContactInfo.EMPTY) || isRemoteSource)
+ && !info.equals(existingInfo);
// Store the data in the cache so that the UI thread can use to display it. Store it
// even if it has not changed so that it is marked as not expired.
diff --git a/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java b/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java
index 71e4a16ad..4c8e32a41 100644
--- a/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java
+++ b/java/com/android/dialer/app/contactinfo/ContactPhotoLoader.java
@@ -25,11 +25,11 @@ import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.lettertiles.LetterTileDrawable;
import com.android.dialer.app.R;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.phonenumbercache.ContactInfo;
import com.android.dialer.phonenumbercache.ContactInfoHelper;
import java.io.IOException;
diff --git a/java/com/android/dialer/app/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java
index 271f62199..e9d57b399 100644
--- a/java/com/android/dialer/app/dialpad/DialpadFragment.java
+++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java
@@ -69,7 +69,6 @@ import android.widget.ListView;
import android.widget.PopupMenu;
import android.widget.RelativeLayout;
import android.widget.TextView;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.dialog.CallSubjectDialog;
import com.android.contacts.common.util.StopWatch;
import com.android.contacts.common.widget.FloatingActionButtonController;
@@ -84,6 +83,7 @@ import com.android.dialer.calllogutils.PhoneAccountUtils;
import com.android.dialer.common.LogUtil;
import com.android.dialer.dialpadview.DialpadKeyButton;
import com.android.dialer.dialpadview.DialpadView;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.proguard.UsedByReflection;
import com.android.dialer.telecom.TelecomUtil;
import com.android.dialer.util.CallUtil;
@@ -447,7 +447,7 @@ public class DialpadFragment extends Fragment
setFormattedDigits(converted, null);
return true;
} else {
- if (!PermissionsUtil.hasContactsPermissions(getActivity())) {
+ if (!PermissionsUtil.hasContactsReadPermissions(getActivity())) {
return false;
}
String type = intent.getType();
@@ -1189,7 +1189,6 @@ public class DialpadFragment extends Fragment
// Just call 'scaleIn()' method if the mFloatingActionButtonController was not already
// previously visible.
mFloatingActionButtonController.scaleIn(0);
- mFloatingActionButtonController.setVisible(true);
}
mDialpadChooser.setVisibility(View.GONE);
}
@@ -1410,10 +1409,10 @@ public class DialpadFragment extends Fragment
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
final DialtactsActivity activity = (DialtactsActivity) getActivity();
- final DialpadView dialpadView = (DialpadView) getView().findViewById(R.id.dialpad_view);
- if (activity == null) {
+ if (activity == null || getView() == null) {
return;
}
+ final DialpadView dialpadView = (DialpadView) getView().findViewById(R.id.dialpad_view);
if (!hidden && !isDialpadChooserVisible()) {
if (mAnimate) {
dialpadView.animateShow();
diff --git a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
index f3a93f916..a0c8b18d3 100644
--- a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
+++ b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java
@@ -20,8 +20,8 @@ import android.content.AsyncTaskLoader;
import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
-import android.util.Log;
import com.android.contacts.common.list.PhoneNumberListAdapter.PhoneQuery;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.database.Database;
import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.database.DialerDatabaseHelper.ContactNumber;
@@ -43,8 +43,6 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
private String mQuery;
private SmartDialNameMatcher mNameMatcher;
- private ForceLoadContentObserver mObserver;
-
private boolean mShowEmptyListForNullQuery = true;
public SmartDialCursorLoader(Context context) {
@@ -59,7 +57,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
*/
public void configureQuery(String query) {
if (DEBUG) {
- Log.v(TAG, "Configure new query to be " + query);
+ LogUtil.v(TAG, "Configure new query to be " + query);
}
mQuery = SmartDialNameMatcher.normalizeNumber(query, SmartDialPrefix.getMap());
@@ -76,10 +74,10 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
@Override
public Cursor loadInBackground() {
if (DEBUG) {
- Log.v(TAG, "Load in background " + mQuery);
+ LogUtil.v(TAG, "Load in background " + mQuery);
}
- if (!PermissionsUtil.hasContactsPermissions(mContext)) {
+ if (!PermissionsUtil.hasContactsReadPermissions(mContext)) {
return new MatrixCursor(PhoneQuery.PROJECTION_PRIMARY);
}
@@ -90,7 +88,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
dialerDatabaseHelper.getLooseMatches(mQuery, mNameMatcher);
if (DEBUG) {
- Log.v(TAG, "Loaded matches " + String.valueOf(allMatches.size()));
+ LogUtil.v(TAG, "Loaded matches " + allMatches.size());
}
/** Constructs a cursor for the returned array of results. */
@@ -121,13 +119,6 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
Cursor oldCursor = mCursor;
mCursor = cursor;
- if (mObserver == null) {
- mObserver = new ForceLoadContentObserver();
- mContext
- .getContentResolver()
- .registerContentObserver(DialerDatabaseHelper.SMART_DIAL_UPDATED_URI, true, mObserver);
- }
-
if (isStarted()) {
/** If the Loader is in a started state, deliver the results to the client. */
super.deliverResult(cursor);
@@ -162,11 +153,6 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
/** Ensure the loader has been stopped. */
onStopLoading();
- if (mObserver != null) {
- mContext.getContentResolver().unregisterContentObserver(mObserver);
- mObserver = null;
- }
-
/** Release all previously saved query results. */
if (mCursor != null) {
releaseResources(mCursor);
@@ -178,11 +164,6 @@ public class SmartDialCursorLoader extends AsyncTaskLoader<Cursor> {
public void onCanceled(Cursor cursor) {
super.onCanceled(cursor);
- if (mObserver != null) {
- mContext.getContentResolver().unregisterContentObserver(mObserver);
- mObserver = null;
- }
-
/** The load has been canceled, so we should release the resources associated with 'data'. */
releaseResources(cursor);
}
diff --git a/java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java b/java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java
index ac4903c31..dbd4e868c 100644
--- a/java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java
+++ b/java/com/android/dialer/app/filterednumber/BlockedNumbersAdapter.java
@@ -21,10 +21,10 @@ import android.database.Cursor;
import android.telephony.PhoneNumberUtils;
import android.view.View;
import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.GeoUtil;
import com.android.dialer.app.R;
import com.android.dialer.blocking.BlockNumberDialogFragment;
import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.InteractionEvent;
import com.android.dialer.logging.Logger;
import com.android.dialer.phonenumbercache.ContactInfoHelper;
diff --git a/java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java b/java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java
index 5228a1d79..313efb4d7 100644
--- a/java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java
+++ b/java/com/android/dialer/app/filterednumber/ViewNumbersToImportAdapter.java
@@ -20,9 +20,9 @@ import android.content.Context;
import android.database.Cursor;
import android.view.View;
import com.android.contacts.common.ContactPhotoManager;
-import com.android.contacts.common.GeoUtil;
import com.android.dialer.app.R;
import com.android.dialer.blocking.FilteredNumbersUtil;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.phonenumbercache.ContactInfoHelper;
public class ViewNumbersToImportAdapter extends NumbersAdapter {
diff --git a/java/com/android/dialer/app/list/BlockedListSearchAdapter.java b/java/com/android/dialer/app/list/BlockedListSearchAdapter.java
index a90ce7a0d..96d02d7bf 100644
--- a/java/com/android/dialer/app/list/BlockedListSearchAdapter.java
+++ b/java/com/android/dialer/app/list/BlockedListSearchAdapter.java
@@ -19,10 +19,10 @@ import android.content.Context;
import android.content.res.Resources;
import android.database.Cursor;
import android.view.View;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.list.ContactListItemView;
import com.android.dialer.app.R;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
+import com.android.dialer.location.GeoUtil;
/** List adapter to display search results for adding a blocked number. */
public class BlockedListSearchAdapter extends RegularSearchListAdapter {
diff --git a/java/com/android/dialer/app/list/BlockedListSearchFragment.java b/java/com/android/dialer/app/list/BlockedListSearchFragment.java
index 0f96e2d6e..8d42221c0 100644
--- a/java/com/android/dialer/app/list/BlockedListSearchFragment.java
+++ b/java/com/android/dialer/app/list/BlockedListSearchFragment.java
@@ -28,7 +28,6 @@ import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.Toast;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.list.ContactEntryListAdapter;
import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.dialer.app.R;
@@ -37,6 +36,7 @@ import com.android.dialer.blocking.BlockNumberDialogFragment;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.InteractionEvent;
import com.android.dialer.logging.Logger;
diff --git a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
index 542501cfd..537f488d5 100644
--- a/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
+++ b/java/com/android/dialer/app/list/DialerPhoneNumberListAdapter.java
@@ -24,11 +24,11 @@ import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
import android.view.View;
import android.view.ViewGroup;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.list.ContactListItemView;
import com.android.contacts.common.list.PhoneNumberListAdapter;
import com.android.contacts.common.util.ContactDisplayUtils;
import com.android.dialer.app.R;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.util.CallUtil;
/**
@@ -47,11 +47,13 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
public static final int SHORTCUT_MAKE_VIDEO_CALL = 4;
public static final int SHORTCUT_BLOCK_NUMBER = 5;
public static final int SHORTCUT_COUNT = 6;
+
private final boolean[] mShortcutEnabled = new boolean[SHORTCUT_COUNT];
private final BidiFormatter mBidiFormatter = BidiFormatter.getInstance();
+ private final boolean mVideoCallingEnabled;
+ private final String mCountryIso;
+
private String mFormattedQueryString;
- private String mCountryIso;
- private boolean mVideoCallingEnabled = false;
public DialerPhoneNumberListAdapter(Context context) {
super(context);
@@ -108,7 +110,8 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
return convertView;
} else {
final ContactListItemView v =
- new ContactListItemView(getContext(), null, mVideoCallingEnabled);
+ new ContactListItemView(
+ getContext(), null, mVideoCallingEnabled, isCallAndShareEnabled());
assignShortcutToView(v, shortcutType);
return v;
}
@@ -123,6 +126,7 @@ public class DialerPhoneNumberListAdapter extends PhoneNumberListAdapter {
final ContactListItemView view = super.newView(context, partition, cursor, position, parent);
view.setSupportVideoCallIcon(mVideoCallingEnabled);
+ view.setSupportCallAndShareIcon(isCallAndShareEnabled());
return view;
}
diff --git a/java/com/android/dialer/app/list/ListsFragment.java b/java/com/android/dialer/app/list/ListsFragment.java
index 02498939c..8dd52a9d4 100644
--- a/java/com/android/dialer/app/list/ListsFragment.java
+++ b/java/com/android/dialer/app/list/ListsFragment.java
@@ -48,6 +48,7 @@ import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.logging.ScreenEvent;
import com.android.dialer.speeddial.SpeedDialFragment;
+import com.android.dialer.util.PermissionsUtil;
import com.android.dialer.voicemailstatus.VisualVoicemailEnabledChecker;
import com.android.dialer.voicemailstatus.VoicemailStatusHelper;
import java.util.ArrayList;
@@ -183,10 +184,15 @@ public class ListsFragment extends Fragment
mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
- getActivity()
- .getContentResolver()
- .registerContentObserver(
- VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+ if (PermissionsUtil.hasReadVoicemailPermissions(getContext())
+ && PermissionsUtil.hasAddVoicemailPermissions(getContext())) {
+ getActivity()
+ .getContentResolver()
+ .registerContentObserver(
+ VoicemailContract.Status.CONTENT_URI, true, mVoicemailStatusObserver);
+ } else {
+ LogUtil.w("ListsFragment.onCreateView", "no voicemail read/add permissions");
+ }
Trace.endSection();
Trace.endSection();
diff --git a/java/com/android/dialer/app/list/OldSpeedDialFragment.java b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
index 4ae84b6d9..40fe74565 100644
--- a/java/com/android/dialer/app/list/OldSpeedDialFragment.java
+++ b/java/com/android/dialer/app/list/OldSpeedDialFragment.java
@@ -123,7 +123,7 @@ public class OldSpeedDialFragment extends Fragment
if (mContactTileAdapter != null) {
mContactTileAdapter.refreshContactsPreferences();
}
- if (PermissionsUtil.hasContactsPermissions(getActivity())) {
+ if (PermissionsUtil.hasContactsReadPermissions(getActivity())) {
if (getLoaderManager().getLoader(LOADER_ID_CONTACT_TILE) == null) {
getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
@@ -235,7 +235,7 @@ public class OldSpeedDialFragment extends Fragment
// Use initLoader() instead of restartLoader() to refraining unnecessary reload.
// This method call implicitly assures ContactTileLoaderListener's onLoadFinished() will
// be called, on which we'll check if "all" contacts should be reloaded again or not.
- if (PermissionsUtil.hasContactsPermissions(activity)) {
+ if (PermissionsUtil.hasContactsReadPermissions(activity)) {
getLoaderManager().initLoader(LOADER_ID_CONTACT_TILE, null, mContactTileLoaderListener);
} else {
setEmptyViewVisibility(true);
diff --git a/java/com/android/dialer/app/list/SearchFragment.java b/java/com/android/dialer/app/list/SearchFragment.java
index 264bdf81b..fcf8236e3 100644
--- a/java/com/android/dialer/app/list/SearchFragment.java
+++ b/java/com/android/dialer/app/list/SearchFragment.java
@@ -380,7 +380,7 @@ public class SearchFragment extends PhoneNumberPickerFragment {
return;
}
- if (PermissionsUtil.hasContactsPermissions(getActivity())) {
+ if (PermissionsUtil.hasContactsReadPermissions(getActivity())) {
super.startLoading();
} else if (TextUtils.isEmpty(getQueryString())) {
// Clear out any existing call shortcuts.
diff --git a/java/com/android/dialer/app/list/SmartDialSearchFragment.java b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
index 5d72ee615..eb1508c72 100644
--- a/java/com/android/dialer/app/list/SmartDialSearchFragment.java
+++ b/java/com/android/dialer/app/list/SmartDialSearchFragment.java
@@ -18,6 +18,10 @@ package com.android.dialer.app.list;
import static android.Manifest.permission.CALL_PHONE;
import android.app.Activity;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.content.Loader;
import android.database.Cursor;
import android.os.Bundle;
@@ -27,6 +31,8 @@ import com.android.dialer.app.R;
import com.android.dialer.app.dialpad.SmartDialCursorLoader;
import com.android.dialer.app.widget.EmptyContentView;
import com.android.dialer.callintent.CallInitiationType;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.util.PermissionsUtil;
/** Implements a fragment to load and display SmartDial search results. */
@@ -34,10 +40,17 @@ public class SmartDialSearchFragment extends SearchFragment
implements EmptyContentView.OnEmptyViewActionButtonClickedListener,
FragmentCompat.OnRequestPermissionsResultCallback {
- private static final String TAG = SmartDialSearchFragment.class.getSimpleName();
-
private static final int CALL_PHONE_PERMISSION_REQUEST_CODE = 1;
+ private final BroadcastReceiver mSmartDialUpdatedReceiver =
+ new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ LogUtil.i("SmartDialSearchFragment.onReceive", "smart dial update broadcast received");
+ reloadData();
+ }
+ };
+
/** Creates a SmartDialListAdapter to display and operate on search results. */
@Override
protected ContactEntryListAdapter createListAdapter() {
@@ -83,6 +96,27 @@ public class SmartDialSearchFragment extends SearchFragment
}
@Override
+ public void onStart() {
+ super.onStart();
+
+ LogUtil.i("SmartDialSearchFragment.onStart", "registering smart dial update receiver");
+
+ getActivity()
+ .registerReceiver(
+ mSmartDialUpdatedReceiver,
+ new IntentFilter(DialerDatabaseHelper.ACTION_SMART_DIAL_UPDATED));
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+
+ LogUtil.i("SmartDialSearchFragment.onStop", "unregistering smart dial update receiver");
+
+ getActivity().unregisterReceiver(mSmartDialUpdatedReceiver);
+ }
+
+ @Override
public void onEmptyViewActionButtonClicked() {
final Activity activity = getActivity();
if (activity == null) {
diff --git a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
index 7e450c4cd..ca93da0de 100644
--- a/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
+++ b/java/com/android/dialer/app/manifests/activities/AndroidManifest.xml
@@ -112,6 +112,11 @@
android:resource="@layout/keyguard_preview"/>
</activity>
+ <activity-alias
+ android:exported="true"
+ android:name="com.android.dialer.DialtactsActivity"
+ android:targetActivity="com.android.dialer.app.DialtactsActivity"/>
+
</application>
</manifest>
diff --git a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
index 862882a62..d3a553130 100644
--- a/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
+++ b/java/com/android/dialer/app/res/layout/call_log_list_item_actions.xml
@@ -135,7 +135,7 @@
<ImageView
style="@style/CallLogActionIconStyle"
- android:src="@drawable/ic_phone_attach"/>
+ android:src="@drawable/ic_call_and_share"/>
<TextView
style="@style/CallLogActionTextStyle"
diff --git a/java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml b/java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml
index 43594f649..d2712e9fe 100644
--- a/java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml
+++ b/java/com/android/dialer/app/res/layout/phone_favorite_tile_view.xml
@@ -14,115 +14,118 @@
limitations under the License.
-->
<view
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/contact_tile"
- class="com.android.dialer.app.list.PhoneFavoriteSquareTileView"
- android:paddingBottom="@dimen/contact_tile_divider_width"
- android:paddingEnd="@dimen/contact_tile_divider_width">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/contact_tile"
+ class="com.android.dialer.app.list.PhoneFavoriteSquareTileView"
+ android:paddingBottom="@dimen/contact_tile_divider_width"
+ android:paddingEnd="@dimen/contact_tile_divider_width">
<RelativeLayout
- android:id="@+id/contact_favorite_card"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:focusable="true"
- android:nextFocusRight="@+id/contact_tile_secondary_button">
-
- <com.android.contacts.common.widget.LayoutSuppressingImageView
- android:id="@+id/contact_tile_image"
+ android:id="@+id/contact_favorite_card"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:scaleType="centerCrop"/>
+ android:focusable="true"
+ android:nextFocusRight="@+id/contact_tile_secondary_button">
+
+ <com.android.contacts.common.widget.LayoutSuppressingImageView
+ android:id="@+id/contact_tile_image"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scaleType="centerCrop"/>
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <View
android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="6"/>
+ android:layout_height="match_parent"
+ android:orientation="vertical">
<View
- android:id="@+id/shadow_overlay"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="4"
- android:background="@drawable/shadow_contact_photo"/>
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="6"/>
+ <View
+ android:id="@+id/shadow_overlay"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="4"
+ android:background="@drawable/shadow_contact_photo"/>
</LinearLayout>
<LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:paddingBottom="@dimen/contact_tile_text_bottom_padding"
- android:paddingStart="@dimen/contact_tile_text_side_padding"
- android:paddingEnd="@dimen/contact_tile_text_side_padding"
- android:orientation="vertical">
-
- <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:gravity="center_vertical"
- android:orientation="horizontal">
+ android:layout_alignParentBottom="true"
+ android:paddingBottom="@dimen/contact_tile_text_bottom_padding"
+ android:paddingStart="@dimen/contact_tile_text_side_padding"
+ android:paddingEnd="@dimen/contact_tile_text_side_padding"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
<TextView
- android:id="@+id/contact_tile_name"
- android:layout_width="0dp"
+ android:id="@+id/contact_tile_name"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal"
+ android:fadingEdgeLength="3dip"
+ android:fontFamily="sans-serif-medium"
+ android:singleLine="true"
+ android:textAlignment="viewStart"
+ android:textColor="@color/contact_tile_name_color"
+ android:textSize="15sp"/>
+ <ImageView
+ android:id="@+id/contact_star_icon"
+ android:layout_width="@dimen/favorites_star_icon_size"
+ android:layout_height="@dimen/favorites_star_icon_size"
+ android:layout_marginStart="3dp"
+ android:src="@drawable/ic_star"
+ android:visibility="gone"/>
+ </LinearLayout>
+ <TextView
+ android:id="@+id/contact_tile_phone_type"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:fadingEdgeLength="3dip"
- android:fontFamily="sans-serif-medium"
+ android:fontFamily="sans-serif"
+ android:gravity="center_vertical"
android:singleLine="true"
android:textAlignment="viewStart"
android:textColor="@color/contact_tile_name_color"
- android:textSize="15sp"/>
- <ImageView
- android:id="@+id/contact_star_icon"
- android:layout_width="@dimen/favorites_star_icon_size"
- android:layout_height="@dimen/favorites_star_icon_size"
- android:layout_marginStart="3dp"
- android:src="@drawable/ic_star"
- android:visibility="gone"/>
- </LinearLayout>
- <TextView
- android:id="@+id/contact_tile_phone_type"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:ellipsize="marquee"
- android:fadingEdge="horizontal"
- android:fadingEdgeLength="3dip"
- android:fontFamily="sans-serif"
- android:gravity="center_vertical"
- android:singleLine="true"
- android:textAlignment="viewStart"
- android:textColor="@color/contact_tile_name_color"
- android:textSize="11sp"/>
+ android:textSize="11sp"/>
</LinearLayout>
<View
- android:id="@+id/contact_tile_push_state"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/item_background_material_dark"
- android:importantForAccessibility="no"/>
+ android:id="@+id/contact_tile_push_state"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/item_background_material_dark"
+ android:importantForAccessibility="no"/>
+
+ <!-- Wrap the ImageButton in a layout with a transparent background so the ripple has something to draw on -->
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@android:color/transparent">
+ <ImageButton
+ android:id="@id/contact_tile_secondary_button"
+ android:layout_width="@dimen/contact_tile_info_button_height_and_width"
+ android:layout_height="@dimen/contact_tile_info_button_height_and_width"
+ android:layout_gravity="top|end"
+ android:paddingTop="8dp"
+ android:paddingBottom="4dp"
+ android:paddingStart="4dp"
+ android:paddingEnd="4dp"
+ android:background="@drawable/item_background_material_borderless_dark"
+ android:contentDescription="@string/description_view_contact_detail"
+ android:scaleType="center"
+ android:src="@drawable/quantum_ic_more_vert_white_24"/>
- <ImageButton
- android:id="@id/contact_tile_secondary_button"
- android:layout_width="@dimen/contact_tile_info_button_height_and_width"
- android:layout_height="@dimen/contact_tile_info_button_height_and_width"
- android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
- android:layout_alignParentTop="true"
- android:paddingTop="8dp"
- android:paddingBottom="4dp"
- android:paddingStart="4dp"
- android:paddingEnd="4dp"
- android:paddingLeft="4dp"
- android:paddingRight="9dp"
- android:background="@drawable/item_background_material_dark"
- android:contentDescription="@string/description_view_contact_detail"
- android:scaleType="center"
- android:src="@drawable/quantum_ic_more_vert_white_24"/>
+ </FrameLayout>
</RelativeLayout>
</view>
diff --git a/java/com/android/dialer/app/res/layout/search_edittext.xml b/java/com/android/dialer/app/res/layout/search_edittext.xml
index 903fbcae9..c02512d80 100644
--- a/java/com/android/dialer/app/res/layout/search_edittext.xml
+++ b/java/com/android/dialer/app/res/layout/search_edittext.xml
@@ -10,12 +10,14 @@
android:layout_marginRight="@dimen/search_margin_horizontal"
android:background="@drawable/rounded_corner"
android:elevation="@dimen/search_box_elevation"
+ android:theme="@style/DialtactsSearchBarThemeOverlay"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/search_box_collapsed"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="?android:selectableItemBackground"
android:paddingStart="@dimen/search_box_left_padding"
android:gravity="center_vertical"
android:orientation="horizontal">
diff --git a/java/com/android/dialer/app/res/values-af/strings.xml b/java/com/android/dialer/app/res/values-af/strings.xml
index 0245a2d1d..7eaa7cb94 100644
--- a/java/com/android/dialer/app/res/values-af/strings.xml
+++ b/java/com/android/dialer/app/res/values-af/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Oproepe"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Oproepblokkering"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Stemboodskap"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Oproepblokkering is tydelik af"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Voer nommers in"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokkeer nommer"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Strooipos"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is vanlyn en kan nie bereik word nie"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-am/strings.xml b/java/com/android/dialer/app/res/values-am/strings.xml
index befa4c45c..dd20b3119 100644
--- a/java/com/android/dialer/app/res/values-am/strings.xml
+++ b/java/com/android/dialer/app/res/values-am/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"ጥሪዎች"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"ጥሪን ማገድ"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"የድምፅ መልእክት"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"ጥሪን ማገድ ለጊዜው ተሰናክሏል"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ባለፉት 48 ሰዓቶች ውስጥ ከዚህ ስልክ ሆነው የአስቸኳይ አደጋ አገልግሎቶችን ስላነጋገሩ ጥሪን ማገድ ተሰናክሏል። አንዴ የ48 ሰዓቱ ጊዜ ካለፈ በኋላ በራስ-ሰር ዳግም ይነቃል።"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"ቁጥሮችን አስመጣ"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ቁጥርን አታግድ"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"አይፈለጌ መልዕክት"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ከመስመር ውጭ ነው እና ሊደረስበት አይችልም"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ar/strings.xml b/java/com/android/dialer/app/res/values-ar/strings.xml
index 961e4833e..c24d313c4 100644
--- a/java/com/android/dialer/app/res/values-ar/strings.xml
+++ b/java/com/android/dialer/app/res/values-ar/strings.xml
@@ -207,6 +207,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"المكالمات"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"حظر المكالمات"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"البريد الصوتي"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"حظر المكالمات معطّل مؤقتًا"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"تم تعطيل حظر المكالمات لأنك اتصلت بخدمات الطوارئ خلال 48 ساعة ماضية. وستتم إعادة تمكينه تلقائيًا بعد انتهاء هذه الفترة التي تبلغ 48 ساعة."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"استيراد الأرقام"</string>
@@ -236,4 +238,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"إلغاء حظر الرقم"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"تعليق غير مرغوب فيه"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> غير متصل ولا يمكن الوصول إليه"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-az/strings.xml b/java/com/android/dialer/app/res/values-az/strings.xml
index 78440fd24..70e926cbe 100644
--- a/java/com/android/dialer/app/res/values-az/strings.xml
+++ b/java/com/android/dialer/app/res/values-az/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Zənglər"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Zəng blok edilir"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Səsli e-məktub"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Çağrının blok edilməsi müvəqqəti olaraq deaktiv edilib"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Nömrələri import edin"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Nömrəni blokdan çıxarın"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> oflayn olduğu üçün əlaqə saxlamaq mümkün deyil"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
index ddb311266..7ca2e56ec 100644
--- a/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/app/res/values-b+sr+Latn/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Pozivi"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blokiranje poziva"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Govorna pošta"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokiranje poziva je privremeno isključeno"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Uvezi brojeve"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiraj broj"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Nepoželjan"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> je oflajn i ne možete da ga/je kontaktirate"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-be/strings.xml b/java/com/android/dialer/app/res/values-be/strings.xml
index 54d7d8384..effc7e025 100644
--- a/java/com/android/dialer/app/res/values-be/strings.xml
+++ b/java/com/android/dialer/app/res/values-be/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Выклікі"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Блакіраванне выклікаў"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Галасавая пошта"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Блакіроўка выклікаў часова адключана"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Блакіроўка выклікаў будзе адключана, таму што вы выклікалі экстранныя службы з гэтага тэлефона на працягу апошніх 48 гадзін. Яна будзе аўтаматычна адноўлена пасля заканчэння перыяду ў 48 гадзін."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Імпартаваць нумары"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Разблакіраваць нумар"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Карыстальнік <xliff:g id="NAME">%1$s</xliff:g> па-за сеткай і не даступны"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-bg/strings.xml b/java/com/android/dialer/app/res/values-bg/strings.xml
index 0fb06c165..d3d1a9974 100644
--- a/java/com/android/dialer/app/res/values-bg/strings.xml
+++ b/java/com/android/dialer/app/res/values-bg/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Обаждания"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Блокиране на обажданията"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Гласова поща"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Блокир. на обажданията е временно изкл."</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Блокирането на обажданията е деактивирано, защото в рамките на последните 48 часа сте се свързали със спешните служби от този телефон. То автоматично ще бъде активирано отново, когато периодът от 48 часа изтече."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Импортиране на номерата"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Отблокиране на номера"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"С <xliff:g id="NAME">%1$s</xliff:g> не може да се установи връзка, тъй като е офлайн"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-bn/strings.xml b/java/com/android/dialer/app/res/values-bn/strings.xml
index 45787cc0f..4b7354c00 100644
--- a/java/com/android/dialer/app/res/values-bn/strings.xml
+++ b/java/com/android/dialer/app/res/values-bn/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"কল"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"কল অবরোধ করা"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"ভয়েসমেল"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"কল অবরোধ সাময়িকভাবে বন্ধ রয়েছে"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"কল অবরোধ অক্ষম করা হয়েছে কারণ আপনি গত ২৮ ঘন্টার মধ্যে এই ফোন থেকে জরুরি পরিষেবায় যোগাযোগ করেছেন। ২৮ ঘন্টার সময়সীমা পেরিয়ে গেলেই এটি স্বয়ংক্রিয়ভাবে আবার সক্ষম হবে।"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"নম্বরগুলি আমদানি করুন"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"নম্বর অবরোধ মুক্ত করুন"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"স্প্যাম"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> এখন অফলাইনে থাকায় যোগাযোগ করা যাবে না"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-bs/strings.xml b/java/com/android/dialer/app/res/values-bs/strings.xml
index 8c19cb719..4e028461a 100644
--- a/java/com/android/dialer/app/res/values-bs/strings.xml
+++ b/java/com/android/dialer/app/res/values-bs/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Pozivi"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blokiranje poziva"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Govorna pošta"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokiranje poziva je privremeno isključeno"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Blokiranje poziva je onemogućeno jer ste kontaktirali hitnu službu s ovog telefona u proteklih 48 sati. Automatski će se ponovo omogućiti kada istekne 48 sati."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Uvezi brojeve"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiraj broj"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Neželjena pošta"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Osoba <xliff:g id="NAME">%1$s</xliff:g> je van mreže i ne možete je kontaktirati"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ca/strings.xml b/java/com/android/dialer/app/res/values-ca/strings.xml
index a333e5389..e18256d5a 100644
--- a/java/com/android/dialer/app/res/values-ca/strings.xml
+++ b/java/com/android/dialer/app/res/values-ca/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Trucades"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Bloqueig de trucades"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Bústia de veu"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Bloqueig de trucades desactivat tempor."</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importa els números"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloqueja el número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Contingut brossa"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> no té connexió i no s\'hi pot contactar"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-cs/strings.xml b/java/com/android/dialer/app/res/values-cs/strings.xml
index cc71441da..bb7e3c5fb 100644
--- a/java/com/android/dialer/app/res/values-cs/strings.xml
+++ b/java/com/android/dialer/app/res/values-cs/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Volání"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blokování hovorů"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Hlasová schránka"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokování hovorů je dočasně vypnuto"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importovat čísla"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zrušit blokování čísla"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Uživatel <xliff:g id="NAME">%1$s</xliff:g> je offline a není možné se s ním spojit"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-da/strings.xml b/java/com/android/dialer/app/res/values-da/strings.xml
index 5315bee5e..498817652 100644
--- a/java/com/android/dialer/app/res/values-da/strings.xml
+++ b/java/com/android/dialer/app/res/values-da/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Opkald"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Opkaldsblokering"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Telefonsvarer"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Opkaldsblokering er midlertidigt slået fra"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importér numre"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Ophæv blokering af nummer"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er offline og kan ikke nås"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-de/strings.xml b/java/com/android/dialer/app/res/values-de/strings.xml
index a50a8cd93..ab12c1f4f 100644
--- a/java/com/android/dialer/app/res/values-de/strings.xml
+++ b/java/com/android/dialer/app/res/values-de/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Anrufe"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Anrufblockierung"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Mailbox"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Anrufblockierung vorübergehend aus"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Nummern importieren"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Blockierung der Nummer aufheben"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ist offline und nicht erreichbar"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-el/strings.xml b/java/com/android/dialer/app/res/values-el/strings.xml
index 9978eac96..2a00c46f7 100644
--- a/java/com/android/dialer/app/res/values-el/strings.xml
+++ b/java/com/android/dialer/app/res/values-el/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Κλήσεις"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Φραγή κλήσεων"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Αυτόματος τηλεφωνητής"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Προσωρινά απενεργοποιημένη φραγή κλήσεων"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Η φραγή κλήσεων έχει απενεργοποιηθεί προσωρινά επειδή επικοινωνήσατε με τις υπηρεσίες έκτακτης ανάγκης από αυτό το τηλέφωνο μέσα στις τελευταίες 48 ώρες. Θα ενεργοποιηθεί ξανά αυτόματα μόλις λήξει η περίοδος των 48 ωρών."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Εισαγωγή αριθμών"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Κατάργηση αποκλεισμού αριθμού"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Ανεπιθύμητα"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Ο χρήστης <xliff:g id="NAME">%1$s</xliff:g> είναι εκτός σύνδεσης και δεν μπορείτε να έρθετε σε επικοινωνία μαζί του"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-en-rAU/strings.xml b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
index 6525bb672..9229be690 100644
--- a/java/com/android/dialer/app/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rAU/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Calls"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Call blocking"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Voicemail"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Call blocking temporarily off"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Import numbers"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-en-rGB/strings.xml b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
index 6525bb672..9229be690 100644
--- a/java/com/android/dialer/app/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rGB/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Calls"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Call blocking"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Voicemail"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Call blocking temporarily off"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Import numbers"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-en-rIN/strings.xml b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
index 6525bb672..9229be690 100644
--- a/java/com/android/dialer/app/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/app/res/values-en-rIN/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Calls"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Call blocking"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Voicemail"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Call blocking temporarily off"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Import numbers"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Unblock number"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline and can\'t be reached"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-es-rUS/strings.xml b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
index d86c50b46..17a1b1438 100644
--- a/java/com/android/dialer/app/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/app/res/values-es-rUS/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Llamadas"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Bloqueo de llamadas"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Buzón de voz"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Bloqueo de llamadas desactivado temporalmente"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importar números"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está sin conexión y no se lo puede contactar"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-es/strings.xml b/java/com/android/dialer/app/res/values-es/strings.xml
index 3c68a3b99..15c129972 100644
--- a/java/com/android/dialer/app/res/values-es/strings.xml
+++ b/java/com/android/dialer/app/res/values-es/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Llamadas"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Bloqueo de llamadas"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Buzón de voz"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Bloqueo de llamadas desactivado temporalmente"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importar números"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> no tiene conexión y no se puede contactar"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-et/strings.xml b/java/com/android/dialer/app/res/values-et/strings.xml
index 071f4eab4..3dd4ebc04 100644
--- a/java/com/android/dialer/app/res/values-et/strings.xml
+++ b/java/com/android/dialer/app/res/values-et/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Kõned"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Kõnede blokeerimine"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Kõnepost"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Kõnede blokeerimine on ajutiselt väljas"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Impordi numbrid"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Numbri deblokeerimine"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Rämpspost"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ei ole võrgus ja temaga ei saa ühendust"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-eu/strings.xml b/java/com/android/dialer/app/res/values-eu/strings.xml
index 236850ab3..e2701f965 100644
--- a/java/com/android/dialer/app/res/values-eu/strings.xml
+++ b/java/com/android/dialer/app/res/values-eu/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Deiak"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Deien blokeoa"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Erantzungailua"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Deien blokeoa aldi baterako desgaituta"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Inportatu zenbakiak"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desblokeatu zenbakia"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spama"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ez dago konektatuta, eta ezin zara jarri harremanetan berarekin"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-fa/strings.xml b/java/com/android/dialer/app/res/values-fa/strings.xml
index d76253f79..fb1fa8b31 100644
--- a/java/com/android/dialer/app/res/values-fa/strings.xml
+++ b/java/com/android/dialer/app/res/values-fa/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"تماس‌ها"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"مسدود کردن تماس"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"پست صوتی"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"انسداد تماس موقتاً خاموش است"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"چون در ۴۸ ساعت گذشته با این تلفن با سرویس‌های اضطراری تماس گرفتید، انسداد تماس غیرفعال شده است. پس از گذشت ۴۸ ساعت، این قابلیت دوباره فعال می‌شود."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"وارد کردن شماره‌ها"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"رفع انسداد شماره"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"هرزنامه"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> آفلاین است و در دسترس نمی‌باشد"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-fi/strings.xml b/java/com/android/dialer/app/res/values-fi/strings.xml
index e247e4845..3a03c8e55 100644
--- a/java/com/android/dialer/app/res/values-fi/strings.xml
+++ b/java/com/android/dialer/app/res/values-fi/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Puhelut"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Puhelujen esto"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Vastaaja"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Puheluesto väliaikaisesti pois käytöstä"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Tuo numerot"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Poista numeron esto"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Roskaposti"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> on offline-tilassa, eikä siihen saada yhteyttä."</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
index 33eae2b43..4610e6048 100644
--- a/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr-rCA/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Appels"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blocage des appels"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Messagerie vocale"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blocage appels désactivé temporairement"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importer les numéros"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Débloquer le numéro"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Pourriel"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> est hors connexion et injoignable"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-fr/strings.xml b/java/com/android/dialer/app/res/values-fr/strings.xml
index e9bb8dd78..e1eda7243 100644
--- a/java/com/android/dialer/app/res/values-fr/strings.xml
+++ b/java/com/android/dialer/app/res/values-fr/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Appels"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blocage des appels"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Messagerie vocale"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blocage appels désactivé temporairement"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importer les numéros"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Débloquer le numéro"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> est injoignable, car non connecté"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-gl/strings.xml b/java/com/android/dialer/app/res/values-gl/strings.xml
index 41eacac16..2a79835c2 100644
--- a/java/com/android/dialer/app/res/values-gl/strings.xml
+++ b/java/com/android/dialer/app/res/values-gl/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Chamadas"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Bloqueo de chamadas"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Correo de voz"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"O bloqueo de chamadas desactivouse temporalmente"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importar números"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Non se pode contactar con <xliff:g id="NAME">%1$s</xliff:g> porque está sen conexión"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-gu/strings.xml b/java/com/android/dialer/app/res/values-gu/strings.xml
index 1b7b28a11..940dea028 100644
--- a/java/com/android/dialer/app/res/values-gu/strings.xml
+++ b/java/com/android/dialer/app/res/values-gu/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"કૉલ્સ"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"કૉલ અવરોધ"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"વૉઇસમેઇલ"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"કૉલ અવરોધિત કરવાનું અસ્થાયીરૂપે બંધ છે"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"કૉલ અવરોધિત કરવાનું અક્ષમ કરવામાં આવ્યું છે કારણ કે તમે આ ફોનમાંથી છેલ્લા 48 કલાકમાં કટોકટીની સેવાઓનો સંપર્ક કર્યો હતો. એકવાર 48 કલાકનો સમયગાળો સમાપ્ત થાય, પછી તે આપમેળે ફરીથી સક્ષમ કરવામાં આવશે."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"નંબર્સ આયાત કરો"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"નંબર અનાવરોધિત કરો"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"સ્પામ"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ઑફલાઇન છે અને તેના સુધી પહોંચી શકતાં નથી"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-hi/strings.xml b/java/com/android/dialer/app/res/values-hi/strings.xml
index cc8b287dc..c4f135b16 100644
--- a/java/com/android/dialer/app/res/values-hi/strings.xml
+++ b/java/com/android/dialer/app/res/values-hi/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"कॉल"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"कॉल अवरुद्ध करें"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"वॉइसमेल"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"कॉल अवरुद्ध करना अस्‍थायी रूप से बंद है"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"कॉल अवरुद्ध किए जाने को अक्षम कर दिया गया है क्योंकि पिछले 48 घंटों में आपने इस फ़ोन से आपातकालीन सेवाओं से संपर्क किया है. 48 घंटे की अवधि बीत जाने पर यह अपने आप फिर से सक्षम हो जाएगी."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"नंबर आयात करें"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"नंबर अनवरोधित करें"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"स्पैम"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ऑफ़लाइन हैं और उन तक नहीं पहुंचा जा सकता"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-hr/strings.xml b/java/com/android/dialer/app/res/values-hr/strings.xml
index 4b12e83d7..fb96256f5 100644
--- a/java/com/android/dialer/app/res/values-hr/strings.xml
+++ b/java/com/android/dialer/app/res/values-hr/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Pozivi"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blokiranje poziva"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Govorna pošta"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokiranje poziva privremeno isključeno"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Uvoz brojeva"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblokiranje broja"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Neželjena pošta"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> nije online i nije dostupan"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-hu/strings.xml b/java/com/android/dialer/app/res/values-hu/strings.xml
index 7b529c205..a39c5846f 100644
--- a/java/com/android/dialer/app/res/values-hu/strings.xml
+++ b/java/com/android/dialer/app/res/values-hu/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Hívások"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Hívásletiltás"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Hangposta"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Hívástiltás átmenetileg felfüggesztve"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Számok importálása"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Szám tiltásának feloldása"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> offline, és nem érhető el."</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-hy/strings.xml b/java/com/android/dialer/app/res/values-hy/strings.xml
index b7b9cd34f..362c57048 100644
--- a/java/com/android/dialer/app/res/values-hy/strings.xml
+++ b/java/com/android/dialer/app/res/values-hy/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Զանգեր"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Զանգերի արգելափակում"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Ձայնային փոստ"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Զանգերի արգելափակումը կասեցվել է"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Զանգերի արգելափակումը կասեցվել է, քանի որ վերջին 48 ժամվա ընթացքում դուք այս հեռախոսից զանգել եք արտակարգ իրավիճակների ծառայություններին: 48 ժամ տևողությամբ ժամանակահատվածի ավարտից հետո այն ավտոմատ կերպով կվերամիացվի:"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Ներմուծել համարները"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Արգելաբացել համարը"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Լցոն"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> օգտատերը միացած չէ ցանցին և անհասանելի է"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-in/strings.xml b/java/com/android/dialer/app/res/values-in/strings.xml
index 75b1edbe2..ca7341ae3 100644
--- a/java/com/android/dialer/app/res/values-in/strings.xml
+++ b/java/com/android/dialer/app/res/values-in/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Panggilan telepon"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Pemblokiran panggilan telepon"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Pesan Suara"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokir panggilan dinonaktifkan sementara"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Impor nomor"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Bebaskan nomor"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> sedang offline dan tidak dapat dijangkau"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-is/strings.xml b/java/com/android/dialer/app/res/values-is/strings.xml
index b905ba886..a8a9ae15d 100644
--- a/java/com/android/dialer/app/res/values-is/strings.xml
+++ b/java/com/android/dialer/app/res/values-is/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Símtöl"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Lokað fyrir símtöl"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Talhólf"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Tímabundið slökkt á lokun fyrir símtöl"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Flytja inn númer"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Taka númer af bannlista"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Ruslnúmer"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er án nettengingar og ekki er hægt að ná í viðkomandi"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-it/strings.xml b/java/com/android/dialer/app/res/values-it/strings.xml
index 322386fb9..7fc581115 100644
--- a/java/com/android/dialer/app/res/values-it/strings.xml
+++ b/java/com/android/dialer/app/res/values-it/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Chiamate"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blocco delle chiamate"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Messaggi vocali"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blocco chiamate temporaneam. disattivato"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importa numeri"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Sblocca numero"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> è offline e non può essere raggiunto"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-iw/strings.xml b/java/com/android/dialer/app/res/values-iw/strings.xml
index d3966b446..743d45505 100644
--- a/java/com/android/dialer/app/res/values-iw/strings.xml
+++ b/java/com/android/dialer/app/res/values-iw/strings.xml
@@ -203,6 +203,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"שיחות"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"חסימת שיחות"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"דואר קולי"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"חסימת השיחות מושבתת באופן זמני"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"חסימת השיחות הושבתה מפני שיצרת קשר מטלפון זה עם שירותי חירום במהלך 48 השעות האחרונות. הפונקציה תופעל מחדש באופן אוטומטי בתום 48 השעות."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"יבא מספרים"</string>
@@ -232,4 +234,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"בטל חסימת מספר"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ספאם"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"לא ניתן להתקשר כי המכשיר של <xliff:g id="NAME">%1$s</xliff:g> לא מחובר כרגע"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ja/strings.xml b/java/com/android/dialer/app/res/values-ja/strings.xml
index 147f572f7..72bc2debb 100644
--- a/java/com/android/dialer/app/res/values-ja/strings.xml
+++ b/java/com/android/dialer/app/res/values-ja/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"通話"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"着信のブロック"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"ボイスメール"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"着信のブロックは一時的にOFFです"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"このスマートフォンから緊急通報番号への発信が過去48時間以内に行われているため、着信のブロックは無効になっています。48時間経過すると、着信のブロックは自動的に有効になります。"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"番号をインポート"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"番号のブロックを解除"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"スパム"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> さんはオフラインのため、通話を受信できません"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ka/strings.xml b/java/com/android/dialer/app/res/values-ka/strings.xml
index 4d573831e..befdd3aca 100644
--- a/java/com/android/dialer/app/res/values-ka/strings.xml
+++ b/java/com/android/dialer/app/res/values-ka/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"ზარები"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"ზარების დაბლოკვა"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"ხმოვანი ფოსტა"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"ზარების დაბლოკვა დროებით გამოირთო"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ზარების დაბლოკვა გაითიშა, რადგან ბოლო 48 საათში ამ ტელეფონიდან საგანგებო სამსახურებს დაუკავშირდით. 48 საათის გასვლის შემდეგ ის ავტომატურად ჩაირთვება."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"ნომრების იმპორტი"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ნომრის განბლოკვა"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"სპამი"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ხაზგარეშეა და ვერ დაუკავშირდებით"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-kk/strings.xml b/java/com/android/dialer/app/res/values-kk/strings.xml
index 62397bbb9..8ed666109 100644
--- a/java/com/android/dialer/app/res/values-kk/strings.xml
+++ b/java/com/android/dialer/app/res/values-kk/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Қоңыраулар"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Қоңырауларға тыйым салу"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Дауыстық хабар"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Қоңырауларға тыйым салу уақытша өшірулі"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Қоңырауларға тыйым салу өшірілді, өйткені сіз соңғы 48 сағат ішінде осы телефоннан төтенше қызметтерге хабарластыңыз. Ол 48 сағаттық кезең өткеннен кейін автоматты түрде қайта қосылады."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Нөмірлерді импорттау"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Нөмірді бөгеуден шығару"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> желіден тыс және байланысу мүмкін емес"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-km/strings.xml b/java/com/android/dialer/app/res/values-km/strings.xml
index 27dbf97c9..298070806 100644
--- a/java/com/android/dialer/app/res/values-km/strings.xml
+++ b/java/com/android/dialer/app/res/values-km/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"ការហៅ"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"ការរារាំងការហៅ"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"សារ​ជា​សំឡេង"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"ការរារាំងការហៅត្រូវបានបិទជាបណ្តោះអាសន្ន"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ការរារាំងការហៅត្រូវបានបិទដំណើរការ ដោយសារតែអ្នកបានទាក់ទងទៅសេវាអាសន្នចេញពីទូរស័ព្ទនេះក្នុងចន្លោះពេល 48 ម៉ោងកន្លងមកនេះ។ វានឹងបើកដំណើរការឡើងវិញ បន្ទាប់ពីរយៈពេល 48 ម៉ោងផុតកំណត់។"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"នាំចូលលេខ"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ឈប់ទប់ស្កាត់លេខ"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"សារ​ឥតបានការ"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> មិន​នៅ​លើ​អ៊ីនធឺណិត និង​មិន​អាច​ទាក់ទង​បាន​ទេ"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-kn/strings.xml b/java/com/android/dialer/app/res/values-kn/strings.xml
index 19e11e90f..ff780f99c 100644
--- a/java/com/android/dialer/app/res/values-kn/strings.xml
+++ b/java/com/android/dialer/app/res/values-kn/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"ಕರೆಗಳು"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"ಧ್ವನಿಮೇಲ್"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆ ತಾತ್ಕಾಲಿಕ ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ನೀವು ಕಳೆದ 48 ಗಂಟೆಗಳಲ್ಲಿ ಈ ಫೋನ್‌ನಿಂದ ತುರ್ತು ಸೇವೆಗಳಿಗೆ ಸಂಪರ್ಕಿಸಿರುವ ಕಾರಣದಿಂದ ಕರೆ ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಒಮ್ಮೆ 48 ಗಂಟೆಗಳ ಅವಧಿಯು ಮುಕ್ತಾಯಗೊಂಡ ನಂತರ ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದು."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"ಸಂಖ್ಯೆಗಳನ್ನು ಆಮದು ಮಾಡಿ"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ಸಂಖ್ಯೆಯನ್ನು ಅನಿರ್ಬಂಧಿಸು"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ಸ್ಪ್ಯಾಮ್"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ಆಫ್‌ಲೈನ್ ಆಗಿದ್ದಾರೆ ಮತ್ತು ಅವರನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ko/strings.xml b/java/com/android/dialer/app/res/values-ko/strings.xml
index d28760c6f..cdd0d5205 100644
--- a/java/com/android/dialer/app/res/values-ko/strings.xml
+++ b/java/com/android/dialer/app/res/values-ko/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"통화"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"통화 차단"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"음성사서함"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"통화 차단 기능이 일시적으로 중지됨"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"지난 48시간 이내에 이 휴대전화를 사용해 응급 서비스에 연락했으므로 통화 차단 기능이 중지되었습니다. 48시간이 지나면 통화 차단 기능이 자동으로 다시 사용 설정됩니다."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"번호 가져오기"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"번호 차단 해제"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"스팸"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>님은 오프라인 상태이며 연락할 수 없습니다."</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ky/strings.xml b/java/com/android/dialer/app/res/values-ky/strings.xml
index 85789978d..0784a3e07 100644
--- a/java/com/android/dialer/app/res/values-ky/strings.xml
+++ b/java/com/android/dialer/app/res/values-ky/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Чалуулар"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Чалууларды бөгөттөө"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Үн почтасы"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Чалууну бөгөттөө убактылуу өчүрүлгөн"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Акыркы 48 саат ичинде бул телефондон өзгөчө кырдаал кызматына байланышкандыктан чалууну бөгөттөө өчүрүлдү. 48 сааттык мөөнөтү аяктагандан кийин ал автоматтык түрдө кайра иштетилет."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Номерлерди импорттоо"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Номерди бөгөттөн чыгаруу"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> оффлайн режиминде болгондуктан, байланышууга болбойт"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-lo/strings.xml b/java/com/android/dialer/app/res/values-lo/strings.xml
index a433847f9..d7b8f3207 100644
--- a/java/com/android/dialer/app/res/values-lo/strings.xml
+++ b/java/com/android/dialer/app/res/values-lo/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"​ການ​ໂທ"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"ການບ​ລັອກ​ສາຍ​ໂທ"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"ຂໍ້ຄວາມສຽງ"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"ການບ​ລັອກ​ສາຍ​ໂທ​ປິດ​ຊົ່ວ​ຄາວ"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ການບ​ລັອກ​ສາຍ​ໂທ​ຖືກ​ປິດ​ໃຊ້​ງານ​ແລ້ວ ເພາະ​ວ່າ​ທ່ານ​ໄດ້​ຕິດ​ຕໍ່​ຫາ​ຝ່າຍ​ບໍ​ລິ​ການ​ສຸກ​ເສີນ​ຈາກ​ໂທ​ລະ​ສັບ​ນີ້​ພາຍ​ໃນ 48 ຊົ່ວ​ໂມງ​ສຸດ​ທ້າຍ. ມັນ​ຈະ​ຖືກ​ເປີດ​ໃຊ້​ງານ​ອີກ​ໂດຍ​ອັດ​ຕະ​ໂນ​ມັດ ເມື່ອ​ໝົດ​ໄລ​ຍະ 48 ຊົ່ວ​ໂມງ​ໄປ​ແລ້ວ."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"ນຳ​ຕົວ​ເລກ​ເຂົ້າ"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ປົດ​ບ​ລັອກ​ໝາຍ​ເລກ"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ສະແປມ"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ອອບລາຍຢູ່ ແລະ ບໍ່ສາມາດຕິດຕໍ່ຫາໄດ້"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-lt/strings.xml b/java/com/android/dialer/app/res/values-lt/strings.xml
index c4feacf32..eaa11cbc7 100644
--- a/java/com/android/dialer/app/res/values-lt/strings.xml
+++ b/java/com/android/dialer/app/res/values-lt/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Skambučiai"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Skambučių blokavimas"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Balso paštas"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Skamb. blokavimo funkcija laikinai išj."</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importuoti numerius"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Panaikinti numerio blokavimą"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Šlamštas"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> yra neprisijungęs (-usi) ir su juo (ja) negalima susisiekti"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-lv/strings.xml b/java/com/android/dialer/app/res/values-lv/strings.xml
index 440e2d4d1..3c73cd580 100644
--- a/java/com/android/dialer/app/res/values-lv/strings.xml
+++ b/java/com/android/dialer/app/res/values-lv/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Zvani"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Zvanu bloķēšana"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Balss pasts"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Zvanu bloķēšana ir īslaicīgi izslēgta"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importēt numurus"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Atbloķēt numuru"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Nevēlami zvani"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Lietotājs <xliff:g id="NAME">%1$s</xliff:g> ir bezsaistē un nav sasniedzams"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-mk/strings.xml b/java/com/android/dialer/app/res/values-mk/strings.xml
index c179bb631..016821d96 100644
--- a/java/com/android/dialer/app/res/values-mk/strings.xml
+++ b/java/com/android/dialer/app/res/values-mk/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Повици"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Блокирање повик"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Говорна пошта"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Блокирањето повик е привремено исклучено"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Блокирањето повици е исклучено бидејќи ја контактиравте службата за итни случаи од телефонов во изминатите 48 часа. Повторно ќе се овозможи автоматски откако ќе истече периодот од 48 часа."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Увези броеви"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Одблокирај го бројот"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Контактот <xliff:g id="NAME">%1$s</xliff:g> е офлајн и недостапен"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ml/strings.xml b/java/com/android/dialer/app/res/values-ml/strings.xml
index a642334b5..081a05a04 100644
--- a/java/com/android/dialer/app/res/values-ml/strings.xml
+++ b/java/com/android/dialer/app/res/values-ml/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"കോളുകൾ"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"കോൾ ബ്ലോക്കുചെയ്യൽ"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"വോയ്സ് മെയില്‍"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"കോൾ ബ്ലോക്കുചെയ്യൽ താൽക്കാലികമായി ഓഫാണ്"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"കഴിഞ്ഞ 48 മണിക്കൂറിനുള്ളിൽ നിങ്ങൾ ഈ ഫോണിൽ നിന്ന് അടിയന്തിര സേവനങ്ങളുമായി ബന്ധപ്പെട്ടതിനാൽ കോൾ ബ്ലോക്കുചെയ്യൽ പ്രവർത്തനരഹിതമാക്കി. 48 മണിക്കൂർ സമയപരിധി കഴിഞ്ഞയുടൻ ഇത് സ്വയമേവ പ്രവർത്തനക്ഷമമാക്കപ്പെടും."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"നമ്പറുകൾ ഇമ്പോർട്ടുചെയ്യുക"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"നമ്പർ അൺബ്ലോക്കുചെയ്യുക"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"സ്‌പാം"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ഓഫ്‌ലൈനായതിനാൽ കോൾ ചെയ്യാനാവില്ല"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-mn/strings.xml b/java/com/android/dialer/app/res/values-mn/strings.xml
index 12f0d41cc..16f7e1ad1 100644
--- a/java/com/android/dialer/app/res/values-mn/strings.xml
+++ b/java/com/android/dialer/app/res/values-mn/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Дуудлага"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Дуудлага блоклох"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Дуут шуудан"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Дуудлага блоклох тохиргоог түр хугацаагаар унтраасан"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Та сүүлийн 48 цагийн дотор энэ утсаар тусламжийн дуудлага хийсэн тул дуудлага блоклох тохиргоог идэвхгүй болгосон. Энэ тохиргоо нь 48 цагийн хугацаа дуусахад автоматаар идэвхэжнэ."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Импортын тоо"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Дугаар блокноос гаргах"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> офлайн, холбогдох боломжгүй байна"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-mr/strings.xml b/java/com/android/dialer/app/res/values-mr/strings.xml
index feda81603..eb374b9e0 100644
--- a/java/com/android/dialer/app/res/values-mr/strings.xml
+++ b/java/com/android/dialer/app/res/values-mr/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"कॉल"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"कॉल अवरोधित करणे"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"व्हॉइसमेल"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"कॉल अवरोधित करणे तात्पुरते बंद"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"आपण मागील 48 तासात या फोनवरून आणीबाणी सेवांशी संपर्क साधला असल्याने कॉल अवरोधित करणे अक्षम केले गेले आहे. एकदा 48 तासांचा कालावधी कालबाह्य झाला की ते स्वयंचलितपणे पुन्हा सक्षम केले जाईल."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"नंबर अायात करा"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"नंबर अनावरोधित करा"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"स्पॅम"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ऑफलाइन आहे आणि त्यांच्याशी संपर्क साधू शकत नाही"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ms/strings.xml b/java/com/android/dialer/app/res/values-ms/strings.xml
index f4c9ac29f..c471ce922 100644
--- a/java/com/android/dialer/app/res/values-ms/strings.xml
+++ b/java/com/android/dialer/app/res/values-ms/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Panggilan"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Sekatan panggilan"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Mel suara"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Sekatan panggilan dimatikan sementara"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Import nombor"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Nyahsekat nombor"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> di luar talian dan tidak dapat dihubungi"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-my/strings.xml b/java/com/android/dialer/app/res/values-my/strings.xml
index 16b286fd4..dd81dee5f 100644
--- a/java/com/android/dialer/app/res/values-my/strings.xml
+++ b/java/com/android/dialer/app/res/values-my/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"ခေါ်ဆိုမှုများ"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"ခေါ်ဆိုမှု ပိတ်ဆို့ခြင်း"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"အသံမေးလ်"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"ခေါ်ဆိုမှုပိတ်ဆို့ခြင်း ယာယီပိတ်ထားသည်"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"သင်သည် လွန်ခဲ့သည့် ၄၈ နာရီအတွင်း ဤဖုန်းဖြင့် အရေးပေါ်ဌာနကိုဖုန်း ခေါ်ဆိုခဲ့သောကြောင့် ခေါ်ဆိုမှုပိတ်ဆို့ခြင်းကို ဖြုတ်ထားသည်။ ၄၈ နာရီကျော်လွန်သည်နှင့် ၎င်းကိုအလိုအလျောက် ပြန်ဖွင့်ပေးပါမည်။"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"နံပါတ်များ သွင်းရန်"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"နံပါတ်ကို ဖွင့်မည်"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"စပမ်း"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> သည် အော့ဖ်လိုင်းဖြစ်နေသောကြောင့် ဆက်သွယ်၍ မရနိုင်ပါ"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-nb/strings.xml b/java/com/android/dialer/app/res/values-nb/strings.xml
index 4d97dc23a..8f83c949d 100644
--- a/java/com/android/dialer/app/res/values-nb/strings.xml
+++ b/java/com/android/dialer/app/res/values-nb/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Anrop"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Anropsblokkering"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Talepost"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokkering av anrop er midlertidig slått av"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importér numre"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Opphev blokkeringen av nummeret"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Nettsøppel"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er frakoblet og kan ikke nås"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ne/strings.xml b/java/com/android/dialer/app/res/values-ne/strings.xml
index 169c0111a..f9524637a 100644
--- a/java/com/android/dialer/app/res/values-ne/strings.xml
+++ b/java/com/android/dialer/app/res/values-ne/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"कलहरू"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"कल रोक्दै"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"भ्वाइस मेल"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"कल अवरुद्ध अस्थायी रुपमा निष्क्रिय"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"कल अवरुद्ध अस्थायी रुपमा असक्षम गरिएको छ किनभने तपाईँले अन्तिम ४८ घन्टा भित्र यस फोनबाट आपत्कालीन सेवाहरू सम्पर्क गर्नुभयो। एकपटक ४८ घन्टा अवधि समाप्त भएपछि यो स्वचालित रूपले पुनः सक्रिय हुनेछ।"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"नम्बरहरू आयात गर्नुहोस्"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"नम्बरमाथिको रोक हटाउनुहोस्"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"स्प्याम"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> अफलाइन हुनुहुन्छ र वहाँलाई भेट्न सकिँदैन"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-nl/strings.xml b/java/com/android/dialer/app/res/values-nl/strings.xml
index 3eddbb7e2..498436897 100644
--- a/java/com/android/dialer/app/res/values-nl/strings.xml
+++ b/java/com/android/dialer/app/res/values-nl/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Oproepen"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Oproepen blokkeren"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Voicemail"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Oproepblokkering tijdelijk uitgeschakeld"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Nummers importeren"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Blokkeren van nummer opheffen"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> is offline en kan niet worden bereikt"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-no/strings.xml b/java/com/android/dialer/app/res/values-no/strings.xml
index 4d97dc23a..8f83c949d 100644
--- a/java/com/android/dialer/app/res/values-no/strings.xml
+++ b/java/com/android/dialer/app/res/values-no/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Anrop"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Anropsblokkering"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Talepost"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokkering av anrop er midlertidig slått av"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importér numre"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Opphev blokkeringen av nummeret"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Nettsøppel"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> er frakoblet og kan ikke nås"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pa/strings.xml b/java/com/android/dialer/app/res/values-pa/strings.xml
index c8a39f6ae..88e3aa718 100644
--- a/java/com/android/dialer/app/res/values-pa/strings.xml
+++ b/java/com/android/dialer/app/res/values-pa/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"ਕਾਲਾਂ"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"ਕਾਲ ਬਲੌਕ ਕਰਨਾ"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"ਵੌਇਸਮੇਲ"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"ਕਾਲ ਬਲੌਕਿੰਗ ਆਰਜ਼ੀ ਤੌਰ ਤੇ ਬੰਦ ਹੈ"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ਕਾਲ ਬਲੌਕਿੰਗ ਅਸਮਰੱਥ ਕਰ ਦਿੱਤੀ ਗਈ ਹੈ ਕਿਉਂਕਿ ਤੁਸੀਂ ਇਸ ਫੋਨ ਦੁਆਰਾ ਪਿਛਲੇ 48 ਘੰਟਿਆਂ ਤੋਂ ਐਮਰਜੈਂਸੀ ਸੇਵਾਵਾਂ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਹੋਇਆ ਹੈ। ਇਹ 48 ਘੰਟਿਆਂ ਦਾ ਸਮਾਂ ਪੂਰਾ ਹੋਣ ਤੇੋਂ ਬਾਅਦ ਆਟੋਮੈਟਿਕਲੀ ਮੁੜ-ਸਮਰੱਥ ਹੋ ਜਾਵੇਗੀ।"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"ਆਯਾਤ ਨੰਬਰ"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"ਨੰਬਰ ਨੂੰ ਅਨਬਲੌਕ ਕਰੋ"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ਸਪੈਮ"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ਔਫਲਾਈਨ ਹੈ ਅਤੇ ਉਸ \'ਤੇ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pl/strings.xml b/java/com/android/dialer/app/res/values-pl/strings.xml
index 452854064..f408ed353 100644
--- a/java/com/android/dialer/app/res/values-pl/strings.xml
+++ b/java/com/android/dialer/app/res/values-pl/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Połączenia"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blokowanie połączeń"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Poczta głosowa"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokada połączeń tymczasowo wyłączona"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Zaimportuj numery"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Odblokuj numer"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Użytkownik <xliff:g id="NAME">%1$s</xliff:g> jest offline i nie można się z nim skontaktować"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
index 845442a71..0fc1da7ac 100644
--- a/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rBR/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Chamadas"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Bloqueio de chamadas"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Correio de voz"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Bloqueio de chamadas temporiamente desativado"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importar números"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está off-line e não é possível entrar em contato"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
index 95451bc9d..f12e25456 100644
--- a/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt-rPT/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Chamadas"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Bloqueio de chamadas"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Correio de voz"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Bloqueio de chamadas tempor. desativado"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importar números"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está offline e não pode ser contactado"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-pt/strings.xml b/java/com/android/dialer/app/res/values-pt/strings.xml
index 845442a71..0fc1da7ac 100644
--- a/java/com/android/dialer/app/res/values-pt/strings.xml
+++ b/java/com/android/dialer/app/res/values-pt/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Chamadas"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Bloqueio de chamadas"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Correio de voz"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Bloqueio de chamadas temporiamente desativado"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importar números"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Desbloquear número"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> está off-line e não é possível entrar em contato"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ro/strings.xml b/java/com/android/dialer/app/res/values-ro/strings.xml
index 36987fe3e..d07dbed87 100644
--- a/java/com/android/dialer/app/res/values-ro/strings.xml
+++ b/java/com/android/dialer/app/res/values-ro/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Apeluri"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blocarea apelurilor"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Mesagerie vocală"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blocarea apelurilor e dezactivată temporar"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importați numere"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Deblocați numărul"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> este offline și nu poate fi contactat(ă)"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ru/strings.xml b/java/com/android/dialer/app/res/values-ru/strings.xml
index 69031b14f..e98622de8 100644
--- a/java/com/android/dialer/app/res/values-ru/strings.xml
+++ b/java/com/android/dialer/app/res/values-ru/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Вызовы"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Блокировка вызовов"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Голосовая почта"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Блокировка вызовов временно отключена"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Блокировка вызовов отключена, поскольку вы недавно набирали номер экстренной службы. Когда с момента звонка пройдет 48 часов, эта функция включится автоматически."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Импортировать номера"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Разблокировать номер"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> сейчас офлайн и не ответит на вызов"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-si/strings.xml b/java/com/android/dialer/app/res/values-si/strings.xml
index 45ee7d961..c4ae1736d 100644
--- a/java/com/android/dialer/app/res/values-si/strings.xml
+++ b/java/com/android/dialer/app/res/values-si/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"ඇමතුම්"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"ඇමතුම් අවහිර කිරීම"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"හඬ තැපෑල"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"ඇමතුම් අවහිර කිරීම තාවකාලිකව අක්‍රියයි"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ඔබ පසුගිය පැය 48 ඇතුළත මෙම දුරකථනයෙන් හදිසි අවස්ථා සේවා ඇමතූ බැව්න් ඇමතුම් අවහිර කිරීම අබල කර ඇත. පැය 48ක කාල සීමාව ඉකුත් වූ විට එය ස්වයංක්‍රියව යළි සබල කෙරේ."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"අංක ආයාත කරන්න"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"අංකය අවහිර නොකරන්න"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"අයාචිත තැපෑල"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> නොබැඳි අතර ළඟා වීමට නොහැකිය"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sk/strings.xml b/java/com/android/dialer/app/res/values-sk/strings.xml
index 9774a4180..b5f426938 100644
--- a/java/com/android/dialer/app/res/values-sk/strings.xml
+++ b/java/com/android/dialer/app/res/values-sk/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Hovory"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blokovanie hovorov"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Hlasová schránka"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokovanie hovorov je dočasne vypnuté"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importovať čísla"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zrušiť blokovanie čísla"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> je offline a nedá sa zastihnúť"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sl/strings.xml b/java/com/android/dialer/app/res/values-sl/strings.xml
index 80898e58d..51ac390de 100644
--- a/java/com/android/dialer/app/res/values-sl/strings.xml
+++ b/java/com/android/dialer/app/res/values-sl/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Klici"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Blokiranje klicev"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Odzivnik"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blokiranje klicev je začasno izklopljeno"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Uvoz številk"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Odblokiranje telefonske številke"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Vsiljena pošta"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Oseba <xliff:g id="NAME">%1$s</xliff:g> nima vzpostavljene povezave in ni dosegljiva"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sq/strings.xml b/java/com/android/dialer/app/res/values-sq/strings.xml
index ea757a873..8bc3e85be 100644
--- a/java/com/android/dialer/app/res/values-sq/strings.xml
+++ b/java/com/android/dialer/app/res/values-sq/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Telefonatat"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Bllokimi i telefonatave"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Posta zanore"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Bllokimi i telefonatave është përkohësisht joaktiv"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importo numrat"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Zhblloko numrin"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"E bezdisshme"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> është jashtë linje dhe nuk mund të kontaktohet"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sr/strings.xml b/java/com/android/dialer/app/res/values-sr/strings.xml
index 610f230f7..e7f7f912d 100644
--- a/java/com/android/dialer/app/res/values-sr/strings.xml
+++ b/java/com/android/dialer/app/res/values-sr/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Позиви"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Блокирање позива"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Говорна пошта"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Блокирање позива је привремено искључено"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Блокирање позива је онемогућено зато што сте контактирали службе за помоћ у хитним случајевима са овог телефона у последњих 48 сати. Аутоматски ће бити поново омогућено када истекне период од 48 сати."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Увези бројеве"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Деблокирај број"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Непожељан"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> је офлајн и не можете да га/је контактирате"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sv/strings.xml b/java/com/android/dialer/app/res/values-sv/strings.xml
index c29568ba3..36616ce83 100644
--- a/java/com/android/dialer/app/res/values-sv/strings.xml
+++ b/java/com/android/dialer/app/res/values-sv/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Samtal"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Samtalsblockering"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Röstbrevlåda"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Blockeringen har inaktiverats tillfälligt"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Importera nummer"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Häv blockeringen av numret"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> är offline och går inte att nå"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-sw/strings.xml b/java/com/android/dialer/app/res/values-sw/strings.xml
index 11f5664d0..fdbdd7d02 100644
--- a/java/com/android/dialer/app/res/values-sw/strings.xml
+++ b/java/com/android/dialer/app/res/values-sw/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Simu zilizopigwa"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Kuzuia simu"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Ujumbe wa sauti"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Kuzuia simu kumezimwa kwa muda"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Leta nambari"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Ondolea nambari kizuizi"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Taka"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> hayuko mtandaoni na hapatikani"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ta/strings.xml b/java/com/android/dialer/app/res/values-ta/strings.xml
index 795a4e7cb..f7e1d19c4 100644
--- a/java/com/android/dialer/app/res/values-ta/strings.xml
+++ b/java/com/android/dialer/app/res/values-ta/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"அழைப்புகள்"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"அழைப்புத் தடுப்பு"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"குரலஞ்சல்"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"அழைப்புத் தடுப்பு அம்சம் தற்காலிகமாக முடக்கப்பட்டுள்ளது"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"கடந்த 48 மணிநேரத்தில், இந்த ஃபோனிலிருந்து அவசர அழைப்பு எண்ணைத் தொடர்புகொண்டதால் அழைப்புத் தடுப்பு அம்சம் முடக்கப்பட்டுள்ளது. 48 மணிநேரம் கழித்து, இந்த அம்சம் தானாகவே மீண்டும் இயக்கப்படும்."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"எண்களை இறக்கு"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"எண்ணை அனுமதி"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"ஸ்பேம்"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ஆஃப்லைனில் உள்ளதால், தொடர்புகொள்ள முடியாது"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-te/strings.xml b/java/com/android/dialer/app/res/values-te/strings.xml
index 531e20618..babfb9a1e 100644
--- a/java/com/android/dialer/app/res/values-te/strings.xml
+++ b/java/com/android/dialer/app/res/values-te/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"కాల్‌లు"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"కాల్ బ్లాక్ చేయడం"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"వాయిస్ మెయిల్"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"కాల్ బ్లాకింగ్ తాత్కాలికంగా ఆఫ్ అయ్యింది"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"మీరు గత 48 గంటల వ్యవధిలో ఈ ఫోన్ నుండి అత్యవసర సేవలను సంప్రదించినందున కాల్ బ్లాకింగ్ నిలిపివేయబడింది. 48 గంటల వ్యవధి ముగిసిన తర్వాత ఇది స్వయంచాలకంగా పునఃప్రారంభించబడుతుంది."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"నంబర్‌లను దిగుమతి చేయి"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"నంబర్‌ను అన్‌బ్లాక్ చేయి"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"స్పామ్"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ఆఫ్‌లైన్‌లో ఉన్నందున వారిని చేరుకోవడం సాధ్యపడదు"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-th/strings.xml b/java/com/android/dialer/app/res/values-th/strings.xml
index 0433a6eb4..4c2fd37b2 100644
--- a/java/com/android/dialer/app/res/values-th/strings.xml
+++ b/java/com/android/dialer/app/res/values-th/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"การโทร"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"การบล็อกสายเรียกเข้า"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"ข้อความเสียง"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"การบล็อกสายเรียกเข้าปิดชั่วคราว"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"ระบบปิดใช้การบล็อกสายเรียกเข้าเนื่องจากคุณติดต่อบริการฉุกเฉินจากโทรศัพท์เครื่องนี้ภายใน 48 ชั่วโมงที่ผ่านมา ระบบจะเปิดใช้คุณลักษณะนี้อีกครั้งโดยอัตโนมัติเมื่อครบ 48 ชั่วโมง"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"นำเข้าหมายเลข"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"เลิกบล็อกหมายเลข"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"สแปม"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ออฟไลน์อยู่และไม่สามารถติดต่อได้"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-tl/strings.xml b/java/com/android/dialer/app/res/values-tl/strings.xml
index 6eb1723ff..6afb11c1d 100644
--- a/java/com/android/dialer/app/res/values-tl/strings.xml
+++ b/java/com/android/dialer/app/res/values-tl/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Mga Tawag"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Pagba-block ng tawag"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Voicemail"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Pansamantalang na-off ang call blocking"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"I-import ang mga numero"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Alisin sa pagkaka-block ang numero"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"Offline si <xliff:g id="NAME">%1$s</xliff:g> at hindi makontak"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-tr/strings.xml b/java/com/android/dialer/app/res/values-tr/strings.xml
index 751286b30..8b30d4bff 100644
--- a/java/com/android/dialer/app/res/values-tr/strings.xml
+++ b/java/com/android/dialer/app/res/values-tr/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Çağrılar"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Çağrı engelleme"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Sesli mesaj"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Çağrı engelleme geçici olarak kapalı"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Numaraları içe aktar"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Numaranın engellemesini kaldır"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> çevrimdışı olduğundan ulaşılamıyor"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-uk/strings.xml b/java/com/android/dialer/app/res/values-uk/strings.xml
index 0da2ea9f2..f1c5b3f37 100644
--- a/java/com/android/dialer/app/res/values-uk/strings.xml
+++ b/java/com/android/dialer/app/res/values-uk/strings.xml
@@ -204,6 +204,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Дзвінки"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Блокування викликів"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Голосова пошта"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Блокування дзвінків тимчасово вимкнено"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"Блокування дзвінків вимкнено, оскільки ви зверталися з цього телефона в екстрені служби протягом останніх 48 годин. Ця функція автоматично ввімкнеться, коли мине 48 годин."</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"Імпортувати номери"</string>
@@ -233,4 +235,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Розблокувати номер"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Спам"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> не в мережі, неможливо встановити зв’язок"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-ur/strings.xml b/java/com/android/dialer/app/res/values-ur/strings.xml
index 748e2f210..b21281288 100644
--- a/java/com/android/dialer/app/res/values-ur/strings.xml
+++ b/java/com/android/dialer/app/res/values-ur/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"کالز"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"کال مسدود کرنا"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"صوتی میل"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"کال مسدود کرنا عارضی طور پر آف ہے"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"کال مسدود کرنا غیر فعال کر دیا گیا ہے کیونکہ آپ نے پچھلے 48 گھنٹوں میں اس فون سے ہنگامی سروسز کے ساتھ رابطہ کیا تھا۔ جب 48 گھنٹے کا دورانیہ ختم ہوگا تو یہ خودکار طور پر دوبارہ فعال ہو جائے گا۔"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"نمبرز درآمد کریں"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"نمبر غیر مسدود کریں"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"سپام"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> آف لائن ہے اور اس تک پہنچا نہیں جا سکتا"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-uz/strings.xml b/java/com/android/dialer/app/res/values-uz/strings.xml
index a13da4389..e52d2bdf7 100644
--- a/java/com/android/dialer/app/res/values-uz/strings.xml
+++ b/java/com/android/dialer/app/res/values-uz/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Chaqiruvlar"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Qo‘ng‘iroqlarni bloklash"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Ovozli pochta"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Qo‘ng‘iroqlarni bloklash o‘chirilgan"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Raqamlarni import qilish"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Raqamni blokdan chiqarish"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> hozir oflayn va u bilan bog‘lanishning imkoni yo‘q"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-vi/strings.xml b/java/com/android/dialer/app/res/values-vi/strings.xml
index a95e0683c..66b346854 100644
--- a/java/com/android/dialer/app/res/values-vi/strings.xml
+++ b/java/com/android/dialer/app/res/values-vi/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Cuộc gọi"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Chặn cuộc gọi"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Thư thoại"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Tạm thời tắt chặn cuộc gọi"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Nhập số"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Bỏ chặn số"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Spam"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g> ngoại tuyến và không liên hệ được"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
index 6a12a0711..c64234e22 100644
--- a/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rCN/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"通话"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"来电屏蔽"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"语音邮件"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"来电拦截功能已暂时关闭"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"来电拦截功能已停用,因为您在过去 48 小时内使用该手机拨打了紧急服务电话。系统会在 48 小时的期限结束后自动重新启用该功能。"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"导入号码"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"取消屏蔽号码"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"骚扰电话号码"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>不在线,无法接通"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
index 12e50fb09..693e56caa 100644
--- a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml
@@ -199,6 +199,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"通話"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"來電封鎖"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"留言"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"暫時關閉來電封鎖功能"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"您在過去 48 小時內曾經使用此手機聯絡緊急服務,因此來電封鎖功能已停用。系統會在 48 小時期限結束後自動重新啟用功能。"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"匯入號碼"</string>
@@ -228,4 +230,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"解除封鎖號碼"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"垃圾號碼"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>已離線,無法取得聯繫"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
index 83d093e55..3675d3f09 100644
--- a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml
@@ -202,6 +202,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"通話"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"來電封鎖"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"語音留言"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"來電封鎖功能已暫時關閉"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"由於您曾在過去 48 小時內使用這支手機撥打緊急服務電話,因此來電封鎖功能已停用。此功能停用達 48 小時後,將由系統自動重新啟用。"</string>
<string name="import_send_to_voicemail_numbers_label" msgid="7821890095264297681">"匯入電話號碼"</string>
@@ -231,4 +233,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"解除封鎖號碼"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"騷擾/廣告電話"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"<xliff:g id="NAME">%1$s</xliff:g>已離線,無法接聽來電"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values-zu/strings.xml b/java/com/android/dialer/app/res/values-zu/strings.xml
index 840d16877..0d9957dda 100644
--- a/java/com/android/dialer/app/res/values-zu/strings.xml
+++ b/java/com/android/dialer/app/res/values-zu/strings.xml
@@ -200,6 +200,8 @@
<string name="call_settings_label" msgid="7824611757200960807">"Amakholi"</string>
<string name="manage_blocked_numbers_label" msgid="16823761991832273">"Ukuvimbela ikholi"</string>
<string name="voicemail_settings_label" msgid="4594299554519920570">"Ivoyisimeyili"</string>
+ <!-- no translation found for voicemail_settings_select_sim_title (129296966967476845) -->
+ <skip />
<string name="blocked_numbers_disabled_emergency_header_label" msgid="6936696532562923971">"Ukuvimbela ikholi kuvalwe isikhashana"</string>
<string name="blocked_numbers_disabled_emergency_desc" msgid="5484785225285297040">"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="7821890095264297681">"Ngenisa izinombolo"</string>
@@ -229,4 +231,6 @@
<string name="call_log_action_unblock_number" msgid="6100117033288448758">"Vulela inombolo"</string>
<string name="spam_number_call_log_label" msgid="2678431398326811131">"Ugaxekile"</string>
<string name="call_composer_connection_failed" msgid="6776461585447831242">"U-<xliff:g id="NAME">%1$s</xliff:g> akaxhunyiwe kwi-inthanethi futhi akakwazi ukufinyelelwa"</string>
+ <!-- no translation found for about_phone_label (582991354677973731) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml
index a4e443dca..9e1fdeb5a 100644
--- a/java/com/android/dialer/app/res/values/strings.xml
+++ b/java/com/android/dialer/app/res/values/strings.xml
@@ -764,6 +764,9 @@
<!-- Label for the voicemail settings section [CHAR LIMIT=30] -->
<string name="voicemail_settings_label">Voicemail</string>
+ <!-- Title for the preference screen to select which SIM to change voicemail settings for [CHAR LIMIT=30] -->
+ <string name="voicemail_settings_select_sim_title">Select SIM for voicemail settings</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">
@@ -894,4 +897,7 @@
<!-- Shown as a message that notifies the user enriched calling isn't working -->
<string name="call_composer_connection_failed"><xliff:g id="name">%1$s</xliff:g> is offline and can\'t be reached</string>
+ <!-- Label for setting that shows more information about the Phone app [CHAR LIMIT=30] -->
+ <string name="about_phone_label">About</string>
+
</resources>
diff --git a/java/com/android/dialer/app/res/values/styles.xml b/java/com/android/dialer/app/res/values/styles.xml
index 3b2df96f2..7adf7ca2c 100644
--- a/java/com/android/dialer/app/res/values/styles.xml
+++ b/java/com/android/dialer/app/res/values/styles.xml
@@ -142,6 +142,8 @@
<item name="contentInsetEnd">0dp</item>
</style>
+ <style name="DialtactsSearchBarThemeOverlay" parent="ThemeOverlay.AppCompat.Light"/>
+
<!-- Text in the action bar at the top of the screen -->
<style name="DialtactsActionBarTitleText"
parent="@android:style/TextAppearance.Material.Widget.ActionBar.Title">
diff --git a/java/com/android/dialer/app/settings/DialerSettingsActivity.java b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
index ff3841aa1..f1c270ca9 100644
--- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java
+++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java
@@ -24,6 +24,7 @@ import android.os.Bundle;
import android.os.UserManager;
import android.preference.PreferenceManager;
import android.provider.Settings;
+import android.support.annotation.Nullable;
import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
@@ -31,6 +32,7 @@ import android.telephony.TelephonyManager;
import android.view.MenuItem;
import android.widget.Toast;
import com.android.contacts.common.compat.TelephonyManagerCompat;
+import com.android.dialer.about.AboutPhoneFragment;
import com.android.dialer.app.R;
import com.android.dialer.blocking.FilteredNumberCompat;
import com.android.dialer.common.LogUtil;
@@ -135,6 +137,11 @@ public class DialerSettingsActivity extends AppCompatPreferenceActivity {
accessibilitySettingsHeader.intent = accessibilitySettingsIntent;
target.add(accessibilitySettingsHeader);
}
+
+ Header aboutPhoneHeader = new Header();
+ aboutPhoneHeader.titleRes = R.string.about_phone_label;
+ aboutPhoneHeader.fragment = AboutPhoneFragment.class.getName();
+ target.add(aboutPhoneHeader);
}
private void addVoicemailSettings(List<Header> target, boolean isPrimaryUser) {
@@ -151,21 +158,57 @@ public class DialerSettingsActivity extends AppCompatPreferenceActivity {
return;
}
- PhoneAccountHandle phoneAccountHandle =
- getSystemService(TelecomManager.class)
- .getDefaultOutgoingPhoneAccount(PhoneAccount.SCHEME_TEL);
- if (phoneAccountHandle == null) {
- LogUtil.e("DialerSettingsActivity.addVoicemailSettings", "phoneAccountHandle is null");
- return;
- }
LogUtil.i("DialerSettingsActivity.addVoicemailSettings", "adding voicemail settings");
Header voicemailSettings = new Header();
voicemailSettings.titleRes = R.string.voicemail_settings_label;
- voicemailSettings.fragment = voicemailSettingsFragment;
- Bundle bundle = new Bundle();
- bundle.putParcelable(VoicemailClient.PARAM_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
- voicemailSettings.fragmentArguments = bundle;
- target.add(voicemailSettings);
+ PhoneAccountHandle soleAccount = getSoleSimAccount();
+ if (soleAccount == null) {
+ LogUtil.i(
+ "DialerSettingsActivity.addVoicemailSettings", "showing multi-SIM voicemail settings");
+ voicemailSettings.fragment = PhoneAccountSelectionFragment.class.getName();
+ Bundle bundle = new Bundle();
+ bundle.putString(
+ PhoneAccountSelectionFragment.PARAM_TARGET_FRAGMENT, voicemailSettingsFragment);
+ bundle.putString(
+ PhoneAccountSelectionFragment.PARAM_PHONE_ACCOUNT_HANDLE_KEY,
+ VoicemailClient.PARAM_PHONE_ACCOUNT_HANDLE);
+ bundle.putBundle(PhoneAccountSelectionFragment.PARAM_ARGUMENTS, new Bundle());
+ bundle.putInt(
+ PhoneAccountSelectionFragment.PARAM_TARGET_TITLE_RES, R.string.voicemail_settings_label);
+ voicemailSettings.fragmentArguments = bundle;
+ target.add(voicemailSettings);
+ } else {
+ LogUtil.i(
+ "DialerSettingsActivity.addVoicemailSettings", "showing single-SIM voicemail settings");
+ voicemailSettings.fragment = voicemailSettingsFragment;
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(VoicemailClient.PARAM_PHONE_ACCOUNT_HANDLE, soleAccount);
+ voicemailSettings.fragmentArguments = bundle;
+ target.add(voicemailSettings);
+ }
+ }
+
+ /**
+ * @return the only SIM phone account, or {@code null} if there are none or more than one. Note:
+ * having a empty SIM slot still count as a PhoneAccountHandle that is "invalid", and
+ * voicemail settings should still be available for it.
+ */
+ @Nullable
+ private PhoneAccountHandle getSoleSimAccount() {
+ TelecomManager telecomManager = getSystemService(TelecomManager.class);
+ PhoneAccountHandle result = null;
+ for (PhoneAccountHandle phoneAccountHandle : telecomManager.getCallCapablePhoneAccounts()) {
+ PhoneAccount phoneAccount = telecomManager.getPhoneAccount(phoneAccountHandle);
+ if (phoneAccount.hasCapabilities(PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION)) {
+ LogUtil.i(
+ "DialerSettingsActivity.getSoleSimAccount", phoneAccountHandle + " is a SIM account");
+ if (result != null) {
+ return null;
+ }
+ result = phoneAccountHandle;
+ }
+ }
+ return result;
}
/**
diff --git a/java/com/android/dialer/app/settings/PhoneAccountSelectionFragment.java b/java/com/android/dialer/app/settings/PhoneAccountSelectionFragment.java
new file mode 100644
index 000000000..8fd276724
--- /dev/null
+++ b/java/com/android/dialer/app/settings/PhoneAccountSelectionFragment.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.app.settings;
+
+import android.app.Fragment;
+import android.content.Context;
+import android.graphics.drawable.Icon;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceScreen;
+import android.support.annotation.VisibleForTesting;
+import android.telecom.PhoneAccount;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import java.util.List;
+
+/**
+ * Preference screen that lists SIM phone accounts to select from, and forwards the selected account
+ * to {@link #PARAM_TARGET_FRAGMENT}. Can only be used in a {@link PreferenceActivity}
+ */
+public class PhoneAccountSelectionFragment extends PreferenceFragment {
+
+ /** The {@link PreferenceFragment} to launch after the account is selected. */
+ public static final String PARAM_TARGET_FRAGMENT = "target_fragment";
+
+ /**
+ * The arguments bundle to pass to the {@link #PARAM_TARGET_FRAGMENT}
+ *
+ * @see Fragment#getArguments()
+ */
+ public static final String PARAM_ARGUMENTS = "arguments";
+
+ /**
+ * The key to insert the selected {@link PhoneAccountHandle} to bundle in {@link #PARAM_ARGUMENTS}
+ */
+ public static final String PARAM_PHONE_ACCOUNT_HANDLE_KEY = "phone_account_handle_key";
+
+ /**
+ * The title of the {@link #PARAM_TARGET_FRAGMENT} once it is launched with {@link
+ * PreferenceActivity#startWithFragment(String, Bundle, Fragment, int)}, as a string resource ID.
+ */
+ public static final String PARAM_TARGET_TITLE_RES = "target_title_res";
+
+ private String targetFragment;
+ private Bundle arguments;
+ private String phoneAccountHandleKey;
+ private int titleRes;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ targetFragment = getArguments().getString(PARAM_TARGET_FRAGMENT);
+ arguments = new Bundle();
+ arguments.putAll(getArguments().getBundle(PARAM_ARGUMENTS));
+ phoneAccountHandleKey = getArguments().getString(PARAM_PHONE_ACCOUNT_HANDLE_KEY);
+ titleRes = getArguments().getInt(PARAM_TARGET_TITLE_RES, 0);
+ }
+
+ final class AccountPreference extends Preference {
+ private final PhoneAccountHandle phoneAccountHandle;
+
+ public AccountPreference(
+ Context context, PhoneAccountHandle phoneAccountHandle, PhoneAccount phoneAccount) {
+ super(context);
+ this.phoneAccountHandle = phoneAccountHandle;
+ setTitle(phoneAccount.getLabel());
+ setSummary(phoneAccount.getShortDescription());
+ Icon icon = phoneAccount.getIcon();
+ if (icon != null) {
+ setIcon(icon.loadDrawable(context));
+ }
+ }
+
+ @VisibleForTesting
+ void click() {
+ onClick();
+ }
+
+ @Override
+ protected void onClick() {
+ super.onClick();
+ PreferenceActivity preferenceActivity = (PreferenceActivity) getActivity();
+ arguments.putParcelable(phoneAccountHandleKey, phoneAccountHandle);
+ preferenceActivity.startWithFragment(targetFragment, arguments, null, 0, titleRes, 0);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getContext()));
+ PreferenceScreen screen = getPreferenceScreen();
+
+ TelecomManager telecomManager = getContext().getSystemService(TelecomManager.class);
+
+ List<PhoneAccountHandle> accountHandles = telecomManager.getCallCapablePhoneAccounts();
+
+ Context context = getActivity();
+ for (PhoneAccountHandle handle : accountHandles) {
+ PhoneAccount account = telecomManager.getPhoneAccount(handle);
+ if (account != null) {
+ final boolean isSimAccount =
+ 0 != (account.getCapabilities() & PhoneAccount.CAPABILITY_SIM_SUBSCRIPTION);
+ if (isSimAccount) {
+ screen.addPreference(new AccountPreference(context, handle, account));
+ }
+ }
+ }
+ }
+}
diff --git a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
index 078a40a82..9d07ec561 100644
--- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
+++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java
@@ -22,14 +22,15 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build.VERSION_CODES;
+import android.preference.PreferenceManager;
import android.support.v4.os.BuildCompat;
-import android.telecom.PhoneAccount;
+import android.support.v4.os.UserManagerCompat;
import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import com.android.dialer.app.calllog.DefaultVoicemailNotifier;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.PerAccountSharedPreferences;
import com.android.voicemail.VoicemailComponent;
/**
@@ -40,6 +41,8 @@ import com.android.voicemail.VoicemailComponent;
@TargetApi(VERSION_CODES.O)
public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
+ private static final String LEGACY_VOICEMAIL_COUNT = "legacy_voicemail_count";
+
@Override
public void onReceive(Context context, Intent intent) {
LogUtil.i(
@@ -47,28 +50,37 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
Assert.checkArgument(BuildCompat.isAtLeastO());
PhoneAccountHandle phoneAccountHandle =
- intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE);
- if (phoneAccountHandle == null) {
- // TODO: assert instead after API has landed.
- phoneAccountHandle =
- context
- .getSystemService(TelecomManager.class)
- .getDefaultOutgoingPhoneAccount(PhoneAccount.SCHEME_VOICEMAIL);
- }
- if (VoicemailComponent.get(context)
- .getVoicemailClient()
- .isActivated(context, phoneAccountHandle)) {
+ Assert.isNotNull(intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE));
+
+ int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, -1);
+
+ if (!hasVoicemailCountChanged(context, phoneAccountHandle, count)) {
LogUtil.i(
"LegacyVoicemailNotificationReceiver.onReceive",
- "visual voicemail is activated, ignoring notification");
+ "voicemail count hasn't changed, ignoring");
return;
}
- // Missing extra means there are unknown numbers of voicemails.
- int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, 1);
+ if (count == -1) {
+ // Carrier might not send voicemail count. Missing extra means there are unknown numbers of
+ // voicemails (One or more). Treat it as 1 so the generic version will be shown. ("Voicemail"
+ // instead of "X voicemails")
+ count = 1;
+ }
+
if (count == 0) {
LogUtil.i("LegacyVoicemailNotificationReceiver.onReceive", "clearing notification");
- DefaultVoicemailNotifier.getInstance(context).cancelLegacyNotification();
+ new DefaultVoicemailNotifier(context).cancelLegacyNotification();
+ return;
+ }
+
+ if (UserManagerCompat.isUserUnlocked(context)
+ && VoicemailComponent.get(context)
+ .getVoicemailClient()
+ .isActivated(context, phoneAccountHandle)) {
+ LogUtil.i(
+ "LegacyVoicemailNotificationReceiver.onReceive",
+ "visual voicemail is activated, ignoring notification");
return;
}
@@ -79,7 +91,7 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
intent.getParcelableExtra(TelephonyManager.EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT);
LogUtil.i("LegacyVoicemailNotificationReceiver.onReceive", "sending notification");
- DefaultVoicemailNotifier.getInstance(context)
+ new DefaultVoicemailNotifier(context)
.notifyLegacyVoicemail(
phoneAccountHandle,
count,
@@ -87,4 +99,30 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver {
callVoicemailIntent,
voicemailSettingIntent);
}
+
+ private static boolean hasVoicemailCountChanged(
+ Context context, PhoneAccountHandle phoneAccountHandle, int newCount) {
+ // Need credential encrypted storage to access preferences.
+ if (!UserManagerCompat.isUserUnlocked(context)) {
+ LogUtil.i(
+ "LegacyVoicemailNotificationReceiver.onReceive",
+ "User locked, bypassing voicemail count check");
+ return true;
+ }
+
+ if (newCount == -1) {
+ // Carrier does not report voicemail count
+ return true;
+ }
+
+ PerAccountSharedPreferences preferences =
+ new PerAccountSharedPreferences(
+ context, phoneAccountHandle, PreferenceManager.getDefaultSharedPreferences(context));
+ // Carriers may send multiple notifications for the same voicemail.
+ if (newCount != 0 && newCount == preferences.getInt(LEGACY_VOICEMAIL_COUNT, -1)) {
+ return false;
+ }
+ preferences.edit().putInt(LEGACY_VOICEMAIL_COUNT, newCount).apply();
+ return true;
+ }
}
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
index 5ac487b2d..ea48c8321 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java
@@ -57,6 +57,7 @@ import com.android.dialer.constants.Constants;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.phonenumbercache.CallLogQuery;
+import com.android.dialer.util.PermissionsUtil;
import com.google.common.io.ByteStreams;
import java.io.File;
import java.io.IOException;
@@ -847,6 +848,9 @@ public class VoicemailPlaybackPresenter
}
private void showShareVoicemailButton(boolean show) {
+ if (mContext == null) {
+ return;
+ }
if (isShareVoicemailAllowed(mContext) && shareVoicemailButtonView != null) {
if (show) {
Logger.get(mContext).logImpression(DialerImpression.Type.VVM_SHARE_VISIBLE);
@@ -1048,7 +1052,9 @@ public class VoicemailPlaybackPresenter
mFetchResultHandler = handler;
mVoicemailUri = uri;
if (mContext != null) {
- mContext.getContentResolver().registerContentObserver(mVoicemailUri, false, this);
+ if (PermissionsUtil.hasReadVoicemailPermissions(mContext)) {
+ mContext.getContentResolver().registerContentObserver(mVoicemailUri, false, this);
+ }
mFetchResultHandler.postDelayed(this, FETCH_CONTENT_TIMEOUT_MS);
}
}
diff --git a/java/com/android/dialer/app/widget/ActionBarController.java b/java/com/android/dialer/app/widget/ActionBarController.java
index d0eb326ab..c1b4cc2b4 100644
--- a/java/com/android/dialer/app/widget/ActionBarController.java
+++ b/java/com/android/dialer/app/widget/ActionBarController.java
@@ -49,6 +49,20 @@ public class ActionBarController {
}
};
+ private final AnimationCallback mFadeInCallback =
+ new AnimationCallback() {
+ @Override
+ public void onAnimationEnd() {
+ slideActionBar(false /* slideUp */, false /* animate */);
+ }
+
+ @Override
+ public void onAnimationCancel() {
+ slideActionBar(false /* slideUp */, false /* animate */);
+ }
+ };
+ private ValueAnimator mAnimator;
+
public ActionBarController(ActivityUi activityUi, SearchEditTextLayout searchBox) {
mActivityUi = activityUi;
mSearchBox = searchBox;
@@ -107,7 +121,7 @@ public class ActionBarController {
}
slideActionBar(false /* slideUp */, true /* animate */);
} else {
- mSearchBox.fadeIn();
+ mSearchBox.fadeIn(mFadeInCallback);
}
}
}
@@ -129,14 +143,18 @@ public class ActionBarController {
public void slideActionBar(boolean slideUp, boolean animate) {
LogUtil.d("ActionBarController.slidingActionBar", "up: %b, animate: %b", slideUp, animate);
+ if (mAnimator != null && mAnimator.isRunning()) {
+ mAnimator.cancel();
+ mAnimator.removeAllUpdateListeners();
+ }
if (animate) {
- ValueAnimator animator = slideUp ? ValueAnimator.ofFloat(0, 1) : ValueAnimator.ofFloat(1, 0);
- animator.addUpdateListener(
+ mAnimator = slideUp ? ValueAnimator.ofFloat(0, 1) : ValueAnimator.ofFloat(1, 0);
+ mAnimator.addUpdateListener(
animation -> {
final float value = (float) animation.getAnimatedValue();
setHideOffset((int) (mActivityUi.getActionBarHeight() * value));
});
- animator.start();
+ mAnimator.start();
} else {
setHideOffset(slideUp ? mActivityUi.getActionBarHeight() : 0);
}
@@ -147,8 +165,7 @@ public class ActionBarController {
mSearchBox.animate().alpha(alphaValue).start();
}
- public void setHideOffset(int offset) {
- mIsActionBarSlidUp = offset >= mActivityUi.getActionBarHeight();
+ private void setHideOffset(int offset) {
mActivityUi.setActionBarHideOffset(offset);
}
diff --git a/java/com/android/dialer/app/widget/SearchEditTextLayout.java b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
index be850f9a0..f83c48288 100644
--- a/java/com/android/dialer/app/widget/SearchEditTextLayout.java
+++ b/java/com/android/dialer/app/widget/SearchEditTextLayout.java
@@ -95,11 +95,11 @@ public class SearchEditTextLayout extends FrameLayout {
// Convert a long click into a click to expand the search box, and then long click on the
// search view. This accelerates the long-press scenario for copy/paste.
- mCollapsedSearchBox.setOnLongClickListener(
+ mCollapsed.setOnLongClickListener(
new OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
- mCollapsedSearchBox.performClick();
+ mCollapsed.performClick();
mSearchView.performLongClick();
return false;
}
@@ -188,6 +188,11 @@ public class SearchEditTextLayout extends FrameLayout {
mIsFadedOut = false;
}
+ public void fadeIn(AnimUtils.AnimationCallback callback) {
+ AnimUtils.fadeIn(this, ANIMATION_DURATION, AnimUtils.NO_DELAY, callback);
+ mIsFadedOut = false;
+ }
+
public void setVisible(boolean visible) {
if (visible) {
setAlpha(1);
diff --git a/java/com/android/dialer/backup/DialerBackupAgent.java b/java/com/android/dialer/backup/DialerBackupAgent.java
index 27dfc29f4..dec1ca1a7 100644
--- a/java/com/android/dialer/backup/DialerBackupAgent.java
+++ b/java/com/android/dialer/backup/DialerBackupAgent.java
@@ -81,15 +81,14 @@ public class DialerBackupAgent extends BackupAgent {
/**
* onRestore is used for Key/Value restore. Since we are using Dolly/Android Auto backup/restore,
- * we do not need to implement this method as Dolly should not be calling this method. Instead
- * onFileRestore will be called by Dolly.
+ * we need to implement this method only for backwards compatibility. Dolly should be calling
+ * onFileRestore during its restore.
*/
@Override
public void onRestore(
BackupDataInput backupDataInput, int i, ParcelFileDescriptor parcelFileDescriptor)
throws IOException {
Logger.get(this).logImpression(DialerImpression.Type.BACKUP_ON_RESTORE);
- Assert.fail("Android Backup should not call DialerBackupAgent.onRestore");
}
@TargetApi(VERSION_CODES.M)
diff --git a/java/com/android/dialer/binary/common/DialerApplication.java b/java/com/android/dialer/binary/common/DialerApplication.java
index b4ee75cd4..a4c2e7d6f 100644
--- a/java/com/android/dialer/binary/common/DialerApplication.java
+++ b/java/com/android/dialer/binary/common/DialerApplication.java
@@ -26,6 +26,7 @@ import com.android.dialer.buildtype.BuildType;
import com.android.dialer.calllog.CallLogComponent;
import com.android.dialer.common.concurrent.DefaultDialerExecutorFactory;
import com.android.dialer.inject.HasRootComponent;
+import com.android.dialer.notification.NotificationChannelManager;
import com.android.dialer.persistentlog.PersistentLogger;
/** A common application subclass for all Dialer build variants. */
@@ -47,6 +48,8 @@ public abstract class DialerApplication extends Application implements HasRootCo
.asyncAutoMigrate();
CallLogComponent.get(this).callLogFramework().registerContentObservers(getApplicationContext());
PersistentLogger.initialize(this);
+
+ NotificationChannelManager.getInstance().firstInitIfNeeded(this);
Trace.endSection();
}
diff --git a/java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java b/java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java
index 3cc42207d..6e9fe1315 100644
--- a/java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java
+++ b/java/com/android/dialer/blocking/BlockedNumbersAutoMigrator.java
@@ -21,6 +21,7 @@ import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.v4.os.UserManagerCompat;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler.OnHasBlockedNumbersListener;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
@@ -100,6 +101,10 @@ public class BlockedNumbersAutoMigrator {
@Nullable
@Override
public Boolean doInBackground(@Nullable Void input) {
+ if (!UserManagerCompat.isUserUnlocked(appContext)) {
+ LogUtil.i("BlockedNumbersAutoMigrator", "not attempting auto-migrate: device is locked");
+ return false;
+ }
SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(appContext);
diff --git a/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java b/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
index bd4156846..fa74850ba 100644
--- a/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
+++ b/java/com/android/dialer/blocking/FilteredNumberAsyncQueryHandler.java
@@ -137,14 +137,6 @@ public class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler {
return;
}
- String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso);
- String formattedNumber = FilteredNumbersUtil.getBlockableNumber(context, e164Number, number);
- if (TextUtils.isEmpty(formattedNumber)) {
- listener.onCheckComplete(INVALID_ID);
- blockedNumberCache.put(number, INVALID_ID);
- return;
- }
-
if (!UserManagerCompat.isUserUnlocked(context)) {
LogUtil.i(
"FilteredNumberAsyncQueryHandler.isBlockedNumber",
@@ -153,6 +145,14 @@ public class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler {
return;
}
+ String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso);
+ String formattedNumber = FilteredNumbersUtil.getBlockableNumber(context, e164Number, number);
+ if (TextUtils.isEmpty(formattedNumber)) {
+ listener.onCheckComplete(INVALID_ID);
+ blockedNumberCache.put(number, INVALID_ID);
+ return;
+ }
+
startQuery(
NO_TOKEN,
new Listener() {
@@ -201,7 +201,7 @@ public class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler {
*/
@TargetApi(VERSION_CODES.M)
@Nullable
- public Integer getBlockedIdSynchronousForCalllogOnly(@Nullable String number, String countryIso) {
+ public Integer getBlockedIdSynchronous(@Nullable String number, String countryIso) {
Assert.isWorkerThread();
if (number == null) {
return null;
@@ -251,7 +251,7 @@ public class FilteredNumberAsyncQueryHandler extends AsyncQueryHandler {
blockedNumberCache.put(number, blockedId);
return blockedId;
} catch (SecurityException e) {
- LogUtil.e("FilteredNumberAsyncQueryHandler.getBlockedIdSynchronousForCalllogOnly", null, e);
+ LogUtil.e("FilteredNumberAsyncQueryHandler.getBlockedIdSynchronous", null, e);
return null;
}
}
diff --git a/java/com/android/dialer/blocking/FilteredNumberProvider.java b/java/com/android/dialer/blocking/FilteredNumberProvider.java
index 5d369038c..8ed781e73 100644
--- a/java/com/android/dialer/blocking/FilteredNumberProvider.java
+++ b/java/com/android/dialer/blocking/FilteredNumberProvider.java
@@ -26,12 +26,12 @@ import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
-import android.util.Log;
-import com.android.contacts.common.GeoUtil;
+import com.android.dialer.common.LogUtil;
import com.android.dialer.database.Database;
import com.android.dialer.database.DialerDatabaseHelper;
import com.android.dialer.database.FilteredNumberContract;
import com.android.dialer.database.FilteredNumberContract.FilteredNumberColumns;
+import com.android.dialer.location.GeoUtil;
/** Filtered number content provider. */
public class FilteredNumberProvider extends ContentProvider {
@@ -39,7 +39,6 @@ public class FilteredNumberProvider extends ContentProvider {
private static final int FILTERED_NUMBERS_TABLE = 1;
private static final int FILTERED_NUMBERS_TABLE_ID = 2;
private static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
- private static final String TAG = FilteredNumberProvider.class.getSimpleName();
private DialerDatabaseHelper mDialerDatabaseHelper;
@Override
@@ -80,7 +79,7 @@ public class FilteredNumberProvider extends ContentProvider {
c.setNotificationUri(
getContext().getContentResolver(), FilteredNumberContract.FilteredNumber.CONTENT_URI);
} else {
- Log.d(TAG, "CURSOR WAS NULL");
+ LogUtil.d("FilteredNumberProvider.query", "CURSOR WAS NULL");
}
return c;
}
diff --git a/java/com/android/dialer/blocking/FilteredNumbersUtil.java b/java/com/android/dialer/blocking/FilteredNumbersUtil.java
index cbef73ca5..3c001a2c2 100644
--- a/java/com/android/dialer/blocking/FilteredNumbersUtil.java
+++ b/java/com/android/dialer/blocking/FilteredNumbersUtil.java
@@ -27,19 +27,18 @@ import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.Settings;
import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
import android.widget.Toast;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler.OnHasBlockedNumbersListener;
import com.android.dialer.common.LogUtil;
-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 com.android.dialer.notification.NotificationChannelManager;
import com.android.dialer.notification.NotificationChannelManager.Channel;
+import com.android.dialer.util.DialerUtils;
import com.android.dialer.util.PermissionsUtil;
-import java.util.concurrent.TimeUnit;
/** Utility to help with tasks related to filtered numbers. */
public class FilteredNumbersUtil {
@@ -47,8 +46,9 @@ public class FilteredNumbersUtil {
public static final String CALL_BLOCKING_NOTIFICATION_TAG = "call_blocking";
public static final int CALL_BLOCKING_DISABLED_BY_EMERGENCY_CALL_NOTIFICATION_ID =
R.id.notification_call_blocking_disabled_by_emergency_call;
- // 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 the time of end of the last emergency call in milliseconds after epoch.\
+ @VisibleForTesting
+ public 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 =
@@ -73,7 +73,7 @@ public class FilteredNumbersUtil {
new AsyncTask<Object, Void, Boolean>() {
@Override
public Boolean doInBackground(Object... params) {
- if (context == null || !PermissionsUtil.hasContactsPermissions(context)) {
+ if (context == null || !PermissionsUtil.hasContactsReadPermissions(context)) {
return false;
}
@@ -186,49 +186,8 @@ public class FilteredNumbersUtil {
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 long getLastEmergencyCallTimeMillis(Context context) {
- return PreferenceManager.getDefaultSharedPreferences(context)
+ return DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context)
.getLong(LAST_EMERGENCY_CALL_MS_PREF_KEY, 0);
}
@@ -292,7 +251,7 @@ public class FilteredNumbersUtil {
context.getString(R.string.call_blocking_disabled_notification_text))
.setAutoCancel(true);
- NotificationChannelManager.applyChannel(builder, context, Channel.MISC, null);
+ NotificationChannelManager.applyChannel(builder, context, Channel.DEFAULT, null);
builder.setContentIntent(
PendingIntent.getActivity(
context,
diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java
index e8ca72e97..074fc6de1 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -64,6 +64,7 @@ import com.android.dialer.enrichedcall.extensions.StateExtension;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.multimedia.MultimediaData;
+import com.android.dialer.protos.ProtoParsers;
import com.android.dialer.telecom.TelecomUtil;
import com.android.dialer.util.ViewUtil;
import com.android.dialer.widget.DialerToolbar;
@@ -94,6 +95,7 @@ public class CallComposerActivity extends AppCompatActivity
private static final int EXIT_ANIMATION_DURATION_MILLIS = 500;
private static final String ARG_CALL_COMPOSER_CONTACT = "CALL_COMPOSER_CONTACT";
+ private static final String ARG_CALL_COMPOSER_CONTACT_BASE64 = "CALL_COMPOSER_CONTACT_BASE64";
private static final String ENTRANCE_ANIMATION_KEY = "entrance_animation_key";
private static final String CURRENT_INDEX_KEY = "current_index_key";
@@ -129,7 +131,7 @@ public class CallComposerActivity extends AppCompatActivity
public static Intent newIntent(Context context, CallComposerContact contact) {
Intent intent = new Intent(context, CallComposerActivity.class);
- intent.putExtra(ARG_CALL_COMPOSER_CONTACT, contact.toByteArray());
+ ProtoParsers.put(intent, ARG_CALL_COMPOSER_CONTACT, contact);
return intent;
}
@@ -449,23 +451,19 @@ public class CallComposerActivity extends AppCompatActivity
* Copied from {@link com.android.contacts.common.dialog.CallSubjectDialog}.
*/
private void onHandleIntent(Intent intent) {
- Bundle arguments = intent.getExtras();
- if (arguments == null) {
- throw new RuntimeException("CallComposerActivity.onHandleIntent, Arguments cannot be null.");
- }
- if (arguments.get(ARG_CALL_COMPOSER_CONTACT) instanceof String) {
- byte[] bytes = Base64.decode(arguments.getString(ARG_CALL_COMPOSER_CONTACT), Base64.DEFAULT);
+ if (intent.getExtras().containsKey(ARG_CALL_COMPOSER_CONTACT_BASE64)) {
+ // Invoked from launch_call_composer.py. The proto is provided as a base64 encoded string.
+ byte[] bytes =
+ Base64.decode(intent.getStringExtra(ARG_CALL_COMPOSER_CONTACT_BASE64), Base64.DEFAULT);
try {
contact = CallComposerContact.parseFrom(bytes);
} catch (InvalidProtocolBufferException e) {
- Assert.fail(e.toString());
+ throw Assert.createAssertionFailException(e.toString());
}
} else {
- try {
- contact = CallComposerContact.parseFrom(arguments.getByteArray(ARG_CALL_COMPOSER_CONTACT));
- } catch (InvalidProtocolBufferException e) {
- throw Assert.createIllegalStateFailException(e.toString());
- }
+ contact =
+ ProtoParsers.getTrusted(
+ intent, ARG_CALL_COMPOSER_CONTACT, CallComposerContact.getDefaultInstance());
}
updateContactInfo();
}
@@ -488,14 +486,15 @@ public class CallComposerActivity extends AppCompatActivity
nameView.setText(contact.getNameOrNumber());
toolbar.setTitle(contact.getNameOrNumber());
- if (!TextUtils.isEmpty(contact.getNumberLabel())
- && !TextUtils.isEmpty(contact.getDisplayNumber())) {
+ if (!TextUtils.isEmpty(contact.getDisplayNumber())) {
numberView.setVisibility(View.VISIBLE);
String secondaryInfo =
- getString(
- com.android.contacts.common.R.string.call_subject_type_and_number,
- contact.getNumberLabel(),
- contact.getDisplayNumber());
+ TextUtils.isEmpty(contact.getNumberLabel())
+ ? contact.getDisplayNumber()
+ : getString(
+ com.android.contacts.common.R.string.call_subject_type_and_number,
+ contact.getNumberLabel(),
+ contact.getDisplayNumber());
numberView.setText(secondaryInfo);
toolbar.setSubtitle(secondaryInfo);
} else {
@@ -656,7 +655,7 @@ public class CallComposerActivity extends AppCompatActivity
}
private void setMediaIconSelected(int position) {
- float alpha = 0.54f;
+ float alpha = 0.7f;
cameraIcon.setAlpha(position == CallComposerPagerAdapter.INDEX_CAMERA ? 1 : alpha);
galleryIcon.setAlpha(position == CallComposerPagerAdapter.INDEX_GALLERY ? 1 : alpha);
messageIcon.setAlpha(position == CallComposerPagerAdapter.INDEX_MESSAGE ? 1 : alpha);
diff --git a/java/com/android/dialer/calldetails/AndroidManifest.xml b/java/com/android/dialer/calldetails/AndroidManifest.xml
index b71207ba2..adaac402e 100644
--- a/java/com/android/dialer/calldetails/AndroidManifest.xml
+++ b/java/com/android/dialer/calldetails/AndroidManifest.xml
@@ -20,7 +20,7 @@
<activity
android:label="@string/call_details"
android:name="com.android.dialer.calldetails.CallDetailsActivity"
- android:theme="@style/Theme.AppCompat.NoActionBar">
+ android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java
index 41d176562..7eab951fa 100644
--- a/java/com/android/dialer/calldetails/CallDetailsActivity.java
+++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java
@@ -35,7 +35,7 @@ import com.android.dialer.common.Assert;
import com.android.dialer.common.concurrent.AsyncTaskExecutors;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
-import com.google.protobuf.InvalidProtocolBufferException;
+import com.android.dialer.protos.ProtoParsers;
import java.util.List;
/** Displays the details of a specific call log entry. */
@@ -53,8 +53,8 @@ public class CallDetailsActivity extends AppCompatActivity implements OnMenuItem
Assert.isNotNull(contact);
Intent intent = new Intent(context, CallDetailsActivity.class);
- intent.putExtra(EXTRA_CONTACT, contact.toByteArray());
- intent.putExtra(EXTRA_CALL_DETAILS_ENTRIES, details.toByteArray());
+ ProtoParsers.put(intent, EXTRA_CONTACT, contact);
+ ProtoParsers.put(intent, EXTRA_CALL_DETAILS_ENTRIES, details);
return intent;
}
@@ -76,16 +76,13 @@ public class CallDetailsActivity extends AppCompatActivity implements OnMenuItem
}
private void onHandleIntent(Intent intent) {
- Bundle arguments = intent.getExtras();
- CallComposerContact contact = CallComposerContact.getDefaultInstance();
- try {
- contact = CallComposerContact.parseFrom(arguments.getByteArray(EXTRA_CONTACT));
- entries =
- CallDetailsEntries.parseFrom(arguments.getByteArray(EXTRA_CALL_DETAILS_ENTRIES))
- .getEntriesList();
- } catch (InvalidProtocolBufferException e) {
- throw Assert.createIllegalStateFailException(e.toString());
- }
+ CallComposerContact contact =
+ ProtoParsers.getTrusted(intent, EXTRA_CONTACT, CallComposerContact.getDefaultInstance());
+ entries =
+ ProtoParsers.getTrusted(
+ intent, EXTRA_CALL_DETAILS_ENTRIES, CallDetailsEntries.getDefaultInstance())
+ .getEntriesList();
+
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(new CallDetailsAdapter(this, contact, entries));
diff --git a/java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java
index 156fa4255..bc989ea25 100644
--- a/java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsEntryViewHolder.java
@@ -111,10 +111,10 @@ public class CallDetailsEntryViewHolder extends ViewHolder {
callDuration.setVisibility(View.VISIBLE);
callDuration.setText(
CallEntryFormatter.formatDurationAndDataUsage(
- context, entry.getDuration(), entry.getDataUsage(), false /* a11y */));
+ context, entry.getDuration(), entry.getDataUsage()));
callDuration.setContentDescription(
- CallEntryFormatter.formatDurationAndDataUsage(
- context, entry.getDuration(), entry.getDataUsage(), true /* a11y */));
+ CallEntryFormatter.formatDurationAndDataUsageA11y(
+ context, entry.getDuration(), entry.getDataUsage()));
}
setMultimediaDetails(number, entry, showMultimediaDivider);
}
@@ -128,10 +128,7 @@ public class CallDetailsEntryViewHolder extends ViewHolder {
HistoryResult historyResult = entry.getHistoryResults(0);
multimediaDetailsContainer.setVisibility(View.VISIBLE);
- multimediaDetailsContainer.setOnClickListener(
- (v) -> {
- DialerUtils.startActivityWithErrorToast(context, IntentUtil.getSendSmsIntent(number));
- });
+ multimediaDetailsContainer.setOnClickListener((v) -> startSmsIntent(context, number));
multimediaImageContainer.setClipToOutline(true);
if (!TextUtils.isEmpty(historyResult.getImageUri())) {
@@ -159,12 +156,17 @@ public class CallDetailsEntryViewHolder extends ViewHolder {
postCallNote.setVisibility(View.VISIBLE);
postCallNote.setText(
context.getString(R.string.message_in_quotes, entry.getHistoryResults(1).getText()));
+ postCallNote.setOnClickListener((v) -> startSmsIntent(context, number));
} else {
LogUtil.i("CallDetailsEntryViewHolder.setMultimediaDetails", "no post call note");
}
}
}
+ private void startSmsIntent(Context context, String number) {
+ DialerUtils.startActivityWithErrorToast(context, IntentUtil.getSendSmsIntent(number));
+ }
+
private static boolean isIncoming(@NonNull HistoryResult historyResult) {
return historyResult.getType() == Type.INCOMING_POST_CALL
|| historyResult.getType() == Type.INCOMING_CALL_COMPOSER;
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
index 437c2602c..4d9aacf7b 100644
--- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
@@ -70,14 +70,15 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder
contactPhoto.setContentDescription(
context.getString(R.string.description_contact_photo_details, contact.getNameOrNumber()));
nameView.setText(contact.getNameOrNumber());
- if (!TextUtils.isEmpty(contact.getNumberLabel())
- && !TextUtils.isEmpty(contact.getDisplayNumber())) {
+ if (!TextUtils.isEmpty(contact.getDisplayNumber())) {
numberView.setVisibility(View.VISIBLE);
String secondaryInfo =
- context.getString(
- com.android.contacts.common.R.string.call_subject_type_and_number,
- contact.getNumberLabel(),
- contact.getDisplayNumber());
+ TextUtils.isEmpty(contact.getNumberLabel())
+ ? contact.getDisplayNumber()
+ : context.getString(
+ com.android.contacts.common.R.string.call_subject_type_and_number,
+ contact.getNumberLabel(),
+ contact.getDisplayNumber());
numberView.setText(secondaryInfo);
} else {
numberView.setVisibility(View.GONE);
diff --git a/java/com/android/dialer/calldetails/res/layout/call_details_entry.xml b/java/com/android/dialer/calldetails/res/layout/call_details_entry.xml
index 3f2ba7534..3d4750d09 100644
--- a/java/com/android/dialer/calldetails/res/layout/call_details_entry.xml
+++ b/java/com/android/dialer/calldetails/res/layout/call_details_entry.xml
@@ -30,9 +30,13 @@
<TextView
android:id="@+id/call_type"
- android:layout_width="wrap_content"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/call_entry_text_left_margin"
+ android:layout_marginEnd="16dp"
+ android:layout_toStartOf="@+id/call_duration"
+ android:gravity="start"
+ android:maxLines="100"
style="@style/PrimaryText"/>
<TextView
@@ -57,7 +61,6 @@
android:id="@+id/ec_container"
android:layout_height="@dimen/ec_container_height"
android:layout_width="match_parent"
- android:layout_marginStart="@dimen/call_entry_text_left_margin"
android:layout_below="@+id/call_time"
android:visibility="gone"/>
@@ -65,11 +68,12 @@
android:id="@+id/post_call_note"
android:layout_width="match_parent"
android:layout_height="@dimen/ec_container_height"
+ android:layout_below="@+id/ec_container"
+ android:paddingStart="@dimen/call_entry_text_left_margin"
android:gravity="center_vertical"
- android:layout_marginStart="@dimen/ec_post_call_left_margin"
android:maxLines="2"
android:visibility="gone"
- android:layout_below="@+id/ec_container"
+ android:background="?attr/selectableItemBackground"
style="@style/SecondaryText"/>
<View
diff --git a/java/com/android/dialer/calldetails/res/layout/contact_container.xml b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
index daf465b2c..bb89b36f2 100644
--- a/java/com/android/dialer/calldetails/res/layout/contact_container.xml
+++ b/java/com/android/dialer/calldetails/res/layout/contact_container.xml
@@ -47,6 +47,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/photo_text_margin"
+ android:ellipsize="end"
+ android:maxLines="1"
style="@style/PrimaryText"/>
<TextView
@@ -68,4 +70,4 @@
android:scaleType="center"
android:src="@drawable/quantum_ic_call_white_24"
android:tint="@color/secondary_text_color"/>
-</RelativeLayout> \ No newline at end of file
+</RelativeLayout>
diff --git a/java/com/android/dialer/calldetails/res/layout/ec_data_container.xml b/java/com/android/dialer/calldetails/res/layout/ec_data_container.xml
index 85cc4ed62..fec3126a5 100644
--- a/java/com/android/dialer/calldetails/res/layout/ec_data_container.xml
+++ b/java/com/android/dialer/calldetails/res/layout/ec_data_container.xml
@@ -2,7 +2,10 @@
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="@dimen/ec_container_height">
+ android:layout_height="@dimen/ec_container_height"
+ android:paddingStart="@dimen/call_entry_text_left_margin"
+ android:clickable="true"
+ android:background="?attr/selectableItemBackground">
<TextView
android:id="@+id/multimedia_details"
@@ -21,6 +24,8 @@
android:layout_marginEnd="@dimen/call_entry_padding"
android:layout_centerVertical="true"
android:background="@drawable/multimedia_image_background"
+ android:clickable="true"
+ android:foreground="?attr/selectableItemBackground"
android:outlineProvider="background"
android:visibility="gone">
diff --git a/java/com/android/dialer/calldetails/res/values/dimens.xml b/java/com/android/dialer/calldetails/res/values/dimens.xml
index 054cd6975..f85d02f83 100644
--- a/java/com/android/dialer/calldetails/res/values/dimens.xml
+++ b/java/com/android/dialer/calldetails/res/values/dimens.xml
@@ -36,7 +36,6 @@
<!-- EC container -->
<dimen name="call_details_ec_text_size">12sp</dimen>
<dimen name="ec_container_height">48dp</dimen>
- <dimen name="ec_post_call_left_margin">73dp</dimen>
<dimen name="ec_photo_size">40dp</dimen>
<dimen name="ec_divider_top_bottom_margin">8dp</dimen>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/callintent/CallIntentParser.java b/java/com/android/dialer/callintent/CallIntentParser.java
index b54f7c78b..01afce06d 100644
--- a/java/com/android/dialer/callintent/CallIntentParser.java
+++ b/java/com/android/dialer/callintent/CallIntentParser.java
@@ -19,32 +19,35 @@ package com.android.dialer.callintent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
-import com.android.dialer.common.Assert;
-import com.google.protobuf.InvalidProtocolBufferException;
+import com.android.dialer.protos.ProtoParsers;
/** Parses data for a call extra to get any dialer specific app data. */
public class CallIntentParser {
+ static final String EXTRA_CALL_SPECIFIC_APP_DATA_WRAPPER =
+ "com.android.dialer.callintent.CALL_SPECIFIC_APP_DATA_WRAPPER";
@Nullable
public static CallSpecificAppData getCallSpecificAppData(@Nullable Bundle extras) {
if (extras == null) {
return null;
}
- byte[] flatArray = extras.getByteArray(Constants.EXTRA_CALL_SPECIFIC_APP_DATA);
- if (flatArray == null) {
- return null;
- }
- try {
- return CallSpecificAppData.parseFrom(flatArray);
- } catch (InvalidProtocolBufferException e) {
- Assert.fail("unexpected exception: " + e);
+ if (!extras.containsKey(Constants.EXTRA_CALL_SPECIFIC_APP_DATA)) {
return null;
}
+
+ return ProtoParsers.getTrusted(
+ extras.getBundle(Constants.EXTRA_CALL_SPECIFIC_APP_DATA),
+ EXTRA_CALL_SPECIFIC_APP_DATA_WRAPPER,
+ CallSpecificAppData.getDefaultInstance());
}
public static void putCallSpecificAppData(
@NonNull Bundle extras, @NonNull CallSpecificAppData callSpecificAppData) {
- extras.putByteArray(Constants.EXTRA_CALL_SPECIFIC_APP_DATA, callSpecificAppData.toByteArray());
+ // We wrap our bundle for consumers that may not have access to ProtoParsers in their class
+ // loader. This is necessary to prevent ClassNotFoundException's
+ Bundle wrapperBundle = new Bundle();
+ ProtoParsers.put(wrapperBundle, EXTRA_CALL_SPECIFIC_APP_DATA_WRAPPER, callSpecificAppData);
+ extras.putBundle(Constants.EXTRA_CALL_SPECIFIC_APP_DATA, wrapperBundle);
}
private CallIntentParser() {}
diff --git a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
index 241be5d71..355940f6a 100644
--- a/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/contacts/ContactsDataSource.java
@@ -54,5 +54,7 @@ public final class ContactsDataSource implements CallLogDataSource {
@MainThread
@Override
public void registerContentObservers(
- Context appContext, ContentObserverCallbacks contentObserverCallbacks) {}
+ Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
+ // TODO: Guard against missing permissions during callback registration.
+ }
}
diff --git a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
index 1cc51ee99..ea6663fbe 100644
--- a/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
+++ b/java/com/android/dialer/calllog/datasources/systemcalllog/SystemCallLogDataSource.java
@@ -29,6 +29,7 @@ import com.android.dialer.calllog.datasources.CallLogDataSource;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.ThreadUtil;
+import com.android.dialer.util.PermissionsUtil;
import javax.inject.Inject;
/**
@@ -46,6 +47,11 @@ public class SystemCallLogDataSource implements CallLogDataSource {
Context appContext, ContentObserverCallbacks contentObserverCallbacks) {
Assert.isMainThread();
+ if (!PermissionsUtil.hasCallLogReadPermissions(appContext)) {
+ LogUtil.i("SystemCallLogDataSource.registerContentObservers", "no call log permissions");
+ return;
+ }
+
appContext
.getContentResolver()
.registerContentObserver(
diff --git a/java/com/android/dialer/calllogutils/CallEntryFormatter.java b/java/com/android/dialer/calllogutils/CallEntryFormatter.java
index bd184bb89..6aa93af52 100644
--- a/java/com/android/dialer/calllogutils/CallEntryFormatter.java
+++ b/java/com/android/dialer/calllogutils/CallEntryFormatter.java
@@ -17,6 +17,7 @@
package com.android.dialer.calllogutils;
import android.content.Context;
+import android.content.res.Resources;
import android.icu.lang.UCharacter;
import android.icu.text.BreakIterator;
import android.os.Build.VERSION;
@@ -24,9 +25,12 @@ import android.os.Build.VERSION_CODES;
import android.text.format.DateUtils;
import android.text.format.Formatter;
import com.android.dialer.util.DialerUtils;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Locale;
+import java.util.concurrent.TimeUnit;
/** Utility class for formatting data and data usage in call log entries. */
public class CallEntryFormatter {
@@ -76,24 +80,41 @@ public class CallEntryFormatter {
UCharacter.TITLECASE_NO_LOWERCASE);
}
- private static CharSequence formatDuration(Context context, long elapsedSeconds, boolean a11y) {
- long minutes = 0;
- long seconds = 0;
+ private static CharSequence formatDuration(Context context, long elapsedSeconds) {
+ Resources res = context.getResources();
+ String formatPattern;
+ if (elapsedSeconds >= 60) {
+ String minutesString = res.getString(R.string.call_details_minutes_abbreviation);
+ String secondsString = res.getString(R.string.call_details_seconds_abbreviation);
+ // example output: "1m 1s"
+ formatPattern =
+ context.getString(
+ R.string.call_duration_format_pattern, "m", minutesString, "s", secondsString);
+ } else {
+ String secondsString = res.getString(R.string.call_details_seconds_abbreviation);
+ // example output: "1s"
+ formatPattern =
+ context.getString(R.string.call_duration_short_format_pattern, "s", secondsString);
+ }
+ SimpleDateFormat format = new SimpleDateFormat(formatPattern);
+ return format.format(new Date(TimeUnit.SECONDS.toMillis(elapsedSeconds)));
+ }
+ private static CharSequence formatDurationA11y(Context context, long elapsedSeconds) {
+ Resources res = context.getResources();
if (elapsedSeconds >= 60) {
- minutes = elapsedSeconds / 60;
- elapsedSeconds -= minutes * 60;
- seconds = elapsedSeconds;
- int stringId =
- a11y ? R.string.call_details_duration_format_a11y : R.string.call_details_duration_format;
- return context.getString(stringId, minutes, seconds);
+ int minutes = (int) (elapsedSeconds / 60);
+ int seconds = (int) elapsedSeconds - minutes * 60;
+ String minutesString = res.getQuantityString(R.plurals.a11y_minutes, minutes);
+ String secondsString = res.getQuantityString(R.plurals.a11y_seconds, seconds);
+ // example output: "1 minute 1 second", "2 minutes 2 seconds", ect.
+ return context.getString(
+ R.string.a11y_call_duration_format, minutes, minutesString, seconds, secondsString);
} else {
- seconds = elapsedSeconds;
- int stringId =
- a11y
- ? R.string.call_details_short_duration_format_a11y
- : R.string.call_details_short_duration_format;
- return context.getString(stringId, seconds);
+ String secondsString = res.getQuantityString(R.plurals.a11y_seconds, (int) elapsedSeconds);
+ // example output: "1 second", "2 seconds"
+ return context.getString(
+ R.string.a11y_call_duration_short_format, elapsedSeconds, secondsString);
}
}
@@ -102,12 +123,29 @@ public class CallEntryFormatter {
*
* @param elapsedSeconds Total elapsed seconds.
* @param dataUsage Data usage in bytes, or null if not specified.
- * @param a11y {@code true} if string should be talk back friendly.
* @return String containing call duration and data usage.
*/
public static CharSequence formatDurationAndDataUsage(
- Context context, long elapsedSeconds, long dataUsage, boolean a11y) {
- CharSequence duration = formatDuration(context, elapsedSeconds, a11y);
+ Context context, long elapsedSeconds, long dataUsage) {
+ return formatDurationAndDataUsageInternal(
+ context, formatDuration(context, elapsedSeconds), dataUsage);
+ }
+
+ /**
+ * Formats a string containing the call duration and the data usage (if specified) for TalkBack.
+ *
+ * @param elapsedSeconds Total elapsed seconds.
+ * @param dataUsage Data usage in bytes, or null if not specified.
+ * @return String containing call duration and data usage.
+ */
+ public static CharSequence formatDurationAndDataUsageA11y(
+ Context context, long elapsedSeconds, long dataUsage) {
+ return formatDurationAndDataUsageInternal(
+ context, formatDurationA11y(context, elapsedSeconds), dataUsage);
+ }
+
+ private static CharSequence formatDurationAndDataUsageInternal(
+ Context context, CharSequence duration, long dataUsage) {
List<CharSequence> durationItems = new ArrayList<>();
if (dataUsage > 0) {
durationItems.add(duration);
diff --git a/java/com/android/dialer/calllogutils/res/values-af/strings.xml b/java/com/android/dialer/calllogutils/res/values-af/strings.xml
index 1858a7210..434d4cf81 100644
--- a/java/com/android/dialer/calllogutils/res/values-af/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-af/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Stemboodskap"</string>
<string name="type_rejected" msgid="5632107438472996198">"Afgekeurde oproep"</string>
<string name="type_blocked" msgid="9177237294052244929">"Geblokkeerde oproep"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Oproep is op \'n ander toestel geantwoord"</string>
<string name="description_phone_account" msgid="4382951172691362244">"op <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"via <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"op <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, via <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Stemboodskap"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> m. <xliff:g id="SECONDS">%d</xliff:g> s."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minute <xliff:g id="SECONDS">%d</xliff:g> sekondes"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekondes"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-am/strings.xml b/java/com/android/dialer/calllogutils/res/values-am/strings.xml
index 2d4f10ddd..211eca78e 100644
--- a/java/com/android/dialer/calllogutils/res/values-am/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-am/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"የድምፅ መልእክት"</string>
<string name="type_rejected" msgid="5632107438472996198">"ያልተነሳ ጥሪ"</string>
<string name="type_blocked" msgid="9177237294052244929">"የታገደ ጥሪ"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"ጥሪው በሌላ መሣሪያ ላይ ተመልሷል"</string>
<string name="description_phone_account" msgid="4382951172691362244">"በ<xliff:g id="PHONEACCOUNT">^1</xliff:g> ላይ"</string>
<string name="description_via_number" msgid="7682575124846343076">"በ <xliff:g id="NUMBER">%1$s</xliff:g> በኩል"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"በ <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> ላይ፣ በ <xliff:g id="NUMBER">%2$s</xliff:g> በኩል"</string>
<string name="voicemail_string" msgid="6029775151483803006">"የድምፅ መልእክት"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>ደ <xliff:g id="SECONDS">%d</xliff:g>ሰ"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> ሰከንዶች"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> ደቂቃዎች <xliff:g id="SECONDS">%d</xliff:g> ሰከንዶች"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> ሰከንዶች"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ar/strings.xml b/java/com/android/dialer/calllogutils/res/values-ar/strings.xml
index 49a96ffbf..68b2bafce 100644
--- a/java/com/android/dialer/calllogutils/res/values-ar/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ar/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"البريد الصوتي"</string>
<string name="type_rejected" msgid="5632107438472996198">"مكالمة مرفوضة"</string>
<string name="type_blocked" msgid="9177237294052244929">"مكالمة محظورة"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"تم الرد على المكالمة على جهاز آخر"</string>
<string name="description_phone_account" msgid="4382951172691362244">"من <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"من خلال <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"على <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> من خلال <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"البريد الصوتي"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> د <xliff:g id="SECONDS">%d</xliff:g> ث"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> ثانية"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> دقيقة <xliff:g id="SECONDS">%d</xliff:g> ثانية"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> ثانية"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-az/strings.xml b/java/com/android/dialer/calllogutils/res/values-az/strings.xml
index 8bf5c03d1..826a81047 100644
--- a/java/com/android/dialer/calllogutils/res/values-az/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-az/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Səsli e-məktub"</string>
<string name="type_rejected" msgid="5632107438472996198">"Rədd edilmiş zəng"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blok edilmiş zəng"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Zəngə başqa cihazda cavab verildi"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> hesabında"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> vasitəsilə"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="NUMBER">%2$s</xliff:g> vasitəsilə <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> hesabında"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Səsli e-məktub"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> dəq <xliff:g id="SECONDS">%d</xliff:g> san"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>san"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> dəqiqə <xliff:g id="SECONDS">%d</xliff:g> saniyə"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> saniyə"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/calllogutils/res/values-b+sr+Latn/strings.xml
index 0d658c455..02aee3aac 100644
--- a/java/com/android/dialer/calllogutils/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-b+sr+Latn/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Govorna pošta"</string>
<string name="type_rejected" msgid="5632107438472996198">"Odbijen poziv"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokiran poziv"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Poziv je prihvaćen na drugom uređaju"</string>
<string name="description_phone_account" msgid="4382951172691362244">"na <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"preko <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"na <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, preko <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Govorna pošta"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> m <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> sek"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sek"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-be/strings.xml b/java/com/android/dialer/calllogutils/res/values-be/strings.xml
index e04d815d5..39d4e0af4 100644
--- a/java/com/android/dialer/calllogutils/res/values-be/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-be/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Галасавая пошта"</string>
<string name="type_rejected" msgid="5632107438472996198">"Адхілены выклік"</string>
<string name="type_blocked" msgid="9177237294052244929">"Заблакіраваны выклік"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Выклік прыняты на іншай прыладзе"</string>
<string name="description_phone_account" msgid="4382951172691362244">"на <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"праз <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"на <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, праз <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Галасавая пошта"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> хв <xliff:g id="SECONDS">%d</xliff:g> с"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> с"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"Хвілін: <xliff:g id="MINUTES">%d</xliff:g>; секунд: <xliff:g id="SECONDS">%d</xliff:g>"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> с"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-bg/strings.xml b/java/com/android/dialer/calllogutils/res/values-bg/strings.xml
index 716cecb3a..91a02bbd2 100644
--- a/java/com/android/dialer/calllogutils/res/values-bg/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-bg/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Гласова поща"</string>
<string name="type_rejected" msgid="5632107438472996198">"Отхвърлено обаждане"</string>
<string name="type_blocked" msgid="9177237294052244929">"Блокирано обаждане"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"На обаждането бе отговорено на друго устройство"</string>
<string name="description_phone_account" msgid="4382951172691362244">"в/ъв <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"през <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"в/ъв <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, през <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Гласова поща"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> мин <xliff:g id="SECONDS">%d</xliff:g> сек"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> сек"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> минути и <xliff:g id="SECONDS">%d</xliff:g> секунди"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> секунди"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-bn/strings.xml b/java/com/android/dialer/calllogutils/res/values-bn/strings.xml
index ab2862e64..252505a48 100644
--- a/java/com/android/dialer/calllogutils/res/values-bn/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-bn/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"ভয়েসমেল"</string>
<string name="type_rejected" msgid="5632107438472996198">"অস্বীকৃত কল"</string>
<string name="type_blocked" msgid="9177237294052244929">"অবরুদ্ধ কল"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"অন্য ডিভাইসে কলটির উত্তর দেওয়া হয়েছে"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> এ"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> এর মাধ্যমে"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> এ, <xliff:g id="NUMBER">%2$s</xliff:g> এর মাধ্যমে"</string>
<string name="voicemail_string" msgid="6029775151483803006">"ভয়েসমেল"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>মিনিট <xliff:g id="SECONDS">%d</xliff:g>সেকেন্ড"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>সেকেন্ড"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> মিনিট <xliff:g id="SECONDS">%d</xliff:g> সেকেন্ড"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> সেকেন্ড"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-bs/strings.xml b/java/com/android/dialer/calllogutils/res/values-bs/strings.xml
index 27bf8a46a..16e3a5499 100644
--- a/java/com/android/dialer/calllogutils/res/values-bs/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-bs/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Govorna pošta"</string>
<string name="type_rejected" msgid="5632107438472996198">"Odbijeni poziv"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokirani poziv"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Poziv je primljen na drugom uređaju"</string>
<string name="description_phone_account" msgid="4382951172691362244">"na <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"preko <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"na <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, preko <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Govorna pošta"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> min. <xliff:g id="SECONDS">%d</xliff:g> sek."</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sek."</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ca/strings.xml b/java/com/android/dialer/calllogutils/res/values-ca/strings.xml
index eb26926a1..eb7b97ea0 100644
--- a/java/com/android/dialer/calllogutils/res/values-ca/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ca/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Missatge de veu"</string>
<string name="type_rejected" msgid="5632107438472996198">"Trucada rebutjada"</string>
<string name="type_blocked" msgid="9177237294052244929">"Trucada bloquejada"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"S\'ha respost a la trucada en un altre dispositiu"</string>
<string name="description_phone_account" msgid="4382951172691362244">"a <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"al número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"a <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, al número <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Bústia de veu"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minuts <xliff:g id="SECONDS">%d</xliff:g> segons"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> segons"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-cs/strings.xml b/java/com/android/dialer/calllogutils/res/values-cs/strings.xml
index 66b58810d..ae760fc61 100644
--- a/java/com/android/dialer/calllogutils/res/values-cs/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-cs/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Hlasová schránka"</string>
<string name="type_rejected" msgid="5632107438472996198">"Odmítnutý hovor"</string>
<string name="type_blocked" msgid="9177237294052244929">"Zablokovaný hovor"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Hovor byl přijat na jiném zařízení"</string>
<string name="description_phone_account" msgid="4382951172691362244">"na účet <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"z čísla <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"na účet <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, z čísla <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Hlasová schránka"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-da/strings.xml b/java/com/android/dialer/calllogutils/res/values-da/strings.xml
index aa6ba8a2f..7bba1f674 100644
--- a/java/com/android/dialer/calllogutils/res/values-da/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-da/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Telefonsvarer"</string>
<string name="type_rejected" msgid="5632107438472996198">"Afvist opkald"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokeret opkald"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Opkaldet blev besvaret på en anden enhed"</string>
<string name="description_phone_account" msgid="4382951172691362244">"på <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"via <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"til <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, via <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Telefonsvarer"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min. <xliff:g id="SECONDS">%d</xliff:g> sek."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> sek."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutter <xliff:g id="SECONDS">%d</xliff:g> sekunder"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekunder"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-de/strings.xml b/java/com/android/dialer/calllogutils/res/values-de/strings.xml
index 7fd087fb7..fd8e8e85a 100644
--- a/java/com/android/dialer/calllogutils/res/values-de/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-de/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Mailbox"</string>
<string name="type_rejected" msgid="5632107438472996198">"Abgelehnter Anruf"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blockierter Anruf"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Der Anruf wurde auf einem anderen Gerät angenommen"</string>
<string name="description_phone_account" msgid="4382951172691362244">"mit <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"über <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"mit <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, über <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Mailbox"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> Minuten <xliff:g id="SECONDS">%d</xliff:g> Sekunden"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> Sekunden"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-el/strings.xml b/java/com/android/dialer/calllogutils/res/values-el/strings.xml
index 7a3db9ab8..fbedb5239 100644
--- a/java/com/android/dialer/calllogutils/res/values-el/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-el/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Αυτόματος τηλεφωνητής"</string>
<string name="type_rejected" msgid="5632107438472996198">"Απορριφθείσα κλήση"</string>
<string name="type_blocked" msgid="9177237294052244929">"Αποκλεισμένη κλήση"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Η κλήση απαντήθηκε από άλλη συσκευή"</string>
<string name="description_phone_account" msgid="4382951172691362244">"σε <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"μέσω <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"στον λογαριασμό <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, μέσω <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Αυτόματος τηλεφωνητής"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>λ <xliff:g id="SECONDS">%d</xliff:g>δ"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>δ"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> λεπτά, <xliff:g id="SECONDS">%d</xliff:g> δευτερόλεπτα"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> δευτερόλεπτα"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-en-rAU/strings.xml b/java/com/android/dialer/calllogutils/res/values-en-rAU/strings.xml
index 97ed6cfcc..98801497d 100644
--- a/java/com/android/dialer/calllogutils/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-en-rAU/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Voicemail"</string>
<string name="type_rejected" msgid="5632107438472996198">"Declined call"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blocked call"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Call answered on another device"</string>
<string name="description_phone_account" msgid="4382951172691362244">"on <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"via <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"on <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, via <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Voicemail"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>m <xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutes <xliff:g id="SECONDS">%d</xliff:g> seconds"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> seconds"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-en-rGB/strings.xml b/java/com/android/dialer/calllogutils/res/values-en-rGB/strings.xml
index 97ed6cfcc..98801497d 100644
--- a/java/com/android/dialer/calllogutils/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-en-rGB/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Voicemail"</string>
<string name="type_rejected" msgid="5632107438472996198">"Declined call"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blocked call"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Call answered on another device"</string>
<string name="description_phone_account" msgid="4382951172691362244">"on <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"via <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"on <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, via <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Voicemail"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>m <xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutes <xliff:g id="SECONDS">%d</xliff:g> seconds"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> seconds"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-en-rIN/strings.xml b/java/com/android/dialer/calllogutils/res/values-en-rIN/strings.xml
index 97ed6cfcc..98801497d 100644
--- a/java/com/android/dialer/calllogutils/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-en-rIN/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Voicemail"</string>
<string name="type_rejected" msgid="5632107438472996198">"Declined call"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blocked call"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Call answered on another device"</string>
<string name="description_phone_account" msgid="4382951172691362244">"on <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"via <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"on <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, via <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Voicemail"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>m <xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutes <xliff:g id="SECONDS">%d</xliff:g> seconds"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> seconds"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-es-rUS/strings.xml b/java/com/android/dialer/calllogutils/res/values-es-rUS/strings.xml
index 8d25bde11..a91d9d95a 100644
--- a/java/com/android/dialer/calllogutils/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-es-rUS/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Buzón de voz"</string>
<string name="type_rejected" msgid="5632107438472996198">"Llamada rechazada"</string>
<string name="type_blocked" msgid="9177237294052244929">"Llamada bloqueada"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"La llamada se respondió en otro dispositivo"</string>
<string name="description_phone_account" msgid="4382951172691362244">"en <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"por medio de <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"en <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> por medio de <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Buzón de voz"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutos, <xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-es/strings.xml b/java/com/android/dialer/calllogutils/res/values-es/strings.xml
index 5ad0f5eab..ac3e5bff4 100644
--- a/java/com/android/dialer/calllogutils/res/values-es/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-es/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Mensaje de voz"</string>
<string name="type_rejected" msgid="5632107438472996198">"Llamada rechazada"</string>
<string name="type_blocked" msgid="9177237294052244929">"Llamada bloqueada"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Llamada contestada en otro dispositivo"</string>
<string name="description_phone_account" msgid="4382951172691362244">"en <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"a través del <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"en <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, a través del <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Buzón de voz"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutos <xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-et/strings.xml b/java/com/android/dialer/calllogutils/res/values-et/strings.xml
index 9e2cd14fa..8ffade24c 100644
--- a/java/com/android/dialer/calllogutils/res/values-et/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-et/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Kõnepost"</string>
<string name="type_rejected" msgid="5632107438472996198">"Keeldutud kõne"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokeeritud kõne"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Kõnele vastati teises seadmes"</string>
<string name="description_phone_account" msgid="4382951172691362244">"kontol <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"numbri <xliff:g id="NUMBER">%1$s</xliff:g> kaudu"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"kontol <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, numbri <xliff:g id="NUMBER">%2$s</xliff:g> kaudu"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Kõnepost"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutit <xliff:g id="SECONDS">%d</xliff:g> sekundit"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekundit"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-eu/strings.xml b/java/com/android/dialer/calllogutils/res/values-eu/strings.xml
index e1a6b3f15..e0f6b6c4a 100644
--- a/java/com/android/dialer/calllogutils/res/values-eu/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-eu/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Erantzungailua"</string>
<string name="type_rejected" msgid="5632107438472996198">"Baztertutako deia"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokeatutako deia"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Beste gailu batean erantzun zaio deiari"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> kontuan"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> bidez"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> kontuan, <xliff:g id="NUMBER">%2$s</xliff:g> bidez"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Erantzungailua"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min eta <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutu eta <xliff:g id="SECONDS">%d</xliff:g> segundo"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> segundo"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fa/strings.xml b/java/com/android/dialer/calllogutils/res/values-fa/strings.xml
index 13c92b8f7..64ac69fc5 100644
--- a/java/com/android/dialer/calllogutils/res/values-fa/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-fa/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"پست صوتی"</string>
<string name="type_rejected" msgid="5632107438472996198">"تماس ردشده"</string>
<string name="type_blocked" msgid="9177237294052244929">"تماس مسدودشده"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"تماس در دستگاه دیگری پاسخ داده شد"</string>
<string name="description_phone_account" msgid="4382951172691362244">"در <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"ازطریق <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"در <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>، ازطریق <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"پست صوتی"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> دقیقه <xliff:g id="SECONDS">%d</xliff:g> ثانیه"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> ثانیه"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> دقیقه و <xliff:g id="SECONDS">%d</xliff:g> ثانیه"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> ثانیه"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fi/strings.xml b/java/com/android/dialer/calllogutils/res/values-fi/strings.xml
index 1b08ea974..63eee112d 100644
--- a/java/com/android/dialer/calllogutils/res/values-fi/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-fi/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Vastaaja"</string>
<string name="type_rejected" msgid="5632107438472996198">"Hylätty puhelu"</string>
<string name="type_blocked" msgid="9177237294052244929">"Estetty puhelu"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Puheluun vastattiin toisella laitteella."</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"numerosta <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"tililtä <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> numerosta <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Vastaaja"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minuuttia <xliff:g id="SECONDS">%d</xliff:g> sekuntia"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekuntia"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fr-rCA/strings.xml b/java/com/android/dialer/calllogutils/res/values-fr-rCA/strings.xml
index 1288ae318..ecbb080c5 100644
--- a/java/com/android/dialer/calllogutils/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-fr-rCA/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Messagerie vocale"</string>
<string name="type_rejected" msgid="5632107438472996198">"Appel refusé"</string>
<string name="type_blocked" msgid="9177237294052244929">"Appel bloqué"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Appel reçu sur un autre appareil"</string>
<string name="description_phone_account" msgid="4382951172691362244">"sur <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"au <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"sur <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, au <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Messagerie vocale"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min et <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutes et <xliff:g id="SECONDS">%d</xliff:g> secondes"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> secondes"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-fr/strings.xml b/java/com/android/dialer/calllogutils/res/values-fr/strings.xml
index a0cee2a9f..593934b27 100644
--- a/java/com/android/dialer/calllogutils/res/values-fr/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-fr/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Messagerie vocale"</string>
<string name="type_rejected" msgid="5632107438472996198">"Appel refusé"</string>
<string name="type_blocked" msgid="9177237294052244929">"Appel bloqué"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Appel pris sur un autre appareil"</string>
<string name="description_phone_account" msgid="4382951172691362244">"sur <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"au <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"sur <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, au <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Messagerie vocale"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min et <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutes <xliff:g id="SECONDS">%d</xliff:g> secondes"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> secondes"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-gl/strings.xml b/java/com/android/dialer/calllogutils/res/values-gl/strings.xml
index a2a33f791..c37cf9ffb 100644
--- a/java/com/android/dialer/calllogutils/res/values-gl/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-gl/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Correo de voz"</string>
<string name="type_rejected" msgid="5632107438472996198">"Chamada rexeitada"</string>
<string name="type_blocked" msgid="9177237294052244929">"Chamada bloqueada"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"A chamada respondeuse noutro dispositivo"</string>
<string name="description_phone_account" msgid="4382951172691362244">"en <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"a través do <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"en <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, a través do <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Correo de voz"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutos e <xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-gu/strings.xml b/java/com/android/dialer/calllogutils/res/values-gu/strings.xml
index 598048883..50d4544eb 100644
--- a/java/com/android/dialer/calllogutils/res/values-gu/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-gu/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"વૉઇસમેઇલ"</string>
<string name="type_rejected" msgid="5632107438472996198">"નકારેલો કૉલ"</string>
<string name="type_blocked" msgid="9177237294052244929">"અવરોધિત કૉલ"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"બીજા ઉપકરણ પર કૉલનો જવાબ આપ્યો"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> પર"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> મારફતે"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> પર, <xliff:g id="NUMBER">%2$s</xliff:g> મારફતે"</string>
<string name="voicemail_string" msgid="6029775151483803006">"વૉઇસમેઇલ"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>મિ <xliff:g id="SECONDS">%d</xliff:g>સે"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>સે"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> મિનિટ <xliff:g id="SECONDS">%d</xliff:g> સેકંડ"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> સેકંડ"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-hi/strings.xml b/java/com/android/dialer/calllogutils/res/values-hi/strings.xml
index e8994bd9f..14bcf7dfd 100644
--- a/java/com/android/dialer/calllogutils/res/values-hi/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-hi/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"वॉइसमेल"</string>
<string name="type_rejected" msgid="5632107438472996198">"अस्वीकार किया गया कॉल"</string>
<string name="type_blocked" msgid="9177237294052244929">"अवरोधित किया गया कॉल"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"दूसरे डिवाइस पर कॉल का जवाब दिया गया"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> पर"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> से"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> पर, <xliff:g id="NUMBER">%2$s</xliff:g> से"</string>
<string name="voicemail_string" msgid="6029775151483803006">"वॉइसमेल"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> मि <xliff:g id="SECONDS">%d</xliff:g> से"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> से"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> मिनट <xliff:g id="SECONDS">%d</xliff:g> सेकंड"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> सेकंड"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-hr/strings.xml b/java/com/android/dialer/calllogutils/res/values-hr/strings.xml
index ef60cd275..e4773de91 100644
--- a/java/com/android/dialer/calllogutils/res/values-hr/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-hr/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Govorna pošta"</string>
<string name="type_rejected" msgid="5632107438472996198">"Odbijeni poziv"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokirani poziv"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Na poziv je odgovoreno na drugom uređaju"</string>
<string name="description_phone_account" msgid="4382951172691362244">"na računu <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"putem broja <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"na računu <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, putem broja <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Govorna pošta"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-hu/strings.xml b/java/com/android/dialer/calllogutils/res/values-hu/strings.xml
index 566bf272d..689a5903e 100644
--- a/java/com/android/dialer/calllogutils/res/values-hu/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-hu/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Hangposta"</string>
<string name="type_rejected" msgid="5632107438472996198">"Elutasított hívás"</string>
<string name="type_blocked" msgid="9177237294052244929">"Letiltott hívás"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Hívás felvéve egy másik eszközön"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"szám: <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"fiók: <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, szám: <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Hangposta"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> p <xliff:g id="SECONDS">%d</xliff:g> mp"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> mp"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> perc, <xliff:g id="SECONDS">%d</xliff:g> másodperc"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> másodperc"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-hy/strings.xml b/java/com/android/dialer/calllogutils/res/values-hy/strings.xml
index 1b939eca0..ce9a37e68 100644
--- a/java/com/android/dialer/calllogutils/res/values-hy/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-hy/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Ձայնային փոստ"</string>
<string name="type_rejected" msgid="5632107438472996198">"Մերժված զանգ"</string>
<string name="type_blocked" msgid="9177237294052244929">"Արգելափակված զանգ"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Զանգն ընդունվեց մեկ այլ սարքով"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>-ին"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> համարից"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>-ին <xliff:g id="NUMBER">%2$s</xliff:g> համարից"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Ձայնային փոստ"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> ր <xliff:g id="SECONDS">%d</xliff:g> վ"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> վ"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> րոպե <xliff:g id="SECONDS">%d</xliff:g> վայրկյան"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> վայրկյան"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-in/strings.xml b/java/com/android/dialer/calllogutils/res/values-in/strings.xml
index f734419d5..06b91b780 100644
--- a/java/com/android/dialer/calllogutils/res/values-in/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-in/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Pesan suara"</string>
<string name="type_rejected" msgid="5632107438472996198">"Panggilan ditolak"</string>
<string name="type_blocked" msgid="9177237294052244929">"Panggilan diblokir"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Panggilan dijawab pada perangkat lain"</string>
<string name="description_phone_account" msgid="4382951172691362244">"di <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"melalui <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"di <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, melalui <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Pesan suara"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>m <xliff:g id="SECONDS">%d</xliff:g>d"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>d"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> menit <xliff:g id="SECONDS">%d</xliff:g> detik"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> detik"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-is/strings.xml b/java/com/android/dialer/calllogutils/res/values-is/strings.xml
index 5643aee28..45024d337 100644
--- a/java/com/android/dialer/calllogutils/res/values-is/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-is/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Talhólf"</string>
<string name="type_rejected" msgid="5632107438472996198">"Símtali hafnað"</string>
<string name="type_blocked" msgid="9177237294052244929">"Símtal á bannlista"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Símtali svarað í öðru tæki"</string>
<string name="description_phone_account" msgid="4382951172691362244">"í gegnum <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"í gegnum <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"á <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, í gegnum <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Talhólf"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> mín. og <xliff:g id="SECONDS">%d</xliff:g> sek."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> sek."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> mínútur <xliff:g id="SECONDS">%d</xliff:g> sekúndur"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekúndur"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-it/strings.xml b/java/com/android/dialer/calllogutils/res/values-it/strings.xml
index 808d4e444..cac732d6b 100644
--- a/java/com/android/dialer/calllogutils/res/values-it/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-it/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Messaggi vocali"</string>
<string name="type_rejected" msgid="5632107438472996198">"Chiamata rifiutata"</string>
<string name="type_blocked" msgid="9177237294052244929">"Chiamata bloccata"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Si è risposto alla chiamata su un altro dispositivo"</string>
<string name="description_phone_account" msgid="4382951172691362244">"da o verso <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"tramite <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"su <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, tramite <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Messaggi vocali"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> m <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minuti <xliff:g id="SECONDS">%d</xliff:g> secondi"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> secondi"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-iw/strings.xml b/java/com/android/dialer/calllogutils/res/values-iw/strings.xml
index 069a8b89d..89cd5e4e9 100644
--- a/java/com/android/dialer/calllogutils/res/values-iw/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-iw/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"דואר קולי"</string>
<string name="type_rejected" msgid="5632107438472996198">"שיחה שנדחתה"</string>
<string name="type_blocked" msgid="9177237294052244929">"שיחה שנחסמה"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"השיחה נענתה במכשיר אחר"</string>
<string name="description_phone_account" msgid="4382951172691362244">"בחשבון <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"דרך <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"בחשבון <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, דרך <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"דואר קולי"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> דקות ו-<xliff:g id="SECONDS">%d</xliff:g> שניות"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> שניות"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> דקות ו-<xliff:g id="SECONDS">%d</xliff:g> שניות"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> שניות"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ja/strings.xml b/java/com/android/dialer/calllogutils/res/values-ja/strings.xml
index 81e8ee510..61c396d5e 100644
--- a/java/com/android/dialer/calllogutils/res/values-ja/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ja/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"ボイスメール"</string>
<string name="type_rejected" msgid="5632107438472996198">"拒否された通話"</string>
<string name="type_blocked" msgid="9177237294052244929">"ブロックされた通話"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"別の端末で応答した通話"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> で受信"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>(<xliff:g id="NUMBER">%2$s</xliff:g>)で受信"</string>
<string name="voicemail_string" msgid="6029775151483803006">"ボイスメール"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> 分 <xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> 分 <xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ka/strings.xml b/java/com/android/dialer/calllogutils/res/values-ka/strings.xml
index 6bfe5d3ae..a41660b3c 100644
--- a/java/com/android/dialer/calllogutils/res/values-ka/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ka/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"ხმოვანი ფოსტა"</string>
<string name="type_rejected" msgid="5632107438472996198">"უარყოფილი ზარი"</string>
<string name="type_blocked" msgid="9177237294052244929">"დაბლოკილი ზარი"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"ზარს პასუხი გაეცა სხვა მოწყობილობაზე"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>-ზე"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g>-ის მეშვეობით"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>-ზე, <xliff:g id="NUMBER">%2$s</xliff:g>-ის მეშვეობით"</string>
<string name="voicemail_string" msgid="6029775151483803006">"ხმოვანი ფოსტა"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>წთ <xliff:g id="SECONDS">%d</xliff:g>წმ"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>წმ"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> წუთი, <xliff:g id="SECONDS">%d</xliff:g> წამი"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> წამი"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-kk/strings.xml b/java/com/android/dialer/calllogutils/res/values-kk/strings.xml
index 8302bb397..a2aae777e 100644
--- a/java/com/android/dialer/calllogutils/res/values-kk/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-kk/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Дауыстық хабар"</string>
<string name="type_rejected" msgid="5632107438472996198">"Қабылданбаған қоңырау"</string>
<string name="type_blocked" msgid="9177237294052244929">"Бөгелген қоңырау"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Қоңырау басқа құрылғыдан қабылданды"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> арқылы"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, <xliff:g id="NUMBER">%2$s</xliff:g> арқылы"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Дауыстық хабар"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>м <xliff:g id="SECONDS">%d</xliff:g>с"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> с"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> минут <xliff:g id="SECONDS">%d</xliff:g> секунд"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> секунд"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-km/strings.xml b/java/com/android/dialer/calllogutils/res/values-km/strings.xml
index 91b6d9acd..fe58bd7bd 100644
--- a/java/com/android/dialer/calllogutils/res/values-km/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-km/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"សារ​ជា​សំឡេង"</string>
<string name="type_rejected" msgid="5632107438472996198">"ការហៅដែលបានបដិសេធ"</string>
<string name="type_blocked" msgid="9177237294052244929">"ការហៅដែលបានទប់ស្កាត់"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"បាន​ឆ្លើយ​ការ​ហៅ​នៅ​លើ​ឧបករណ៍​ផ្សេង​ទៀត"</string>
<string name="description_phone_account" msgid="4382951172691362244">"នៅ <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"តាមរយៈ <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"នៅ​លើ <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> តាមរយៈ <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"សារ​ជា​សំឡេង"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>m <xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> នាទី <xliff:g id="SECONDS">%d</xliff:g> វិនាទី"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> វិនាទី"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-kn/strings.xml b/java/com/android/dialer/calllogutils/res/values-kn/strings.xml
index 6d6f8864a..927cb2d20 100644
--- a/java/com/android/dialer/calllogutils/res/values-kn/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-kn/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"ಧ್ವನಿಮೇಲ್"</string>
<string name="type_rejected" msgid="5632107438472996198">"ನಿರಾಕರಿಸಿದ ಕರೆ"</string>
<string name="type_blocked" msgid="9177237294052244929">"ನಿರ್ಬಂಧಿಸಿದ ಕರೆ"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"ಮತ್ತೊಂದು ಸಾಧನದಲ್ಲಿ ಕರೆಗೆ ಉತ್ತರಿಸಲಾಗಿದೆ"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> ನಲ್ಲಿ"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> ಮೂಲಕ"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> ರಲ್ಲಿ, <xliff:g id="NUMBER">%2$s</xliff:g> ಮೂಲಕ"</string>
<string name="voicemail_string" msgid="6029775151483803006">"ಧ್ವನಿಮೇಲ್"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>ನಿ <xliff:g id="SECONDS">%d</xliff:g>ಸೆ"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>ಸೆ"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> ನಿಮಿಷಗಳು <xliff:g id="SECONDS">%d</xliff:g> ಸೆಕೆಂಡುಗಳು"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> ಸೆಕೆಂಡುಗಳು"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ko/strings.xml b/java/com/android/dialer/calllogutils/res/values-ko/strings.xml
index ff49d5b83..31c8672b6 100644
--- a/java/com/android/dialer/calllogutils/res/values-ko/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ko/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"음성사서함"</string>
<string name="type_rejected" msgid="5632107438472996198">"거부된 통화"</string>
<string name="type_blocked" msgid="9177237294052244929">"차단된 통화"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"다른 기기에서 전화를 받음"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> 계정"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g>번으로 수신"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>에서 <xliff:g id="NUMBER">%2$s</xliff:g>번으로 수신"</string>
<string name="voicemail_string" msgid="6029775151483803006">"음성사서함"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>분 <xliff:g id="SECONDS">%d</xliff:g>초"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>초"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g>분 <xliff:g id="SECONDS">%d</xliff:g>초"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g>초"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ky/strings.xml b/java/com/android/dialer/calllogutils/res/values-ky/strings.xml
index 9ec8ca253..3aacb9d94 100644
--- a/java/com/android/dialer/calllogutils/res/values-ky/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ky/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Үн почтасы"</string>
<string name="type_rejected" msgid="5632107438472996198">"Четке кагылган чалуу"</string>
<string name="type_blocked" msgid="9177237294052244929">"Бөгөттөлгөн чалуу"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Чалууга башка түзмөктөн жооп берилди"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> боюнча"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> аркылуу"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> боюнча <xliff:g id="NUMBER">%2$s</xliff:g> аркылуу"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Үн почтасы"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>мүн. <xliff:g id="SECONDS">%d</xliff:g>сек."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>сек."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> мүнөт <xliff:g id="SECONDS">%d</xliff:g> секунд"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> секунд"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-lo/strings.xml b/java/com/android/dialer/calllogutils/res/values-lo/strings.xml
index 72efbd872..c330455ae 100644
--- a/java/com/android/dialer/calllogutils/res/values-lo/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-lo/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"ຂໍ້ຄວາມສຽງ"</string>
<string name="type_rejected" msgid="5632107438472996198">"ສາຍ​ໂທ​ທີ່​ຖືກ​ປະ​ຕິ​ເສດ"</string>
<string name="type_blocked" msgid="9177237294052244929">"ສາຍ​ໂທ​ທີ່​ຖືກບ​ລັອກ"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"ຮັບສາຍໃນອຸປະກອນອື່ນແລ້ວ"</string>
<string name="description_phone_account" msgid="4382951172691362244">"ຢູ່​ <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"ຜ່ານ <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"ຢູ່ <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, ຜ່ານ <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"ຂໍ້ຄວາມສຽງ"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>ນທ <xliff:g id="SECONDS">%d</xliff:g>ວິ"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>ວິ"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> ນາທີ <xliff:g id="SECONDS">%d</xliff:g> ວິນາທີ"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> ວິນາທີ"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-lt/strings.xml b/java/com/android/dialer/calllogutils/res/values-lt/strings.xml
index 7eaa42b8f..f981cbdc6 100644
--- a/java/com/android/dialer/calllogutils/res/values-lt/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-lt/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Balso paštas"</string>
<string name="type_rejected" msgid="5632107438472996198">"Atmestas skambutis"</string>
<string name="type_blocked" msgid="9177237294052244929">"Užblokuotas skambutis"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Į skambutį atsakyta kitame įrenginyje"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"numeriu <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, numeriu <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Balso paštas"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min. <xliff:g id="SECONDS">%d</xliff:g> sek."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> sek."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> min. <xliff:g id="SECONDS">%d</xliff:g> sek."</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sek."</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-lv/strings.xml b/java/com/android/dialer/calllogutils/res/values-lv/strings.xml
index cf6b32efe..9a9ed62f7 100644
--- a/java/com/android/dialer/calllogutils/res/values-lv/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-lv/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Balss pasta ziņojums"</string>
<string name="type_rejected" msgid="5632107438472996198">"Noraidīts zvans"</string>
<string name="type_blocked" msgid="9177237294052244929">"Bloķēts zvans"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Uz zvanu tika atbildēts citā ierīcē"</string>
<string name="description_phone_account" msgid="4382951172691362244">"kontā <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"izmantojot numuru <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"kontā <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, izmantojot numuru <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Balss pasts"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minūtes <xliff:g id="SECONDS">%d</xliff:g> sekundes"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekundes"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-mk/strings.xml b/java/com/android/dialer/calllogutils/res/values-mk/strings.xml
index 5747c258d..017e62586 100644
--- a/java/com/android/dialer/calllogutils/res/values-mk/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-mk/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Говорна пошта"</string>
<string name="type_rejected" msgid="5632107438472996198">"Одбиен повик"</string>
<string name="type_blocked" msgid="9177237294052244929">"Блокиран повик"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Повикот е одговорен на друг уред"</string>
<string name="description_phone_account" msgid="4382951172691362244">"на <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"на <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"на <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, на <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Говорна пошта"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> мин. <xliff:g id="SECONDS">%d</xliff:g> сек."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> сек."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> минути <xliff:g id="SECONDS">%d</xliff:g> секунди"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> секунди"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ml/strings.xml b/java/com/android/dialer/calllogutils/res/values-ml/strings.xml
index fcd59958c..67701294d 100644
--- a/java/com/android/dialer/calllogutils/res/values-ml/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ml/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"വോയ്‌സ്‌മെയിൽ"</string>
<string name="type_rejected" msgid="5632107438472996198">"നിരസിച്ച കോൾ"</string>
<string name="type_blocked" msgid="9177237294052244929">"ബ്ലോക്കുചെയ്ത കോൾ"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"മറ്റൊരു ഉപകരണത്തിൽ കോളിന് മറുപടി നൽകി"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> എന്നതിൽ"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> നമ്പർ വഴി"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="NUMBER">%2$s</xliff:g> നമ്പർ വഴി, <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> അക്കൗണ്ടിൽ"</string>
<string name="voicemail_string" msgid="6029775151483803006">"വോയ്‌സ്‌മെയിൽ"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>മിനിറ്റ് <xliff:g id="SECONDS">%d</xliff:g>സെക്കന്‍ഡ്"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>സെക്കൻഡ്"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> മിനിറ്റ് <xliff:g id="SECONDS">%d</xliff:g> സെക്കൻഡ്"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> സെക്കൻഡ്"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-mn/strings.xml b/java/com/android/dialer/calllogutils/res/values-mn/strings.xml
index cc2043989..fc8381120 100644
--- a/java/com/android/dialer/calllogutils/res/values-mn/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-mn/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Дуут шуудан"</string>
<string name="type_rejected" msgid="5632107438472996198">"Татгалзсан дуудлага"</string>
<string name="type_blocked" msgid="9177237294052244929">"Хориглосон дуудлага"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Дуудлагад өөр төхөөрөмж дээрээс хариулсан"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> дээр"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g>-р"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> дээр, <xliff:g id="NUMBER">%2$s</xliff:g>-р"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Дуут шуудан"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>м <xliff:g id="SECONDS">%d</xliff:g>с"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>с"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> минут <xliff:g id="SECONDS">%d</xliff:g> секунд"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> секунд"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-mr/strings.xml b/java/com/android/dialer/calllogutils/res/values-mr/strings.xml
index eb1080289..b536bd14d 100644
--- a/java/com/android/dialer/calllogutils/res/values-mr/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-mr/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"व्हॉइसमेल"</string>
<string name="type_rejected" msgid="5632107438472996198">"नाकारलेला कॉल"</string>
<string name="type_blocked" msgid="9177237294052244929">"अवरोधित केलेला कॉल"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"कॉलला दुसर्‍या डिव्हाइसवर उत्तर दिले"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> वर"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> द्वारे"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> वर, <xliff:g id="NUMBER">%2$s</xliff:g> द्वारे"</string>
<string name="voicemail_string" msgid="6029775151483803006">"व्हॉइसमेल"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>मि <xliff:g id="SECONDS">%d</xliff:g>से"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>से"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> मिनिटे <xliff:g id="SECONDS">%d</xliff:g> सेकंद"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> सेकंद"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ms/strings.xml b/java/com/android/dialer/calllogutils/res/values-ms/strings.xml
index 03e75161d..21828449b 100644
--- a/java/com/android/dialer/calllogutils/res/values-ms/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ms/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Mel suara"</string>
<string name="type_rejected" msgid="5632107438472996198">"Panggilan yang ditolak"</string>
<string name="type_blocked" msgid="9177237294052244929">"Panggilan yang disekat"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Panggilan dijawab pada peranti lain"</string>
<string name="description_phone_account" msgid="4382951172691362244">"pada <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"melalui <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"pada <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, melalui <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Mel suara"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>m <xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minit <xliff:g id="SECONDS">%d</xliff:g> saat"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> saat"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-my/strings.xml b/java/com/android/dialer/calllogutils/res/values-my/strings.xml
index 07f0f8915..6a4ed9b3b 100644
--- a/java/com/android/dialer/calllogutils/res/values-my/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-my/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"အသံမေးလ်"</string>
<string name="type_rejected" msgid="5632107438472996198">"ငြင်းပယ်ထားသော ခေါ်ဆိုမှု"</string>
<string name="type_blocked" msgid="9177237294052244929">"ခေါ်ဆိုမှုကို ပိတ်ဆို့ထားပါသည်"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"ခေါ်ဆိုမှုကို အခြားကိရိယာတွင် ဖြေကြားထားပါသည်"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> တွင်"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> မှတစ်ဆင့်"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> တွင်၊ <xliff:g id="NUMBER">%2$s</xliff:g> မှတစ်ဆင့်"</string>
<string name="voicemail_string" msgid="6029775151483803006">"အသံမေးလ်"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>မိနစ် <xliff:g id="SECONDS">%d</xliff:g>စက္ကန့်"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>စက္ကန့်"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> မိနစ် <xliff:g id="SECONDS">%d</xliff:g> စက္ကန့်"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> စက္ကန့်"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-nb/strings.xml b/java/com/android/dialer/calllogutils/res/values-nb/strings.xml
index 0596aa1bd..362aba472 100644
--- a/java/com/android/dialer/calllogutils/res/values-nb/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-nb/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Talepost"</string>
<string name="type_rejected" msgid="5632107438472996198">"Avvist anrop"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokkert anrop"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Anropet ble besvart på en annen enhet"</string>
<string name="description_phone_account" msgid="4382951172691362244">"på <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"via <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"på <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> via <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Talepost"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> m og <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutter, <xliff:g id="SECONDS">%d</xliff:g> sekunder"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekunder"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ne/strings.xml b/java/com/android/dialer/calllogutils/res/values-ne/strings.xml
index 31e1e3279..b0d797506 100644
--- a/java/com/android/dialer/calllogutils/res/values-ne/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ne/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"भ्वाइस मेल"</string>
<string name="type_rejected" msgid="5632107438472996198">"अस्वीकार गरिएको कल"</string>
<string name="type_blocked" msgid="9177237294052244929">"रोक्का गरिएको कल"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"कलको जवाफ अर्को यन्त्रमा फर्काइयो"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> मा"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> मार्फत"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> मा, <xliff:g id="NUMBER">%2$s</xliff:g> मार्फत"</string>
<string name="voicemail_string" msgid="6029775151483803006">"भ्वाइस मेल"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>मिनेट <xliff:g id="SECONDS">%d</xliff:g>सेकेन्ड"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>सेकेन्ड"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> मिनेट <xliff:g id="SECONDS">%d</xliff:g> सेकेन्ड"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> सेकेन्ड"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-nl/strings.xml b/java/com/android/dialer/calllogutils/res/values-nl/strings.xml
index 6801082b3..324ee5ab7 100644
--- a/java/com/android/dialer/calllogutils/res/values-nl/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-nl/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Voicemail"</string>
<string name="type_rejected" msgid="5632107438472996198">"Geweigerde oproep"</string>
<string name="type_blocked" msgid="9177237294052244929">"Geblokkeerde oproep"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Oproep beantwoord op een ander apparaat"</string>
<string name="description_phone_account" msgid="4382951172691362244">"in <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"via <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"op <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, via <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Voicemail"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> m <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minuten, <xliff:g id="SECONDS">%d</xliff:g> seconden"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> seconden"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-no/strings.xml b/java/com/android/dialer/calllogutils/res/values-no/strings.xml
index 0596aa1bd..362aba472 100644
--- a/java/com/android/dialer/calllogutils/res/values-no/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-no/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Talepost"</string>
<string name="type_rejected" msgid="5632107438472996198">"Avvist anrop"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokkert anrop"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Anropet ble besvart på en annen enhet"</string>
<string name="description_phone_account" msgid="4382951172691362244">"på <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"via <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"på <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> via <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Talepost"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> m og <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutter, <xliff:g id="SECONDS">%d</xliff:g> sekunder"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekunder"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-pa/strings.xml b/java/com/android/dialer/calllogutils/res/values-pa/strings.xml
index e7c6119e2..71dfdc977 100644
--- a/java/com/android/dialer/calllogutils/res/values-pa/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-pa/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"ਵੌਇਸਮੇਲ"</string>
<string name="type_rejected" msgid="5632107438472996198">"ਅਸਵੀਕਾਰ ਕੀਤੀ ਕਾਲ"</string>
<string name="type_blocked" msgid="9177237294052244929">"ਬਲੌਕ ਕੀਤੀ ਕਾਲ"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"ਕਾਲ ਦਾ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ \'ਤੇ ਜਵਾਬ ਦਿੱਤਾ ਗਿਆ"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> \'ਤੇ"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> ਰਾਹੀਂ"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> \'ਤੇ, <xliff:g id="NUMBER">%2$s</xliff:g> ਰਾਹੀਂ"</string>
<string name="voicemail_string" msgid="6029775151483803006">"ਵੌਇਸਮੇਲ"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>ਮਿੰ <xliff:g id="SECONDS">%d</xliff:g>ਸਕਿੰ"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>ਸਕਿੰ"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> ਮਿੰਟ <xliff:g id="SECONDS">%d</xliff:g> ਸਕਿੰਟ"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> ਸਕਿੰਟ"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-pl/strings.xml b/java/com/android/dialer/calllogutils/res/values-pl/strings.xml
index d863c1d9d..67ca2cf8d 100644
--- a/java/com/android/dialer/calllogutils/res/values-pl/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-pl/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Poczta głosowa"</string>
<string name="type_rejected" msgid="5632107438472996198">"Odrzucone połączenie"</string>
<string name="type_blocked" msgid="9177237294052244929">"Zablokowane połączenie"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Połączenie zostało odebrane na innym urządzeniu"</string>
<string name="description_phone_account" msgid="4382951172691362244">"na koncie <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"przez <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"na koncie <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, przez <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Poczta głosowa"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-pt-rBR/strings.xml b/java/com/android/dialer/calllogutils/res/values-pt-rBR/strings.xml
index 5182576e1..ab4557c16 100644
--- a/java/com/android/dialer/calllogutils/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-pt-rBR/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Correio de voz"</string>
<string name="type_rejected" msgid="5632107438472996198">"Chamada recusada"</string>
<string name="type_blocked" msgid="9177237294052244929">"Chamada bloqueada"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Chamada atendida em outro dispositivo"</string>
<string name="description_phone_account" msgid="4382951172691362244">"em <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"pelo número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"em <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, pelo número <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Correio de voz"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutos <xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-pt-rPT/strings.xml b/java/com/android/dialer/calllogutils/res/values-pt-rPT/strings.xml
index b9c4d2459..456f3e838 100644
--- a/java/com/android/dialer/calllogutils/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-pt-rPT/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Correio de voz"</string>
<string name="type_rejected" msgid="5632107438472996198">"Chamada recusada"</string>
<string name="type_blocked" msgid="9177237294052244929">"Chamada bloqueada"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Chamada atendida noutro dispositivo"</string>
<string name="description_phone_account" msgid="4382951172691362244">"em <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"através do número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"em <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, através do número <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Correio de voz"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutos <xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-pt/strings.xml b/java/com/android/dialer/calllogutils/res/values-pt/strings.xml
index 5182576e1..ab4557c16 100644
--- a/java/com/android/dialer/calllogutils/res/values-pt/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-pt/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Correio de voz"</string>
<string name="type_rejected" msgid="5632107438472996198">"Chamada recusada"</string>
<string name="type_blocked" msgid="9177237294052244929">"Chamada bloqueada"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Chamada atendida em outro dispositivo"</string>
<string name="description_phone_account" msgid="4382951172691362244">"em <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"pelo número <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"em <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, pelo número <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Correio de voz"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minutos <xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> segundos"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ro/strings.xml b/java/com/android/dialer/calllogutils/res/values-ro/strings.xml
index fb4ad6ba1..dca7e800d 100644
--- a/java/com/android/dialer/calllogutils/res/values-ro/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ro/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Mesagerie vocală"</string>
<string name="type_rejected" msgid="5632107438472996198">"Apel respins"</string>
<string name="type_blocked" msgid="9177237294052244929">"Apel blocat"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Apel preluat pe alt dispozitiv"</string>
<string name="description_phone_account" msgid="4382951172691362244">"pe <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"prin <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"pe <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, prin <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Mesagerie vocală"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min. <xliff:g id="SECONDS">%d</xliff:g> sec."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> sec."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minute, <xliff:g id="SECONDS">%d</xliff:g> secunde"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> secunde"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ru/strings.xml b/java/com/android/dialer/calllogutils/res/values-ru/strings.xml
index 7fc772bbb..1ee01f129 100644
--- a/java/com/android/dialer/calllogutils/res/values-ru/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ru/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Голосовая почта"</string>
<string name="type_rejected" msgid="5632107438472996198">"Отклоненный вызов"</string>
<string name="type_blocked" msgid="9177237294052244929">"Заблокированный вызов"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Вызов принят на другом устройстве"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"Номер <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, номер <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Голосовая почта"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> мин. <xliff:g id="SECONDS">%d</xliff:g> сек."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> сек."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> мин. <xliff:g id="SECONDS">%d</xliff:g> сек."</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> сек."</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-si/strings.xml b/java/com/android/dialer/calllogutils/res/values-si/strings.xml
index 5a6e9e650..11d0ed4fd 100644
--- a/java/com/android/dialer/calllogutils/res/values-si/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-si/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"හඬ තැපෑල"</string>
<string name="type_rejected" msgid="5632107438472996198">"ප්‍රතික්ෂේප කළ ඇමතුම"</string>
<string name="type_blocked" msgid="9177237294052244929">"අවහිර කළ ඇමතුම"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"ඇමතුමට වෙනත් උපාංගයකදී පිළිතුරු දෙන ලදී"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> මත"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> හරහා"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> මත, <xliff:g id="NUMBER">%2$s</xliff:g> හරහා"</string>
<string name="voicemail_string" msgid="6029775151483803006">"හඬ තැපෑල"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"මි<xliff:g id="MINUTES">%d</xliff:g> ත<xliff:g id="SECONDS">%d</xliff:g>"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"තත්<xliff:g id="SECONDS">%d</xliff:g>"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"මිනිත්තු <xliff:g id="MINUTES">%d</xliff:g> තත්පර <xliff:g id="SECONDS">%d</xliff:g>"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"තත්පර <xliff:g id="SECONDS">%d</xliff:g>"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sk/strings.xml b/java/com/android/dialer/calllogutils/res/values-sk/strings.xml
index edd431a55..64810fc9b 100644
--- a/java/com/android/dialer/calllogutils/res/values-sk/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-sk/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Hlasová schránka"</string>
<string name="type_rejected" msgid="5632107438472996198">"Odmietnutý hovor"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokovaný hovor"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Hovor bol prijatý v inom zariadení"</string>
<string name="description_phone_account" msgid="4382951172691362244">"v účte <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"prostredníctvom čísla <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"v účte <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, prostredníctvom čísla <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Hlasová schránka"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> min, <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sl/strings.xml b/java/com/android/dialer/calllogutils/res/values-sl/strings.xml
index ee2a64180..0f375527c 100644
--- a/java/com/android/dialer/calllogutils/res/values-sl/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-sl/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Odzivnik"</string>
<string name="type_rejected" msgid="5632107438472996198">"Zavrnjen klic"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blokiran klic"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Klic je bil sprejet v drugi napravi"</string>
<string name="description_phone_account" msgid="4382951172691362244">"v računu <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"prek številke <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"v računu <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, prek številke <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Odzivnik"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> min <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> min in <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sq/strings.xml b/java/com/android/dialer/calllogutils/res/values-sq/strings.xml
index 764a35d98..acfd36889 100644
--- a/java/com/android/dialer/calllogutils/res/values-sq/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-sq/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Posta zanore"</string>
<string name="type_rejected" msgid="5632107438472996198">"Telefonatë e refuzuar"</string>
<string name="type_blocked" msgid="9177237294052244929">"Telefonatë e bllokuar"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Telefonata mori përgjigje në një pajisje tjetër"</string>
<string name="description_phone_account" msgid="4382951172691362244">"në <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"nëpërmjet <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"në <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, nëpërmjet <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Posta zanore"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> minuta e <xliff:g id="SECONDS">%d</xliff:g> sekonda"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> sekonda"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minuta <xliff:g id="SECONDS">%d</xliff:g> sekonda"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekonda"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sr/strings.xml b/java/com/android/dialer/calllogutils/res/values-sr/strings.xml
index bef1b1683..559093880 100644
--- a/java/com/android/dialer/calllogutils/res/values-sr/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-sr/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Говорна пошта"</string>
<string name="type_rejected" msgid="5632107438472996198">"Одбијен позив"</string>
<string name="type_blocked" msgid="9177237294052244929">"Блокиран позив"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Позив је прихваћен на другом уређају"</string>
<string name="description_phone_account" msgid="4382951172691362244">"на <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"преко <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"на <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, преко <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Говорна пошта"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> м <xliff:g id="SECONDS">%d</xliff:g> с"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> с"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> мин <xliff:g id="SECONDS">%d</xliff:g> сек"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> сек"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sv/strings.xml b/java/com/android/dialer/calllogutils/res/values-sv/strings.xml
index 630af12de..4b74594fa 100644
--- a/java/com/android/dialer/calllogutils/res/values-sv/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-sv/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Röstbrevlåda"</string>
<string name="type_rejected" msgid="5632107438472996198">"Avvisat samtal"</string>
<string name="type_blocked" msgid="9177237294052244929">"Blockerat samtal"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Svarade på en annan enhet"</string>
<string name="description_phone_account" msgid="4382951172691362244">"på <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"med <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"på <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, med <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Röstbrevlåda"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> m <xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> minuter, <xliff:g id="SECONDS">%d</xliff:g> sekunder"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> sekunder"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-sw/strings.xml b/java/com/android/dialer/calllogutils/res/values-sw/strings.xml
index fae34e4f1..729d01a7e 100644
--- a/java/com/android/dialer/calllogutils/res/values-sw/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-sw/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Ujumbe wa sauti"</string>
<string name="type_rejected" msgid="5632107438472996198">"Simu iliyokataliwa"</string>
<string name="type_blocked" msgid="9177237294052244929">"Simu iliyozuiwa"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Simu uliyojibu kwenye kifaa kingine"</string>
<string name="description_phone_account" msgid="4382951172691362244">"kwenye <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"kupitia <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"kwenye <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, kupitia <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Ujumbe wa sauti"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"Dakika <xliff:g id="MINUTES">%d</xliff:g> sekunde <xliff:g id="SECONDS">%d</xliff:g>"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"Sekunde <xliff:g id="SECONDS">%d</xliff:g>"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"Dakika <xliff:g id="MINUTES">%d</xliff:g> sekunde <xliff:g id="SECONDS">%d</xliff:g>"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"Sekunde <xliff:g id="SECONDS">%d</xliff:g>"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ta/strings.xml b/java/com/android/dialer/calllogutils/res/values-ta/strings.xml
index 4adbe0ec2..abd058d12 100644
--- a/java/com/android/dialer/calllogutils/res/values-ta/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ta/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"குரலஞ்சல்"</string>
<string name="type_rejected" msgid="5632107438472996198">"நிராகரித்த அழைப்பு"</string>
<string name="type_blocked" msgid="9177237294052244929">"தடுத்த அழைப்பு"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"மற்றொரு சாதனத்திலிருந்து அழைப்பிற்குப் பதிலளித்தீர்கள்"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> இல்"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> மூலம்"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> இல் <xliff:g id="NUMBER">%2$s</xliff:g> மூலம்"</string>
<string name="voicemail_string" msgid="6029775151483803006">"குரலஞ்சல்"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>நி <xliff:g id="SECONDS">%d</xliff:g>வி"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>வி"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> நிமிடங்கள் <xliff:g id="SECONDS">%d</xliff:g> விநாடிகள்"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> விநாடிகள்"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-te/strings.xml b/java/com/android/dialer/calllogutils/res/values-te/strings.xml
index 91471538d..8794e2c67 100644
--- a/java/com/android/dialer/calllogutils/res/values-te/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-te/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"వాయిస్ మెయిల్"</string>
<string name="type_rejected" msgid="5632107438472996198">"నిరాకరించిన కాల్"</string>
<string name="type_blocked" msgid="9177237294052244929">"బ్లాక్ చేసిన కాల్"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"కాల్‌కి మరొక పరికరంలో సమాధానం ఇవ్వబడింది"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g>లో"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> ద్వారా"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>లో, <xliff:g id="NUMBER">%2$s</xliff:g> ద్వారా"</string>
<string name="voicemail_string" msgid="6029775151483803006">"వాయిస్ మెయిల్"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>ని <xliff:g id="SECONDS">%d</xliff:g>సె"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>సె"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> నిమిషాల <xliff:g id="SECONDS">%d</xliff:g> సెకన్లు"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> సెకన్లు"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-th/strings.xml b/java/com/android/dialer/calllogutils/res/values-th/strings.xml
index 33bf725e4..8471aa84e 100644
--- a/java/com/android/dialer/calllogutils/res/values-th/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-th/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"ข้อความเสียง"</string>
<string name="type_rejected" msgid="5632107438472996198">"สายที่ปฏิเสธ"</string>
<string name="type_blocked" msgid="9177237294052244929">"สายที่บล็อก"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"รับสายบนอุปกรณ์เครื่องอื่นแล้ว"</string>
<string name="description_phone_account" msgid="4382951172691362244">"ใน <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"ผ่าน <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"ใน <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> ผ่าน <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"ข้อความเสียง"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> นาที <xliff:g id="SECONDS">%d</xliff:g> วินาที"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> วินาที"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> นาที <xliff:g id="SECONDS">%d</xliff:g> วินาที"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> วินาที"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-tl/strings.xml b/java/com/android/dialer/calllogutils/res/values-tl/strings.xml
index b4d3e4972..7513516d7 100644
--- a/java/com/android/dialer/calllogutils/res/values-tl/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-tl/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Voicemail"</string>
<string name="type_rejected" msgid="5632107438472996198">"Tinanggihang tawag"</string>
<string name="type_blocked" msgid="9177237294052244929">"Naka-block na tawag"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Sinagot ang tawag sa isa pang device"</string>
<string name="description_phone_account" msgid="4382951172691362244">"sa <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"sa pamamagitan ng <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"sa <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, sa pamamagitan ng <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Voicemail"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> (na) min. <xliff:g id="SECONDS">%d</xliff:g> (na) segundo"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> (na) segundo"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> (na) minuto <xliff:g id="SECONDS">%d</xliff:g> (na) segundo"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> (na) segundo"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-tr/strings.xml b/java/com/android/dialer/calllogutils/res/values-tr/strings.xml
index b8dc84cee..e067745cd 100644
--- a/java/com/android/dialer/calllogutils/res/values-tr/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-tr/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Sesli mesaj"</string>
<string name="type_rejected" msgid="5632107438472996198">"Reddedilen çağrı"</string>
<string name="type_blocked" msgid="9177237294052244929">"Engellenen çağrı"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Çağrı başka bir cihazda cevaplandı"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> hesabında"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> kullanılarak"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="NUMBER">%2$s</xliff:g> kullanılarak <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> hesabında"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Sesli mesaj"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> dk. <xliff:g id="SECONDS">%d</xliff:g> sn."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> sn."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> dakika <xliff:g id="SECONDS">%d</xliff:g> saniye"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> saniye"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-uk/strings.xml b/java/com/android/dialer/calllogutils/res/values-uk/strings.xml
index c62f2b0ad..e9a9b421a 100644
--- a/java/com/android/dialer/calllogutils/res/values-uk/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-uk/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Голосова пошта"</string>
<string name="type_rejected" msgid="5632107438472996198">"Відхилений дзвінок"</string>
<string name="type_blocked" msgid="9177237294052244929">"Заблокований дзвінок"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Виклик прийнято на іншому пристрої"</string>
<string name="description_phone_account" msgid="4382951172691362244">"на <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"на номер <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"на <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> на номер <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Голосова пошта"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> хв <xliff:g id="SECONDS">%d</xliff:g> с"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> с"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> хв <xliff:g id="SECONDS">%d</xliff:g> с"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> с"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-ur/strings.xml b/java/com/android/dialer/calllogutils/res/values-ur/strings.xml
index e9a115452..563aaaccc 100644
--- a/java/com/android/dialer/calllogutils/res/values-ur/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-ur/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"صوتی میل"</string>
<string name="type_rejected" msgid="5632107438472996198">"مسترد شدہ کال"</string>
<string name="type_blocked" msgid="9177237294052244929">"مسدود شدہ کال"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"کال کا جواب ایک اور آلہ پر دیا گیا"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> پر"</string>
<string name="description_via_number" msgid="7682575124846343076">"بذریعہ <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g> پر، بذریعہ <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"صوتی میل"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>منٹ <xliff:g id="SECONDS">%d</xliff:g>سیکنڈ"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>سیکنڈ"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> منٹ <xliff:g id="SECONDS">%d</xliff:g> سیکنڈ"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> سیکنڈ"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-uz/strings.xml b/java/com/android/dialer/calllogutils/res/values-uz/strings.xml
index b1fe269c2..5a2f16076 100644
--- a/java/com/android/dialer/calllogutils/res/values-uz/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-uz/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Ovozli pochta"</string>
<string name="type_rejected" msgid="5632107438472996198">"Rad etilgan chaqiruv"</string>
<string name="type_blocked" msgid="9177237294052244929">"Bloklangan chaqiruv"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Chaqiruvga boshqa qurilmadan javob berildi"</string>
<string name="description_phone_account" msgid="4382951172691362244">"<xliff:g id="PHONEACCOUNT">^1</xliff:g> orqali"</string>
<string name="description_via_number" msgid="7682575124846343076">"<xliff:g id="NUMBER">%1$s</xliff:g> raqami orqali"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, <xliff:g id="NUMBER">%2$s</xliff:g> raqami orqali"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Ovozli pochta"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> daq. <xliff:g id="SECONDS">%d</xliff:g> son."</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> son."</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> daqiqa <xliff:g id="SECONDS">%d</xliff:g> soniya"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> soniya"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-vi/strings.xml b/java/com/android/dialer/calllogutils/res/values-vi/strings.xml
index 790997567..6f61169c7 100644
--- a/java/com/android/dialer/calllogutils/res/values-vi/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-vi/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Thư thoại"</string>
<string name="type_rejected" msgid="5632107438472996198">"Cuộc gọi bị từ chối"</string>
<string name="type_blocked" msgid="9177237294052244929">"Cuộc gọi bị chặn"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Đã trả lời cuộc gọi trên thiết bị khác"</string>
<string name="description_phone_account" msgid="4382951172691362244">"trên <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"qua <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"trên <xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, qua <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Thư thoại"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> phút <xliff:g id="SECONDS">%d</xliff:g> giây"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> giây"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> phút <xliff:g id="SECONDS">%d</xliff:g> giây"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> giây"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-zh-rCN/strings.xml b/java/com/android/dialer/calllogutils/res/values-zh-rCN/strings.xml
index 0fd41e89b..cd553c03c 100644
--- a/java/com/android/dialer/calllogutils/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-zh-rCN/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"语音邮件"</string>
<string name="type_rejected" msgid="5632107438472996198">"拒接的来电"</string>
<string name="type_blocked" msgid="9177237294052244929">"屏蔽的来电"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"已在其他设备上接听的来电"</string>
<string name="description_phone_account" msgid="4382951172691362244">"通过 <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"通过 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"帐号:<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>,通过 <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"语音邮件"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> 分 <xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> 分 <xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-zh-rHK/strings.xml b/java/com/android/dialer/calllogutils/res/values-zh-rHK/strings.xml
index 57c669349..54d0f8b48 100644
--- a/java/com/android/dialer/calllogutils/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-zh-rHK/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"留言"</string>
<string name="type_rejected" msgid="5632107438472996198">"被拒來電"</string>
<string name="type_blocked" msgid="9177237294052244929">"被封鎖的來電"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"來電已在另一部裝置上接聽"</string>
<string name="description_phone_account" msgid="4382951172691362244">"使用 <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"透過 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"在 <xliff:g id="PHONEACCOUNT">%1$s</xliff:g> 上透過 <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"留言"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> 分 <xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> 分鐘 <xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-zh-rTW/strings.xml b/java/com/android/dialer/calllogutils/res/values-zh-rTW/strings.xml
index e9816481e..91d4a7ce9 100644
--- a/java/com/android/dialer/calllogutils/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-zh-rTW/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"語音留言"</string>
<string name="type_rejected" msgid="5632107438472996198">"拒接的來電"</string>
<string name="type_blocked" msgid="9177237294052244929">"封鎖的來電"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"已透過其他裝置接聽來電"</string>
<string name="description_phone_account" msgid="4382951172691362244">"透過 <xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"透過 <xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>,透過 <xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"語音留言"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g> 分鐘 <xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> 分 <xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> 秒"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values-zu/strings.xml b/java/com/android/dialer/calllogutils/res/values-zu/strings.xml
index 226d07d6d..c4e55c35c 100644
--- a/java/com/android/dialer/calllogutils/res/values-zu/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values-zu/strings.xml
@@ -30,13 +30,23 @@
<string name="type_voicemail" msgid="1877524395253846684">"Ivoyisimeyili"</string>
<string name="type_rejected" msgid="5632107438472996198">"Ikholi enqatshelwe"</string>
<string name="type_blocked" msgid="9177237294052244929">"Ikholi evinjiwe"</string>
+ <!-- no translation found for call_details_minutes_abbreviation (7899774555556720560) -->
+ <skip />
+ <!-- no translation found for call_details_seconds_abbreviation (5893806826648947126) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_format (2905525933361674470) -->
+ <skip />
+ <!-- no translation found for a11y_call_duration_short_format (5908875871251062453) -->
+ <skip />
+ <!-- no translation found for call_duration_format_pattern (7566375153243313914) -->
+ <skip />
+ <!-- no translation found for call_duration_short_format_pattern (1713177000235994790) -->
+ <skip />
+ <!-- no translation found for a11y_seconds (6695730844760611970) -->
+ <!-- no translation found for a11y_minutes (6377010096698624038) -->
<string name="type_answered_elsewhere" msgid="411958582555881640">"Ikholi iphendulwe kwenye idivayisi"</string>
<string name="description_phone_account" msgid="4382951172691362244">"ku-<xliff:g id="PHONEACCOUNT">^1</xliff:g>"</string>
<string name="description_via_number" msgid="7682575124846343076">"nge-<xliff:g id="NUMBER">%1$s</xliff:g>"</string>
<string name="description_via_number_phone_account" msgid="4345445677508018830">"ku-<xliff:g id="PHONEACCOUNT">%1$s</xliff:g>, nge-<xliff:g id="NUMBER">%2$s</xliff:g>"</string>
<string name="voicemail_string" msgid="6029775151483803006">"Ivoyisimeyili"</string>
- <string name="call_details_duration_format" msgid="296780245582838089">"<xliff:g id="MINUTES">%d</xliff:g>m <xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_short_duration_format" msgid="8079910850626312453">"<xliff:g id="SECONDS">%d</xliff:g>s"</string>
- <string name="call_details_duration_format_a11y" msgid="5116338920917720252">"<xliff:g id="MINUTES">%d</xliff:g> amaminithi <xliff:g id="SECONDS">%d</xliff:g> amasekhondi"</string>
- <string name="call_details_short_duration_format_a11y" msgid="4971559778168100952">"<xliff:g id="SECONDS">%d</xliff:g> amasekhondi"</string>
</resources>
diff --git a/java/com/android/dialer/calllogutils/res/values/strings.xml b/java/com/android/dialer/calllogutils/res/values/strings.xml
index 22bfb7b93..255990399 100644
--- a/java/com/android/dialer/calllogutils/res/values/strings.xml
+++ b/java/com/android/dialer/calllogutils/res/values/strings.xml
@@ -56,6 +56,52 @@
<!-- Title for blocked call type. [CHAR LIMIT=40] -->
<string name="type_blocked">Blocked call</string>
+ <!-- An abbreviation for minutes. For example "1m" [CHAR LIMIT=NONE] -->
+ <string name="call_details_minutes_abbreviation">m</string>
+
+ <!-- An abbreviation for seconds. For example "28s" [CHAR LIMIT=NONE] -->
+ <string name="call_details_seconds_abbreviation">s</string>
+
+ <!-- A string to announce a call duration. For example, in english might say 2 minutes 15 seconds.
+ This translation may require the variables to be rearranged for grammars different than
+ english. [CHAR LIMIT=NONE] -->
+ <string name="a11y_call_duration_format">
+ <xliff:g id="minutes">%d</xliff:g> <xliff:g id="minutes_translation">%s</xliff:g> <xliff:g id="seconds">%d</xliff:g> <xliff:g id="seconds_translation">%s</xliff:g>
+ </string>
+
+ <!-- A string to announce a call duration. For example, in english might say 15 seconds.
+ This translation may require the variables to be rearranged for grammars different than
+ english. [CHAR LIMIT=NONE] -->
+ <string name="a11y_call_duration_short_format">
+ <xliff:g id="seconds">%d</xliff:g> <xliff:g id="seconds_translation">%s</xliff:g>
+ </string>
+
+ <!-- A pattern to define the layout of a call duration string. for example, in english might
+ say 2m 15s. Translation should only rearrange the inputs. minutes_translation and
+ seconds_translation should remain in \'quotes\'. [CHAR LIMIT=NONE] -->
+ <string name="call_duration_format_pattern">
+ <xliff:g id="minutes_special_character">%s</xliff:g>\'<xliff:g id="minutes_translation">%s</xliff:g>\' <xliff:g id="seconds_special_character">%s</xliff:g>\'<xliff:g id="seconds_translation">%s</xliff:g>\'
+ </string>
+
+ <!-- A pattern to define the layout of a call duration string. for example, in english might
+ say 2m 15s. Translation should only rearrange the inputs. seconds_translation should
+ remain in \'quotes\'. [CHAR LIMIT=NONE] -->
+ <string name="call_duration_short_format_pattern">
+ <xliff:g id="seconds_special_character">%s</xliff:g>\'<xliff:g id="seconds_translation">%s</xliff:g>\'
+ </string>
+
+ <!-- A full string for seconds (time). [CHAR LIMIT=NONE] -->
+ <plurals name="a11y_seconds">
+ <item quantity="one">second</item>
+ <item quantity="other">seconds</item>
+ </plurals>
+
+ <!-- A full string for minutes (time). [CHAR LIMIT=NONE] -->
+ <plurals name="a11y_minutes">
+ <item quantity="one">minute</item>
+ <item quantity="other">minutes</item>
+ </plurals>
+
<!-- Title for "answered elsewhere" call type. This will happen if a call was ringing
simultaneously on multiple devices, and the user answered it on a device other than the
current device. [CHAR LIMIT=60] -->
@@ -81,16 +127,4 @@
<!-- String used for displaying calls to the voicemail number in the call log -->
<string name="voicemail_string">Voicemail</string>
-
- <!-- A nicely formatted call duration displayed when viewing call details. For example "42m 28s" -->
- <string name="call_details_duration_format"><xliff:g example="42" id="minutes">%d</xliff:g>m <xliff:g example="28" id="seconds">%d</xliff:g>s</string>
-
- <!-- A nicely formatted call duration displayed when viewing call details for duration less than 1 minute. For example "28s" -->
- <string name="call_details_short_duration_format"><xliff:g example="28" id="seconds">%d</xliff:g>s</string>
-
- <!-- A call duration announced when viewing call details for accessibility. For example "42 minutes 28 seconds".-->
- <string name="call_details_duration_format_a11y"><xliff:g example="42" id="minutes">%d</xliff:g> minutes <xliff:g example="28" id="seconds">%d</xliff:g> seconds</string>
-
- <!-- A call duration announced when viewing call details for accessibility. For example "28 sec" -->
- <string name="call_details_short_duration_format_a11y"><xliff:g example="28" id="seconds">%d</xliff:g> seconds</string>
</resources> \ No newline at end of file
diff --git a/java/com/android/dialer/common/ConfigProviderBindings.java b/java/com/android/dialer/common/ConfigProviderBindings.java
index 92e6cc3ff..9f045add4 100644
--- a/java/com/android/dialer/common/ConfigProviderBindings.java
+++ b/java/com/android/dialer/common/ConfigProviderBindings.java
@@ -20,17 +20,25 @@ import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
+import android.support.v4.os.UserManagerCompat;
/** Accessor for getting a {@link ConfigProvider}. */
public class ConfigProviderBindings {
private static ConfigProvider configProvider;
+ private static ConfigProvider configProviderStub;
public static ConfigProvider get(@NonNull Context context) {
Assert.isNotNull(context);
if (configProvider != null) {
return configProvider;
}
+ if (!UserManagerCompat.isUserUnlocked(context)) {
+ if (configProviderStub == null) {
+ configProviderStub = new ConfigProviderStub();
+ }
+ return configProviderStub;
+ }
Context application = context.getApplicationContext();
if (application instanceof ConfigProviderFactory) {
diff --git a/java/com/android/dialer/constants/ScheduledJobIds.java b/java/com/android/dialer/constants/ScheduledJobIds.java
index fdb3facbc..2fed4ef8a 100644
--- a/java/com/android/dialer/constants/ScheduledJobIds.java
+++ b/java/com/android/dialer/constants/ScheduledJobIds.java
@@ -31,4 +31,11 @@ public final class ScheduledJobIds {
public static final int VVM_TASK_SCHEDULER_JOB = 200;
public static final int VVM_STATUS_CHECK_JOB = 201;
+ public static final int VVM_DEVICE_PROVISIONED_JOB = 202;
+
+ public static final int VOIP_REGISTRATION = 300;
+
+ // Job Ids from 10_000 to 10_100 should be reserved for proto upload jobs.
+ public static final int PROTO_UPLOAD_JOB_MIN_ID = 10_000;
+ public static final int PROTO_UPLOAD_JOB_MAX_ID = 10_100;
}
diff --git a/java/com/android/dialer/contactsfragment/ContactsFragment.java b/java/com/android/dialer/contactsfragment/ContactsFragment.java
index 18220601f..ea662fc89 100644
--- a/java/com/android/dialer/contactsfragment/ContactsFragment.java
+++ b/java/com/android/dialer/contactsfragment/ContactsFragment.java
@@ -29,6 +29,7 @@ import android.view.View;
import android.view.View.OnScrollChangeListener;
import android.view.ViewGroup;
import android.widget.TextView;
+import com.android.dialer.util.PermissionsUtil;
/** Fragment containing a list of all contacts. */
public class ContactsFragment extends Fragment
@@ -52,6 +53,11 @@ public class ContactsFragment extends Fragment
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(manager);
getLoaderManager().initLoader(0, null, this);
+
+ if (PermissionsUtil.hasContactsReadPermissions(getContext())) {
+ getLoaderManager().initLoader(0, null, this);
+ }
+
return view;
}
diff --git a/java/com/android/dialer/database/DialerDatabaseHelper.java b/java/com/android/dialer/database/DialerDatabaseHelper.java
index 234958b62..348814281 100644
--- a/java/com/android/dialer/database/DialerDatabaseHelper.java
+++ b/java/com/android/dialer/database/DialerDatabaseHelper.java
@@ -18,6 +18,7 @@ package com.android.dialer.database;
import android.content.ContentValues;
import android.content.Context;
+import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
@@ -63,8 +64,9 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 10;
public static final String DATABASE_NAME = "dialer.db";
- public static final Uri SMART_DIAL_UPDATED_URI =
- Uri.parse("content://com.android.dialer/smart_dial_updated");
+
+ public static final String ACTION_SMART_DIAL_UPDATED =
+ "com.android.dialer.database.ACTION_SMART_DIAL_UPDATED";
private static final String TAG = "DialerDatabaseHelper";
private static final boolean DEBUG = false;
/** Saves the last update time of smart dial databases to shared preferences. */
@@ -331,7 +333,7 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
/** Starts the database upgrade process in the background. */
public void startSmartDialUpdateThread() {
- if (PermissionsUtil.hasContactsPermissions(mContext)) {
+ if (PermissionsUtil.hasContactsReadPermissions(mContext)) {
new SmartDialUpdateAsyncTask().execute();
}
}
@@ -595,6 +597,8 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
* since last update.
*/
public void updateSmartDialDatabase() {
+ LogUtil.enterBlock("DialerDatabaseHelper.updateSmartDialDatabase");
+
final SQLiteDatabase db = getWritableDatabase();
synchronized (mLock) {
@@ -797,8 +801,12 @@ public class DialerDatabaseHelper extends SQLiteOpenHelper {
editor.putLong(LAST_UPDATED_MILLIS, currentMillis);
editor.apply();
+ LogUtil.i("DialerDatabaseHelper.updateSmartDialDatabase", "broadcasting smart dial update");
+
// Notify content observers that smart dial database has been updated.
- mContext.getContentResolver().notifyChange(SMART_DIAL_UPDATED_URI, null, false);
+ Intent intent = new Intent(ACTION_SMART_DIAL_UPDATED);
+ intent.setPackage(mContext.getPackageName());
+ mContext.sendBroadcast(intent);
}
}
diff --git a/java/com/android/dialer/enrichedcall/EnrichedCallManager.java b/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
index fa822a659..0d3ed9e43 100644
--- a/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
+++ b/java/com/android/dialer/enrichedcall/EnrichedCallManager.java
@@ -158,7 +158,7 @@ public interface EnrichedCallManager {
/**
* Callback fired when state changes. Listeners should call {@link #getSession(long)} or {@link
- * #getSession(String, String)} to retrieve the new state.
+ * #getSession(String, String, Filter)} to retrieve the new state.
*/
void onEnrichedCallStateChanged();
}
@@ -172,16 +172,25 @@ public interface EnrichedCallManager {
@MainThread
void registerStateChangedListener(@NonNull StateChangedListener listener);
- /** Returns the {@link Session} for the given unique call id, falling back to the number. */
+ /**
+ * Returns the {@link Session} for the given unique call id, falling back to the number. If a
+ * filter is provided, it will be applied to both the uniqueCalId and number lookups.
+ */
@MainThread
@Nullable
- Session getSession(@NonNull String uniqueCallId, @NonNull String number);
+ Session getSession(@NonNull String uniqueCallId, @NonNull String number, @Nullable Filter filter);
/** Returns the {@link Session} for the given sessionId, or {@code null} if no session exists. */
@MainThread
@Nullable
Session getSession(long sessionId);
+ @NonNull
+ Filter createIncomingCallComposerFilter();
+
+ @NonNull
+ Filter createOutgoingCallComposerFilter();
+
/**
* Starts an asynchronous process to get all historical data for the given number and set of
* {@link CallDetailsEntries}.
@@ -265,9 +274,13 @@ public interface EnrichedCallManager {
@MainThread
void unregisterVideoShareListener(@NonNull VideoShareListener listener);
- /** Called when an incoming video share invite is received. */
+ /**
+ * Called when an incoming video share invite is received.
+ *
+ * @return whether or not the invite was accepted by the manager (rejected when disabled)
+ */
@MainThread
- void onIncomingVideoShareInvite(long sessionId, @NonNull String number);
+ boolean onIncomingVideoShareInvite(long sessionId, @NonNull String number);
/**
* Starts a video share session with the given remote number.
@@ -303,4 +316,9 @@ public interface EnrichedCallManager {
*/
@MainThread
void endVideoShareSession(long sessionId);
+
+ /** Interface for filtering sessions (compatible with Predicate from Java 8) */
+ interface Filter {
+ boolean test(Session session);
+ }
}
diff --git a/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java b/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
index 1d008ca05..0540d912e 100644
--- a/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
+++ b/java/com/android/dialer/enrichedcall/stub/EnrichedCallManagerStub.java
@@ -74,7 +74,8 @@ public final class EnrichedCallManagerStub implements EnrichedCallManager {
@Nullable
@Override
- public Session getSession(@NonNull String uniqueCallId, @NonNull String number) {
+ public Session getSession(
+ @NonNull String uniqueCallId, @NonNull String number, @Nullable Filter filter) {
return null;
}
@@ -84,6 +85,18 @@ public final class EnrichedCallManagerStub implements EnrichedCallManager {
return null;
}
+ @NonNull
+ @Override
+ public Filter createIncomingCallComposerFilter() {
+ return session -> false;
+ }
+
+ @NonNull
+ @Override
+ public Filter createOutgoingCallComposerFilter() {
+ return session -> false;
+ }
+
@Nullable
@Override
@MainThread
@@ -122,7 +135,9 @@ public final class EnrichedCallManagerStub implements EnrichedCallManager {
public void unregisterVideoShareListener(@NonNull VideoShareListener listener) {}
@Override
- public void onIncomingVideoShareInvite(long sessionId, @NonNull String number) {}
+ public boolean onIncomingVideoShareInvite(long sessionId, @NonNull String number) {
+ return false;
+ }
@Override
public long startVideoShareSession(String number) {
diff --git a/java/com/android/dialer/location/AndroidManifest.xml b/java/com/android/dialer/location/AndroidManifest.xml
new file mode 100644
index 000000000..8f7448020
--- /dev/null
+++ b/java/com/android/dialer/location/AndroidManifest.xml
@@ -0,0 +1,22 @@
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.contacts.common">
+
+ <application>
+ <!-- Broadcast receiver that passively listens to location updates -->
+ <receiver android:name="com.android.dialer.location.CountryDetector$LocationChangedReceiver"/>
+ </application>
+</manifest>
diff --git a/java/com/android/dialer/location/CountryDetector.java b/java/com/android/dialer/location/CountryDetector.java
new file mode 100644
index 000000000..fd93b6ae9
--- /dev/null
+++ b/java/com/android/dialer/location/CountryDetector.java
@@ -0,0 +1,262 @@
+/*
+ * 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.location;
+
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.location.Address;
+import android.location.Geocoder;
+import android.location.Location;
+import android.location.LocationManager;
+import android.preference.PreferenceManager;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.common.concurrent.DialerExecutor.Worker;
+import com.android.dialer.util.PermissionsUtil;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * This class is used to detect the country where the user is. It is a simplified version of the
+ * country detector service in the framework. The sources of country location are queried in the
+ * following order of reliability:
+ *
+ * <ul>
+ * <li>Mobile network
+ * <li>Location manager
+ * <li>SIM's country
+ * <li>User's default locale
+ * </ul>
+ *
+ * As far as possible this class tries to replicate the behavior of the system's country detector
+ * service: 1) Order in priority of sources of country location 2) Mobile network information
+ * provided by CDMA phones is ignored 3) Location information is updated every 12 hours (instead of
+ * 24 hours in the system) 4) Location updates only uses the {@link
+ * LocationManager#PASSIVE_PROVIDER} to avoid active use of the GPS 5) If a location is successfully
+ * obtained and geocoded, we never fall back to use of the SIM's country (for the system, the
+ * fallback never happens without a reboot) 6) Location is not used if the device does not implement
+ * a {@link android.location.Geocoder}
+ */
+public class CountryDetector {
+ private static final String KEY_PREFERENCE_TIME_UPDATED = "preference_time_updated";
+ static final String KEY_PREFERENCE_CURRENT_COUNTRY = "preference_current_country";
+ // Wait 12 hours between updates
+ private static final long TIME_BETWEEN_UPDATES_MS = 1000L * 60 * 60 * 12;
+ // Minimum distance before an update is triggered, in meters. We don't need this to be too
+ // exact because all we care about is what country the user is in.
+ private static final long DISTANCE_BETWEEN_UPDATES_METERS = 5000;
+ // Used as a default country code when all the sources of country data have failed in the
+ // exceedingly rare event that the device does not have a default locale set for some reason.
+ private static final String DEFAULT_COUNTRY_ISO = "US";
+
+ @VisibleForTesting static CountryDetector sInstance;
+
+ private final TelephonyManager telephonyManager;
+ private final LocaleProvider localeProvider;
+ private final Geocoder geocoder;
+ private final Context appContext;
+
+ @VisibleForTesting
+ CountryDetector(
+ Context appContext,
+ TelephonyManager telephonyManager,
+ LocationManager locationManager,
+ LocaleProvider localeProvider,
+ Geocoder geocoder) {
+ this.telephonyManager = telephonyManager;
+ this.localeProvider = localeProvider;
+ this.appContext = appContext;
+ this.geocoder = geocoder;
+
+ // If the device does not implement Geocoder there is no point trying to get location updates
+ // because we cannot retrieve the country based on the location anyway.
+ if (Geocoder.isPresent()) {
+ registerForLocationUpdates(appContext, locationManager);
+ }
+ }
+
+ private static void registerForLocationUpdates(Context context, LocationManager locationManager) {
+ if (!PermissionsUtil.hasLocationPermissions(context)) {
+ LogUtil.w(
+ "CountryDetector.registerForLocationUpdates",
+ "no location permissions, not registering for location updates");
+ return;
+ }
+
+ LogUtil.i("CountryDetector.registerForLocationUpdates", "registering for location updates");
+
+ final Intent activeIntent = new Intent(context, LocationChangedReceiver.class);
+ final PendingIntent pendingIntent =
+ PendingIntent.getBroadcast(context, 0, activeIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+
+ locationManager.requestLocationUpdates(
+ LocationManager.PASSIVE_PROVIDER,
+ TIME_BETWEEN_UPDATES_MS,
+ DISTANCE_BETWEEN_UPDATES_METERS,
+ pendingIntent);
+ }
+
+ /** @return the single instance of the {@link CountryDetector} */
+ public static synchronized CountryDetector getInstance(Context context) {
+ if (sInstance == null) {
+ Context appContext = context.getApplicationContext();
+ sInstance =
+ new CountryDetector(
+ appContext,
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE),
+ (LocationManager) context.getSystemService(Context.LOCATION_SERVICE),
+ Locale::getDefault,
+ new Geocoder(appContext));
+ }
+ return sInstance;
+ }
+
+ public String getCurrentCountryIso() {
+ String result = null;
+ if (isNetworkCountryCodeAvailable()) {
+ result = getNetworkBasedCountryIso();
+ }
+ if (TextUtils.isEmpty(result)) {
+ result = getLocationBasedCountryIso();
+ }
+ if (TextUtils.isEmpty(result)) {
+ result = getSimBasedCountryIso();
+ }
+ if (TextUtils.isEmpty(result)) {
+ result = getLocaleBasedCountryIso();
+ }
+ if (TextUtils.isEmpty(result)) {
+ result = DEFAULT_COUNTRY_ISO;
+ }
+ return result.toUpperCase(Locale.US);
+ }
+
+ /** @return the country code of the current telephony network the user is connected to. */
+ private String getNetworkBasedCountryIso() {
+ return telephonyManager.getNetworkCountryIso();
+ }
+
+ /** @return the geocoded country code detected by the {@link LocationManager}. */
+ private String getLocationBasedCountryIso() {
+ if (!Geocoder.isPresent() || !PermissionsUtil.hasLocationPermissions(appContext)) {
+ return null;
+ }
+ return PreferenceManager.getDefaultSharedPreferences(appContext)
+ .getString(KEY_PREFERENCE_CURRENT_COUNTRY, null);
+ }
+
+ /** @return the country code of the SIM card currently inserted in the device. */
+ private String getSimBasedCountryIso() {
+ return telephonyManager.getSimCountryIso();
+ }
+
+ /** @return the country code of the user's currently selected locale. */
+ private String getLocaleBasedCountryIso() {
+ Locale defaultLocale = localeProvider.getLocale();
+ if (defaultLocale != null) {
+ return defaultLocale.getCountry();
+ }
+ return null;
+ }
+
+ private boolean isNetworkCountryCodeAvailable() {
+ // On CDMA TelephonyManager.getNetworkCountryIso() just returns the SIM's country code.
+ // In this case, we want to ignore the value returned and fallback to location instead.
+ return telephonyManager.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM;
+ }
+
+ /** Interface for accessing the current locale. */
+ interface LocaleProvider {
+ Locale getLocale();
+ }
+
+ public static class LocationChangedReceiver extends BroadcastReceiver {
+
+ @Override
+ public void onReceive(final Context context, Intent intent) {
+ if (!intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) {
+ return;
+ }
+
+ final Location location =
+ (Location) intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED);
+
+ // TODO: rething how we access the gecoder here, right now we have to set the static instance
+ // of CountryDetector to make this work for tests which is weird
+ // (see CountryDetectorTest.locationChangedBroadcast_GeocodesLocation)
+ processLocationUpdate(context, CountryDetector.getInstance(context).geocoder, location);
+ }
+ }
+
+ private static void processLocationUpdate(
+ Context appContext, Geocoder geocoder, Location location) {
+ DialerExecutors.createNonUiTaskBuilder(new GeocodeCountryWorker(geocoder))
+ .onSuccess(
+ country -> {
+ if (country == null) {
+ return;
+ }
+
+ PreferenceManager.getDefaultSharedPreferences(appContext)
+ .edit()
+ .putLong(CountryDetector.KEY_PREFERENCE_TIME_UPDATED, System.currentTimeMillis())
+ .putString(CountryDetector.KEY_PREFERENCE_CURRENT_COUNTRY, country)
+ .apply();
+ })
+ .onFailure(
+ throwable ->
+ LogUtil.w(
+ "CountryDetector.processLocationUpdate",
+ "exception occurred when getting geocoded country from location",
+ throwable))
+ .build()
+ .executeParallel(location);
+ }
+
+ /** Worker that given a {@link Location} returns an ISO 3166-1 two letter country code. */
+ private static class GeocodeCountryWorker implements Worker<Location, String> {
+ @NonNull private final Geocoder geocoder;
+
+ GeocodeCountryWorker(@NonNull Geocoder geocoder) {
+ this.geocoder = Assert.isNotNull(geocoder);
+ }
+
+ /** @return the ISO 3166-1 two letter country code if geocoded, else null */
+ @Nullable
+ @Override
+ public String doInBackground(@Nullable Location location) throws Throwable {
+ if (location == null) {
+ return null;
+ }
+
+ List<Address> addresses =
+ geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
+ if (addresses != null && !addresses.isEmpty()) {
+ return addresses.get(0).getCountryCode();
+ }
+ return null;
+ }
+ }
+}
diff --git a/java/com/android/dialer/location/GeoUtil.java b/java/com/android/dialer/location/GeoUtil.java
new file mode 100644
index 000000000..1be40544d
--- /dev/null
+++ b/java/com/android/dialer/location/GeoUtil.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.dialer.location;
+
+import android.content.Context;
+import com.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+import com.google.i18n.phonenumbers.Phonenumber;
+import com.google.i18n.phonenumbers.geocoding.PhoneNumberOfflineGeocoder;
+import java.util.Locale;
+
+/** Static methods related to Geo. */
+public class GeoUtil {
+
+ /** @return the ISO 3166-1 two letters country code of the country the user is in. */
+ public static String getCurrentCountryIso(Context context) {
+ // The {@link CountryDetector} should never return null so this is safe to return as-is.
+ return CountryDetector.getInstance(context).getCurrentCountryIso();
+ }
+
+ public static String getGeocodedLocationFor(Context context, String phoneNumber) {
+ final PhoneNumberOfflineGeocoder geocoder = PhoneNumberOfflineGeocoder.getInstance();
+ final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
+ try {
+ final Phonenumber.PhoneNumber structuredPhoneNumber =
+ phoneNumberUtil.parse(phoneNumber, getCurrentCountryIso(context));
+ final Locale locale = context.getResources().getConfiguration().locale;
+ return geocoder.getDescriptionForNumber(structuredPhoneNumber, locale);
+ } catch (NumberParseException e) {
+ return null;
+ }
+ }
+}
diff --git a/java/com/android/dialer/logging/contact_lookup_result.proto b/java/com/android/dialer/logging/contact_lookup_result.proto
index c9624aff1..835d7d7dc 100644
--- a/java/com/android/dialer/logging/contact_lookup_result.proto
+++ b/java/com/android/dialer/logging/contact_lookup_result.proto
@@ -5,7 +5,6 @@ option java_package = "com.android.dialer.logging";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
-
message ContactLookupResult {
// The different results of a contact lookup done using a phone number.
enum Type {
diff --git a/java/com/android/dialer/logging/contact_source.proto b/java/com/android/dialer/logging/contact_source.proto
index ffd32de0e..470cf8bd7 100644
--- a/java/com/android/dialer/logging/contact_source.proto
+++ b/java/com/android/dialer/logging/contact_source.proto
@@ -5,7 +5,6 @@ option java_package = "com.android.dialer.logging";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
-
message ContactSource {
// Applies only to reports made from call history. If we have contact
// information for the phone number, this field indicates its source.
diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index e3369d349..541614623 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -5,12 +5,11 @@ option java_package = "com.android.dialer.logging";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
-
message DialerImpression {
// Event enums to be used for Impression Logging in Dialer.
// It's perfectly acceptable for this enum to be large
// Values should be from 1000 to 100000.
- // Next Tag:1190
+ // Next Tag:1191
enum Type {
UNKNOWN_AOSP_EVENT_TYPE = 1000;
@@ -361,11 +360,16 @@ message DialerImpression {
EMERGENCY_GOT_MAP = 1172;
EMERGENCY_LAUNCHED_MAP = 1173;
- VIDEO_CALL_UPGRADE_REQUESTED = 1174;
- VIDEO_CALL_REQUEST_ACCEPTED = 1175;
- VIDEO_CALL_REQUEST_ACCEPTED_AS_AUDIO = 1176;
- VIDEO_CALL_REQUEST_DECLINED = 1177;
- VIDEO_CALL_REQUEST_RECEIVED = 1178;
+ VIDEO_CALL_UPGRADE_REQUESTED = 1174
+ ;
+ VIDEO_CALL_REQUEST_ACCEPTED = 1175
+ ;
+ VIDEO_CALL_REQUEST_ACCEPTED_AS_AUDIO = 1176
+ ;
+ VIDEO_CALL_REQUEST_DECLINED = 1177
+ ;
+ VIDEO_CALL_REQUEST_RECEIVED = 1178
+ ;
RCS_VIDEO_SHARE_UPGRADE_REQUESTED = 1179;
RCS_VIDEO_SHARE_REQUEST_ACCEPTED = 1180;
@@ -380,5 +384,7 @@ message DialerImpression {
VVM_STATUS_CHECK_READY = 1188;
VVM_STATUS_CHECK_REACTIVATION = 1189;
+
+ VVM_ARCHIVE_AUTO_DELETE_FAILED_DUE_TO_FAILED_QUOTA_CHECK = 1190;
}
}
diff --git a/java/com/android/dialer/logging/interaction_event.proto b/java/com/android/dialer/logging/interaction_event.proto
index 1075b1ff1..b9af1b763 100644
--- a/java/com/android/dialer/logging/interaction_event.proto
+++ b/java/com/android/dialer/logging/interaction_event.proto
@@ -5,7 +5,6 @@ option java_package = "com.android.dialer.logging";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
-
message InteractionEvent {
enum Type {
diff --git a/java/com/android/dialer/logging/reporting_location.proto b/java/com/android/dialer/logging/reporting_location.proto
index d436564df..72869489c 100644
--- a/java/com/android/dialer/logging/reporting_location.proto
+++ b/java/com/android/dialer/logging/reporting_location.proto
@@ -5,7 +5,6 @@ option java_package = "com.android.dialer.logging";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
-
message ReportingLocation {
// Spam reporting location
enum Type {
diff --git a/java/com/android/dialer/logging/screen_event.proto b/java/com/android/dialer/logging/screen_event.proto
index ca624774d..2430bfd5a 100644
--- a/java/com/android/dialer/logging/screen_event.proto
+++ b/java/com/android/dialer/logging/screen_event.proto
@@ -5,7 +5,6 @@ option java_package = "com.android.dialer.logging";
option java_multiple_files = true;
option optimize_for = LITE_RUNTIME;
-
message ScreenEvent {
enum Type {
diff --git a/java/com/android/dialer/notification/AndroidManifest.xml b/java/com/android/dialer/notification/AndroidManifest.xml
index c5484f263..741f481ca 100644
--- a/java/com/android/dialer/notification/AndroidManifest.xml
+++ b/java/com/android/dialer/notification/AndroidManifest.xml
@@ -15,7 +15,17 @@
-->
<manifest
- package="com.android.dialer.notification"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <uses-sdk android:minSdkVersion="23" />
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.dialer.notification">
+
+ <uses-sdk android:minSdkVersion="23"/>
+ <application>
+ <receiver android:name=".PackageUpdatedReceiver"
+ android:directBootAware="true">
+ <intent-filter>
+ <action android:name="android.intent.action.MY_PACKAGE_REPLACED"/>
+ <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED"/>
+ </intent-filter>
+ </receiver>
+ </application>
</manifest>
diff --git a/java/com/android/dialer/notification/NotificationChannelManager.java b/java/com/android/dialer/notification/NotificationChannelManager.java
index db7ded781..599e5ca59 100644
--- a/java/com/android/dialer/notification/NotificationChannelManager.java
+++ b/java/com/android/dialer/notification/NotificationChannelManager.java
@@ -16,15 +16,21 @@
package com.android.dialer.notification;
+import android.annotation.TargetApi;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationChannelGroup;
import android.app.NotificationManager;
import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
import android.media.AudioAttributes;
import android.net.Uri;
+import android.os.Build.VERSION_CODES;
+import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.annotation.RequiresApi;
import android.support.annotation.StringDef;
import android.support.v4.os.BuildCompat;
import android.telecom.PhoneAccount;
@@ -34,12 +40,18 @@ import android.telephony.TelephonyManager;
import com.android.contacts.common.compat.TelephonyManagerCompat;
import com.android.dialer.buildtype.BuildType;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.common.concurrent.DialerExecutors;
+import com.android.dialer.telecom.TelecomUtil;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.List;
+import java.util.Objects;
/** Contains info on how to create {@link NotificationChannel NotificationChannels} */
public class NotificationChannelManager {
+ private static final String PREFS_FILENAME = "NotificationChannelManager";
+ private static final String PREF_NEED_FIRST_INIT = "needFirstInit";
private static NotificationChannelManager instance;
public static NotificationChannelManager getInstance() {
@@ -53,9 +65,10 @@ public class NotificationChannelManager {
* Set the channel of notification appropriately. Will create the channel if it does not already
* exist. Safe to call pre-O (will no-op).
*
- * <p>phoneAccount should only be null if channelName is {@link Channel#MISC} or {@link
+ * <p>phoneAccount should only be null if channelName is {@link Channel#DEFAULT} or {@link
* Channel#MISSED_CALL} since these do not have account-specific settings.
*/
+ @TargetApi(26)
public static void applyChannel(
@NonNull Notification.Builder notification,
@NonNull Context context,
@@ -89,7 +102,7 @@ public class NotificationChannelManager {
private static boolean channelAllowsNullPhoneAccountHandle(@Channel String channelName) {
switch (channelName) {
- case Channel.MISC:
+ case Channel.DEFAULT:
case Channel.MISSED_CALL:
return true;
default:
@@ -102,22 +115,122 @@ public class NotificationChannelManager {
@StringDef({
Channel.INCOMING_CALL,
Channel.ONGOING_CALL,
+ Channel.ONGOING_CALL_OLD,
Channel.MISSED_CALL,
Channel.VOICEMAIL,
Channel.EXTERNAL_CALL,
- Channel.MISC
+ Channel.DEFAULT
})
public @interface Channel {
+ @Deprecated String ONGOING_CALL_OLD = "ongoingCall";
String INCOMING_CALL = "incomingCall";
- String ONGOING_CALL = "ongoingCall";
+ String ONGOING_CALL = "ongoingCall2";
String MISSED_CALL = "missedCall";
String VOICEMAIL = "voicemail";
String EXTERNAL_CALL = "externalCall";
- String MISC = "miscellaneous";
+ String DEFAULT = "default";
}
+ @Channel
+ private static final String[] prepopulatedAccountChannels =
+ new String[] {Channel.INCOMING_CALL, Channel.ONGOING_CALL, Channel.VOICEMAIL};
+
+ @Channel
+ private static final String[] prepopulatedGlobalChannels =
+ new String[] {Channel.MISSED_CALL, Channel.DEFAULT};
+
private NotificationChannelManager() {}
+ public void firstInitIfNeeded(@NonNull Context context) {
+ if (BuildCompat.isAtLeastO()) {
+ DialerExecutors.createNonUiTaskBuilder(this::firstInitIfNeededSync)
+ .build()
+ .executeSerial(context);
+ }
+ }
+
+ private boolean firstInitIfNeededSync(@NonNull Context context) {
+ if (needsFirstInit(context)) {
+ initChannels(context);
+ return true;
+ }
+ return false;
+ }
+
+ public boolean needsFirstInit(@NonNull Context context) {
+ return (BuildCompat.isAtLeastO()
+ && getSharedPreferences(context).getBoolean(PREF_NEED_FIRST_INIT, true));
+ }
+
+ @RequiresApi(VERSION_CODES.N)
+ private SharedPreferences getSharedPreferences(@NonNull Context context) {
+ // Use device protected storage since in some cases this will need to be accessed while device
+ // is locked
+ context = context.createDeviceProtectedStorageContext();
+ return context.getSharedPreferences(PREFS_FILENAME, Context.MODE_PRIVATE);
+ }
+
+ @RequiresApi(26)
+ public Intent getSettingsIntentForChannel(
+ @NonNull Context context, @Channel String channelName, PhoneAccountHandle accountHandle) {
+ checkNullity(channelName, accountHandle);
+ Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS);
+ intent.putExtra(
+ Settings.EXTRA_CHANNEL_ID, getChannel(context, channelName, accountHandle).getId());
+ intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
+ return intent;
+ }
+
+ @TargetApi(26)
+ @SuppressWarnings("AndroidApiChecker")
+ public void initChannels(@NonNull Context context) {
+ if (!BuildCompat.isAtLeastO()) {
+ return;
+ }
+ LogUtil.enterBlock("NotificationChannelManager.initChannels");
+ List<PhoneAccountHandle> phoneAccounts = TelecomUtil.getCallCapablePhoneAccounts(context);
+
+ // Remove notification channels for PhoneAccounts that don't exist anymore
+ NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
+ List<NotificationChannelGroup> notificationChannelGroups =
+ notificationManager.getNotificationChannelGroups();
+ notificationChannelGroups
+ .stream()
+ .filter(group -> !idExists(group.getId(), phoneAccounts))
+ .forEach(group -> deleteGroup(notificationManager, group));
+
+ for (PhoneAccountHandle phoneAccountHandle : phoneAccounts) {
+ for (@Channel String channel : prepopulatedAccountChannels) {
+ getChannel(context, channel, phoneAccountHandle);
+ }
+ }
+
+ for (@Channel String channel : prepopulatedGlobalChannels) {
+ getChannel(context, channel, null);
+ }
+ getSharedPreferences(context).edit().putBoolean(PREF_NEED_FIRST_INIT, false).apply();
+ }
+
+ @TargetApi(26)
+ private void deleteGroup(
+ @NonNull NotificationManager notificationManager, @NonNull NotificationChannelGroup group) {
+ for (NotificationChannel channel : group.getChannels()) {
+ notificationManager.deleteNotificationChannel(channel.getId());
+ }
+ notificationManager.deleteNotificationChannelGroup(group.getId());
+ }
+
+ private boolean idExists(String id, List<PhoneAccountHandle> phoneAccountHandles) {
+ for (PhoneAccountHandle handle : phoneAccountHandles) {
+ if (Objects.equals(handle.getId(), id)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @NonNull
+ @RequiresApi(26)
private NotificationChannel getChannel(
@NonNull Context context,
@Channel String channelName,
@@ -139,6 +252,7 @@ public class NotificationChannelManager {
}
}
+ @RequiresApi(26)
private NotificationChannel createChannel(
Context context,
@Channel String channelName,
@@ -191,6 +305,7 @@ public class NotificationChannelManager {
lights = false;
vibration = false;
sound = silentRingtone;
+ deleteOldOngoingCallChannelIfNeeded(context, phoneAccountHandle);
break;
case Channel.VOICEMAIL:
name = context.getText(R.string.notification_channel_voicemail);
@@ -210,7 +325,7 @@ public class NotificationChannelManager {
vibration = true;
sound = null;
break;
- case Channel.MISC:
+ case Channel.DEFAULT:
name = context.getText(R.string.notification_channel_misc);
importance = NotificationManager.IMPORTANCE_DEFAULT;
canShowBadge = false;
@@ -225,8 +340,10 @@ public class NotificationChannelManager {
NotificationChannel channel = new NotificationChannel(channelId, name, importance);
channel.setShowBadge(canShowBadge);
if (sound != null) {
+ // silentRingtone acts as a sentinel value to indicate that setSound should still be called,
+ // but with a null value to indicate no sound.
channel.setSound(
- sound,
+ sound.equals(silentRingtone) ? null : sound,
new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION).build());
}
channel.enableLights(lights);
@@ -235,6 +352,20 @@ public class NotificationChannelManager {
return channel;
}
+ @RequiresApi(26)
+ private void deleteOldOngoingCallChannelIfNeeded(
+ @NonNull Context context, PhoneAccountHandle phoneAccountHandle) {
+ String channelId = channelNameToId(Channel.ONGOING_CALL_OLD, phoneAccountHandle);
+ NotificationManager notificationManager = getNotificationManager(context);
+ NotificationChannel channel = notificationManager.getNotificationChannel(channelId);
+ if (channel != null) {
+ LogUtil.i(
+ "NotificationManager.deleteOldOngoingCallChannelIfNeeded",
+ "Old ongoing channel found. Deleting to create new channel");
+ notificationManager.deleteNotificationChannel(channel.getId());
+ }
+ }
+
private static NotificationManager getNotificationManager(@NonNull Context context) {
return context.getSystemService(NotificationManager.class);
}
diff --git a/java/com/android/dialer/notification/PackageUpdatedReceiver.java b/java/com/android/dialer/notification/PackageUpdatedReceiver.java
new file mode 100644
index 000000000..feed40263
--- /dev/null
+++ b/java/com/android/dialer/notification/PackageUpdatedReceiver.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.notification;
+
+import android.annotation.TargetApi;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.support.v4.os.BuildCompat;
+
+/** Inits the notification channels when Dialer or OS is updated */
+public class PackageUpdatedReceiver extends BroadcastReceiver {
+
+ @Override
+ @TargetApi(26)
+ public void onReceive(Context context, Intent intent) {
+ if (!BuildCompat.isAtLeastO()) {
+ return;
+ }
+ context = context.createDeviceProtectedStorageContext();
+ NotificationChannelManager.getInstance().initChannels(context);
+ }
+}
diff --git a/java/com/android/dialer/notification/res/values-af/strings.xml b/java/com/android/dialer/notification/res/values-af/strings.xml
index 6dae962af..cd6ae6c30 100644
--- a/java/com/android/dialer/notification/res/values-af/strings.xml
+++ b/java/com/android/dialer/notification/res/values-af/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Gemiste oproepe"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Stemboodskappe"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Ekterne oproepe"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Diverse"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-am/strings.xml b/java/com/android/dialer/notification/res/values-am/strings.xml
index 7b7faf198..12b6fb5c6 100644
--- a/java/com/android/dialer/notification/res/values-am/strings.xml
+++ b/java/com/android/dialer/notification/res/values-am/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"ያመለጡ ጥሪዎች"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"የድምፅ መልዕክቶች"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"ውጫዊ ጥሪዎች"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"የተለያዩ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ar/strings.xml b/java/com/android/dialer/notification/res/values-ar/strings.xml
index 3fe96fe22..3fba5253d 100644
--- a/java/com/android/dialer/notification/res/values-ar/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ar/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"المكالمات الفائتة"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"رسائل البريد الصوتي"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"المكالمات الخارجية"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"متنوعة"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-az/strings.xml b/java/com/android/dialer/notification/res/values-az/strings.xml
index 28894de48..c485ce239 100644
--- a/java/com/android/dialer/notification/res/values-az/strings.xml
+++ b/java/com/android/dialer/notification/res/values-az/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Buraxılmış zənglər"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Səsli məktublar"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"External calls"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Müxtəlif"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/notification/res/values-b+sr+Latn/strings.xml
index c5fd5e7fa..1b076ce6a 100644
--- a/java/com/android/dialer/notification/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/notification/res/values-b+sr+Latn/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Propušteni pozivi"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Govorne poruke"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Spoljni pozivi"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Razno"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-be/strings.xml b/java/com/android/dialer/notification/res/values-be/strings.xml
index ef7b164e1..33cf6974e 100644
--- a/java/com/android/dialer/notification/res/values-be/strings.xml
+++ b/java/com/android/dialer/notification/res/values-be/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Прапушчаныя выклікі"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Галасавая пошта"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Знешнія выклікі"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Рознае"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-bg/strings.xml b/java/com/android/dialer/notification/res/values-bg/strings.xml
index eab400960..1deb71ef4 100644
--- a/java/com/android/dialer/notification/res/values-bg/strings.xml
+++ b/java/com/android/dialer/notification/res/values-bg/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Пропуснати обаждания"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Гласови съобщения"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Външни обаждания"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Разни"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-bn/strings.xml b/java/com/android/dialer/notification/res/values-bn/strings.xml
index a65aecb04..4bf08c52e 100644
--- a/java/com/android/dialer/notification/res/values-bn/strings.xml
+++ b/java/com/android/dialer/notification/res/values-bn/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"মিস করা কল"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"ভয়েসমেল"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"বাহ্যিক কল"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"বিবিধ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-bs/strings.xml b/java/com/android/dialer/notification/res/values-bs/strings.xml
index 320513f95..8c98ee0d0 100644
--- a/java/com/android/dialer/notification/res/values-bs/strings.xml
+++ b/java/com/android/dialer/notification/res/values-bs/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Propušteni pozivi"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Poruke govorne pošte"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Vanjski pozivi"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Razno"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ca/strings.xml b/java/com/android/dialer/notification/res/values-ca/strings.xml
index 3660d3d59..470cf52c5 100644
--- a/java/com/android/dialer/notification/res/values-ca/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ca/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Trucades perdudes"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Missatges de veu"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Trucades externes"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Altres"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-cs/strings.xml b/java/com/android/dialer/notification/res/values-cs/strings.xml
index 5907df122..3fa6b9840 100644
--- a/java/com/android/dialer/notification/res/values-cs/strings.xml
+++ b/java/com/android/dialer/notification/res/values-cs/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Zmeškané hovory"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Hlasové zprávy"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Externí hovory"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Různé"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-da/strings.xml b/java/com/android/dialer/notification/res/values-da/strings.xml
index c56b5ec9d..c567a77a0 100644
--- a/java/com/android/dialer/notification/res/values-da/strings.xml
+++ b/java/com/android/dialer/notification/res/values-da/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Ubesvarede opkald"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Talebeskeder"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Eksterne opkald"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Diverse"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-de/strings.xml b/java/com/android/dialer/notification/res/values-de/strings.xml
index 18a41291f..537217e20 100644
--- a/java/com/android/dialer/notification/res/values-de/strings.xml
+++ b/java/com/android/dialer/notification/res/values-de/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Entgangene Anrufe"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Mailboxnachrichten"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Externe Anrufe"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Sonstiges"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-el/strings.xml b/java/com/android/dialer/notification/res/values-el/strings.xml
index c64bee909..3f58afd42 100644
--- a/java/com/android/dialer/notification/res/values-el/strings.xml
+++ b/java/com/android/dialer/notification/res/values-el/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Αναπάντητες κλήσεις"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Μηνύματα αυτόματου τηλεφωνητή"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Εξωτερικές κλήσεις"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Διάφορα"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-en-rAU/strings.xml b/java/com/android/dialer/notification/res/values-en-rAU/strings.xml
index 26308a42d..3d04383b7 100644
--- a/java/com/android/dialer/notification/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/notification/res/values-en-rAU/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Missed calls"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Voicemail"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"External calls"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Miscellaneous"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-en-rGB/strings.xml b/java/com/android/dialer/notification/res/values-en-rGB/strings.xml
index 26308a42d..3d04383b7 100644
--- a/java/com/android/dialer/notification/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/notification/res/values-en-rGB/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Missed calls"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Voicemail"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"External calls"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Miscellaneous"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-en-rIN/strings.xml b/java/com/android/dialer/notification/res/values-en-rIN/strings.xml
index 26308a42d..3d04383b7 100644
--- a/java/com/android/dialer/notification/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/notification/res/values-en-rIN/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Missed calls"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Voicemail"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"External calls"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Miscellaneous"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-es-rUS/strings.xml b/java/com/android/dialer/notification/res/values-es-rUS/strings.xml
index 5fbbf2e6e..c4656a33f 100644
--- a/java/com/android/dialer/notification/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/notification/res/values-es-rUS/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Llamadas perdidas"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Mensajes de voz"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Llamadas externas"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Varios"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-es/strings.xml b/java/com/android/dialer/notification/res/values-es/strings.xml
index 5fbbf2e6e..c4656a33f 100644
--- a/java/com/android/dialer/notification/res/values-es/strings.xml
+++ b/java/com/android/dialer/notification/res/values-es/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Llamadas perdidas"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Mensajes de voz"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Llamadas externas"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Varios"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-et/strings.xml b/java/com/android/dialer/notification/res/values-et/strings.xml
index 7f66e1d05..095af00bd 100644
--- a/java/com/android/dialer/notification/res/values-et/strings.xml
+++ b/java/com/android/dialer/notification/res/values-et/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Vastamata kõned"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Kõnepostisõnumid"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Välised kõned"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Muu"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-eu/strings.xml b/java/com/android/dialer/notification/res/values-eu/strings.xml
index 6a78ca79e..5a4b72627 100644
--- a/java/com/android/dialer/notification/res/values-eu/strings.xml
+++ b/java/com/android/dialer/notification/res/values-eu/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Dei galduak"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Ahots-mezuak"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Kanpoko deiak"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Askotarikoak"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-fa/strings.xml b/java/com/android/dialer/notification/res/values-fa/strings.xml
index d0a7d9f09..daddf7a19 100644
--- a/java/com/android/dialer/notification/res/values-fa/strings.xml
+++ b/java/com/android/dialer/notification/res/values-fa/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"تماس‌های بی‌پاسخ"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"پست‌های صوتی"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"تماس‌های خارجی"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"موارد دیگر"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-fi/strings.xml b/java/com/android/dialer/notification/res/values-fi/strings.xml
index 11030b48b..68cdbaf3d 100644
--- a/java/com/android/dialer/notification/res/values-fi/strings.xml
+++ b/java/com/android/dialer/notification/res/values-fi/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Vastaamattomat puhelut"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Vastaajaviestit"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Ulkopuoliset puhelut"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Muut"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-fr-rCA/strings.xml b/java/com/android/dialer/notification/res/values-fr-rCA/strings.xml
index 5792a7257..a738e1787 100644
--- a/java/com/android/dialer/notification/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/notification/res/values-fr-rCA/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Appels manqués"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Messages vocaux"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Appels externes"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Divers"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-fr/strings.xml b/java/com/android/dialer/notification/res/values-fr/strings.xml
index 93266bd20..a738e1787 100644
--- a/java/com/android/dialer/notification/res/values-fr/strings.xml
+++ b/java/com/android/dialer/notification/res/values-fr/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Appels manqués"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Messages vocaux"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Appels externes"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Autres utilisations"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-gl/strings.xml b/java/com/android/dialer/notification/res/values-gl/strings.xml
index f12730093..5c8f97598 100644
--- a/java/com/android/dialer/notification/res/values-gl/strings.xml
+++ b/java/com/android/dialer/notification/res/values-gl/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Chamadas perdidas"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Correos de voz"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Chamadas externas"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Varios"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-gu/strings.xml b/java/com/android/dialer/notification/res/values-gu/strings.xml
index 308cc47a9..107f87ca6 100644
--- a/java/com/android/dialer/notification/res/values-gu/strings.xml
+++ b/java/com/android/dialer/notification/res/values-gu/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"છૂટેલા કૉલ"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"વૉઇસમેઇલ"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"બાહ્ય કૉલ"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"વિવિધ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-hi/strings.xml b/java/com/android/dialer/notification/res/values-hi/strings.xml
index 708b2aaf5..6750daed5 100644
--- a/java/com/android/dialer/notification/res/values-hi/strings.xml
+++ b/java/com/android/dialer/notification/res/values-hi/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"छूटे कॉल"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"वॉइसमेल"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"बाहरी कॉल"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"विविध"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-hr/strings.xml b/java/com/android/dialer/notification/res/values-hr/strings.xml
index 5e5f40cbe..bae750543 100644
--- a/java/com/android/dialer/notification/res/values-hr/strings.xml
+++ b/java/com/android/dialer/notification/res/values-hr/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Propušteni pozivi"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Poruke govorne pošte"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Vanjski pozivi"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Razno"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-hu/strings.xml b/java/com/android/dialer/notification/res/values-hu/strings.xml
index 586dac2e5..587a13581 100644
--- a/java/com/android/dialer/notification/res/values-hu/strings.xml
+++ b/java/com/android/dialer/notification/res/values-hu/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Nem fogadott hívások"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Hangüzenetek"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Külső hívások"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Egyéb"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-hy/strings.xml b/java/com/android/dialer/notification/res/values-hy/strings.xml
index ef375aeff..6ced32e41 100644
--- a/java/com/android/dialer/notification/res/values-hy/strings.xml
+++ b/java/com/android/dialer/notification/res/values-hy/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Բաց թողնված զանգեր"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Ձայնային փոստ"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Արտաքին զանգեր"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Այլ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-in/strings.xml b/java/com/android/dialer/notification/res/values-in/strings.xml
index 8892e1edd..c18d9767f 100644
--- a/java/com/android/dialer/notification/res/values-in/strings.xml
+++ b/java/com/android/dialer/notification/res/values-in/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Panggilan tak terjawab"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Pesan suara"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Panggilan eksternal"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Lain-Lain"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-is/strings.xml b/java/com/android/dialer/notification/res/values-is/strings.xml
index 8ebfa211e..45044b620 100644
--- a/java/com/android/dialer/notification/res/values-is/strings.xml
+++ b/java/com/android/dialer/notification/res/values-is/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Ósvöruð símtöl"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Talhólfsskilaboð"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Utanaðkomandi símtöl"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Ýmislegt"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-it/strings.xml b/java/com/android/dialer/notification/res/values-it/strings.xml
index 7edd8bd81..02c9a8bb9 100644
--- a/java/com/android/dialer/notification/res/values-it/strings.xml
+++ b/java/com/android/dialer/notification/res/values-it/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Chiamate perse"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Messaggi vocali"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Chiamate esterne"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Varie"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-iw/strings.xml b/java/com/android/dialer/notification/res/values-iw/strings.xml
index 63ff51629..40165d606 100644
--- a/java/com/android/dialer/notification/res/values-iw/strings.xml
+++ b/java/com/android/dialer/notification/res/values-iw/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"שיחות שלא נענו"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"הודעות קוליות"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"שיחות חיצוניות"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"שונות"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ja/strings.xml b/java/com/android/dialer/notification/res/values-ja/strings.xml
index d0de0c35e..e87ef504d 100644
--- a/java/com/android/dialer/notification/res/values-ja/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ja/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"不在着信"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"ボイスメール"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"外部通話"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"その他"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ka/strings.xml b/java/com/android/dialer/notification/res/values-ka/strings.xml
index 469764715..9555cd7db 100644
--- a/java/com/android/dialer/notification/res/values-ka/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ka/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"გამოტოვებული ზარები"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"ხმოვანი ფოსტა"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"გარე ზარები"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"სხვადასხვა"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-kk/strings.xml b/java/com/android/dialer/notification/res/values-kk/strings.xml
index aa8c17c7f..6a4fcb5f3 100644
--- a/java/com/android/dialer/notification/res/values-kk/strings.xml
+++ b/java/com/android/dialer/notification/res/values-kk/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Қабылданбаған қоңыраулар"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Дауыстық хабарлар"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Сыртқы қоңыраулар"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Әр түрлі"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-km/strings.xml b/java/com/android/dialer/notification/res/values-km/strings.xml
index 741e5c749..1f5be0b2f 100644
--- a/java/com/android/dialer/notification/res/values-km/strings.xml
+++ b/java/com/android/dialer/notification/res/values-km/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"ការ​ហៅ​ដែល​មិន​បាន​ទទួល"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"សារ​ជា​សំឡេង"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"ការ​ហៅខាង​ក្រៅ"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"ផ្សេងៗ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-kn/strings.xml b/java/com/android/dialer/notification/res/values-kn/strings.xml
index a317fc30b..98284b1b3 100644
--- a/java/com/android/dialer/notification/res/values-kn/strings.xml
+++ b/java/com/android/dialer/notification/res/values-kn/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"ತಪ್ಪಿದ ಕರೆಗಳು"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"ಧ್ವನಿಮೇಲ್‌ಗಳು"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"ಹೊರಗಿನ ಕರೆಗಳು"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"ಇತರೆ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ko/strings.xml b/java/com/android/dialer/notification/res/values-ko/strings.xml
index b862d0b10..f8c6c60ac 100644
--- a/java/com/android/dialer/notification/res/values-ko/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ko/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"부재중 전화"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"음성사서함"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"외부 전화"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"기타"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ky/strings.xml b/java/com/android/dialer/notification/res/values-ky/strings.xml
index 26bc08f0d..e0c1ebcc1 100644
--- a/java/com/android/dialer/notification/res/values-ky/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ky/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Кабыл алынбаган чалуулар"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Үнкаттар"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Тышкы чалуулар"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Калган-каткандар"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-lo/strings.xml b/java/com/android/dialer/notification/res/values-lo/strings.xml
index a8207bc4a..3eea6876e 100644
--- a/java/com/android/dialer/notification/res/values-lo/strings.xml
+++ b/java/com/android/dialer/notification/res/values-lo/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"ສາຍບໍ່ໄດ້ຮັບ"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"ຂໍ້ຄວາມສຽງ"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"ສາຍພາຍນອກ"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"ອື່ນໆ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-lt/strings.xml b/java/com/android/dialer/notification/res/values-lt/strings.xml
index 3c017a252..75a9fae0d 100644
--- a/java/com/android/dialer/notification/res/values-lt/strings.xml
+++ b/java/com/android/dialer/notification/res/values-lt/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Praleisti skambučiai"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Balso pašto pranešimai"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Išoriniai skambučiai"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Įvairūs"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-lv/strings.xml b/java/com/android/dialer/notification/res/values-lv/strings.xml
index 124ee77ba..c6a8bdb4a 100644
--- a/java/com/android/dialer/notification/res/values-lv/strings.xml
+++ b/java/com/android/dialer/notification/res/values-lv/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Neatbildētie zvani"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Balss pasta ziņojumi"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Ārējie zvani"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Dažādi"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-mk/strings.xml b/java/com/android/dialer/notification/res/values-mk/strings.xml
index f3425b3e8..0d4c1fd7c 100644
--- a/java/com/android/dialer/notification/res/values-mk/strings.xml
+++ b/java/com/android/dialer/notification/res/values-mk/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Пропуштени повици"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Говорни пораки"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Надворешни повици"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Разно"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ml/strings.xml b/java/com/android/dialer/notification/res/values-ml/strings.xml
index bd09159b3..f6ddb6fbb 100644
--- a/java/com/android/dialer/notification/res/values-ml/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ml/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"മിസ്‌ഡ് കോളുകൾ"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"വോയ്‌സ്മെയിലുകൾ"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"എക്‌സ്റ്റേണൽ കോളുകൾ"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"പലവക"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-mn/strings.xml b/java/com/android/dialer/notification/res/values-mn/strings.xml
index 96fe48e05..62480f220 100644
--- a/java/com/android/dialer/notification/res/values-mn/strings.xml
+++ b/java/com/android/dialer/notification/res/values-mn/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Аваагүй дуудлага"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Дуут шуудан"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Гадаад дуудлага"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Бусад"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-mr/strings.xml b/java/com/android/dialer/notification/res/values-mr/strings.xml
index 8a276d4f5..bd231a5f7 100644
--- a/java/com/android/dialer/notification/res/values-mr/strings.xml
+++ b/java/com/android/dialer/notification/res/values-mr/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"सुटलेले कॉल"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"व्हॉइसमेल"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"बाह्य कॉल"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"संमिश्र"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ms/strings.xml b/java/com/android/dialer/notification/res/values-ms/strings.xml
index 0e6496e82..5630f8e0b 100644
--- a/java/com/android/dialer/notification/res/values-ms/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ms/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Panggilan terlepas"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Mel suara"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Panggilan luar"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Pelbagai"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-my/strings.xml b/java/com/android/dialer/notification/res/values-my/strings.xml
index 29b9baab4..3b6ecde23 100644
--- a/java/com/android/dialer/notification/res/values-my/strings.xml
+++ b/java/com/android/dialer/notification/res/values-my/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"လွဲသွားသော ခေါ်ဆိုမှုများ"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"အသံစာပို့စနစ်များ"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"ပြင်ပခေါ်ဆိုမှုများ"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"အထွေထွေ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-nb/strings.xml b/java/com/android/dialer/notification/res/values-nb/strings.xml
index c287119f7..eb1a58b28 100644
--- a/java/com/android/dialer/notification/res/values-nb/strings.xml
+++ b/java/com/android/dialer/notification/res/values-nb/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Tapte anrop"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Talepost"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Eksterne anrop"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Diverse"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ne/strings.xml b/java/com/android/dialer/notification/res/values-ne/strings.xml
index 760238bdc..2ce0826b0 100644
--- a/java/com/android/dialer/notification/res/values-ne/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ne/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"छुटेका कलहरू"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"भ्वाइस मेलहरू"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"बाह्य कलहरू"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"विविध"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-nl/strings.xml b/java/com/android/dialer/notification/res/values-nl/strings.xml
index f92775323..641fa1a6c 100644
--- a/java/com/android/dialer/notification/res/values-nl/strings.xml
+++ b/java/com/android/dialer/notification/res/values-nl/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Gemiste oproepen"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Voicemails"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Externe oproepen"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Overige"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-no/strings.xml b/java/com/android/dialer/notification/res/values-no/strings.xml
index c287119f7..eb1a58b28 100644
--- a/java/com/android/dialer/notification/res/values-no/strings.xml
+++ b/java/com/android/dialer/notification/res/values-no/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Tapte anrop"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Talepost"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Eksterne anrop"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Diverse"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-pa/strings.xml b/java/com/android/dialer/notification/res/values-pa/strings.xml
index 273060e72..7ac0c36d1 100644
--- a/java/com/android/dialer/notification/res/values-pa/strings.xml
+++ b/java/com/android/dialer/notification/res/values-pa/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"ਖੁੰਝੀਆਂ ਕਾਲਾਂ"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"ਵੌਇਸਮੇਲਾਂ"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"ਬਾਹਰੀ ਕਾਲਾਂ"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"ਫੁਟਕਲ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-pl/strings.xml b/java/com/android/dialer/notification/res/values-pl/strings.xml
index 1c2d95261..2baa3f354 100644
--- a/java/com/android/dialer/notification/res/values-pl/strings.xml
+++ b/java/com/android/dialer/notification/res/values-pl/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Połączenia nieodebrane"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Wiadomości głosowe"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Połączenia zewnętrzne"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Inne"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-pt-rBR/strings.xml b/java/com/android/dialer/notification/res/values-pt-rBR/strings.xml
index 7681df647..d45e55015 100644
--- a/java/com/android/dialer/notification/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/notification/res/values-pt-rBR/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Chamadas perdidas"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Correios de voz"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Chamadas externas"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Diversos"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-pt-rPT/strings.xml b/java/com/android/dialer/notification/res/values-pt-rPT/strings.xml
index f41ec99f3..d4b638342 100644
--- a/java/com/android/dialer/notification/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/notification/res/values-pt-rPT/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Chamadas não atendidas"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Mensagens de correio de voz"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Chamadas externas"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Diversos"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-pt/strings.xml b/java/com/android/dialer/notification/res/values-pt/strings.xml
index 7681df647..d45e55015 100644
--- a/java/com/android/dialer/notification/res/values-pt/strings.xml
+++ b/java/com/android/dialer/notification/res/values-pt/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Chamadas perdidas"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Correios de voz"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Chamadas externas"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Diversos"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ro/strings.xml b/java/com/android/dialer/notification/res/values-ro/strings.xml
index b36bf9fcc..af4b88923 100644
--- a/java/com/android/dialer/notification/res/values-ro/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ro/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Apeluri nepreluate"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Mesaje vocale"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Apeluri externe"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Diverse"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ru/strings.xml b/java/com/android/dialer/notification/res/values-ru/strings.xml
index 34ba202a4..ba5e6ba3a 100644
--- a/java/com/android/dialer/notification/res/values-ru/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ru/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Пропущенные вызовы"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Голосовые сообщения"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Внешние вызовы"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Другое"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-si/strings.xml b/java/com/android/dialer/notification/res/values-si/strings.xml
index f21a34edc..4772907c0 100644
--- a/java/com/android/dialer/notification/res/values-si/strings.xml
+++ b/java/com/android/dialer/notification/res/values-si/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"මඟ හැරුණු ඇමතුම්"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"හඬ තැපැල්"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"බාහිර ඇමතුම්"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"විවිධ"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-sk/strings.xml b/java/com/android/dialer/notification/res/values-sk/strings.xml
index 4182b3a3b..12fe019af 100644
--- a/java/com/android/dialer/notification/res/values-sk/strings.xml
+++ b/java/com/android/dialer/notification/res/values-sk/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Zmeškané hovory"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Hlasové správy"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Externé hovory"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Rôzne"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-sl/strings.xml b/java/com/android/dialer/notification/res/values-sl/strings.xml
index 5503ab271..dfc7207cb 100644
--- a/java/com/android/dialer/notification/res/values-sl/strings.xml
+++ b/java/com/android/dialer/notification/res/values-sl/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Neodgovorjeni klici"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Sporočila v odzivniku"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Zunanji klici"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Razno"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-sq/strings.xml b/java/com/android/dialer/notification/res/values-sq/strings.xml
index caac614be..a1230ae4f 100644
--- a/java/com/android/dialer/notification/res/values-sq/strings.xml
+++ b/java/com/android/dialer/notification/res/values-sq/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Telefonatat e humbura"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Postat zanore"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Telefonatat e jashtme"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Të ndryshme"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-sr/strings.xml b/java/com/android/dialer/notification/res/values-sr/strings.xml
index 658c18af2..378b20698 100644
--- a/java/com/android/dialer/notification/res/values-sr/strings.xml
+++ b/java/com/android/dialer/notification/res/values-sr/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Пропуштени позиви"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Говорне поруке"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Спољни позиви"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Разно"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-sv/strings.xml b/java/com/android/dialer/notification/res/values-sv/strings.xml
index 8ecb5e093..e0c7e8e67 100644
--- a/java/com/android/dialer/notification/res/values-sv/strings.xml
+++ b/java/com/android/dialer/notification/res/values-sv/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Missade samtal"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Röstmeddelanden"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Externa samtal"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Övrigt"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-sw/strings.xml b/java/com/android/dialer/notification/res/values-sw/strings.xml
index 743b4e727..fbfbad20f 100644
--- a/java/com/android/dialer/notification/res/values-sw/strings.xml
+++ b/java/com/android/dialer/notification/res/values-sw/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Simu ambazo hukujibu"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Ujumbe wa sauti"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Simu za nje"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Zinginezo"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ta/strings.xml b/java/com/android/dialer/notification/res/values-ta/strings.xml
index 46f28b891..021fcc730 100644
--- a/java/com/android/dialer/notification/res/values-ta/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ta/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"தவறிய அழைப்புகள்"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"குரலஞ்சல்கள்"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"வெளி அழைப்புகள்"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"மற்றவை"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-te/strings.xml b/java/com/android/dialer/notification/res/values-te/strings.xml
index 07e93e360..6f5c4b8c6 100644
--- a/java/com/android/dialer/notification/res/values-te/strings.xml
+++ b/java/com/android/dialer/notification/res/values-te/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"సమాధానమివ్వని కాల్‌లు"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"వాయిస్ మెయిల్‌లు"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"బాహ్య కాల్‌లు"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"ఇతర కాల్‌లు"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-th/strings.xml b/java/com/android/dialer/notification/res/values-th/strings.xml
index 3cf0d6ba0..f3202795b 100644
--- a/java/com/android/dialer/notification/res/values-th/strings.xml
+++ b/java/com/android/dialer/notification/res/values-th/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"สายที่ไม่ได้รับ"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"ข้อความเสียง"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"สายนอก"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"เบ็ดเตล็ด"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-tl/strings.xml b/java/com/android/dialer/notification/res/values-tl/strings.xml
index 91393b412..a213f808d 100644
--- a/java/com/android/dialer/notification/res/values-tl/strings.xml
+++ b/java/com/android/dialer/notification/res/values-tl/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Mga hindi nasagot na tawag"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Mga voicemail"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Mga external na tawag"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Miscellaneous"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-tr/strings.xml b/java/com/android/dialer/notification/res/values-tr/strings.xml
index dde792814..66cc2fdc7 100644
--- a/java/com/android/dialer/notification/res/values-tr/strings.xml
+++ b/java/com/android/dialer/notification/res/values-tr/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Cevapsız çağrılar"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Sesli mesajlar"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Harici çağrılar"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Çeşitli"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-uk/strings.xml b/java/com/android/dialer/notification/res/values-uk/strings.xml
index 0a1189af0..4e12a95a3 100644
--- a/java/com/android/dialer/notification/res/values-uk/strings.xml
+++ b/java/com/android/dialer/notification/res/values-uk/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Пропущені виклики"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Голосова пошта"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Зовнішні виклики"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Інше"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-ur/strings.xml b/java/com/android/dialer/notification/res/values-ur/strings.xml
index a16f388fb..9a0f44a9d 100644
--- a/java/com/android/dialer/notification/res/values-ur/strings.xml
+++ b/java/com/android/dialer/notification/res/values-ur/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"چھوٹی ہوئی کالیں"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"صوتی میلز"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"بیرونی کالیں"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"متفرقات"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-uz/strings.xml b/java/com/android/dialer/notification/res/values-uz/strings.xml
index 23277a945..12ddfb372 100644
--- a/java/com/android/dialer/notification/res/values-uz/strings.xml
+++ b/java/com/android/dialer/notification/res/values-uz/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Javobsiz chaqiruvlar"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Ovozli xabarlar"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Tashqi chaqiruvlar"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Boshqa"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-vi/strings.xml b/java/com/android/dialer/notification/res/values-vi/strings.xml
index 60840f6c9..bfaec03cd 100644
--- a/java/com/android/dialer/notification/res/values-vi/strings.xml
+++ b/java/com/android/dialer/notification/res/values-vi/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Cuộc gọi nhỡ"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Thư thoại"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Cuộc gọi bên ngoài"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Khác"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-zh-rCN/strings.xml b/java/com/android/dialer/notification/res/values-zh-rCN/strings.xml
index 2df34fed6..7131c8a8d 100644
--- a/java/com/android/dialer/notification/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/notification/res/values-zh-rCN/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"未接电话"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"语音邮件"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"外部来电"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"其他"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-zh-rHK/strings.xml b/java/com/android/dialer/notification/res/values-zh-rHK/strings.xml
index 77db2a291..d5488e512 100644
--- a/java/com/android/dialer/notification/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/notification/res/values-zh-rHK/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"未接來電"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"留言信箱"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"外部通話"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"其他"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-zh-rTW/strings.xml b/java/com/android/dialer/notification/res/values-zh-rTW/strings.xml
index 23cb3986f..0b9f60eb5 100644
--- a/java/com/android/dialer/notification/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/notification/res/values-zh-rTW/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"未接來電"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"語音留言"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"外部通話"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"其他"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values-zu/strings.xml b/java/com/android/dialer/notification/res/values-zu/strings.xml
index c17877a2d..5c12479c3 100644
--- a/java/com/android/dialer/notification/res/values-zu/strings.xml
+++ b/java/com/android/dialer/notification/res/values-zu/strings.xml
@@ -22,5 +22,6 @@
<string name="notification_channel_missed_call" msgid="5820652855908217695">"Amakholi akuphuthile"</string>
<string name="notification_channel_voicemail" msgid="9206363659849426204">"Amavoyisimeyili"</string>
<string name="notification_channel_external_call" msgid="2200143959948071132">"Amakholi angaphandle"</string>
- <string name="notification_channel_misc" msgid="5181419532951960166">"Okwahlukahlukene"</string>
+ <!-- no translation found for notification_channel_misc (5595452227577858518) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/notification/res/values/ids.xml b/java/com/android/dialer/notification/res/values/ids.xml
index dc071e2ed..c965f319d 100644
--- a/java/com/android/dialer/notification/res/values/ids.xml
+++ b/java/com/android/dialer/notification/res/values/ids.xml
@@ -16,7 +16,6 @@
-->
<resources>
- <item name="notification_incoming_call" type="id"/>
<item name="notification_ongoing_call" type="id"/>
<item name="notification_missed_call" type="id"/>
<item name="notification_visual_voicemail" type="id"/>
diff --git a/java/com/android/dialer/notification/res/values/strings.xml b/java/com/android/dialer/notification/res/values/strings.xml
index 2fc4962c6..cb3119f67 100644
--- a/java/com/android/dialer/notification/res/values/strings.xml
+++ b/java/com/android/dialer/notification/res/values/strings.xml
@@ -21,5 +21,6 @@
<string name="notification_channel_missed_call">Missed calls</string>
<string name="notification_channel_voicemail">Voicemails</string>
<string name="notification_channel_external_call">External calls</string>
- <string name="notification_channel_misc">Miscellaneous</string>
+ <!-- [CHAR LIMIT=NONE] Catch-all channel for notifications that don't fit into one of the others -->
+ <string name="notification_channel_misc">Default</string>
</resources>
diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java
index c8e6010a3..095ee4e66 100644
--- a/java/com/android/dialer/oem/CequintCallerIdManager.java
+++ b/java/com/android/dialer/oem/CequintCallerIdManager.java
@@ -31,6 +31,7 @@ import android.text.TextUtils;
import com.android.dialer.common.Assert;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.PermissionsUtil;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -69,7 +70,7 @@ public class CequintCallerIdManager {
private static final String NAME = "cid_pName";
private static final String FIRST_NAME = "cid_pFirstName";
private static final String LAST_NAME = "cid_pLastName";
- private static final String IMAGE = "cid_pImage";
+ private static final String IMAGE = "cid_pLogo";
private static final String DISPLAY_NAME = "cid_pDisplayName";
// TODO: Revisit it and maybe remove it if it's not necessary.
@@ -285,6 +286,11 @@ public class CequintCallerIdManager {
}
private static synchronized void registerContentObserver(Context context) {
+ if (!PermissionsUtil.hasCequintPermissions(context)) {
+ LogUtil.i("CequintCallerIdManager.registerContentObserver", "no cequint permissions");
+ return;
+ }
+
if (hasRegisteredContentObserver) {
return;
}
diff --git a/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java b/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
index c113559a1..5c7a28c5b 100644
--- a/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
+++ b/java/com/android/dialer/persistentlog/PersistentLogFileHandler.java
@@ -26,6 +26,7 @@ import android.support.annotation.MainThread;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
+import android.support.v4.os.UserManagerCompat;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -51,7 +52,7 @@ import java.util.List;
* worker thread.
*/
@SuppressWarnings("AndroidApiChecker") // lambdas
-@TargetApi(VERSION_CODES.N)
+@TargetApi(VERSION_CODES.M)
final class PersistentLogFileHandler {
private static final String LOG_DIRECTORY = "persistent_log";
@@ -65,6 +66,7 @@ final class PersistentLogFileHandler {
private SharedPreferences sharedPreferences;
private File outputFile;
+ private Context context;
@MainThread
PersistentLogFileHandler(String subfolder, int fileSizeLimit, int fileCountLimit) {
@@ -76,8 +78,18 @@ final class PersistentLogFileHandler {
/** Must be called right after the logger thread is created. */
@WorkerThread
void initialize(Context context) {
+ this.context = context;
logDirectory = new File(new File(context.getCacheDir(), LOG_DIRECTORY), subfolder);
- sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+ initializeSharedPreference(context);
+ }
+
+ @WorkerThread
+ private boolean initializeSharedPreference(Context context) {
+ if (sharedPreferences == null && UserManagerCompat.isUserUnlocked(context)) {
+ sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+ return true;
+ }
+ return sharedPreferences != null;
}
/**
@@ -110,14 +122,21 @@ final class PersistentLogFileHandler {
private byte[] readBlob() throws IOException {
File[] files = getLogFiles();
- ByteBuffer byteBuffer =
- ByteBuffer.allocate(Arrays.stream(files).mapToInt(file -> (int) file.length()).sum());
+ ByteBuffer byteBuffer = ByteBuffer.allocate(getTotalSize(files));
for (File file : files) {
byteBuffer.put(readAllBytes(file));
}
return byteBuffer.array();
}
+ private static int getTotalSize(File[] files) {
+ int sum = 0;
+ for (File file : files) {
+ sum += (int) file.length();
+ }
+ return sum;
+ }
+
/** Parses the content of all files back to individual byte arrays. */
@WorkerThread
@NonNull
@@ -188,7 +207,11 @@ final class PersistentLogFileHandler {
}
@WorkerThread
- private int getAndIncrementNextFileIndex() {
+ private int getAndIncrementNextFileIndex() throws IOException {
+ if (!initializeSharedPreference(context)) {
+ throw new IOException("Shared preference is not available");
+ }
+
int index = sharedPreferences.getInt(getNextFileKey(), 0);
sharedPreferences.edit().putInt(getNextFileKey(), index + 1).commit();
return index;
diff --git a/java/com/android/dialer/persistentlog/PersistentLogger.java b/java/com/android/dialer/persistentlog/PersistentLogger.java
index 049eb9687..cf43b8ca8 100644
--- a/java/com/android/dialer/persistentlog/PersistentLogger.java
+++ b/java/com/android/dialer/persistentlog/PersistentLogger.java
@@ -23,6 +23,7 @@ import android.support.annotation.AnyThread;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import android.support.annotation.WorkerThread;
+import android.support.v4.os.UserManagerCompat;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import java.io.IOException;
@@ -79,6 +80,9 @@ public final class PersistentLogger {
loggerThreadHandler.removeMessages(MESSAGE_FLUSH);
List<byte[]> messages = new ArrayList<>();
messageQueue.drainTo(messages);
+ if (!UserManagerCompat.isUserUnlocked(context)) {
+ return true;
+ }
try {
fileHandler.writeLogs(messages);
} catch (IOException e) {
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfo.java b/java/com/android/dialer/phonenumbercache/ContactInfo.java
index 9def939ca..5546553f9 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfo.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfo.java
@@ -17,6 +17,7 @@
package com.android.dialer.phonenumbercache;
import android.net.Uri;
+import android.support.annotation.Nullable;
import android.text.TextUtils;
import com.android.contacts.common.ContactsUtils.UserType;
import com.android.contacts.common.util.UriUtils;
@@ -58,12 +59,12 @@ public class ContactInfo {
public boolean isBadData;
public String objectId;
public @UserType long userType;
- public ContactSource.Type sourceType;
+ public @Nullable ContactSource.Type sourceType = ContactSource.Type.UNKNOWN_SOURCE_TYPE;
/**
* True if local contact exists. This is only used for Cequint Caller ID so it won't overwrite
* photo if local contact exists.
*/
- boolean contactExists;
+ public boolean contactExists;
/** @see android.provider.ContactsContract.CommonDataKinds.Phone#CARRIER_PRESENCE */
public int carrierPresence;
diff --git a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
index a9a5edce5..bd4ba9764 100644
--- a/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
+++ b/java/com/android/dialer/phonenumbercache/ContactInfoHelper.java
@@ -327,7 +327,7 @@ public class ContactInfoHelper {
if (uri == null) {
return null;
}
- if (!PermissionsUtil.hasContactsPermissions(mContext)) {
+ if (!PermissionsUtil.hasContactsReadPermissions(mContext)) {
return ContactInfo.EMPTY;
}
diff --git a/java/com/android/dialer/postcall/AndroidManifest.xml b/java/com/android/dialer/postcall/AndroidManifest.xml
index 2bf07bca2..79ca5d5eb 100644
--- a/java/com/android/dialer/postcall/AndroidManifest.xml
+++ b/java/com/android/dialer/postcall/AndroidManifest.xml
@@ -17,7 +17,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.dialer.callcomposer">
- <application>
+ <application android:theme="@style/Theme.AppCompat">
<activity
android:name="com.android.dialer.postcall.PostCallActivity"
android:exported="false"
diff --git a/java/com/android/dialer/postcall/PostCall.java b/java/com/android/dialer/postcall/PostCall.java
index e27a9b582..edc07baf5 100644
--- a/java/com/android/dialer/postcall/PostCall.java
+++ b/java/com/android/dialer/postcall/PostCall.java
@@ -21,8 +21,10 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
+import android.support.annotation.Nullable;
import android.support.design.widget.BaseTransientBottomBar.BaseCallback;
import android.support.design.widget.Snackbar;
+import android.telephony.TelephonyManager;
import android.view.View;
import android.view.View.OnClickListener;
import com.android.dialer.buildtype.BuildType;
@@ -30,6 +32,9 @@ import com.android.dialer.common.Assert;
import com.android.dialer.common.ConfigProvider;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
+import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.enrichedcall.EnrichedCallManager;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.util.DialerUtils;
@@ -65,19 +70,33 @@ public class PostCall {
private static void promptUserToSendMessage(Activity activity, View rootView) {
LogUtil.i("PostCall.promptUserToSendMessage", "returned from call, showing post call SnackBar");
String message = activity.getString(R.string.post_call_message);
- String addMessage = activity.getString(R.string.post_call_add_message);
+ EnrichedCallManager manager = EnrichedCallComponent.get(activity).getEnrichedCallManager();
+ EnrichedCallCapabilities capabilities = manager.getCapabilities(getPhoneNumber(activity));
+ LogUtil.i(
+ "PostCall.promptUserToSendMessage",
+ "number: %s, capabilities: %s",
+ LogUtil.sanitizePhoneNumber(getPhoneNumber(activity)),
+ capabilities);
+
+ boolean isRcsPostCall = capabilities != null && capabilities.supportsPostCall();
+ String actionText =
+ isRcsPostCall
+ ? activity.getString(R.string.post_call_add_message)
+ : activity.getString(R.string.post_call_send_message);
+
OnClickListener onClickListener =
v -> {
Logger.get(activity)
.logImpression(DialerImpression.Type.POST_CALL_PROMPT_USER_TO_SEND_MESSAGE_CLICKED);
- activity.startActivity(PostCallActivity.newIntent(activity, getPhoneNumber(activity)));
+ activity.startActivity(
+ PostCallActivity.newIntent(activity, getPhoneNumber(activity), isRcsPostCall));
};
int durationMs =
(int) ConfigProviderBindings.get(activity).getLong("post_call_prompt_duration_ms", 8_000);
activeSnackbar =
Snackbar.make(rootView, message, durationMs)
- .setAction(addMessage, onClickListener)
+ .setAction(actionText, onClickListener)
.setActionTextColor(
activity.getResources().getColor(R.color.dialer_snackbar_action_text_color));
activeSnackbar.show();
@@ -143,6 +162,8 @@ public class PostCall {
}
private static void clear(Context context) {
+ activeSnackbar = null;
+
PreferenceManager.getDefaultSharedPreferences(context)
.edit()
.remove(KEY_POST_CALL_CALL_DISCONNECT_TIME)
@@ -163,8 +184,11 @@ public class PostCall {
ConfigProvider binding = ConfigProviderBindings.get(context);
return disconnectTimeMillis != -1
&& connectTimeMillis != -1
+ && isSimReady(context)
&& binding.getLong("postcall_last_call_threshold", 30_000) > timeSinceDisconnect
- && binding.getLong("postcall_call_duration_threshold", 35_000) > callDurationMillis;
+ && (connectTimeMillis == 0
+ || binding.getLong("postcall_call_duration_threshold", 35_000) > callDurationMillis)
+ && getPhoneNumber(context) != null;
}
private static boolean shouldPromptUserToViewSentMessage(Context context) {
@@ -172,6 +196,7 @@ public class PostCall {
.getBoolean(KEY_POST_CALL_MESSAGE_SENT, false);
}
+ @Nullable
private static String getPhoneNumber(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context)
.getString(KEY_POST_CALL_CALL_NUMBER, null);
@@ -192,4 +217,9 @@ public class PostCall {
return false;
}
}
+
+ private static boolean isSimReady(Context context) {
+ return context.getSystemService(TelephonyManager.class).getSimState()
+ == TelephonyManager.SIM_STATE_READY;
+ }
}
diff --git a/java/com/android/dialer/postcall/PostCallActivity.java b/java/com/android/dialer/postcall/PostCallActivity.java
index 28cf5709e..1d3b611e0 100644
--- a/java/com/android/dialer/postcall/PostCallActivity.java
+++ b/java/com/android/dialer/postcall/PostCallActivity.java
@@ -29,7 +29,6 @@ import android.support.v7.app.AppCompatActivity;
import android.telephony.SmsManager;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.enrichedcall.EnrichedCallCapabilities;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.enrichedcall.EnrichedCallManager;
import com.android.dialer.util.PermissionsUtil;
@@ -41,13 +40,16 @@ public class PostCallActivity extends AppCompatActivity implements MessageFragme
public static final String KEY_PHONE_NUMBER = "phone_number";
public static final String KEY_MESSAGE = "message";
+ public static final String KEY_RCS_POST_CALL = "rcs_post_call";
private static final int REQUEST_CODE_SEND_SMS = 1;
private boolean useRcs;
- public static Intent newIntent(@NonNull Context context, @NonNull String number) {
+ public static Intent newIntent(
+ @NonNull Context context, @NonNull String number, boolean isRcsPostCall) {
Intent intent = new Intent(Assert.isNotNull(context), PostCallActivity.class);
intent.putExtra(KEY_PHONE_NUMBER, Assert.isNotNull(number));
+ intent.putExtra(KEY_RCS_POST_CALL, isRcsPostCall);
return intent;
}
@@ -57,7 +59,7 @@ public class PostCallActivity extends AppCompatActivity implements MessageFragme
setContentView(R.layout.post_call_activity);
((DialerToolbar) findViewById(R.id.toolbar)).setTitle(R.string.post_call_message);
- useRcs = canUseRcs(getIntent().getStringExtra(KEY_PHONE_NUMBER));
+ useRcs = getIntent().getBooleanExtra(KEY_RCS_POST_CALL, false);
LogUtil.i("PostCallActivity.onCreate", "useRcs: %b", useRcs);
int postCallCharLimit =
@@ -82,17 +84,6 @@ public class PostCallActivity extends AppCompatActivity implements MessageFragme
.commit();
}
- private boolean canUseRcs(@NonNull String number) {
- EnrichedCallCapabilities capabilities =
- getEnrichedCallManager().getCapabilities(Assert.isNotNull(number));
- LogUtil.i(
- "PostCallActivity.canUseRcs",
- "number: %s, capabilities: %s",
- LogUtil.sanitizePhoneNumber(number),
- capabilities);
- return capabilities != null && capabilities.supportsPostCall();
- }
-
@Override
public void onMessageFragmentSendMessage(@NonNull String message) {
String number = Assert.isNotNull(getIntent().getStringExtra(KEY_PHONE_NUMBER));
diff --git a/java/com/android/dialer/postcall/res/values-af/strings.xml b/java/com/android/dialer/postcall/res/values-af/strings.xml
index 720e61cdd..3923d1271 100644
--- a/java/com/android/dialer/postcall/res/values-af/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-af/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Bel my terug wanneer jy \'n tydjie het."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nie dringend nie, ons kan later klets."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Voeg boodskap by"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Boodskap is gestuur"</string>
<string name="view" msgid="8572192949673703830">"Bekyk"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-am/strings.xml b/java/com/android/dialer/postcall/res/values-am/strings.xml
index c5436d99c..8247245a7 100644
--- a/java/com/android/dialer/postcall/res/values-am/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-am/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"ጊዜ ሲኖርዎት መልሰው ይደውሉልኝ።"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"አስቸኳይ አይደለም። በኋላ መወያየት እንችላለን።"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"መልዕክት አክል"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"መልዕክት ልከዋል"</string>
<string name="view" msgid="8572192949673703830">"አሳይ"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ar/strings.xml b/java/com/android/dialer/postcall/res/values-ar/strings.xml
index b908015be..84f7be341 100644
--- a/java/com/android/dialer/postcall/res/values-ar/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ar/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"عاود الاتصال بي عندما يتوفر لك الوقت."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"الأمر ليس عاجلاً، يمكننا الدردشة لاحقًا."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"إضافة رسالة"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"تم إرسال الرسالة"</string>
<string name="view" msgid="8572192949673703830">"عرض"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-az/strings.xml b/java/com/android/dialer/postcall/res/values-az/strings.xml
index 7b2bdc8fb..f219067f6 100644
--- a/java/com/android/dialer/postcall/res/values-az/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-az/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Vaxtın olanda mənə geri zəng edin."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Vacib deyil, daha sonra söhbət edə bilərik."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Mesaj əlavə edin"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mesaj göndərildi"</string>
<string name="view" msgid="8572192949673703830">"Baxın"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/postcall/res/values-b+sr+Latn/strings.xml
index a745967a3..2b3dc1db7 100644
--- a/java/com/android/dialer/postcall/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-b+sr+Latn/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Pozovite me kad budete imali vremena."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nije hitno, možemo da ćaskamo kasnije."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Dodaj poruku"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Poruka je poslata"</string>
<string name="view" msgid="8572192949673703830">"Prikaži"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-be/strings.xml b/java/com/android/dialer/postcall/res/values-be/strings.xml
index 60f40eed2..358b47622 100644
--- a/java/com/android/dialer/postcall/res/values-be/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-be/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Перазваніце мне, калі будзеце мець час."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Не тэрмінова. Можам пагаварыць пазней."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Дадаць паведамленне"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Паведамленне адпраўлена"</string>
<string name="view" msgid="8572192949673703830">"Праглядзець"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-bg/strings.xml b/java/com/android/dialer/postcall/res/values-bg/strings.xml
index 568e50b7b..dba4e0fb6 100644
--- a/java/com/android/dialer/postcall/res/values-bg/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-bg/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Обадете ми се, когато имате време."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Не е спешно, можем да говорим по-късно."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Добавяне на съобщение"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Съобщението бе изпратено"</string>
<string name="view" msgid="8572192949673703830">"Преглед"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-bn/strings.xml b/java/com/android/dialer/postcall/res/values-bn/strings.xml
index 511992dbd..5b3bfe790 100644
--- a/java/com/android/dialer/postcall/res/values-bn/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-bn/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"আপনার হাতে যখন সময় হবে তখন আমায় ফোন করুন৷"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"জরুরী নয়, আমরা পরে চ্যাট করতে পারি৷"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"বার্তা যোগ করুন"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"বার্তা পাঠানো হয়েছে"</string>
<string name="view" msgid="8572192949673703830">"দেখুন"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-bs/strings.xml b/java/com/android/dialer/postcall/res/values-bs/strings.xml
index ba5554946..2c8c9109f 100644
--- a/java/com/android/dialer/postcall/res/values-bs/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-bs/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Nazovi me kad mogneš."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nije hitno, možemo razgovarati kasnije."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Dodaj poruku"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Poruka je poslana"</string>
<string name="view" msgid="8572192949673703830">"Prikaži"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ca/strings.xml b/java/com/android/dialer/postcall/res/values-ca/strings.xml
index 54453b194..8a9fa912c 100644
--- a/java/com/android/dialer/postcall/res/values-ca/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ca/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Truca\'m quan tinguis una estona."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"No és urgent. Parlem més tard."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Afegeix un missatge"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"El missatge s\'ha enviat"</string>
<string name="view" msgid="8572192949673703830">"Mostra"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-cs/strings.xml b/java/com/android/dialer/postcall/res/values-cs/strings.xml
index d193c2030..e9b3b90b0 100644
--- a/java/com/android/dialer/postcall/res/values-cs/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-cs/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Zavolej mi, až budeš mít čas."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Neděje si nic naléhavého, zavoláme si později."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Přidat zprávu"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Zpráva byla odeslána"</string>
<string name="view" msgid="8572192949673703830">"Zobrazit"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-da/strings.xml b/java/com/android/dialer/postcall/res/values-da/strings.xml
index 811e5f38c..6a2b95973 100644
--- a/java/com/android/dialer/postcall/res/values-da/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-da/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Ring tilbage til mig, når du har tid."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Det haster ikke. Vi kan tale sammen senere."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Tilføj besked"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Beskeden blev sendt"</string>
<string name="view" msgid="8572192949673703830">"Se"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-de/strings.xml b/java/com/android/dialer/postcall/res/values-de/strings.xml
index 701807617..8b69197b9 100644
--- a/java/com/android/dialer/postcall/res/values-de/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-de/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Bitte bei Gelegenheit zurückrufen."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nicht dringend, wir können später sprechen."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Nachricht hinzufügen"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Nachricht gesendet"</string>
<string name="view" msgid="8572192949673703830">"Ansehen"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-el/strings.xml b/java/com/android/dialer/postcall/res/values-el/strings.xml
index d8c91d7a7..ae1799503 100644
--- a/java/com/android/dialer/postcall/res/values-el/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-el/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Καλέστε με όταν έχετε λίγο χρόνο."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Τίποτα επείγον, μπορούμε να τα πούμε αργότερα."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Προσθήκη μηνύματος"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Το μήνυμα εστάλη"</string>
<string name="view" msgid="8572192949673703830">"Προβολή"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-en-rAU/strings.xml b/java/com/android/dialer/postcall/res/values-en-rAU/strings.xml
index 613184646..f7f04e2a5 100644
--- a/java/com/android/dialer/postcall/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-en-rAU/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Call me back when you have time."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Not urgent – we can chat later."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Add message"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Message sent"</string>
<string name="view" msgid="8572192949673703830">"View"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-en-rGB/strings.xml b/java/com/android/dialer/postcall/res/values-en-rGB/strings.xml
index 613184646..f7f04e2a5 100644
--- a/java/com/android/dialer/postcall/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-en-rGB/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Call me back when you have time."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Not urgent – we can chat later."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Add message"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Message sent"</string>
<string name="view" msgid="8572192949673703830">"View"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-en-rIN/strings.xml b/java/com/android/dialer/postcall/res/values-en-rIN/strings.xml
index 613184646..f7f04e2a5 100644
--- a/java/com/android/dialer/postcall/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-en-rIN/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Call me back when you have time."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Not urgent – we can chat later."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Add message"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Message sent"</string>
<string name="view" msgid="8572192949673703830">"View"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-es-rUS/strings.xml b/java/com/android/dialer/postcall/res/values-es-rUS/strings.xml
index 406daf295..7e695912b 100644
--- a/java/com/android/dialer/postcall/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-es-rUS/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Llámame cuando tengas un momento."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"No es urgente. Podemos hablar más tarde."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Agregar mensaje"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Se envió el mensaje"</string>
<string name="view" msgid="8572192949673703830">"Ver"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-es/strings.xml b/java/com/android/dialer/postcall/res/values-es/strings.xml
index 18c4a8ab0..8f7c8dcfb 100644
--- a/java/com/android/dialer/postcall/res/values-es/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-es/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Llámame cuando puedas."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"No es urgente, podemos hablar luego."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Añade un mensaje"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mensaje enviado"</string>
<string name="view" msgid="8572192949673703830">"Ver"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-et/strings.xml b/java/com/android/dialer/postcall/res/values-et/strings.xml
index 3fd5fe565..df13f37ce 100644
--- a/java/com/android/dialer/postcall/res/values-et/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-et/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Helistage tagasi, kui teil on rohkem aega."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Sellega pole kiiret, võime hiljem vestalda."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Lisage sõnum"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Sõnum on saadetud"</string>
<string name="view" msgid="8572192949673703830">"Kuva"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-eu/strings.xml b/java/com/android/dialer/postcall/res/values-eu/strings.xml
index b616aa507..3decc50d9 100644
--- a/java/com/android/dialer/postcall/res/values-eu/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-eu/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Dei iezadazu denbora duzunean."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Geroago hitz egin dezakegu, ez da premiazkoa."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Gehitu mezua"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Bidali da mezua"</string>
<string name="view" msgid="8572192949673703830">"Ikusi"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-fa/strings.xml b/java/com/android/dialer/postcall/res/values-fa/strings.xml
index 607816a5f..820f1ff50 100644
--- a/java/com/android/dialer/postcall/res/values-fa/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-fa/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"با من تماس بگیر هنگامی که وقت کردی."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"ضروری نیست. می‌تونیم بعدا گپ بزنیم."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"افزودن پیام"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"پیام ارسال شد"</string>
<string name="view" msgid="8572192949673703830">"مشاهده"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-fi/strings.xml b/java/com/android/dialer/postcall/res/values-fi/strings.xml
index aa651a790..4c9d63e15 100644
--- a/java/com/android/dialer/postcall/res/values-fi/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-fi/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Soittakaa minulle takaisin, kun teillä on hetki aikaa."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Asia ei ole kiireellinen, voimme puhua myöhemmin."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Lisää viesti"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Viesti lähetetty"</string>
<string name="view" msgid="8572192949673703830">"Näytä"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-fr-rCA/strings.xml b/java/com/android/dialer/postcall/res/values-fr-rCA/strings.xml
index 566fe58be..9578bff1b 100644
--- a/java/com/android/dialer/postcall/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-fr-rCA/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Rappelez-moi quand vous aurez un peu de temps."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Ce n\'est pas urgent. Nous pourrons clavarder plus tard."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Ajouter un message"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Message envoyé"</string>
<string name="view" msgid="8572192949673703830">"Afficher"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-fr/strings.xml b/java/com/android/dialer/postcall/res/values-fr/strings.xml
index 4c564e1f7..8728ab3ed 100644
--- a/java/com/android/dialer/postcall/res/values-fr/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-fr/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Veuillez me rappeler dès que vous avez un moment."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Aucune urgence. On se recontacte ultérieurement."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Ajouter un message"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Message envoyé"</string>
<string name="view" msgid="8572192949673703830">"Afficher"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-gl/strings.xml b/java/com/android/dialer/postcall/res/values-gl/strings.xml
index 941cbff9a..65ec7081f 100644
--- a/java/com/android/dialer/postcall/res/values-gl/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-gl/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Chámame cando teñas tempo."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Non é urxente. Podemos falar máis tarde."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Engade unha mensaxe"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Enviouse a mensaxe"</string>
<string name="view" msgid="8572192949673703830">"Ver"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-gu/strings.xml b/java/com/android/dialer/postcall/res/values-gu/strings.xml
index 9bd4b5932..8b56f01ea 100644
--- a/java/com/android/dialer/postcall/res/values-gu/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-gu/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"તમારી પાસે થોડો સમય હોય ત્યારે મને ફરી કૉલ કરો."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"કોઇ ખાસ કામ નથી, આપણે પછી ચેટ કરી શકીએ."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"સંદેશ ઉમેરો"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"સંદેશ મોકલ્યો"</string>
<string name="view" msgid="8572192949673703830">"જુઓ"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-hi/strings.xml b/java/com/android/dialer/postcall/res/values-hi/strings.xml
index 511b4e208..23d7e81d5 100644
--- a/java/com/android/dialer/postcall/res/values-hi/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-hi/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"आपके पास कुछ समय होने पर मुझे वापस कॉल करें."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"ज़रूरी नहीं है, हम बाद में चैट कर सकते हैं."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"संदेश जोड़ें"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"संदेश भेजा गया"</string>
<string name="view" msgid="8572192949673703830">"देखें"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-hr/strings.xml b/java/com/android/dialer/postcall/res/values-hr/strings.xml
index 700219075..9987ea184 100644
--- a/java/com/android/dialer/postcall/res/values-hr/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-hr/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Uzvrati mi poziv kada uhvatiš vremena."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nije hitno, možemo chatati kasnije."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Dodaj poruku"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Poruka je poslana"</string>
<string name="view" msgid="8572192949673703830">"Prikaži"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-hu/strings.xml b/java/com/android/dialer/postcall/res/values-hu/strings.xml
index 9ac7170bd..59a8b3439 100644
--- a/java/com/android/dialer/postcall/res/values-hu/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-hu/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Hívjon vissza, ha alkalmas."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nem sürgős, ráér később."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Üzenet hozzáadása"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Üzenet elküldve"</string>
<string name="view" msgid="8572192949673703830">"Megtekintés"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-hy/strings.xml b/java/com/android/dialer/postcall/res/values-hy/strings.xml
index 77c1b3cbd..d4051529d 100644
--- a/java/com/android/dialer/postcall/res/values-hy/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-hy/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Հետ զանգիր, երբ ժամանակ ունենաս:"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Շտապ չէ, կարող ենք հետո խոսել:"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Ավելացնել հաղորդագրություն"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Հաղորդագրությունն ուղարկվել է"</string>
<string name="view" msgid="8572192949673703830">"Դիտել"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-in/strings.xml b/java/com/android/dialer/postcall/res/values-in/strings.xml
index 7131594e2..679a39984 100644
--- a/java/com/android/dialer/postcall/res/values-in/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-in/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Telepon saya balik jika Anda memiliki waktu luang."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Tidak penting, kita bisa chatting nanti."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Tambahkan pesan"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Pesan terkirim"</string>
<string name="view" msgid="8572192949673703830">"Lihat"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-is/strings.xml b/java/com/android/dialer/postcall/res/values-is/strings.xml
index cc934c8fe..98a9d7cf8 100644
--- a/java/com/android/dialer/postcall/res/values-is/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-is/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Hringdu í mig þegar þú hefur tíma."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Ekkert áríðandi, við getum spjallað síðar."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Senda skilaboð"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Skilaboð send"</string>
<string name="view" msgid="8572192949673703830">"Skoða"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-it/strings.xml b/java/com/android/dialer/postcall/res/values-it/strings.xml
index 2b1306c3a..9e18ad0e8 100644
--- a/java/com/android/dialer/postcall/res/values-it/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-it/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Richiamami quando hai tempo."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Non è urgente, possiamo parlare più tardi."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Aggiungi messaggio"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Messaggio inviato"</string>
<string name="view" msgid="8572192949673703830">"Visualizza"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-iw/strings.xml b/java/com/android/dialer/postcall/res/values-iw/strings.xml
index 94b1e3ba8..565d9713e 100644
--- a/java/com/android/dialer/postcall/res/values-iw/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-iw/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"תוכל/י לחזור אלי כשיהיה לך זמן?"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"זה לא דחוף. אנחנו יכולים לדבר אחר כך."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"הוסף הודעה"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"ההודעה נשלחה"</string>
<string name="view" msgid="8572192949673703830">"הצג"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ja/strings.xml b/java/com/android/dialer/postcall/res/values-ja/strings.xml
index 0a3154f4f..60c5fa4be 100644
--- a/java/com/android/dialer/postcall/res/values-ja/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ja/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"お時間のあるときにお電話ください。"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"急ぎではないので、また後でかけ直します。"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"メッセージを追加できます"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"メッセージを送信しました"</string>
<string name="view" msgid="8572192949673703830">"表示"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ka/strings.xml b/java/com/android/dialer/postcall/res/values-ka/strings.xml
index b153daee5..8d2c85fa5 100644
--- a/java/com/android/dialer/postcall/res/values-ka/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ka/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"დამირეკე, როცა დრო გექნება."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"სასწრაფო არ არის, შეგვიძლია ვისაუბროთ მოგვიანებით."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"შეტყობინების დამატება"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"შეტყობინება გაიგზავნა"</string>
<string name="view" msgid="8572192949673703830">"ნახვა"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-kk/strings.xml b/java/com/android/dialer/postcall/res/values-kk/strings.xml
index 6c88a8992..2cef59506 100644
--- a/java/com/android/dialer/postcall/res/values-kk/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-kk/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Уақытыңыз болғанда, маған қайта қоңырау шалыңыз."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Шұғыл емес, кейінірек сөйлесерміз."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Хабар қосу"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Хабар жіберілді"</string>
<string name="view" msgid="8572192949673703830">"Көру"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-km/strings.xml b/java/com/android/dialer/postcall/res/values-km/strings.xml
index 05887787b..52cc19440 100644
--- a/java/com/android/dialer/postcall/res/values-km/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-km/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"សូមហៅទូរស័ព្ទមកខ្ញុំវិញនៅពេលអ្នកឆ្លៀតពេលបានខ្លះ។"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"មិនបន្ទាន់ទេ យើងអាចជជែកគ្នានៅពេលក្រោយ។"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"បន្ថែមសារ"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"បានផ្ញើសាររួចហើយ"</string>
<string name="view" msgid="8572192949673703830">"មើល"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-kn/strings.xml b/java/com/android/dialer/postcall/res/values-kn/strings.xml
index 0a6a48f30..cd73cf815 100644
--- a/java/com/android/dialer/postcall/res/values-kn/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-kn/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"ನಿಮಗೆ ಸಮಯವಿದ್ದಾಗ ನನಗೆ ಕರೆ ಮಾಡಿ."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"ಅವಸರವಿಲ್ಲ, ನಾವು ನಂತರ ಚಾಟ್ ಮಾಡಬಹುದು."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"ಸಂದೇಶವನ್ನು ಸೇರಿಸಿ"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"ಸಂದೇಶ ಕಳುಹಿಸಲಾಗಿದೆ"</string>
<string name="view" msgid="8572192949673703830">"ವೀಕ್ಷಿಸಿ"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ko/strings.xml b/java/com/android/dialer/postcall/res/values-ko/strings.xml
index 3e5a2adcb..ca8896834 100644
--- a/java/com/android/dialer/postcall/res/values-ko/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ko/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"시간 나실 때 전화해 주세요."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"급한 용무는 아니니 나중에 다시 연락드릴게요."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"메시지를 추가하시겠습니까?"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"메시지 전송됨"</string>
<string name="view" msgid="8572192949673703830">"보기"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ky/strings.xml b/java/com/android/dialer/postcall/res/values-ky/strings.xml
index 4daa5a496..9c4017bd2 100644
--- a/java/com/android/dialer/postcall/res/values-ky/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ky/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Убактыңыз болгондо мага кайра чалып коюңуз."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Шашылыш эмес, биз кийинчерээк маектеше алабыз."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Билдирүүнү кошуңуз"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Билдирүү жөнөтүлдү"</string>
<string name="view" msgid="8572192949673703830">"Карап көрүү"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-lo/strings.xml b/java/com/android/dialer/postcall/res/values-lo/strings.xml
index b3bff8c33..7b36a8236 100644
--- a/java/com/android/dialer/postcall/res/values-lo/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-lo/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"ຖ້າຫວ່າງແລ້ວໂທກັບແດ່."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"ບໍ່ດ່ວນປານໃດ, ໄວ້ຄ່ອຍລົມກໍໄດ້."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"ເພີ່ມຂໍ້ຄວາມ"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"ສົ່ງຂໍ້ຄວາມແລ້ວ"</string>
<string name="view" msgid="8572192949673703830">"ເບິ່ງ"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-lt/strings.xml b/java/com/android/dialer/postcall/res/values-lt/strings.xml
index cdaaf10c4..124de6874 100644
--- a/java/com/android/dialer/postcall/res/values-lt/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-lt/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Atskambinkite, kai turėsite šiek tiek laiko."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Neskubu, galėsime vėliau pasikalbėti."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Pridėkite pranešimą"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Pranešimas išsiųstas"</string>
<string name="view" msgid="8572192949673703830">"Peržiūrėti"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-lv/strings.xml b/java/com/android/dialer/postcall/res/values-lv/strings.xml
index 401c43ff3..2f0179d5c 100644
--- a/java/com/android/dialer/postcall/res/values-lv/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-lv/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Piezvaniet man, kad būs brīdis laika."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Tas nav steidzami. Varam parunāt vēlāk."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Pievienojiet ziņojumu"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Ziņojums nosūtīts"</string>
<string name="view" msgid="8572192949673703830">"Skatīt"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-mk/strings.xml b/java/com/android/dialer/postcall/res/values-mk/strings.xml
index af21c680c..0624021f0 100644
--- a/java/com/android/dialer/postcall/res/values-mk/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-mk/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Јави ми се кога ќе имаш време."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Не е итно. Може да разговараме подоцна."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Додајте порака"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Пораката е испратена"</string>
<string name="view" msgid="8572192949673703830">"Прикажи"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ml/strings.xml b/java/com/android/dialer/postcall/res/values-ml/strings.xml
index 5d06afca4..eece011be 100644
--- a/java/com/android/dialer/postcall/res/values-ml/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ml/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"നിങ്ങൾക്ക് സമയം കിട്ടുമ്പോൾ എന്നെ തിരിച്ച് വിളിക്കൂ."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"അത്യാവശ്യമില്ല, നമുക്ക് പിന്നീട് ചാറ്റുചെയ്യാം."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"സന്ദേശം ചേർക്കുക"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"സന്ദേശം അയച്ചു"</string>
<string name="view" msgid="8572192949673703830">"കാണുക"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-mn/strings.xml b/java/com/android/dialer/postcall/res/values-mn/strings.xml
index 84f634676..589a0d12f 100644
--- a/java/com/android/dialer/postcall/res/values-mn/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-mn/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Завтай болоод над руу буцааж залгана уу."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Яаралтай биш, бид дараа чатлаж болно."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Зурвас нэмэх"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Зурвас илгээсэн"</string>
<string name="view" msgid="8572192949673703830">"Үзэх"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-mr/strings.xml b/java/com/android/dialer/postcall/res/values-mr/strings.xml
index 6e9695b4f..753b22123 100644
--- a/java/com/android/dialer/postcall/res/values-mr/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-mr/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"आपल्याकडे वेळ असेल तेव्हा मला परत कॉल करा."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"काही महत्वाचे नाही, आपण नंतर चॅट करू शकतो."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"संदेश जोडा"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"संदेश पाठविला"</string>
<string name="view" msgid="8572192949673703830">"पहा"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ms/strings.xml b/java/com/android/dialer/postcall/res/values-ms/strings.xml
index a48a975ab..d880b73d6 100644
--- a/java/com/android/dialer/postcall/res/values-ms/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ms/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Hubungi saya balik apabila ada kelapangan."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Tidak penting, kita boleh bersembang kemudian."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Tambah mesej"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mesej dihantar"</string>
<string name="view" msgid="8572192949673703830">"Lihat"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-my/strings.xml b/java/com/android/dialer/postcall/res/values-my/strings.xml
index 20e0a152a..caf356f6d 100644
--- a/java/com/android/dialer/postcall/res/values-my/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-my/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"သင်အချိန်ရလျှင် ကျွန်ုပ်ကို ပြန်ခေါ်ပါ။"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"အရေးမကြီးပါ၊ နောက်မှ ကျွန်ုပ်တို့ ချတ်လုပ်နိုင်ပါသည်။"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"မက်ဆေ့ဂျ် ထည့်သွင်းပါ"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"မက်ဆေ့ဂျ် ပို့ပြီးပါပြီ"</string>
<string name="view" msgid="8572192949673703830">"ကြည့်ရန်"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-nb/strings.xml b/java/com/android/dialer/postcall/res/values-nb/strings.xml
index a9fb523de..a9125d9d5 100644
--- a/java/com/android/dialer/postcall/res/values-nb/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-nb/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Ring tilbake når du har tid."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Haster ikke. Prates senere?"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Legg til melding"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Meldingen er sendt"</string>
<string name="view" msgid="8572192949673703830">"Se"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ne/strings.xml b/java/com/android/dialer/postcall/res/values-ne/strings.xml
index 7cf5dcd2b..af7be6512 100644
--- a/java/com/android/dialer/postcall/res/values-ne/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ne/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"तपाईंलाई अलि फुर्सद भएका बेला मलाई कल गर्नुहोस्।"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"जरूरी छैन, पछि कुरा गर्दा हुन्छ।"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"सन्देश थप्नुहोस्"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"सन्देश पठाइयो"</string>
<string name="view" msgid="8572192949673703830">"हेर्नुहोस्"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-nl/strings.xml b/java/com/android/dialer/postcall/res/values-nl/strings.xml
index 073f050fc..8732da306 100644
--- a/java/com/android/dialer/postcall/res/values-nl/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-nl/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Bel me terug als je tijd hebt."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Het is niet dringend, ik spreek je later."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Bericht toevoegen"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Bericht verzonden"</string>
<string name="view" msgid="8572192949673703830">"Weergeven"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-no/strings.xml b/java/com/android/dialer/postcall/res/values-no/strings.xml
index a9fb523de..a9125d9d5 100644
--- a/java/com/android/dialer/postcall/res/values-no/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-no/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Ring tilbake når du har tid."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Haster ikke. Prates senere?"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Legg til melding"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Meldingen er sendt"</string>
<string name="view" msgid="8572192949673703830">"Se"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-pa/strings.xml b/java/com/android/dialer/postcall/res/values-pa/strings.xml
index 72758f836..54a015653 100644
--- a/java/com/android/dialer/postcall/res/values-pa/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-pa/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"ਜਦੋਂ ਤੁਹਾਡੇ ਕੋਲ ਕੁਝ ਸਮਾਂ ਹੋਵੇ ਤਾਂ ਮੈਨੂੰ ਵਾਪਸ ਕਾਲ ਕਰੋ।"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"ਜ਼ਰੂਰੀ ਨਹੀਂ ਹੈ, ਅਸੀਂ ਬਾਅਦ ਵਿੱਚ ਚੈਟ ਕਰ ਸਕਦੇ ਹਾਂ।"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"ਸੁਨੇਹਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"ਸੁਨੇਹਾ ਭੇਜਿਆ ਗਿਆ"</string>
<string name="view" msgid="8572192949673703830">"ਵੇਖੋ"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-pl/strings.xml b/java/com/android/dialer/postcall/res/values-pl/strings.xml
index 9d6aa4df7..ae8f77034 100644
--- a/java/com/android/dialer/postcall/res/values-pl/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-pl/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Zadzwoń do mnie, jak znajdziesz czas."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nic ważnego, pogadamy później."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Dodaj wiadomość"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Wiadomość została wysłana"</string>
<string name="view" msgid="8572192949673703830">"Wyświetl"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-pt-rBR/strings.xml b/java/com/android/dialer/postcall/res/values-pt-rBR/strings.xml
index 83ffc531c..cd3a22c2b 100644
--- a/java/com/android/dialer/postcall/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-pt-rBR/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Retorne minha chamada quando você tiver tempo."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Não é urgente, podemos bater papo mais tarde."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Adicionar mensagem"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mensagem enviada"</string>
<string name="view" msgid="8572192949673703830">"Ver"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-pt-rPT/strings.xml b/java/com/android/dialer/postcall/res/values-pt-rPT/strings.xml
index 668212c0b..98b4c2e67 100644
--- a/java/com/android/dialer/postcall/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-pt-rPT/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Ligue-me de volta quando tiver algum tempo."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Não é urgente, podemos conversar mais tarde."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Adicionar mensagem"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mensagem enviada"</string>
<string name="view" msgid="8572192949673703830">"Ver"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-pt/strings.xml b/java/com/android/dialer/postcall/res/values-pt/strings.xml
index 83ffc531c..cd3a22c2b 100644
--- a/java/com/android/dialer/postcall/res/values-pt/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-pt/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Retorne minha chamada quando você tiver tempo."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Não é urgente, podemos bater papo mais tarde."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Adicionar mensagem"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mensagem enviada"</string>
<string name="view" msgid="8572192949673703830">"Ver"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ro/strings.xml b/java/com/android/dialer/postcall/res/values-ro/strings.xml
index 2021ab538..bf539a013 100644
--- a/java/com/android/dialer/postcall/res/values-ro/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ro/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Sună-mă când ai puțin timp."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nu e ceva urgent. Putem vorbi mai târziu."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Adăugați un mesaj"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mesaj trimis"</string>
<string name="view" msgid="8572192949673703830">"Afișați"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ru/strings.xml b/java/com/android/dialer/postcall/res/values-ru/strings.xml
index a4a5ae350..52d0d6858 100644
--- a/java/com/android/dialer/postcall/res/values-ru/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ru/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Перезвоните мне, когда сможете."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Не срочно, можем поговорить позже."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Добавить сообщение"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Сообщение отправлено"</string>
<string name="view" msgid="8572192949673703830">"Просмотреть"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-si/strings.xml b/java/com/android/dialer/postcall/res/values-si/strings.xml
index b653ab610..5edd58594 100644
--- a/java/com/android/dialer/postcall/res/values-si/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-si/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"ඔබට යම් වේලාවක් තිබෙන විට මට ආපසු අමතන්න."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"හදිස්සි නැත, අපට පසුව කතාබස් කිරීමට හැකිය."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"පණිවිඩය එක් කරන්න"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"පණිවිඩය යවන ලදී"</string>
<string name="view" msgid="8572192949673703830">"බලන්න"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-sk/strings.xml b/java/com/android/dialer/postcall/res/values-sk/strings.xml
index b3957ef3c..4dc61edd9 100644
--- a/java/com/android/dialer/postcall/res/values-sk/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-sk/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Zavolaj mi späť, keď budeš mať čas."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nie je to súrne, môžeme sa porozprávať neskôr."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Pridať správu"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Správa bola odoslaná"</string>
<string name="view" msgid="8572192949673703830">"Zobraziť"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-sl/strings.xml b/java/com/android/dialer/postcall/res/values-sl/strings.xml
index b4cd7bc23..52ee7da79 100644
--- a/java/com/android/dialer/postcall/res/values-sl/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-sl/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Ko si lahko vzameš nekaj časa, me pokliči."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Ni nujno, klepetava lahko tudi pozneje."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Dodaj sporočilo"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Sporočilo je bilo poslano"</string>
<string name="view" msgid="8572192949673703830">"Prikaži"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-sq/strings.xml b/java/com/android/dialer/postcall/res/values-sq/strings.xml
index e9f332522..470489187 100644
--- a/java/com/android/dialer/postcall/res/values-sq/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-sq/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Më telefono kur të kesh kohë."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Nuk është urgjente, mund të bisedojmë më vonë."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Shto një mesazh"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mesazhi u dërgua"</string>
<string name="view" msgid="8572192949673703830">"Shiko"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-sr/strings.xml b/java/com/android/dialer/postcall/res/values-sr/strings.xml
index dda01b77d..91f6a699b 100644
--- a/java/com/android/dialer/postcall/res/values-sr/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-sr/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Позовите ме кад будете имали времена."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Није хитно, можемо да ћаскамо касније."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Додај поруку"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Порука је послата"</string>
<string name="view" msgid="8572192949673703830">"Прикажи"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-sv/strings.xml b/java/com/android/dialer/postcall/res/values-sv/strings.xml
index bab1e73e8..630f39e9c 100644
--- a/java/com/android/dialer/postcall/res/values-sv/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-sv/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Ring tillbaka när du har tid."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Inte brådskande, vi kan prata senare."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Lägg till meddelande"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Meddelandet skickat"</string>
<string name="view" msgid="8572192949673703830">"Visa"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-sw/strings.xml b/java/com/android/dialer/postcall/res/values-sw/strings.xml
index 9e491e774..428f57e92 100644
--- a/java/com/android/dialer/postcall/res/values-sw/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-sw/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Nipigie ukipata nafasi."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Si jambo la dharura, tunaweza kuzungumza baadaye."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Ongeza ujumbe"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Ujumbe umetumwa"</string>
<string name="view" msgid="8572192949673703830">"Uangalie"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ta/strings.xml b/java/com/android/dialer/postcall/res/values-ta/strings.xml
index 97ebe6045..93deba17c 100644
--- a/java/com/android/dialer/postcall/res/values-ta/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ta/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"உங்களுக்கு நேரமிருக்கும் போது என்னைத் திரும்ப அழைக்கவும்."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"அவசரமில்லை, நாம் பின்னர் அரட்டையடிக்கலாம்."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"செய்தியைச் சேர்க்கவும்"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"செய்தி அனுப்பப்பட்டது"</string>
<string name="view" msgid="8572192949673703830">"காட்டு"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-te/strings.xml b/java/com/android/dialer/postcall/res/values-te/strings.xml
index ea37debe5..92fc68fe0 100644
--- a/java/com/android/dialer/postcall/res/values-te/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-te/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"మీకు సమయం ఉన్నప్పుడు నాకు తిరిగి కాల్ చేయండి."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"అత్యవసరమేమీ కాదు, మనం తర్వాత చాట్ చేసుకోవచ్చు."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"సందేశాన్ని జోడించండి"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"సందేశం పంపబడింది"</string>
<string name="view" msgid="8572192949673703830">"వీక్షించండి"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-th/strings.xml b/java/com/android/dialer/postcall/res/values-th/strings.xml
index 0280f0429..732d9a196 100644
--- a/java/com/android/dialer/postcall/res/values-th/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-th/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"ว่างแล้วโปรดโทรกลับ"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"ไม่ด่วนอะไร ไว้แชททีหลังก็ได้"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"เพิ่มข้อความ"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"ส่งข้อความแล้ว"</string>
<string name="view" msgid="8572192949673703830">"ดู"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-tl/strings.xml b/java/com/android/dialer/postcall/res/values-tl/strings.xml
index fafd4b5c3..2c882f571 100644
--- a/java/com/android/dialer/postcall/res/values-tl/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-tl/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Tawagan mo ako kapag may oras ka."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Hindi agaran, maaari tayong mag-chat sa ibang pagkakataon."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Magdagdag ng mensahe"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Naipadala ang mensahe"</string>
<string name="view" msgid="8572192949673703830">"Tingnan"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-tr/strings.xml b/java/com/android/dialer/postcall/res/values-tr/strings.xml
index 0a343e37d..acc21e4aa 100644
--- a/java/com/android/dialer/postcall/res/values-tr/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-tr/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Zamanınız olduğunda beni geri arayın."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Acil bir durum yok. Daha sonra konuşuruz."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Mesaj ekleyin"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Mesaj gönderildi"</string>
<string name="view" msgid="8572192949673703830">"Görüntüle"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-uk/strings.xml b/java/com/android/dialer/postcall/res/values-uk/strings.xml
index a7b4c3462..6d12f5ed3 100644
--- a/java/com/android/dialer/postcall/res/values-uk/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-uk/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Передзвоніть мені, коли матимете час."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Нічого термінового, поспілкуємося пізніше."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Додати повідомлення"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Повідомлення надіслано"</string>
<string name="view" msgid="8572192949673703830">"Переглянути"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-ur/strings.xml b/java/com/android/dialer/postcall/res/values-ur/strings.xml
index 0431f7a9b..d82d82b09 100644
--- a/java/com/android/dialer/postcall/res/values-ur/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-ur/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"جب آپ کے پاس کچھ وقت ہو تو مجھے واپس کال کریں۔"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"ارجنٹ نہیں ہے، ہم بعد میں چیٹ کر سکتے ہیں۔"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"پیغام شامل کریں"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"پیغام بھیج دیا گیا"</string>
<string name="view" msgid="8572192949673703830">"دیکھیں"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-uz/strings.xml b/java/com/android/dialer/postcall/res/values-uz/strings.xml
index cb6c6a456..0bb5db60f 100644
--- a/java/com/android/dialer/postcall/res/values-uz/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-uz/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Imkoniyatingiz bo‘lganda, menga qayta qo‘ng‘iroq qiling."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Bu shoshilinch emas. Keyinroq ham suhbatlashishimiz mumkin."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Xabar qo‘shish"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Xabar yuborildi"</string>
<string name="view" msgid="8572192949673703830">"Ko‘rish"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-vi/strings.xml b/java/com/android/dialer/postcall/res/values-vi/strings.xml
index 0ded0555c..9659e26e8 100644
--- a/java/com/android/dialer/postcall/res/values-vi/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-vi/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Hãy gọi lại cho tôi khi bạn có thời gian."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Không khẩn cấp, chúng ta có thể trò chuyện sau."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Thêm tin nhắn"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Đã gửi tin nhắn"</string>
<string name="view" msgid="8572192949673703830">"Xem"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-zh-rCN/strings.xml b/java/com/android/dialer/postcall/res/values-zh-rCN/strings.xml
index 031221679..835e3feb8 100644
--- a/java/com/android/dialer/postcall/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-zh-rCN/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"有空时给我回电。"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"不着急,稍后再聊。"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"添加信息"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"信息已发送"</string>
<string name="view" msgid="8572192949673703830">"查看"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-zh-rHK/strings.xml b/java/com/android/dialer/postcall/res/values-zh-rHK/strings.xml
index 80fa9d082..ecb1b2940 100644
--- a/java/com/android/dialer/postcall/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-zh-rHK/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"有空時請回電給我。"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"不急,稍後再聊也可以。"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"新增訊息"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"已傳送訊息"</string>
<string name="view" msgid="8572192949673703830">"查看"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-zh-rTW/strings.xml b/java/com/android/dialer/postcall/res/values-zh-rTW/strings.xml
index 0a50ad720..8fd54d2af 100644
--- a/java/com/android/dialer/postcall/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-zh-rTW/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"有空時請回電給我。"</string>
<string name="post_call_message_3" msgid="3932759658420368056">"不急,我們可以晚點再聊。"</string>
<string name="post_call_add_message" msgid="8298853527467080463">"加入訊息"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"訊息成功送出"</string>
<string name="view" msgid="8572192949673703830">"查看"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values-zu/strings.xml b/java/com/android/dialer/postcall/res/values-zu/strings.xml
index a7d9b66bf..a6854a3e1 100644
--- a/java/com/android/dialer/postcall/res/values-zu/strings.xml
+++ b/java/com/android/dialer/postcall/res/values-zu/strings.xml
@@ -22,6 +22,8 @@
<string name="post_call_message_2" msgid="5310301526176003385">"Ngishayele futhi uma unesikhathi."</string>
<string name="post_call_message_3" msgid="3932759658420368056">"Akusheshi, singaxoxa kamuva."</string>
<string name="post_call_add_message" msgid="8298853527467080463">"Engeza umlayezo"</string>
+ <!-- no translation found for post_call_send_message (8039569617234824873) -->
+ <skip />
<string name="post_call_message_sent" msgid="832757977985265036">"Umlayezo uthunyelwe"</string>
<string name="view" msgid="8572192949673703830">"Buka"</string>
</resources>
diff --git a/java/com/android/dialer/postcall/res/values/strings.xml b/java/com/android/dialer/postcall/res/values/strings.xml
index d5e085a05..c51d0d443 100644
--- a/java/com/android/dialer/postcall/res/values/strings.xml
+++ b/java/com/android/dialer/postcall/res/values/strings.xml
@@ -25,6 +25,8 @@
<string name="post_call_message_3">Not urgent, we can chat later.</string>
<!-- Asks the user if they want to send a post call message -->
<string name="post_call_add_message">Add message</string>
+ <!-- Asks the user if they want to send a post call message -->
+ <string name="post_call_send_message">Send message</string>
<!-- Shown to let the user know that their message was sent. -->
<string name="post_call_message_sent">Message sent</string>
<string name="view">View</string>
diff --git a/java/com/android/dialer/protos/ProtoParsers.java b/java/com/android/dialer/protos/ProtoParsers.java
new file mode 100644
index 000000000..b77c0699b
--- /dev/null
+++ b/java/com/android/dialer/protos/ProtoParsers.java
@@ -0,0 +1,188 @@
+/*
+ * 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.protos;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+import com.android.dialer.common.Assert;
+import com.google.protobuf.CodedOutputStream;
+import com.google.protobuf.InvalidProtocolBufferException;
+import com.google.protobuf.MessageLite;
+import java.io.IOException;
+
+/** Useful methods for using Protocol Buffers with Android. */
+public final class ProtoParsers {
+
+ private ProtoParsers() {}
+
+ /** Retrieve a proto from a Bundle which was not created within the current executable/version. */
+ @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes, so cast
+ public static <T extends MessageLite> T get(Bundle bundle, String key, T defaultInstance)
+ throws InvalidProtocolBufferException {
+ // Class loaders are unique to each Class instance, so we need to specify how to decode
+ // the information again, even though we set the class loaders when serializing the data.
+ bundle.setClassLoader(ProtoParsers.class.getClassLoader());
+ InternalDontUse parcelable = bundle.getParcelable(key);
+ return (T) parcelable.getMessageUnsafe(defaultInstance.getDefaultInstanceForType());
+ }
+
+ /**
+ * Retrieve a proto from a trusted bundle which was created within the current executable/version.
+ *
+ * @throws RuntimeException if the proto cannot be parsed
+ */
+ public static <T extends MessageLite> T getTrusted(Bundle bundle, String key, T defaultInstance) {
+ try {
+ return get(bundle, key, defaultInstance);
+ } catch (InvalidProtocolBufferException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * Retrieve a proto from a trusted bundle which was created within the current executable/version.
+ *
+ * @throws RuntimeException if the proto cannot be parsed
+ */
+ public static <T extends MessageLite> T getTrusted(Intent intent, String key, T defaultInstance) {
+ return getTrusted(intent.getExtras(), key, defaultInstance);
+ }
+
+ /**
+ * Stores a proto in a Bundle, for later retrieval by {@link #get(Bundle, String, MessageLite)} or
+ * {@link #getFromInstanceState(Bundle, String, MessageLite)}.
+ */
+ public static void put(Bundle bundle, String key, MessageLite message) {
+ bundle.putParcelable(key, new InternalDontUse<>(null, message));
+ }
+
+ /**
+ * Stores a proto in an Intent, for later retrieval by {@link #get(Bundle, String, MessageLite)}.
+ * Needs separate method because Intent has similar to but different API than Bundle.
+ */
+ public static void put(Intent intent, String key, MessageLite message) {
+ intent.putExtra(key, new InternalDontUse<>(null, message));
+ }
+
+ /** Returns a {@linkplain Parcelable} representation of this protobuf message. */
+ public static <T extends MessageLite> ParcelableProto<T> asParcelable(T message) {
+ return new InternalDontUse<>(null, message);
+ }
+
+ /**
+ * A protobuf message that can be stored in a {@link Parcel}.
+ *
+ * <p><b>Note:</b> This <code>Parcelable</code> can only be used in single app. Attempting to send
+ * it to another app through an <code>Intent</code> will result in an exception due to Proguard
+ * obfusation when the target application attempts to load the <code>ParcelableProto</code> class.
+ */
+ public interface ParcelableProto<T extends MessageLite> extends Parcelable {
+ /**
+ * @throws IllegalStateException if the parceled data does not correspond to the defaultInstance
+ * type.
+ */
+ T getMessage(T defaultInstance);
+ }
+
+ /** Public because of Parcelable requirements. Do not use. */
+ public static final class InternalDontUse<T extends MessageLite> implements ParcelableProto<T> {
+ /* One of these two fields is always populated - since the bytes field never escapes this
+ * object, there is no risk of concurrent modification by multiple threads, and volatile
+ * is sufficient to be thread-safe. */
+ private volatile byte[] bytes;
+ private volatile T message;
+
+ /**
+ * Ideally, we would have type safety here. However, a static field {@link Creator} is required
+ * by {@link Parcelable}. Static fields are inherently not type safe, since only 1 exists per
+ * class (rather than 1 per type).
+ */
+ public static final Parcelable.Creator<InternalDontUse<?>> CREATOR =
+ new Creator<InternalDontUse<?>>() {
+ @Override
+ public InternalDontUse<?> createFromParcel(Parcel parcel) {
+ int serializedSize = parcel.readInt();
+ byte[] array = new byte[serializedSize];
+ parcel.readByteArray(array);
+ return new InternalDontUse<>(array, null);
+ }
+
+ @Override
+ public InternalDontUse<?>[] newArray(int i) {
+ return new InternalDontUse[i];
+ }
+ };
+
+ private InternalDontUse(byte[] bytes, T message) {
+ Assert.checkArgument(bytes != null || message != null, "Must have a message or bytes");
+ this.bytes = bytes;
+ this.message = message;
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel parcel, int i) {
+ if (bytes == null) {
+ final byte[] flatArray = new byte[message.getSerializedSize()];
+ try {
+ message.writeTo(CodedOutputStream.newInstance(flatArray));
+ bytes = flatArray;
+ } catch (IOException impossible) {
+ throw new AssertionError(impossible);
+ }
+ }
+ parcel.writeInt(bytes.length);
+ parcel.writeByteArray(bytes);
+ }
+
+ @Override
+ public T getMessage(T defaultInstance) {
+ try {
+ // The proto should never be invalid if it came from our application, so if it is, throw.
+ return getMessageUnsafe(defaultInstance);
+ } catch (InvalidProtocolBufferException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
+ @SuppressWarnings("unchecked") // We're being deserialized, so there's no real type safety
+ T getMessageUnsafe(T defaultInstance) throws InvalidProtocolBufferException {
+ // There's a risk that we'll double-parse the bytes, but that's OK, because it'll end up
+ // as the same immutable object anyway.
+ if (message == null) {
+ message = (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
+ }
+ return message;
+ }
+ }
+
+ /** Parses a proto, throwing parser errors as runtime exceptions. */
+ @SuppressWarnings("unchecked") // We want to eventually optimize away parser classes
+ public static <T extends MessageLite> T mergeFrom(byte[] bytes, T defaultInstance) {
+ try {
+ return (T) defaultInstance.toBuilder().mergeFrom(bytes).build();
+ } catch (InvalidProtocolBufferException e) {
+ throw new RuntimeException(e);
+ }
+ }
+}
diff --git a/java/com/android/dialer/shortcuts/AndroidManifest.xml b/java/com/android/dialer/shortcuts/AndroidManifest.xml
index e731a3e68..71320517d 100644
--- a/java/com/android/dialer/shortcuts/AndroidManifest.xml
+++ b/java/com/android/dialer/shortcuts/AndroidManifest.xml
@@ -18,7 +18,7 @@
<uses-sdk
android:minSdkVersion="23"
- android:targetSdkVersion="25"/>
+ android:targetSdkVersion="26"/>
<application>
diff --git a/java/com/android/dialer/theme/res/values-af/strings.xml b/java/com/android/dialer/theme/res/values-af/strings.xml
index 6c496ce4f..3e92ef956 100644
--- a/java/com/android/dialer/theme/res/values-af/strings.xml
+++ b/java/com/android/dialer/theme/res/values-af/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Onbekend"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefoonhokkie"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Foon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-am/strings.xml b/java/com/android/dialer/theme/res/values-am/strings.xml
index a3ac81883..b8a5b1477 100644
--- a/java/com/android/dialer/theme/res/values-am/strings.xml
+++ b/java/com/android/dialer/theme/res/values-am/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"ያልታወቀ"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"የሕዝብ ስልክ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ስልክ"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ar/strings.xml b/java/com/android/dialer/theme/res/values-ar/strings.xml
index e4ac049a4..b1fa77aaa 100644
--- a/java/com/android/dialer/theme/res/values-ar/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ar/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"غير معروف"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"هاتف يعمل بالعملة"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"الهاتف"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-az/strings.xml b/java/com/android/dialer/theme/res/values-az/strings.xml
index 2335cf009..492fa2c99 100644
--- a/java/com/android/dialer/theme/res/values-az/strings.xml
+++ b/java/com/android/dialer/theme/res/values-az/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Naməlum"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
index bd719ecd1..adf133340 100644
--- a/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-b+sr+Latn/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Nepoznato"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-be/strings.xml b/java/com/android/dialer/theme/res/values-be/strings.xml
index 585c571c3..a86bfbb4f 100644
--- a/java/com/android/dialer/theme/res/values-be/strings.xml
+++ b/java/com/android/dialer/theme/res/values-be/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Невядомы"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Таксафон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Тэлефон"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-bg/strings.xml b/java/com/android/dialer/theme/res/values-bg/strings.xml
index 00e88927a..68aa1d457 100644
--- a/java/com/android/dialer/theme/res/values-bg/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bg/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Неизвестен номер"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Обществен телефон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-bn/strings.xml b/java/com/android/dialer/theme/res/values-bn/strings.xml
index 25b5d4823..90fce3310 100644
--- a/java/com/android/dialer/theme/res/values-bn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bn/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"অজানা"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"পে ফোন"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ফোন"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-bs/strings.xml b/java/com/android/dialer/theme/res/values-bs/strings.xml
index bd719ecd1..adf133340 100644
--- a/java/com/android/dialer/theme/res/values-bs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-bs/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Nepoznato"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefonska govornica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ca/strings.xml b/java/com/android/dialer/theme/res/values-ca/strings.xml
index 0e3ef6028..7c51c5b0f 100644
--- a/java/com/android/dialer/theme/res/values-ca/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ca/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Desconegut"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telèfon públic"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telèfon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-cs/strings.xml b/java/com/android/dialer/theme/res/values-cs/strings.xml
index bf632c58a..4b796d380 100644
--- a/java/com/android/dialer/theme/res/values-cs/strings.xml
+++ b/java/com/android/dialer/theme/res/values-cs/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Neznámé"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefonní automat"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-da/strings.xml b/java/com/android/dialer/theme/res/values-da/strings.xml
index 199018459..f4312bd8d 100644
--- a/java/com/android/dialer/theme/res/values-da/strings.xml
+++ b/java/com/android/dialer/theme/res/values-da/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Ukendt"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Mønttelefon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Opkald"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-de/strings.xml b/java/com/android/dialer/theme/res/values-de/strings.xml
index 54881924b..4c1fe34f0 100644
--- a/java/com/android/dialer/theme/res/values-de/strings.xml
+++ b/java/com/android/dialer/theme/res/values-de/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Unbekannt"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Münztelefon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-el/strings.xml b/java/com/android/dialer/theme/res/values-el/strings.xml
index 82e67d4ec..da20304e9 100644
--- a/java/com/android/dialer/theme/res/values-el/strings.xml
+++ b/java/com/android/dialer/theme/res/values-el/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Άγνωστος"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Τηλέφωνο με χρέωση"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Τηλέφωνο"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
index 451f13574..9c0650c08 100644
--- a/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rAU/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Unknown"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
index 451f13574..9c0650c08 100644
--- a/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rGB/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Unknown"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
index 451f13574..9c0650c08 100644
--- a/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-en-rIN/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Unknown"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Phone"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
index f0397a8ef..1e6a23795 100644
--- a/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es-rUS/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Desconocido"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-es/strings.xml b/java/com/android/dialer/theme/res/values-es/strings.xml
index f0397a8ef..1e6a23795 100644
--- a/java/com/android/dialer/theme/res/values-es/strings.xml
+++ b/java/com/android/dialer/theme/res/values-es/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Desconocido"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-et/strings.xml b/java/com/android/dialer/theme/res/values-et/strings.xml
index 13c662f35..2af58d510 100644
--- a/java/com/android/dialer/theme/res/values-et/strings.xml
+++ b/java/com/android/dialer/theme/res/values-et/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Tundmatu"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefoniautomaat"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-eu/strings.xml b/java/com/android/dialer/theme/res/values-eu/strings.xml
index 9637ce56b..37f15f1cb 100644
--- a/java/com/android/dialer/theme/res/values-eu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-eu/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Ezezaguna"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefono publikoa"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonoa"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-fa/strings.xml b/java/com/android/dialer/theme/res/values-fa/strings.xml
index ec03ec1b0..2fab699a9 100644
--- a/java/com/android/dialer/theme/res/values-fa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fa/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"ناشناس"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"تلفن عمومی"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"تلفن"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-fi/strings.xml b/java/com/android/dialer/theme/res/values-fi/strings.xml
index b729ff837..33fc0a09c 100644
--- a/java/com/android/dialer/theme/res/values-fi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fi/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Tuntematon"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Maksupuhelin"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Puhelin"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
index afbf86abd..d047c42f6 100644
--- a/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr-rCA/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Inconnu"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-fr/strings.xml b/java/com/android/dialer/theme/res/values-fr/strings.xml
index afbf86abd..d047c42f6 100644
--- a/java/com/android/dialer/theme/res/values-fr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-fr/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Inconnu"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Cabine téléphonique"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Téléphone"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-gl/strings.xml b/java/com/android/dialer/theme/res/values-gl/strings.xml
index ad7ee278c..e5da31445 100644
--- a/java/com/android/dialer/theme/res/values-gl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gl/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Descoñecido"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Teléfono público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Teléfono"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-gu/strings.xml b/java/com/android/dialer/theme/res/values-gu/strings.xml
index 0ab9312e4..764414e34 100644
--- a/java/com/android/dialer/theme/res/values-gu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-gu/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"અજાણ્યું"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"પેફોન"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ફોન"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-hi/strings.xml b/java/com/android/dialer/theme/res/values-hi/strings.xml
index 0922eef8c..af502874c 100644
--- a/java/com/android/dialer/theme/res/values-hi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hi/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"अज्ञात"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"पे-फ़ोन"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"फ़ोन"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-hr/strings.xml b/java/com/android/dialer/theme/res/values-hr/strings.xml
index cf314be8e..2e7cbf0cc 100644
--- a/java/com/android/dialer/theme/res/values-hr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hr/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Nepoznato"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Javna telefonska govornica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-hu/strings.xml b/java/com/android/dialer/theme/res/values-hu/strings.xml
index b7809fad3..51d7e5405 100644
--- a/java/com/android/dialer/theme/res/values-hu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hu/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Ismeretlen"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Nyilvános telefon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-hy/strings.xml b/java/com/android/dialer/theme/res/values-hy/strings.xml
index 71fc9f8c7..353d80b9b 100644
--- a/java/com/android/dialer/theme/res/values-hy/strings.xml
+++ b/java/com/android/dialer/theme/res/values-hy/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Անհայտ"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Բջջային տերմինալ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Հեռախոս"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-in/strings.xml b/java/com/android/dialer/theme/res/values-in/strings.xml
index 00178c25d..d340e6f2e 100644
--- a/java/com/android/dialer/theme/res/values-in/strings.xml
+++ b/java/com/android/dialer/theme/res/values-in/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Tidak diketahui"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telepon Umum"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telepon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-is/strings.xml b/java/com/android/dialer/theme/res/values-is/strings.xml
index e4af0b0cd..6c8f9ba6b 100644
--- a/java/com/android/dialer/theme/res/values-is/strings.xml
+++ b/java/com/android/dialer/theme/res/values-is/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Óþekkt"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Símasjálfsali"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Sími"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-it/strings.xml b/java/com/android/dialer/theme/res/values-it/strings.xml
index a495f5199..27a74b122 100644
--- a/java/com/android/dialer/theme/res/values-it/strings.xml
+++ b/java/com/android/dialer/theme/res/values-it/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Sconosciuto"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Cabina telefonica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefono"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-iw/strings.xml b/java/com/android/dialer/theme/res/values-iw/strings.xml
index 1e496f4b8..664fef61f 100644
--- a/java/com/android/dialer/theme/res/values-iw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-iw/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"לא ידוע"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"טלפון ציבורי"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"טלפון"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ja/strings.xml b/java/com/android/dialer/theme/res/values-ja/strings.xml
index 8649c372a..809ceb9d0 100644
--- a/java/com/android/dialer/theme/res/values-ja/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ja/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"不明"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"公衆電話"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ka/strings.xml b/java/com/android/dialer/theme/res/values-ka/strings.xml
index f826768a2..67bb8ceb4 100644
--- a/java/com/android/dialer/theme/res/values-ka/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ka/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"უცნობი"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"გადახდის ტელეფონი"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ტელეფონი"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-kk/strings.xml b/java/com/android/dialer/theme/res/values-kk/strings.xml
index a1b7e6d6e..4fabd8549 100644
--- a/java/com/android/dialer/theme/res/values-kk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kk/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Белгісіз"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Автомат-телефон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-km/strings.xml b/java/com/android/dialer/theme/res/values-km/strings.xml
index 1a880b7fd..163023cc4 100644
--- a/java/com/android/dialer/theme/res/values-km/strings.xml
+++ b/java/com/android/dialer/theme/res/values-km/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"មិន​ស្គាល់"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"ទូរស័ព្ទសាធារណៈ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ទូរស័ព្ទ"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-kn/strings.xml b/java/com/android/dialer/theme/res/values-kn/strings.xml
index 3338de3c6..48e2772c6 100644
--- a/java/com/android/dialer/theme/res/values-kn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-kn/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"ಅಪರಿಚಿತ"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"ಪೇಫೋನ್"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ಫೋನ್"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ko/strings.xml b/java/com/android/dialer/theme/res/values-ko/strings.xml
index 1f371f970..5a977f94a 100644
--- a/java/com/android/dialer/theme/res/values-ko/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ko/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"알 수 없음"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"공중전화"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"휴대전화"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ky/strings.xml b/java/com/android/dialer/theme/res/values-ky/strings.xml
index 6a82f8abc..e9283e073 100644
--- a/java/com/android/dialer/theme/res/values-ky/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ky/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Белгисиз"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-lo/strings.xml b/java/com/android/dialer/theme/res/values-lo/strings.xml
index 0f08eedd6..f9b1200dc 100644
--- a/java/com/android/dialer/theme/res/values-lo/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lo/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"ບໍ່ຮູ້ຈັກ"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ໂທລະສັບ"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-lt/strings.xml b/java/com/android/dialer/theme/res/values-lt/strings.xml
index ecb5b3f6f..80ac2baef 100644
--- a/java/com/android/dialer/theme/res/values-lt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lt/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Nežinomas"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Taksofonas"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefonas"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-lv/strings.xml b/java/com/android/dialer/theme/res/values-lv/strings.xml
index 69e33f8cd..05bd1eb0d 100644
--- a/java/com/android/dialer/theme/res/values-lv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-lv/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Nezināms"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Maksas tālrunis"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Tālrunis"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-mk/strings.xml b/java/com/android/dialer/theme/res/values-mk/strings.xml
index 6f9738201..491958209 100644
--- a/java/com/android/dialer/theme/res/values-mk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mk/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Непознато"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Говорница"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ml/strings.xml b/java/com/android/dialer/theme/res/values-ml/strings.xml
index 275f2c008..a49bb117d 100644
--- a/java/com/android/dialer/theme/res/values-ml/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ml/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"അജ്ഞാതം"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ഫോണ്‍"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-mn/strings.xml b/java/com/android/dialer/theme/res/values-mn/strings.xml
index ad115d1e2..23274857d 100644
--- a/java/com/android/dialer/theme/res/values-mn/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mn/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Тодорхойгүй"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Утас"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-mr/strings.xml b/java/com/android/dialer/theme/res/values-mr/strings.xml
index acab4db0c..ea6262cff 100644
--- a/java/com/android/dialer/theme/res/values-mr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-mr/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"अज्ञात"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"सार्वजनिक फोन"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ms/strings.xml b/java/com/android/dialer/theme/res/values-ms/strings.xml
index 0368a662a..b0c980420 100644
--- a/java/com/android/dialer/theme/res/values-ms/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ms/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Tidak diketahui"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefon Awam"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-my/strings.xml b/java/com/android/dialer/theme/res/values-my/strings.xml
index 27771ee0d..abd53db26 100644
--- a/java/com/android/dialer/theme/res/values-my/strings.xml
+++ b/java/com/android/dialer/theme/res/values-my/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"အကြောင်းအရာ မသိရှိ"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"ငွေပေးရသည့်ဖုန်း"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ဖုန်း"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-nb/strings.xml b/java/com/android/dialer/theme/res/values-nb/strings.xml
index 3164ab015..52a7d63d2 100644
--- a/java/com/android/dialer/theme/res/values-nb/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nb/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Ukjent"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ne/strings.xml b/java/com/android/dialer/theme/res/values-ne/strings.xml
index 7654d4920..ecc566ba4 100644
--- a/java/com/android/dialer/theme/res/values-ne/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ne/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"अज्ञात"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"पेफोन"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"फोन"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-nl/strings.xml b/java/com/android/dialer/theme/res/values-nl/strings.xml
index b01fecf23..c965c71e2 100644
--- a/java/com/android/dialer/theme/res/values-nl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-nl/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Onbekend"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefooncel"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-no/strings.xml b/java/com/android/dialer/theme/res/values-no/strings.xml
index 3164ab015..52a7d63d2 100644
--- a/java/com/android/dialer/theme/res/values-no/strings.xml
+++ b/java/com/android/dialer/theme/res/values-no/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Ukjent"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefonkiosk"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pa/strings.xml b/java/com/android/dialer/theme/res/values-pa/strings.xml
index 2adc68055..a0811f8d7 100644
--- a/java/com/android/dialer/theme/res/values-pa/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pa/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"ਅਗਿਆਤ"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"ਪੇਫੋਨ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ਫੋਨ"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pl/strings.xml b/java/com/android/dialer/theme/res/values-pl/strings.xml
index c62e6032b..83f27a9c9 100644
--- a/java/com/android/dialer/theme/res/values-pl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pl/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Nieznane"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Automat telefoniczny"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
index 14e78b284..55c2b83a1 100644
--- a/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rBR/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Desconhecido"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
index 14e78b284..55c2b83a1 100644
--- a/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt-rPT/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Desconhecido"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-pt/strings.xml b/java/com/android/dialer/theme/res/values-pt/strings.xml
index 14e78b284..55c2b83a1 100644
--- a/java/com/android/dialer/theme/res/values-pt/strings.xml
+++ b/java/com/android/dialer/theme/res/values-pt/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Desconhecido"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefone público"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefone"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ro/strings.xml b/java/com/android/dialer/theme/res/values-ro/strings.xml
index 54b95f3ef..274e0355b 100644
--- a/java/com/android/dialer/theme/res/values-ro/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ro/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Necunoscut"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefon public"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ru/strings.xml b/java/com/android/dialer/theme/res/values-ru/strings.xml
index 19e1254e6..3e60702e9 100644
--- a/java/com/android/dialer/theme/res/values-ru/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ru/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Неизвестно"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Телефон-автомат"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-si/strings.xml b/java/com/android/dialer/theme/res/values-si/strings.xml
index 5e245d4a9..3de993a89 100644
--- a/java/com/android/dialer/theme/res/values-si/strings.xml
+++ b/java/com/android/dialer/theme/res/values-si/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"නොදනී"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"පේෆෝනය"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"දුරකථනය"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sk/strings.xml b/java/com/android/dialer/theme/res/values-sk/strings.xml
index 4b8c01a8b..53692dfcc 100644
--- a/java/com/android/dialer/theme/res/values-sk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sk/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Neznáme"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefónny automat"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefón"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sl/strings.xml b/java/com/android/dialer/theme/res/values-sl/strings.xml
index 095fa1150..d56c39992 100644
--- a/java/com/android/dialer/theme/res/values-sl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sl/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Neznano"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefonska govorilnica"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sq/strings.xml b/java/com/android/dialer/theme/res/values-sq/strings.xml
index 4682e6c4a..b60971b45 100644
--- a/java/com/android/dialer/theme/res/values-sq/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sq/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"I panjohur"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefon me pagesë"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefoni"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sr/strings.xml b/java/com/android/dialer/theme/res/values-sr/strings.xml
index 37ebb8d09..ec732dfa1 100644
--- a/java/com/android/dialer/theme/res/values-sr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sr/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Непознато"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Телефонска говорница"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sv/strings.xml b/java/com/android/dialer/theme/res/values-sv/strings.xml
index 3d584efb4..fc166719e 100644
--- a/java/com/android/dialer/theme/res/values-sv/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sv/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Okänd"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Telefonautomat"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-sw/strings.xml b/java/com/android/dialer/theme/res/values-sw/strings.xml
index faa12a6ea..4a768ad06 100644
--- a/java/com/android/dialer/theme/res/values-sw/strings.xml
+++ b/java/com/android/dialer/theme/res/values-sw/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Haijulikani"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Simu ya kulipia"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Simu"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ta/strings.xml b/java/com/android/dialer/theme/res/values-ta/strings.xml
index 1c5d03d74..3ea68fad8 100644
--- a/java/com/android/dialer/theme/res/values-ta/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ta/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"தெரியாதவர்"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"கட்டணத் தொலைபேசி"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"மொபைல்"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-te/strings.xml b/java/com/android/dialer/theme/res/values-te/strings.xml
index 4df16b5c7..30dc1d3cf 100644
--- a/java/com/android/dialer/theme/res/values-te/strings.xml
+++ b/java/com/android/dialer/theme/res/values-te/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"తెలియదు"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"పే ఫోన్"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"ఫోన్"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-th/strings.xml b/java/com/android/dialer/theme/res/values-th/strings.xml
index b00922e85..586f62223 100644
--- a/java/com/android/dialer/theme/res/values-th/strings.xml
+++ b/java/com/android/dialer/theme/res/values-th/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"ไม่ทราบ"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"โทรศัพท์สาธารณะ"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"โทรศัพท์"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-tl/strings.xml b/java/com/android/dialer/theme/res/values-tl/strings.xml
index 84bff0a34..812e13442 100644
--- a/java/com/android/dialer/theme/res/values-tl/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tl/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Di-kilala"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Payphone"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telepono"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-tr/strings.xml b/java/com/android/dialer/theme/res/values-tr/strings.xml
index a2b9a8ddb..24a614a21 100644
--- a/java/com/android/dialer/theme/res/values-tr/strings.xml
+++ b/java/com/android/dialer/theme/res/values-tr/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Bilinmiyor"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Ankesörlü telefon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-uk/strings.xml b/java/com/android/dialer/theme/res/values-uk/strings.xml
index 31994bad8..394166b74 100644
--- a/java/com/android/dialer/theme/res/values-uk/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uk/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Невідомий"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Таксофон"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Телефон"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-ur/strings.xml b/java/com/android/dialer/theme/res/values-ur/strings.xml
index d06d21f81..167022d8a 100644
--- a/java/com/android/dialer/theme/res/values-ur/strings.xml
+++ b/java/com/android/dialer/theme/res/values-ur/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"نامعلوم"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"پے فون"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"فون"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-uz/strings.xml b/java/com/android/dialer/theme/res/values-uz/strings.xml
index b9f88019e..eab73eb96 100644
--- a/java/com/android/dialer/theme/res/values-uz/strings.xml
+++ b/java/com/android/dialer/theme/res/values-uz/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Noma’lum"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Taksofon"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Telefon"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-vi/strings.xml b/java/com/android/dialer/theme/res/values-vi/strings.xml
index 66e2ea4df..23bb9dcd4 100644
--- a/java/com/android/dialer/theme/res/values-vi/strings.xml
+++ b/java/com/android/dialer/theme/res/values-vi/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Không xác định"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Điện thoại công cộng"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Điện thoại"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
index b311a82e0..d1a5d9a67 100644
--- a/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rCN/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"未知"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"公用电话"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"电话"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
index 552720ee0..17e130560 100644
--- a/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rHK/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"未知"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"公共電話"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
index 87b642568..9c4e66133 100644
--- a/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zh-rTW/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"不明"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"公用電話"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"電話"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values-zu/strings.xml b/java/com/android/dialer/theme/res/values-zu/strings.xml
index f5a479ad3..fd294bd0a 100644
--- a/java/com/android/dialer/theme/res/values-zu/strings.xml
+++ b/java/com/android/dialer/theme/res/values-zu/strings.xml
@@ -18,6 +18,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="unknown" msgid="7932659017139013277">"Akwaziwa"</string>
+ <!-- no translation found for unknown_counter (7452889151953704159) -->
+ <skip />
<string name="payphone" msgid="7106361320283710387">"Ucingo olufakwa imali"</string>
<string name="launcherActivityLabel" msgid="9034868428899993166">"Ifoni"</string>
+ <!-- no translation found for call (3699617769606114168) -->
+ <skip />
</resources>
diff --git a/java/com/android/dialer/theme/res/values/colors.xml b/java/com/android/dialer/theme/res/values/colors.xml
index a31a75e4e..52af142b0 100644
--- a/java/com/android/dialer/theme/res/values/colors.xml
+++ b/java/com/android/dialer/theme/res/values/colors.xml
@@ -46,6 +46,8 @@
<!-- Color of the theme of the Dialer app -->
<color name="dialtacts_theme_color">@color/dialer_theme_color</color>
+ <!-- Background color of new dialer activity -->
+ <color name="background_dialer_light">#fafafa</color>
<!-- White background for dialer -->
<color name="background_dialer_white">#ffffff</color>
<color name="background_dialer_call_log_list_item">@color/background_dialer_white</color>
diff --git a/java/com/android/dialer/theme/res/values/strings.xml b/java/com/android/dialer/theme/res/values/strings.xml
index 3a954ae14..a14693f51 100644
--- a/java/com/android/dialer/theme/res/values/strings.xml
+++ b/java/com/android/dialer/theme/res/values/strings.xml
@@ -14,14 +14,22 @@
~ limitations under the License
-->
-<resources>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- String used to display calls from unknown numbers in the call log -->
<string name="unknown">Unknown</string>
+ <!-- String to identify an unknown/restricted callers. ex. "Unknown 1", "Restricted 2", ect. -->
+ <string name="unknown_counter">
+ <xliff:g id="unknown">%s</xliff:g> <xliff:g id="id">%d</xliff:g>
+ </string>
+
<!-- String used to display calls from pay phone in the call log -->
<string name="payphone">Payphone</string>
<!-- Title for the activity that dials the phone. This is the name
used in the Launcher icon. -->
<string name="launcherActivityLabel">Phone</string>
+
+ <!-- Label shown on the 'positive' button for the dialog. Indicates that the call will proceed -->
+ <string name="call">Call</string>
</resources>
diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java
index 5741e734a..466e86204 100644
--- a/java/com/android/dialer/util/PermissionsUtil.java
+++ b/java/com/android/dialer/util/PermissionsUtil.java
@@ -30,12 +30,13 @@ import com.android.dialer.common.LogUtil;
public class PermissionsUtil {
private static final String PERMISSION_PREFERENCE = "dialer_permissions";
+ private static final String CEQUINT_PERMISSION = "com.cequint.ecid.CALLER_ID_LOOKUP";
public static boolean hasPhonePermissions(Context context) {
return hasPermission(context, permission.CALL_PHONE);
}
- public static boolean hasContactsPermissions(Context context) {
+ public static boolean hasContactsReadPermissions(Context context) {
return hasPermission(context, permission.READ_CONTACTS);
}
@@ -51,6 +52,30 @@ public class PermissionsUtil {
return hasPermission(context, permission.RECORD_AUDIO);
}
+ public static boolean hasCallLogReadPermissions(Context context) {
+ return hasPermission(context, permission.READ_CALL_LOG);
+ }
+
+ public static boolean hasCallLogWritePermissions(Context context) {
+ return hasPermission(context, permission.WRITE_CALL_LOG);
+ }
+
+ public static boolean hasCequintPermissions(Context context) {
+ return hasPermission(context, CEQUINT_PERMISSION);
+ }
+
+ public static boolean hasReadVoicemailPermissions(Context context) {
+ return hasPermission(context, permission.READ_VOICEMAIL);
+ }
+
+ public static boolean hasWriteVoicemailPermissions(Context context) {
+ return hasPermission(context, permission.WRITE_VOICEMAIL);
+ }
+
+ public static boolean hasAddVoicemailPermissions(Context context) {
+ return hasPermission(context, permission.ADD_VOICEMAIL);
+ }
+
public static boolean hasPermission(Context context, String permission) {
return ContextCompat.checkSelfPermission(context, permission)
== PackageManager.PERMISSION_GRANTED;
diff --git a/java/com/android/dialer/util/TouchPointManager.java b/java/com/android/dialer/util/TouchPointManager.java
index 74f87c477..0bd7371cc 100644
--- a/java/com/android/dialer/util/TouchPointManager.java
+++ b/java/com/android/dialer/util/TouchPointManager.java
@@ -31,7 +31,7 @@ public class TouchPointManager {
private Point mPoint = new Point();
- /** Private constructor. Instance should only be acquired through getInstance(). */
+ /** Private constructor. Instance should only be acquired through getRunningInstance(). */
private TouchPointManager() {}
public static TouchPointManager getInstance() {
diff --git a/java/com/android/incallui/AndroidManifest.xml b/java/com/android/incallui/AndroidManifest.xml
index 276b47a5e..8539bd0cf 100644
--- a/java/com/android/incallui/AndroidManifest.xml
+++ b/java/com/android/incallui/AndroidManifest.xml
@@ -19,7 +19,7 @@
<uses-sdk
android:minSdkVersion="23"
- android:targetSdkVersion="25"/>
+ android:targetSdkVersion="26"/>
<uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE"/>
<!-- We use this to disable the status bar buttons of home, back and recent
diff --git a/java/com/android/incallui/AnswerScreenPresenter.java b/java/com/android/incallui/AnswerScreenPresenter.java
index 8116f131b..ca34aa6aa 100644
--- a/java/com/android/incallui/AnswerScreenPresenter.java
+++ b/java/com/android/incallui/AnswerScreenPresenter.java
@@ -180,6 +180,9 @@ public class AnswerScreenPresenter
@Override
public void onHandoverToWifiFailure() {}
+
+ @Override
+ public void onInternationalCallOnWifi() {}
}
private boolean isSmsResponseAllowed(DialerCall call) {
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index a51f54edb..0b3592d01 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -373,6 +373,9 @@ public class CallCardPresenter
@Override
public void onHandoverToWifiFailure() {}
+ @Override
+ public void onInternationalCallOnWifi() {}
+
/** Handles a change to the child number by refreshing the primary call info. */
@Override
public void onDialerCallChildNumberChange() {
@@ -664,8 +667,16 @@ public class CallCardPresenter
MultimediaData multimediaData = null;
if (mPrimary.getNumber() != null) {
EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
+
+ EnrichedCallManager.Filter filter;
+ if (mPrimary.isIncoming()) {
+ filter = manager.createIncomingCallComposerFilter();
+ } else {
+ filter = manager.createOutgoingCallComposerFilter();
+ }
+
Session enrichedCallSession =
- manager.getSession(mPrimary.getUniqueCallId(), mPrimary.getNumber());
+ manager.getSession(mPrimary.getUniqueCallId(), mPrimary.getNumber(), filter);
mPrimary.setEnrichedCallSession(enrichedCallSession);
mPrimary.setEnrichedCallCapabilities(manager.getCapabilities(mPrimary.getNumber()));
@@ -729,7 +740,7 @@ public class CallCardPresenter
mInCallScreen.setPrimary(
new PrimaryInfo(
number,
- name,
+ mPrimary.updateNameIfRestricted(name),
nameIsNumber,
shouldShowLocationAsLabel(nameIsNumber, mPrimaryContactInfo.shouldShowLocation)
? mPrimaryContactInfo.location
@@ -882,7 +893,7 @@ public class CallCardPresenter
mInCallScreen.setSecondary(
new SecondaryInfo(
true /* show */,
- name,
+ mSecondary.updateNameIfRestricted(name),
nameIsNumber,
mSecondaryContactInfo.label,
mSecondary.getCallProviderLabel(),
diff --git a/java/com/android/incallui/CallerInfoUtils.java b/java/com/android/incallui/CallerInfoUtils.java
index 7c14533bb..564446647 100644
--- a/java/com/android/incallui/CallerInfoUtils.java
+++ b/java/com/android/incallui/CallerInfoUtils.java
@@ -64,7 +64,7 @@ public class CallerInfoUtils {
// TODO: Have phoneapp send a Uri when it knows the contact that triggered this call.
if (info.numberPresentation == TelecomManager.PRESENTATION_ALLOWED) {
- if (PermissionsUtil.hasContactsPermissions(context)) {
+ if (PermissionsUtil.hasContactsReadPermissions(context)) {
// Start the query with the number provided from the call.
LogUtil.d(
"CallerInfoUtils.getCallerInfoForCall",
diff --git a/java/com/android/incallui/ConferenceParticipantListAdapter.java b/java/com/android/incallui/ConferenceParticipantListAdapter.java
index 72c0fcd20..712bdefa6 100644
--- a/java/com/android/incallui/ConferenceParticipantListAdapter.java
+++ b/java/com/android/incallui/ConferenceParticipantListAdapter.java
@@ -232,11 +232,14 @@ public class ConferenceParticipantListAdapter extends BaseAdapter {
boolean thisRowCanDisconnect =
call.can(android.telecom.Call.Details.CAPABILITY_DISCONNECT_FROM_CONFERENCE);
+ String name =
+ ContactDisplayUtils.getPreferredDisplayName(
+ contactCache.namePrimary, contactCache.nameAlternative, mContactsPreferences);
+
setCallerInfoForRow(
result,
contactCache.namePrimary,
- ContactDisplayUtils.getPreferredDisplayName(
- contactCache.namePrimary, contactCache.nameAlternative, mContactsPreferences),
+ call.updateNameIfRestricted(name),
contactCache.number,
contactCache.label,
contactCache.lookupKey,
diff --git a/java/com/android/incallui/ContactInfoCache.java b/java/com/android/incallui/ContactInfoCache.java
index 3014de363..4c8ede906 100644
--- a/java/com/android/incallui/ContactInfoCache.java
+++ b/java/com/android/incallui/ContactInfoCache.java
@@ -25,7 +25,6 @@ import android.net.Uri;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.SystemClock;
-import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.DisplayNameSources;
@@ -102,15 +101,12 @@ public class ContactInfoCache implements OnImageLoadCompleteListener {
cacheInfo.setSource(ContactSource.Type.SOURCE_TYPE_CNAP, "CNAP", 0);
contactInfo.name = input.cnapName;
contactInfo.number = input.number;
- contactInfo.type = ContactsContract.CommonDataKinds.Phone.TYPE_MAIN;
try {
final JSONObject contactRows =
new JSONObject()
.put(
Phone.CONTENT_ITEM_TYPE,
- new JSONObject()
- .put(Phone.NUMBER, contactInfo.number)
- .put(Phone.TYPE, Phone.TYPE_MAIN));
+ new JSONObject().put(Phone.NUMBER, contactInfo.number));
final String jsonString =
new JSONObject()
.put(Contacts.DISPLAY_NAME, contactInfo.name)
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index 03e5ab29a..cc9a8e438 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -23,6 +23,7 @@ import android.graphics.drawable.GradientDrawable.Orientation;
import android.os.Bundle;
import android.support.annotation.ColorInt;
import android.support.annotation.FloatRange;
+import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
@@ -242,7 +243,6 @@ public class InCallActivity extends TransactionSafeFragmentActivity
@Override
protected void onNewIntent(Intent intent) {
LogUtil.i("InCallActivity.onNewIntent", "");
- common.onNewIntent(intent);
// If the screen is off, we need to make sure it gets turned on for incoming calls.
// This normally works just fine thanks to FLAG_TURN_SCREEN_ON but that only works
@@ -250,8 +250,11 @@ public class InCallActivity extends TransactionSafeFragmentActivity
// for the call waiting case, we recreate() the current activity. There should be no jank from
// this since the screen is already off and will remain so until our new activity is up.
if (!isVisible()) {
+ common.onNewIntent(intent, true /* isRecreating */);
LogUtil.i("InCallActivity.onNewIntent", "Restarting InCallActivity to force screen on.");
recreate();
+ } else {
+ common.onNewIntent(intent, false /* isRecreating */);
}
}
@@ -485,6 +488,11 @@ public class InCallActivity extends TransactionSafeFragmentActivity
common.showWifiFailedDialog(call);
}
+ public void onInternationalCallOnWifi(@NonNull DialerCall call) {
+ LogUtil.enterBlock("InCallActivity.onInternationalCallOnWifi");
+ common.showInternationalCallOnWifiDialog(call);
+ }
+
public void setAllowOrientationChange(boolean allowOrientationChange) {
if (!allowOrientationChange) {
setRequestedOrientation(InCallOrientationEventListener.ACTIVITY_PREFERENCE_DISALLOW_ROTATION);
@@ -526,7 +534,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity
"shouldShowAnswerUi: %b, shouldShowVideoUi: %b, "
+ "didShowAnswerScreen: %b, didShowInCallScreen: %b, didShowVideoCallScreen: %b",
shouldShowAnswerUi.shouldShow,
- shouldShowVideoUi,
+ shouldShowVideoUi.shouldShow,
didShowAnswerScreen,
didShowInCallScreen,
didShowVideoCallScreen);
diff --git a/java/com/android/incallui/InCallActivityCommon.java b/java/com/android/incallui/InCallActivityCommon.java
index 01dc1bb36..4b0a3cd05 100644
--- a/java/com/android/incallui/InCallActivityCommon.java
+++ b/java/com/android/incallui/InCallActivityCommon.java
@@ -62,6 +62,8 @@ import com.android.incallui.call.CallList;
import com.android.incallui.call.DialerCall;
import com.android.incallui.call.DialerCall.State;
import com.android.incallui.call.TelecomAdapter;
+import com.android.incallui.telecomeventui.InternationalCallOnWifiDialogFragment;
+import com.android.incallui.telecomeventui.InternationalCallOnWifiDialogFragment.Callback;
import com.android.incallui.wifi.EnableWifiCallingPrompt;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -80,6 +82,7 @@ public class InCallActivityCommon {
private static final String TAG_SELECT_ACCOUNT_FRAGMENT = "tag_select_account_fragment";
private static final String TAG_DIALPAD_FRAGMENT = "tag_dialpad_fragment";
+ private static final String TAG_INTERNATIONAL_CALL_ON_WIFI = "tag_international_call_on_wifi";
@Retention(RetentionPolicy.SOURCE)
@IntDef({
@@ -107,7 +110,7 @@ public class InCallActivityCommon {
private String dtmfTextToPreopulate;
@DialpadRequestType private int showDialpadRequest = DIALPAD_REQUEST_NONE;
- private SelectPhoneAccountListener selectAccountListener =
+ private final SelectPhoneAccountListener selectAccountListener =
new SelectPhoneAccountListener() {
@Override
public void onPhoneAccountSelected(
@@ -133,6 +136,25 @@ public class InCallActivityCommon {
}
};
+ private InternationalCallOnWifiDialogFragment.Callback internationalCallOnWifiCallback =
+ new Callback() {
+ @Override
+ public void continueCall(@NonNull String callId) {
+ LogUtil.i("InCallActivityCommon.continueCall", "continuing call with id: %s", callId);
+ }
+
+ @Override
+ public void cancelCall(@NonNull String callId) {
+ DialerCall call = CallList.getInstance().getCallById(callId);
+ if (call == null) {
+ LogUtil.i("InCallActivityCommon.cancelCall", "call destroyed before dialog closed");
+ return;
+ }
+ LogUtil.i("InCallActivityCommon.cancelCall", "disconnecting international call on wifi");
+ call.disconnect();
+ }
+ };
+
public static void setIntentExtras(
Intent intent, boolean showDialpad, boolean newOutgoingCall, boolean isForFullScreen) {
if (showDialpad) {
@@ -210,6 +232,17 @@ public class InCallActivityCommon {
}
}
+ InternationalCallOnWifiDialogFragment existingInternationalFragment =
+ (InternationalCallOnWifiDialogFragment)
+ inCallActivity
+ .getSupportFragmentManager()
+ .findFragmentByTag(TAG_INTERNATIONAL_CALL_ON_WIFI);
+ if (existingInternationalFragment != null) {
+ LogUtil.i(
+ "InCallActivityCommon.onCreate", "international fragment exists attaching callback");
+ existingInternationalFragment.setCallback(internationalCallOnWifiCallback);
+ }
+
inCallOrientationEventListener = new InCallOrientationEventListener(inCallActivity);
}
@@ -300,7 +333,7 @@ public class InCallActivityCommon {
InCallPresenter.getInstance().updateIsChangingConfigurations();
}
- public void onNewIntent(Intent intent) {
+ void onNewIntent(Intent intent, boolean isRecreating) {
LogUtil.i("InCallActivityCommon.onNewIntent", "");
// We're being re-launched with a new Intent. Since it's possible for a
@@ -317,7 +350,10 @@ public class InCallActivityCommon {
// we can count on our onResume() method being called next.
// Just like in onCreate(), handle the intent.
- internalResolveIntent(intent);
+ // Skip if InCallActivity is going to recreate since this will be called in onCreate().
+ if (!isRecreating) {
+ internalResolveIntent(intent);
+ }
}
public boolean onBackPressed(boolean isInCallScreenVisible) {
@@ -414,6 +450,7 @@ public class InCallActivityCommon {
break;
case KeyEvent.KEYCODE_EQUALS:
break;
+ default: // fall out
}
return event.getRepeatCount() == 0 && handleDialerKeyDown(keyCode, event);
@@ -506,6 +543,18 @@ public class InCallActivityCommon {
selectPhoneAccountDialogFragment.dismiss();
selectPhoneAccountDialogFragment = null;
}
+
+ InternationalCallOnWifiDialogFragment internationalCallOnWifiFragment =
+ (InternationalCallOnWifiDialogFragment)
+ inCallActivity
+ .getSupportFragmentManager()
+ .findFragmentByTag(TAG_INTERNATIONAL_CALL_ON_WIFI);
+ if (internationalCallOnWifiFragment != null) {
+ LogUtil.i(
+ "InCallActivityCommon.dismissPendingDialogs",
+ "dismissing InternationalCallOnWifiDialogFragment");
+ internationalCallOnWifiFragment.dismiss();
+ }
}
private static boolean shouldShowDisconnectErrorDialog(@NonNull DisconnectCause cause) {
@@ -580,6 +629,21 @@ public class InCallActivityCommon {
}
}
+ void showInternationalCallOnWifiDialog(@NonNull DialerCall call) {
+ LogUtil.enterBlock("InCallActivityCommon.showInternationalCallOnWifiDialog");
+ if (!InternationalCallOnWifiDialogFragment.shouldShow(inCallActivity)) {
+ LogUtil.i(
+ "InCallActivityCommon.showInternationalCallOnWifiDialog",
+ "InternationalCallOnWifiDialogFragment.shouldShow returned false");
+ return;
+ }
+
+ InternationalCallOnWifiDialogFragment fragment =
+ InternationalCallOnWifiDialogFragment.newInstance(
+ call.getId(), internationalCallOnWifiCallback);
+ fragment.show(inCallActivity.getSupportFragmentManager(), TAG_INTERNATIONAL_CALL_ON_WIFI);
+ }
+
public void showWifiToLteHandoverToast(DialerCall call) {
if (call.hasShownWiFiToLteHandoverToast()) {
return;
diff --git a/java/com/android/incallui/InCallPresenter.java b/java/com/android/incallui/InCallPresenter.java
index a1643d67c..9c8120c92 100644
--- a/java/com/android/incallui/InCallPresenter.java
+++ b/java/com/android/incallui/InCallPresenter.java
@@ -34,13 +34,13 @@ import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.view.Window;
import android.view.WindowManager;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.compat.CallCompat;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler.OnCheckBlockedListener;
import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.common.LogUtil;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.InteractionEvent;
import com.android.dialer.logging.Logger;
import com.android.dialer.postcall.PostCall;
@@ -249,7 +249,7 @@ public class InCallPresenter implements CallList.Listener {
private VideoSurfaceTexture mLocalVideoSurfaceTexture;
private VideoSurfaceTexture mRemoteVideoSurfaceTexture;
- /** Inaccessible constructor. Must use getInstance() to get this singleton. */
+ /** Inaccessible constructor. Must use getRunningInstance() to get this singleton. */
@VisibleForTesting
InCallPresenter() {}
@@ -260,6 +260,11 @@ public class InCallPresenter implements CallList.Listener {
return sInCallPresenter;
}
+ @VisibleForTesting
+ public static synchronized void setInstanceForTesting(InCallPresenter inCallPresenter) {
+ sInCallPresenter = inCallPresenter;
+ }
+
/**
* Determines whether or not a call has no valid phone accounts that can be used to make the call
* with. Emergency calls do not require a phone account.
@@ -636,6 +641,14 @@ public class InCallPresenter implements CallList.Listener {
}
}
+ @Override
+ public void onInternationalCallOnWifi(@NonNull DialerCall call) {
+ LogUtil.enterBlock("InCallPresenter.onInternationalCallOnWifi");
+ if (mInCallActivity != null) {
+ mInCallActivity.onInternationalCallOnWifi(call);
+ }
+ }
+
/**
* Called when there is a change to the call list. Sets the In-Call state for the entire in-call
* app based on the information it gets from CallList. Dispatches the in-call state to all
@@ -762,11 +775,17 @@ public class InCallPresenter implements CallList.Listener {
if (!mCallList.hasLiveCall()
&& !call.getLogState().isIncoming
+ && !isSecretCode(call.getNumber())
&& !CallerInfoUtils.isVoiceMailNumber(mContext, call)) {
- PostCall.onCallDisconnected(mContext, call.getNumber(), call.getTimeAddedMs());
+ PostCall.onCallDisconnected(mContext, call.getNumber(), call.getConnectTimeMillis());
}
}
+ private boolean isSecretCode(@Nullable String number) {
+ return number != null
+ && (number.length() <= 8 || number.startsWith("*#*#") || number.endsWith("#*#*"));
+ }
+
/** Given the call list, return the state in which the in-call screen should be. */
public InCallState getPotentialStateFromCallList(CallList callList) {
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index a6a81c6ef..af541b0e5 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -97,9 +97,12 @@ public class StatusBarNotifier
// Indicates that no notification is currently showing.
private static final int NOTIFICATION_NONE = 0;
// Notification for an active call. This is non-interruptive, but cannot be dismissed.
- private static final int NOTIFICATION_IN_CALL = R.id.notification_ongoing_call;
+ private static final int NOTIFICATION_IN_CALL = 1;
// Notification for incoming calls. This is interruptive and will show up as a HUN.
- private static final int NOTIFICATION_INCOMING_CALL = R.id.notification_incoming_call;
+ private static final int NOTIFICATION_INCOMING_CALL = 2;
+ // Notification for incoming calls in the case where there is already an active call.
+ // This is non-interruptive, but otherwise behaves the same as NOTIFICATION_INCOMING_CALL
+ private static final int NOTIFICATION_INCOMING_CALL_QUIET = 3;
private static final int PENDING_INTENT_REQUEST_CODE_NON_FULL_SCREEN = 0;
private static final int PENDING_INTENT_REQUEST_CODE_FULL_SCREEN = 1;
@@ -144,8 +147,7 @@ public class StatusBarNotifier
NotificationManager notificationManager =
backupContext.getSystemService(NotificationManager.class);
- notificationManager.cancel(NOTIFICATION_IN_CALL);
- notificationManager.cancel(NOTIFICATION_INCOMING_CALL);
+ notificationManager.cancel(R.id.notification_ongoing_call);
}
private static int getWorkStringFromPersonalString(int resId) {
@@ -224,7 +226,7 @@ public class StatusBarNotifier
}
if (mCurrentNotification != NOTIFICATION_NONE) {
LogUtil.i("StatusBarNotifier.cancelNotification", "cancel");
- mNotificationManager.cancel(mCurrentNotification);
+ mNotificationManager.cancel(R.id.notification_ongoing_call);
}
mCurrentNotification = NOTIFICATION_NONE;
}
@@ -311,7 +313,11 @@ public class StatusBarNotifier
if (callState == DialerCall.State.INCOMING
|| callState == DialerCall.State.CALL_WAITING
|| isVideoUpgradeRequest) {
- notificationType = NOTIFICATION_INCOMING_CALL;
+ boolean alreadyActive =
+ callList.getActiveOrBackgroundCall() != null
+ && InCallPresenter.getInstance().isShowingInCallUi();
+ notificationType =
+ alreadyActive ? NOTIFICATION_INCOMING_CALL_QUIET : NOTIFICATION_INCOMING_CALL;
} else {
notificationType = NOTIFICATION_IN_CALL;
}
@@ -340,7 +346,6 @@ public class StatusBarNotifier
.setColor(mContext.getResources().getColor(R.color.dialer_theme_color, mContext.getTheme()))
// Hide work call state for the lock screen notification
.setContentTitle(getContentString(call, ContactsUtils.USER_TYPE_CURRENT));
- setColorized(publicBuilder);
setNotificationWhen(call, callState, publicBuilder);
// Builder for the notification shown when the device is unlocked or the user has set their
@@ -356,17 +361,37 @@ public class StatusBarNotifier
if (accountHandle == null) {
accountHandle = getAnyPhoneAccount();
}
- if (notificationType == NOTIFICATION_INCOMING_CALL) {
- NotificationChannelManager.applyChannel(
- builder, mContext, Channel.INCOMING_CALL, accountHandle);
- configureFullScreenIntent(
- builder, createLaunchPendingIntent(true /* isFullScreen */), callList, call);
- // Set the notification category and bump the priority for incoming calls
- builder.setCategory(Notification.CATEGORY_CALL);
- builder.setPriority(Notification.PRIORITY_MAX);
- } else {
- NotificationChannelManager.applyChannel(
- builder, mContext, Channel.ONGOING_CALL, accountHandle);
+
+ LogUtil.i("StatusBarNotifier.buildAndSendNotification", "notificationType=" + notificationType);
+ switch (notificationType) {
+ case NOTIFICATION_INCOMING_CALL:
+ NotificationChannelManager.applyChannel(
+ builder, mContext, Channel.INCOMING_CALL, accountHandle);
+ configureFullScreenIntent(builder, createLaunchPendingIntent(true /* isFullScreen */));
+ // Set the notification category and bump the priority for incoming calls
+ builder.setCategory(Notification.CATEGORY_CALL);
+ // This will be ignored on O+ and handled by the channel
+ //noinspection deprecation
+ builder.setPriority(Notification.PRIORITY_MAX);
+ if (mCurrentNotification != NOTIFICATION_INCOMING_CALL) {
+ LogUtil.i(
+ "StatusBarNotifier.buildAndSendNotification",
+ "Canceling old notification so this one can be noisy");
+ // Moving from a non-interuptive notification (or none) to a noisy one. Cancel the old
+ // notification (if there is one) so the fullScreenIntent or HUN will show
+ mNotificationManager.cancel(R.id.notification_ongoing_call);
+ }
+ break;
+ case NOTIFICATION_INCOMING_CALL_QUIET:
+ NotificationChannelManager.applyChannel(
+ builder, mContext, Channel.ONGOING_CALL, accountHandle);
+ break;
+ case NOTIFICATION_IN_CALL:
+ setColorized(publicBuilder);
+ setColorized(builder);
+ NotificationChannelManager.applyChannel(
+ builder, mContext, Channel.ONGOING_CALL, accountHandle);
+ break;
}
// Set the content
@@ -376,7 +401,6 @@ public class StatusBarNotifier
builder.setLargeIcon(largeIcon);
builder.setColor(
mContext.getResources().getColor(R.color.dialer_theme_color, mContext.getTheme()));
- setColorized(builder);
if (isVideoUpgradeRequest) {
builder.setUsesChronometer(false);
@@ -406,19 +430,13 @@ public class StatusBarNotifier
LogUtil.v("StatusBarNotifier.buildAndSendNotification", "playing call waiting tone");
mDialerRingtoneManager.playCallWaitingTone();
}
- if (mCurrentNotification != notificationType && mCurrentNotification != NOTIFICATION_NONE) {
- LogUtil.i(
- "StatusBarNotifier.buildAndSendNotification",
- "previous notification already showing - cancelling " + mCurrentNotification);
- mNotificationManager.cancel(mCurrentNotification);
- }
LogUtil.i(
"StatusBarNotifier.buildAndSendNotification",
"displaying notification for " + notificationType);
try {
- mNotificationManager.notify(notificationType, notification);
+ mNotificationManager.notify(R.id.notification_ongoing_call, notification);
} catch (RuntimeException e) {
// TODO(b/34744003): Move the memory stats into silent feedback PSD.
ActivityManager activityManager = mContext.getSystemService(ActivityManager.class);
@@ -681,7 +699,11 @@ public class StatusBarNotifier
EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager();
Session session = null;
if (call.getNumber() != null) {
- session = manager.getSession(call.getUniqueCallId(), call.getNumber());
+ session =
+ manager.getSession(
+ call.getUniqueCallId(),
+ call.getNumber(),
+ manager.createIncomingCallComposerFilter());
}
if (call.isSpam()) {
@@ -844,8 +866,7 @@ public class StatusBarNotifier
builder.addAction(
new Notification.Action.Builder(
Icon.createWithResource(mContext, R.drawable.ic_call_end_white_24dp),
- getActionText(
- R.string.notification_action_end_call, R.color.notification_action_end_call),
+ mContext.getText(R.string.notification_action_end_call),
hangupPendingIntent)
.build());
}
@@ -897,8 +918,7 @@ public class StatusBarNotifier
}
/** Adds fullscreen intent to the builder. */
- private void configureFullScreenIntent(
- Notification.Builder builder, PendingIntent intent, CallList callList, DialerCall call) {
+ private void configureFullScreenIntent(Notification.Builder builder, PendingIntent intent) {
// Ok, we actually want to launch the incoming call
// UI at this point (in addition to simply posting a notification
// to the status bar). Setting fullScreenIntent will cause
@@ -906,51 +926,15 @@ public class StatusBarNotifier
// current foreground activity is marked as "immersive".
LogUtil.d("StatusBarNotifier.configureFullScreenIntent", "setting fullScreenIntent: " + intent);
builder.setFullScreenIntent(intent, true);
-
- // Ugly hack alert:
- //
- // The NotificationManager has the (undocumented) behavior
- // that it will *ignore* the fullScreenIntent field if you
- // post a new Notification that matches the ID of one that's
- // already active. Unfortunately this is exactly what happens
- // when you get an incoming call-waiting call: the
- // "ongoing call" notification is already visible, so the
- // InCallScreen won't get launched in this case!
- // (The result: if you bail out of the in-call UI while on a
- // call and then get a call-waiting call, the incoming call UI
- // won't come up automatically.)
- //
- // The workaround is to just notice this exact case (this is a
- // call-waiting call *and* the InCallScreen is not in the
- // foreground) and manually cancel the in-call notification
- // before (re)posting it.
- //
- // TODO: there should be a cleaner way of avoiding this
- // problem (see discussion in bug 3184149.)
-
- // If a call is onhold during an incoming call, the call actually comes in as
- // INCOMING. For that case *and* traditional call-waiting, we want to
- // cancel the notification.
- boolean isCallWaiting =
- (call.getState() == DialerCall.State.CALL_WAITING
- || (call.getState() == DialerCall.State.INCOMING
- && callList.getBackgroundCall() != null));
-
- if (isCallWaiting) {
- LogUtil.i(
- "StatusBarNotifier.configureFullScreenIntent",
- "updateInCallNotification: call-waiting! force relaunch...");
- // Cancel the IN_CALL_NOTIFICATION immediately before
- // (re)posting it; this seems to force the
- // NotificationManager to launch the fullScreenIntent.
- mNotificationManager.cancel(NOTIFICATION_IN_CALL);
- }
}
private Notification.Builder getNotificationBuilder() {
final Notification.Builder builder = new Notification.Builder(mContext);
builder.setOngoing(true);
builder.setOnlyAlertOnce(true);
+ // This will be ignored on O+ and handled by the channel
+ //noinspection deprecation
+ builder.setPriority(Notification.PRIORITY_HIGH);
return builder;
}
@@ -1020,6 +1004,9 @@ public class StatusBarNotifier
@Override
public void onHandoverToWifiFailure() {}
+ @Override
+ public void onInternationalCallOnWifi() {}
+
/**
* Responds to changes in the session modification state for the call by dismissing the status
* bar notification as required.
diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java
index 7fa559d6e..1f0541c4b 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -543,7 +543,10 @@ public class AnswerFragment extends Fragment
// Needs replacement
newFragment =
MultimediaFragment.newInstance(
- multimediaData, false /* isInteractive */, true /* showAvatar */);
+ multimediaData,
+ false /* isInteractive */,
+ !primaryInfo.isSpam /* showAvatar */,
+ primaryInfo.isSpam);
}
} else if (shouldShowAvatar()) {
// Needs Avatar
@@ -658,9 +661,6 @@ public class AnswerFragment extends Fragment
affordanceHolderLayout.setAffordanceCallback(affordanceCallback);
importanceBadge = view.findViewById(R.id.incall_important_call_badge);
- PillDrawable importanceBackground = new PillDrawable();
- importanceBackground.setColor(getContext().getColor(android.R.color.white));
- importanceBadge.setBackground(importanceBackground);
importanceBadge
.getViewTreeObserver()
.addOnGlobalLayoutListener(
@@ -771,6 +771,7 @@ public class AnswerFragment extends Fragment
public void onPause() {
super.onPause();
LogUtil.i("AnswerFragment.onPause", null);
+ inCallScreenDelegate.onInCallScreenPaused();
}
@Override
@@ -941,6 +942,9 @@ public class AnswerFragment extends Fragment
private void showMessageMenu() {
LogUtil.i("AnswerFragment.showMessageMenu", "Show sms menu.");
+ if (getChildFragmentManager().isDestroyed()) {
+ return;
+ }
textResponsesFragment = SmsBottomSheetFragment.newInstance(textResponses);
textResponsesFragment.show(getChildFragmentManager(), null);
@@ -1019,7 +1023,7 @@ public class AnswerFragment extends Fragment
return;
}
- if (!getResources().getBoolean(R.bool.answer_important_call_allowed)) {
+ if (!getResources().getBoolean(R.bool.answer_important_call_allowed) || primaryInfo.isSpam) {
importanceBadge.setVisibility(View.GONE);
return;
}
diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
index eaf5b74e5..77b45ec71 100644
--- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
+++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java
@@ -20,13 +20,13 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.os.Build;
-import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.annotation.VisibleForTesting;
import com.android.dialer.common.Assert;
import com.android.dialer.common.ConfigProvider;
import com.android.dialer.common.ConfigProviderBindings;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.util.DialerUtils;
import com.android.incallui.util.AccessibilityUtil;
/**
@@ -62,7 +62,7 @@ public class AnswerHintFactory {
if (shouldShowAnswerHint(
context,
ConfigProviderBindings.get(context),
- getDeviceProtectedPreferences(context),
+ DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context),
Build.PRODUCT)) {
return new DotAnswerHint(context, puckUpDuration, puckUpDelay);
}
@@ -77,7 +77,8 @@ public class AnswerHintFactory {
}
public static void increaseAnsweredCount(Context context) {
- SharedPreferences sharedPreferences = getDeviceProtectedPreferences(context);
+ SharedPreferences sharedPreferences =
+ DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context);
int answeredCount = sharedPreferences.getInt(ANSWERED_COUNT_PREFERENCE_KEY, 0);
sharedPreferences.edit().putInt(ANSWERED_COUNT_PREFERENCE_KEY, answeredCount + 1).apply();
}
@@ -119,12 +120,4 @@ public class AnswerHintFactory {
.getString(CONFIG_ANSWER_HINT_WHITELISTED_DEVICES_KEY, DEFAULT_WHITELISTED_DEVICES_CSV)
.contains("/" + device + "/");
}
-
- private static SharedPreferences getDeviceProtectedPreferences(Context context) {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
- return PreferenceManager.getDefaultSharedPreferences(context);
- }
- return PreferenceManager.getDefaultSharedPreferences(
- context.createDeviceProtectedStorageContext());
- }
}
diff --git a/java/com/android/incallui/answer/impl/hint/DotAnswerHint.java b/java/com/android/incallui/answer/impl/hint/DotAnswerHint.java
index 394fe5808..70f3f73fc 100644
--- a/java/com/android/incallui/answer/impl/hint/DotAnswerHint.java
+++ b/java/com/android/incallui/answer/impl/hint/DotAnswerHint.java
@@ -87,7 +87,9 @@ public class DotAnswerHint implements AnswerHint {
public void onBounceStart() {
if (answerGestureHintAnim == null) {
answerGestureHintAnim = new AnimatorSet();
- answerHintContainer.setY(puck.getY() + getDimension(R.dimen.hint_initial_offset));
+ int[] puckLocation = new int[2];
+ puck.getLocationInWindow(puckLocation);
+ answerHintContainer.setY(puckLocation[1] + getDimension(R.dimen.hint_initial_offset));
Animator fadeIn = createFadeIn();
@@ -95,7 +97,7 @@ public class DotAnswerHint implements AnswerHint {
ObjectAnimator.ofFloat(
answerHintContainer,
View.TRANSLATION_Y,
- puck.getY() - getDimension(R.dimen.hint_offset));
+ puckLocation[1] - getDimension(R.dimen.hint_offset));
swipeUp.setInterpolator(new FastOutSlowInInterpolator());
swipeUp.setDuration(SWIPE_UP_DURATION_ALPHA_MILLIS);
@@ -123,7 +125,7 @@ public class DotAnswerHint implements AnswerHint {
answerHintLarge.setAlpha(0);
answerHintLarge.setScaleX(1);
answerHintLarge.setScaleY(1);
- answerHintContainer.setY(puck.getY() + getDimension(R.dimen.hint_initial_offset));
+ answerHintContainer.setY(puckLocation[1] + getDimension(R.dimen.hint_initial_offset));
answerHintContainer.setVisibility(View.VISIBLE);
}
});
diff --git a/java/com/android/incallui/answer/impl/hint/PawAnswerHint.java b/java/com/android/incallui/answer/impl/hint/PawAnswerHint.java
index 36b761f57..079f325f7 100644
--- a/java/com/android/incallui/answer/impl/hint/PawAnswerHint.java
+++ b/java/com/android/incallui/answer/impl/hint/PawAnswerHint.java
@@ -92,9 +92,10 @@ public final class PawAnswerHint implements AnswerHint {
@Override
public void onBounceStart() {
if (answerGestureHintAnim == null) {
-
answerGestureHintAnim = new AnimatorSet();
- answerHintContainer.setY(puck.getY() + getDimension(R.dimen.hint_initial_offset));
+ int[] puckLocation = new int[2];
+ puck.getLocationInWindow(puckLocation);
+ answerHintContainer.setY(puckLocation[1] + getDimension(R.dimen.hint_initial_offset));
Animator fadeIn = createFadeIn();
@@ -102,7 +103,7 @@ public final class PawAnswerHint implements AnswerHint {
ObjectAnimator.ofFloat(
answerHintContainer,
View.TRANSLATION_Y,
- puck.getY() - getDimension(R.dimen.hint_offset));
+ puckLocation[1] - getDimension(R.dimen.hint_offset));
swipeUp.setInterpolator(new FastOutSlowInInterpolator());
swipeUp.setDuration(SWIPE_UP_DURATION_ALPHA_MILLIS);
@@ -124,7 +125,7 @@ public final class PawAnswerHint implements AnswerHint {
payloadView.setAlpha(0);
payloadView.setScaleX(1);
payloadView.setScaleY(1);
- answerHintContainer.setY(puck.getY() + getDimension(R.dimen.hint_initial_offset));
+ answerHintContainer.setY(puckLocation[1] + getDimension(R.dimen.hint_initial_offset));
answerHintContainer.setVisibility(View.VISIBLE);
}
});
diff --git a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
index 485a9ae37..21154cade 100644
--- a/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
+++ b/java/com/android/incallui/answer/impl/hint/PawImageLoaderImpl.java
@@ -21,10 +21,10 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.os.Build.VERSION_CODES;
-import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import com.android.dialer.common.Assert;
+import com.android.dialer.util.DialerUtils;
/** Decrypt the event payload to be shown if in a specific time range and the key is received. */
@TargetApi(VERSION_CODES.M)
@@ -35,7 +35,8 @@ public final class PawImageLoaderImpl implements PawImageLoader {
public Drawable loadPayload(@NonNull Context context) {
Assert.isNotNull(context);
- SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+ SharedPreferences preferences =
+ DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context);
if (!preferences.getBoolean(PawSecretCodeListener.PAW_ENABLED_WITH_SECRET_CODE_KEY, false)) {
return null;
}
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-af/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-af/strings.xml
index 4550a3940..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-af/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-af/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw-modus is geaktiveer"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw-modus is gedeaktiveer"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-am/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-am/strings.xml
index 5d96ebb62..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-am/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-am/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"የPaw ሁነታ ነቅቷል"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"የPaw ሁነታ ተሰናክሏል"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ar/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ar/strings.xml
index f926057e5..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ar/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ar/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"‏تم تمكين وضع المخلب"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"تم تعطيل وضع المخلب"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-az/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-az/strings.xml
index 7d73d4198..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-az/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-az/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw rejimi aktiv edildi"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw rejimi deaktiv edildi"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-b+sr+Latn/strings.xml
index c36e4c2a9..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-b+sr+Latn/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Omogućen je režim šape"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Onemogućen je režim šape"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-be/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-be/strings.xml
index 4203585ca..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-be/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-be/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Уключаны рэжым Paw"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Выключаны рэжым Paw"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-bg/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-bg/strings.xml
index 5dfab89d1..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-bg/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-bg/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Режимът Paw бе активиран"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Режимът Paw бе деактивиран"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-bn/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-bn/strings.xml
index 1d7ea8a70..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-bn/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-bn/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw মোড সক্ষম করা আছে"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw মোড অক্ষম করা আছে"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-bs/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-bs/strings.xml
index e3aad7d09..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-bs/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-bs/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Ručni način rada je omogućen"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Ručni način rada je onemogućen"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ca/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ca/strings.xml
index 161c584d1..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ca/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ca/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Mode PAW activat"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Mode PAW desactivat"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-cs/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-cs/strings.xml
index 1f680ce8b..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-cs/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-cs/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Režim Paw byl aktivován"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Režim Paw byl deaktivován"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-da/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-da/strings.xml
index c6e98768b..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-da/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-da/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Tilstanden Paw blev aktiveret"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Tilstanden Paw blev deaktiveret"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-de/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-de/strings.xml
index acae6eb26..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-de/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-de/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Tierpfoten-Modus aktiviert"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Tierpfoten-Modus deaktiviert"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-el/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-el/strings.xml
index ffc4b6d1f..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-el/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-el/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Λειτουργία αποτυπώματος ενεργοποιημένη"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Λειτουργία αποτυπώματος απενεργοποιημένη"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-en-rAU/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-en-rAU/strings.xml
index bdfce36af..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-en-rAU/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw mode enabled"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw mode disabled"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-en-rGB/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-en-rGB/strings.xml
index bdfce36af..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-en-rGB/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw mode enabled"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw mode disabled"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-en-rIN/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-en-rIN/strings.xml
index bdfce36af..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-en-rIN/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw mode enabled"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw mode disabled"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-es-rUS/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-es-rUS/strings.xml
index 760ec37a2..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-es-rUS/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modo mascota habilitado"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modo mascota deshabilitado"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-es/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-es/strings.xml
index 478da3e59..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-es/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-es/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modo pata habilitado"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modo pata inhabilitado"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-et/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-et/strings.xml
index 73a96af8b..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-et/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-et/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw-režiim on lubatud"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw-režiim on keelatud"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-eu/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-eu/strings.xml
index 19b078ead..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-eu/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-eu/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw modua gaitu da"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw modua desgaitu da"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-fa/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-fa/strings.xml
index ad7ee6a30..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-fa/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-fa/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"‏حالت Paw فعال شد"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"‏حالت Paw غیرفعال شد"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-fi/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-fi/strings.xml
index f269e70a1..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-fi/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-fi/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw-tila käytössä"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw-tila pois käytöstä"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-fr-rCA/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-fr-rCA/strings.xml
index 2ccb5292f..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-fr-rCA/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Mode Paw activé"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Mode Paw désactivé"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-fr/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-fr/strings.xml
index 95ea5292c..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-fr/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-fr/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Mode PAW activé"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Mode PAW désactivé"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-gl/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-gl/strings.xml
index 0e0d1a7d6..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-gl/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-gl/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modo Paw activado"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modo Paw desactivado"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-gu/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-gu/strings.xml
index d204d123f..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-gu/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-gu/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw મોડ સક્ષમ કર્યો"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw મોડ અક્ષમ કર્યો"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-hi/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-hi/strings.xml
index eb44da145..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-hi/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-hi/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"पॉ मोड सक्षम किया गया"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"पॉ मोड अक्षम किया गया"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-hr/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-hr/strings.xml
index 845326cfc..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-hr/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-hr/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Omogućen način rada PAW"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Onemogućen način rada PAW"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-hu/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-hu/strings.xml
index 11d7502eb..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-hu/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-hu/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw mód engedélyezve"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw mód letiltva"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-hy/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-hy/strings.xml
index eac59c1c9..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-hy/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-hy/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw ռեժիմը միացված է"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw ռեժիմն անջատված է"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-in/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-in/strings.xml
index f641a3c61..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-in/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-in/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Mode paw diaktifkan"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Mode paw dinonaktifkan"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-is/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-is/strings.xml
index d0e5561c3..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-is/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-is/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw-stilling virkjuð"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Slökkt á Paw-stillingu"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-it/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-it/strings.xml
index f1f3cc22f..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-it/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-it/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modalità Paw attivata"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modalità Paw disattivata"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-iw/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-iw/strings.xml
index 452cd6b88..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-iw/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-iw/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"‏מצב טלפיים הופעל"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"‏מצב טלפיים הושבת"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ja/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ja/strings.xml
index 910c7302a..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ja/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ja/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw モードを有効にしました"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw モードを無効にしました"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ka/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ka/strings.xml
index 9b06694e4..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ka/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ka/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw რეჟიმი ჩართულია"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw რეჟიმი გამორთულია"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-kk/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-kk/strings.xml
index 119562c09..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-kk/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-kk/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw режимі қосулы"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw режимі өшірулі"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-km/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-km/strings.xml
index 0df78f2ca..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-km/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-km/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"បាន​បើក​មុខងារ​ប៉ះ"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"បាន​បិទ​មុខងារ​ប៉ះ"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-kn/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-kn/strings.xml
index bda40d711..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-kn/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-kn/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"ಪಾವ್ ಮೋಡ್ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"ಪಾವ್ ಮೋಡ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ko/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ko/strings.xml
index ab16b8c87..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ko/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ko/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw 모드 사용 설정"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw 모드 사용 중지"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ky/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ky/strings.xml
index c22b73e19..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ky/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ky/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw режими иштетилди"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw режими өчүрүлдү"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-lo/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-lo/strings.xml
index 66e863d80..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-lo/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-lo/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"ເປີດໂໝດ Paw ແລ້ວ"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"ປິດໂໝດ Paw ແລ້ວ"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-lt/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-lt/strings.xml
index 8c9ecc49e..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-lt/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-lt/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"„Paw“ režimas įgalintas"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"„Paw“ režimas išjungtas"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-lv/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-lv/strings.xml
index 2ecc5bb0a..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-lv/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-lv/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"PAW režīms iespējots"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"PAW režīms atspējots"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-mk/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-mk/strings.xml
index d5e96400d..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-mk/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-mk/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Овозможен е режим на фаќање"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Оневозможен е режим на фаќање"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ml/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ml/strings.xml
index 56ec68954..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ml/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ml/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw മോഡ് പ്രവർത്തനക്ഷമമാക്കി"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw മോഡ് പ്രവർത്തനരഹിതമാക്കി"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-mn/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-mn/strings.xml
index 3a3e39696..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-mn/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-mn/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw горимыг идэвхжүүлсэн"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw горимыг идэвхгүй болгосон"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-mr/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-mr/strings.xml
index 1f0c82035..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-mr/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-mr/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw मोड सक्षम केला"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw मोड अक्षम केला"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ms/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ms/strings.xml
index cfa6ed37c..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ms/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ms/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Mod tapak kaki didayakan"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Mod tapak kaki dilumpuhkan"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-my/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-my/strings.xml
index 88a250b5b..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-my/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-my/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw မုဒ် ဖွင့်ထားသည်"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw မုဒ် ပိတ်ထားသည်"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-nb/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-nb/strings.xml
index b71d3bd70..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-nb/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-nb/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"PAW-modus er på"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"PAW-modus er av"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ne/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ne/strings.xml
index 3b6fd0fd3..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ne/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ne/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw मोड सक्षम पारियो"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw मोड असक्षम पारियो"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-nl/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-nl/strings.xml
index 9659c6815..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-nl/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-nl/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw-modus ingeschakeld"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw-modus uitgeschakeld"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-no/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-no/strings.xml
index b71d3bd70..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-no/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-no/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"PAW-modus er på"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"PAW-modus er av"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-pa/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-pa/strings.xml
index df7d61660..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-pa/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-pa/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw ਮੋਡ ਯੋਗ ਬਣਾਇਆ ਗਿਆ"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw ਮੋਡ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-pl/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-pl/strings.xml
index a0a42766b..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-pl/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-pl/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Tryb Paw włączony"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Tryb Paw wyłączony"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-pt-rBR/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-pt-rBR/strings.xml
index 71b333398..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-pt-rBR/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modo PAW ativado"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modo PAW ativado"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-pt-rPT/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-pt-rPT/strings.xml
index 1ac61cee1..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-pt-rPT/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modo Paw ativado"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modo Paw desativado"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-pt/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-pt/strings.xml
index 71b333398..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-pt/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-pt/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modo PAW ativado"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modo PAW ativado"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ro/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ro/strings.xml
index a1f2d59fa..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ro/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ro/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modul „lăbuță” a fost activat"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modul „lăbuță” a fost dezactivat."</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ru/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ru/strings.xml
index bb002f382..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ru/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ru/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Режим лапы включен"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Режим лапы отключен"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-si/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-si/strings.xml
index e3e9d6534..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-si/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-si/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw ප්‍රකාරය සබල කෙ‍රිණි"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw ප්‍රකාරය අබල කෙරිණි"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-sk/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-sk/strings.xml
index 08ebf853d..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-sk/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-sk/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Režim Paw bol aktivovaný"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Režim Paw bol deaktivovaný"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-sl/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-sl/strings.xml
index 4ce16ab9a..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-sl/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-sl/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Način PAW je omogočen"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Način PAW je onemogočen"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-sq/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-sq/strings.xml
index 39efd19c5..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-sq/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-sq/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Modaliteti Paw u aktivizua"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Modaliteti Paw u çaktivizua"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-sr/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-sr/strings.xml
index 6be36feef..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-sr/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-sr/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Омогућен је режим шапе"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Онемогућен је режим шапе"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-sv/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-sv/strings.xml
index cbc8056e6..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-sv/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-sv/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw-läge aktiverat"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw-läge inaktiverat"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-sw/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-sw/strings.xml
index e137b1de6..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-sw/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-sw/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Hali ya gusagusa imewashwa"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Hali ya gusagusa imezimwa"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ta/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ta/strings.xml
index de00f026a..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ta/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ta/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"பாவ் பயன்முறை இயக்கப்பட்டது"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"பாவ் பயன்முறை முடக்கப்பட்டது"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-te/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-te/strings.xml
index a85038cfd..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-te/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-te/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw మోడ్ ప్రారంభించబడింది"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw మోడ్ నిలిపివేయబడింది"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-th/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-th/strings.xml
index acc3ce915..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-th/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-th/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"เปิดโหมด Paw"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"ปิดโหมด Paw"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-tl/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-tl/strings.xml
index 48901801d..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-tl/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-tl/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Naka-enable ang paw mode"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Naka-disable ang paw mode"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-tr/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-tr/strings.xml
index 6aaa71e13..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-tr/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-tr/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"PAW modu etkinleştirildi"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"PAW modu devre dışı bırakıldı"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-uk/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-uk/strings.xml
index a137510b5..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-uk/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-uk/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Paw-режим увімкнено"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Paw-режим вимкнено"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-ur/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-ur/strings.xml
index a6c365fc6..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-ur/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-ur/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"‏Paw موڈ فعال ہے"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"‏Paw موڈ غیرفعال ہے"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-uz/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-uz/strings.xml
index cbe9ef267..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-uz/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-uz/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"PAW rejimi yoniq"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"PAW rejimi o‘chiq"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-vi/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-vi/strings.xml
index f86077525..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-vi/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-vi/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Đã bật chế độ Paw"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Đã tắt chế độ Paw"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-zh-rCN/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-zh-rCN/strings.xml
index 2a6cbb14d..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-zh-rCN/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"已启用 Paw 模式"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"已停用 Paw 模式"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-zh-rHK/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-zh-rHK/strings.xml
index 90c9187a4..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-zh-rHK/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"已啟用爪子模式"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"已停用爪子模式"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-zh-rTW/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-zh-rTW/strings.xml
index 3b86457ab..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-zh-rTW/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"已啟用 Paw 模式"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"已停用 Paw 模式"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values-zu/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values-zu/strings.xml
index a75c4254b..77858e0d9 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values-zu/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values-zu/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="event_activated" msgid="4737012691463830969">"Imodi ye-Paw inikwe amandla"</string>
- <string name="event_deactivated" msgid="4504516573331084650">"Imodi ye-Paw ikhutshaziwe"</string>
+ <!-- no translation found for event_deactivated (689994223349549274) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/hint/res/values/strings.xml b/java/com/android/incallui/answer/impl/hint/res/values/strings.xml
index 3b614d464..ef4f00dad 100644
--- a/java/com/android/incallui/answer/impl/hint/res/values/strings.xml
+++ b/java/com/android/incallui/answer/impl/hint/res/values/strings.xml
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="event_activated">&#x1f408;Paw mode enabled&#x1F415;</string>
- <string name="event_deactivated">Paw mode disabled</string>
+ <string translatable="false" name="event_activated">&#x1f408;&#x1F415;</string>
+ <!-- Toast to display when the incoming call easter egg is disabled. The easter egg shows a cat or\
+ dog paw animation swiping on the screen-->
+ <string name="event_deactivated">Pet mode off</string>
</resources> \ No newline at end of file
diff --git a/java/com/android/incallui/answer/impl/res/drawable/urgent_call_background.xml b/java/com/android/incallui/answer/impl/res/drawable/urgent_call_background.xml
new file mode 100644
index 000000000..d995980c6
--- /dev/null
+++ b/java/com/android/incallui/answer/impl/res/drawable/urgent_call_background.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <corners android:radius="24dp"/>
+ <solid android:color="#F50057"/>
+</shape> \ No newline at end of file
diff --git a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml
index cd85e2f5b..2dc274b05 100644
--- a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml
+++ b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml
@@ -116,13 +116,15 @@
android:layout_height="48dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="@dimen/answer_importance_margin_bottom"
- android:elevation="@dimen/answer_data_elevation"
android:gravity="center"
- android:singleLine="true"
+ android:elevation="@dimen/answer_data_elevation"
+ android:maxLines="1"
android:text="@string/call_incoming_important"
android:textAllCaps="true"
- android:textAppearance="@style/Dialer.Incall.TextAppearance"
- android:textColor="@android:color/black"/>
+ android:textSize="14sp"
+ android:textStyle="bold"
+ android:textColor="@color/background_dialer_white"
+ android:background="@drawable/urgent_call_background"/>
<FrameLayout
android:id="@+id/incall_location_holder"
diff --git a/java/com/android/incallui/answer/impl/res/values-af/strings.xml b/java/com/android/incallui/answer/impl/res/values-af/strings.xml
index 5ca0a1e5b..31d30c0ee 100644
--- a/java/com/android/incallui/answer/impl/res/values-af/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-af/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Antwoord en beëindig die voortgesette oproep"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is af"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swiep op met twee vingers om te antwoord. Swiep af met twee vingers om af te wys."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Belangrike oproep"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-am/strings.xml b/java/com/android/incallui/answer/impl/res/values-am/strings.xml
index 31abea4de..a1f4904f1 100644
--- a/java/com/android/incallui/answer/impl/res/values-am/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-am/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ይመልሱ እና በመካሄድ ላይ ያለ ጥሪን ይጨርሱ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ቪዲዮ ጠፍቷል"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ለመመለስ በሁለት ጣት ወደ ላይ ያንሸራቱ። ላለመቀበል በሁለት ጣት ወደ ታች ያንሸራቱ።"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"ተፈላጊ ጥሪ"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
index 4ca9e01ec..196f74959 100644
--- a/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ar/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"الرد وإنهاء مكالمة جارية"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"الفيديو قيد إيقاف التشغيل"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"مرر بأصبعين لأعلى للرد. مرر بأصبعين لأسفل للرفض."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"مكالمة مهمة"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-az/strings.xml b/java/com/android/incallui/answer/impl/res/values-az/strings.xml
index f0c800f5f..557f7d16f 100644
--- a/java/com/android/incallui/answer/impl/res/values-az/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-az/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Cavab verin və gedən zəngi bitirin"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoları deaktivdir"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cavab vermək üçün iki barmaq ilə yuxarı sürüşdürün. İmtina etmək üçün iki barmaq ilə aşağı sürüşdürün."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Vacib zəng"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
index 593778b7a..30a2f83a9 100644
--- a/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-b+sr+Latn/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Javite se i završite poziv koji je u toku"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite nagore pomoću dva prsta da biste odgovorili. Prevucite nadole pomoću dva prsta da biste odbili."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Važan poziv"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-be/strings.xml b/java/com/android/incallui/answer/impl/res/values-be/strings.xml
index 975b63535..3a78b0f99 100644
--- a/java/com/android/incallui/answer/impl/res/values-be/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-be/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Адказаць і скончыць бягучы выклік"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відэа адключана"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Правядзіце двума пальцамі ўверх, каб адказаць; двума пальцамі ўніз – каб адхіліць."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Важны выклік"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
index 6d75a9f84..e2fc6ae6c 100644
--- a/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bg/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Отговор и завършване на текущото обаждане"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е изключено"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Прекарайте два пръста нагоре за отговаряне, надолу за отхвърляне."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Важно обаждане"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
index 2143d34ca..eabc0f36d 100644
--- a/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bn/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"উত্তর দিন এবং চলছে এমন কল কেটে দিন"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ভিডিও বন্ধ আছে"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"উত্তর দিতে উপরের দিকে, প্রত্যাখ্যান করতে নিচের দিকে দুই আঙুল দিয়ে সোয়াইপ করুন৷"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"গুরুত্বপূর্ণ কল"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
index fae26362d..f2d2dd85c 100644
--- a/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-bs/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i završite ga"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera je isključena"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prevucite pomoću dva prsta prema gore da odgovorite. Prevucite pomoću dva prsta prema dolje da odbijete."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Važan poziv"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
index 30e445799..23827368a 100644
--- a/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ca/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Respon a la trucada i finalitza l\'actual"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo està desactivat"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Llisca amb dos dits cap amunt per respondre a la trucada i cap avall per rebutjar-la."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Trucada important"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
index 06dd6d0d3..84556a66d 100644
--- a/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-cs/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Přijmout hovor a ukončit probíhající hovor"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Přejetím dvěma prsty nahoru hovor přijmete. Přejetím dvěma prsty dolů jej odmítnete."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Důležitý hovor"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-da/strings.xml b/java/com/android/incallui/answer/impl/res/values-da/strings.xml
index bfaebdf2f..461333bd3 100644
--- a/java/com/android/incallui/answer/impl/res/values-da/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-da/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Besvar, og afslut det igangværende opkald"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er deaktiveret"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Stryg op med to fingre for at besvare. Stryg ned med to fingre for at afvise."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Vigtigt opkald"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-de/strings.xml b/java/com/android/incallui/answer/impl/res/values-de/strings.xml
index fc4b530d6..6c17ca3d1 100644
--- a/java/com/android/incallui/answer/impl/res/values-de/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-de/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Nimm den Anruf an und beende den aktuellen Anruf"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video deaktiviert"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Zum Annehmen mit zwei Fingern nach oben wischen. Zum Ablehnen mit zwei Fingern nach unten wischen."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Wichtiger Anruf"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-el/strings.xml b/java/com/android/incallui/answer/impl/res/values-el/strings.xml
index 8bf79b0a5..ac8191eb5 100644
--- a/java/com/android/incallui/answer/impl/res/values-el/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-el/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Απάντηση και τερματισμός κλήσης σε εξέλιξη"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Το βίντεο είναι ανενεργό"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Σύρετε με δύο δάχτυλα, προς τα επάνω για απάντηση και προς τα κάτω για απόρριψη."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Σημαντική κλήση"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
index 5381d2c2b..7e306bce7 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rAU/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Important call"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
index 5381d2c2b..7e306bce7 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rGB/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Important call"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
index 5381d2c2b..7e306bce7 100644
--- a/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-en-rIN/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Answer and end ongoing call"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is off"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swipe up with two fingers to answer. Swipe down with two fingers to decline."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Important call"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
index b5a8fc630..3cb7709c3 100644
--- a/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-es-rUS/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder y finalizar la llamada en curso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"El video está desactivado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder la llamada o hacia abajo para rechazarla."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Llamada importante"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-es/strings.xml b/java/com/android/incallui/answer/impl/res/values-es/strings.xml
index 1b2642cd1..33f2c8528 100644
--- a/java/com/android/incallui/answer/impl/res/values-es/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-es/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responder a una llamada y finalizar otra en curso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"El vídeo está desconectado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Desliza dos dedos hacia arriba para responder o hacia abajo para rechazar la llamada."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Llamada importante"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-et/strings.xml b/java/com/android/incallui/answer/impl/res/values-et/strings.xml
index ac9379910..6dd677682 100644
--- a/java/com/android/incallui/answer/impl/res/values-et/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-et/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastake ja lõpetage käimasolev kõne"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video on välja lülitatud"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastamiseks pühkige kahe sõrmega üles. Keeldumiseks pühkige kahe sõrmega alla."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Tähtis kõne"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
index 341b9d2db..83c88b952 100644
--- a/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-eu/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Erantzun eta amaitu uneko deia"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Desaktibatuta dago kamera"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasatu bi hatz gora erantzuteko; eta behera, baztertzeko."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Dei garrantzitsua"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
index 76725f25a..1c642d6b7 100644
--- a/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fa/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"پاسخ دادن به تماس درحال انجام و پایان دادن به آن"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویدیو خاموش است"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"برای پاسخ‌گویی، دو انگشتتان را تند به بالا بکشید و برای رد کردن به پایین بکشید."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"تماس مهم"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
index da7da4ae7..4d776726d 100644
--- a/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fi/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Vastaa puheluun ja lopeta nykyinen puhelu"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokuva ei ole käytössä."</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vastaa pyyhkäisemällä ylös kahdella sormella. Hylkää pyyhkäisemällä alas kahdella sormella."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Tärkeä puhelu"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
index 733dd4382..0d579938b 100644
--- a/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fr-rCA/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre et mettre fin à l\'appel en cours"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez vers le haut avec deux doigts pour répondre. Balayez vers le bas avec deux doigts pour refuser."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Appel important"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
index 88e5b829f..5903ed966 100644
--- a/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-fr/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Répondre ou mettre fin à l\'appel en cours"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"La vidéo est désactivée."</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Balayez l\'écran avec deux doigts vers le haut pour répondre, ou vers le bas pour refuser l\'appel."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Appel important"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
index 79cf1b114..977890f79 100644
--- a/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-gl/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Responde á chamada entrante e finaliza a chamada en curso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desactivado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Pasa dous dedos cara arriba para responder a chamada ou cara abaixo para rexeitala."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Chamada importante"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
index 928228653..533839da5 100644
--- a/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-gu/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"જવાબ આપો અને ચાલુ કૉલ સમાપ્ત કરો"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"વિડિઓ બંધ છે"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"જવાબ આપવા માટે બે આંગળી ઉપર સ્વાઇપ કરો. નકારવા માટે બે આંગળી નીચે સ્વાઇપ કરો."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"મહત્વપૂર્ણ કૉલ"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
index 88c0ad21c..5ef8305ed 100644
--- a/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hi/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"कॉल का जवाब दें और जारी कॉल समाप्त करें"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"वीडियो बंद है"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाब देने के लिए दो अंगुलियों से ऊपर स्वाइप करें. अस्वीकार करने के लिए दो अंगुलियों से नीचे स्वाइप करें."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"महत्वपूर्ण कॉल"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
index a7524a34f..65152426c 100644
--- a/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hr/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odgovorite na poziv i prekinite poziv u tijeku"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videokamera je isključena"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Prijeđite dvama prstima prema gore za odgovor, a dvama prstima prema dolje za odbijanje."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Važan poziv"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
index ced3e2763..3f4179e35 100644
--- a/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hu/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Hívásfogadás és a folyamatban lévő hívás befejezése"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"A videokép ki van kapcsolva"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Csúsztassa felfelé két ujját a hívás fogadásához. Csúsztassa lefelé két ujját a hívás elutasításához."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Fontos hívás"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
index dfa550be9..273c731d4 100644
--- a/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-hy/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Պատասխանել և ավարտել ընթացիկ զանգը"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Տեսախցիկն անջատած է"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Պատասխանելու համար երկու մատով սահեցրեք վերև, մերժելու համար՝ ներքև:"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Կարևոր զանգ"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-in/strings.xml b/java/com/android/incallui/answer/impl/res/values-in/strings.xml
index 16d3058c7..824b14994 100644
--- a/java/com/android/incallui/answer/impl/res/values-in/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-in/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Menjawab dan mengakhiri panggilan yang sedang berlangsung"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video nonaktif"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Geser ke atas dengan dua jari untuk menjawab. Geser ke bawah dengan dua jari untuk menolak."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Panggilan penting"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-is/strings.xml b/java/com/android/incallui/answer/impl/res/values-is/strings.xml
index fe2a2be59..be4437096 100644
--- a/java/com/android/incallui/answer/impl/res/values-is/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-is/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara og ljúka yfirstandandi símtali"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Slökkt á myndavél"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Strjúktu upp með tveimur fingrum til að svara. Strjúktu niður með tveimur fingrum til að hafna."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Mikilvægt símtal"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-it/strings.xml b/java/com/android/incallui/answer/impl/res/values-it/strings.xml
index ab69bb9bf..ad06e476d 100644
--- a/java/com/android/incallui/answer/impl/res/values-it/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-it/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Rispondi e termina la chiamata in corso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Il video è disattivato"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Fai scorrere con due dita verso l\'alto per rispondere e verso il basso per rifiutare."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Chiamata importante"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
index 7acc3f4bc..51fb2ba73 100644
--- a/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-iw/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"מענה וסיום שיחה"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"הווידאו מושבת"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"החלק עם שתי אצבעות למעלה כדי לענות או למטה כדי לדחות."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"שיחה חשובה"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
index a3513e2f2..cc0e241d4 100644
--- a/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ja/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"通話に応答し、進行中の通話を終了"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ビデオ: OFF"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"応答するには 2 本の指で上にスワイプ、拒否するには 2 本の指で下にスワイプします。"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"重要な通話"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
index 662936ba8..70714699d 100644
--- a/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ka/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"პასუხი და მიმდინარე ზარის დასრულება"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ვიდეო გამორთულია"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"საპასუხოდ გადაფურცლეთ ზემოთ ორი თითით. უარყოფისთვის გადაფურცლეთ ქვემოთ ორი თითით."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"მნიშვნელოვანი ზარი"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
index b37695be9..d650a3058 100644
--- a/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-kk/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Қоңырауға жауап беру және ағымдағы қоңырауды аяқтау"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Бейне өшірулі"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жауап беру үшін екі саусақпен жоғары сырғытылады. Қабылдамау үшін екі саусақпен төмен сырғытылады."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Маңызды қоңырау"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-km/strings.xml b/java/com/android/incallui/answer/impl/res/values-km/strings.xml
index 03e48e3be..cbf0c14e9 100644
--- a/java/com/android/incallui/answer/impl/res/values-km/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-km/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ឆ្លើយ និង​បញ្ចប់​ការ​ហៅ​ទូរសព្ទ​ដែល​កំពុង​ដំណើរការ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"វីដេអូត្រូវបានបិទ"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"អូស​ម្រាម​ដៃ​ពីរ​ឡើងលើ​ ដើម្បី​ឆ្លើយ។ អូស​ម្រាមដៃ​ពីរ​ចុះ​ក្រោម​ ដើម្បី​បដិសេធ។"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"ការ​ហៅ​ដែល​សំខាន់"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
index 8c8c7d5c0..489202e30 100644
--- a/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-kn/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಕರೆಗೆ ಉತ್ತರಿಸಿ ಮತ್ತು ಅಂತ್ಯಗೊಳಿಸಿ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ವೀಡಿಯೊ ಆಫ್ ಆಗಿದೆ"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ಉತ್ತರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ. ನಿರಾಕರಿಸಲು ಎರಡು ಬೆರಳಿನಿಂದ ಕೆಳಗೆ ಸ್ವೈಪ್ ಮಾಡಿ."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"ಪ್ರಮುಖ ಕರೆ"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
index 795b176ba..85c9faead 100644
--- a/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ko/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"현재 통화를 종료하고 전화 받기"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"동영상이 꺼져 있습니다."</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"받으려면 두 손가락을 위로 스와이프하고 거부하려면 두 손가락을 아래로 스와이프하세요."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"중요 전화"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
index b8e704ada..494c9aac4 100644
--- a/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ky/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Чалууга жооп бериңиз же учурдагы чалууну аяктаңыз"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео өчүк"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Жооп берүү үчүн экранды өйдө сүрүп, четке кагуу үчүн ылдый сүрүп коюңуз."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Маанилүү чалуу"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
index df8fc043e..27fb79391 100644
--- a/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lo/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ຮັບສາຍ ແລະ ວາງສາຍທີ່ກຳລັງໂທອອກ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ວິດີໂອປິດຢູ່"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ປັດສອງນິ້ວຂຶ້ນເພື່ອຮັບສາຍ. ປັດສອງນິ້ວລົງເພື່ອປະຕິເສດ."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"ການໂທສຳຄັນ"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
index 30ce82f2d..867deee9d 100644
--- a/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lt/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atsakykite ir užbaikite vykstantį skambutį"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Vaizdas išjungtas"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Perbraukite dviem pirštais aukštyn, kad atsakytumėte. Perbraukite dviem pirštais žemyn, kad atmestumėte."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Svarbus skambutis"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
index 2f9f2de7e..5b6facde4 100644
--- a/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-lv/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atbildiet un beidziet notiekošo zvanu"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video ir izslēgts"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ar diviem pirkstiem velciet augšup, lai atbildētu. Ar diviem pirkstiem velciet lejup, lai noraidītu."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Svarīgs zvans"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
index d71e72fdd..0b6eb3fa2 100644
--- a/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mk/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Одговорете и завршете го тековниот повик"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видеото е исклучено"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Повлечете нагоре со два прста за да одговорите. Повлечете надолу со два прста за да одбиете."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Важен повик"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
index 9b0c85ff8..5f26b1567 100644
--- a/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ml/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"മറുപടി നൽകുകയും നിലവിലുള്ള കോൾ അവസാനിപ്പിക്കുകയും ചെയ്യൂ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"വീഡിയോ ഓഫാണ്"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"മറുപടി നൽകാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക. നിരസിക്കാൻ രണ്ടുവിരലുകൾ ഉപയോഗിച്ച് താഴേക്ക് സ്വൈപ്പുചെയ്യുക."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"പ്രധാനപ്പെട്ട കോൾ"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
index 06a2f1e25..15a98b480 100644
--- a/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mn/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ирсэн дуудлагыг авч, одоогийн дуудлагыг таслах"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Видео идэвхгүй байна"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Хариулах бол хоёр хуруугаар дээш шударна уу. Таслах бол хоёр хуруугаар доош шударна уу."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Чухал дуудлага"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
index dedb145f3..cbc108dae 100644
--- a/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-mr/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"उत्तर द्या आणि सुरु असलेला कॉल बंद करा"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"व्हिडिओ बंद आहे"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"उत्तर देण्यासाठी दोन बोटांनी वर स्वाइप करा. नकार देण्यासाठी दोन बोटांनी खाली स्वाइप करा."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"महत्त्वाचा कॉल"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
index bb5be58c4..9a2a0e1f8 100644
--- a/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ms/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jawab dan tamatkan panggilan yang sedang berlangsung"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video dimatikan"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Leret dua jari ke atas untuk menjawab. Leret dua jari ke bawah untuk menolak."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Panggilan penting"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-my/strings.xml b/java/com/android/incallui/answer/impl/res/values-my/strings.xml
index 4a33bb0f5..d1f898b73 100644
--- a/java/com/android/incallui/answer/impl/res/values-my/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-my/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ဖြေကြားပြီး လက်ရှိခေါ်ဆိုမှုကို အပြီးသတ်ပါ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ဗီဒီယို ပိတ်ထားပါသည်"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ဖြေကြားရန် လက်နှစ်ချောင်းဖြင့် အပေါ်သို့ ပွတ်ဆွဲပါ။ ငြင်းပယ်ရန် လက်နှစ်ချောင်းဖြင့် အောက်သို့ ပွတ်ဆွဲပါ။"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"အရေးကြီးခေါ်ဆိုမှု"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
index fb3538f04..f9930a7ca 100644
--- a/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-nb/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Viktig samtale"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
index 644e9cc19..0dad1b3a5 100644
--- a/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ne/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"जवाफ फर्काउनुहोस् र जारी कललाई अन्त्य गर्नुहोस्"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"भिडियो निष्क्रिय छ"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"जवाफ दिन दुई औंलाले माथितिर स्वाइप गर्नुहोस्। अस्वीकार गर्न दुई औंलाले तलतिर स्वाइप गर्नुहोस्।"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"महत्त्वपूर्ण कल"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
index 830faecaf..a873ebe87 100644
--- a/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-nl/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Opnemen en actieve oproep beëindigen"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video is uit"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Veeg met twee vingers omhoog om te beantwoorden. Veeg met twee vingers omlaag om te weigeren."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Belangrijke oproep"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-no/strings.xml b/java/com/android/incallui/answer/impl/res/values-no/strings.xml
index fb3538f04..f9930a7ca 100644
--- a/java/com/android/incallui/answer/impl/res/values-no/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-no/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svar, og avslutt samtalen som er i gang"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video er av"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Sveip oppover med to fingre for å svare. Sveip nedover med to fingre for å avvise."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Viktig samtale"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
index bc38c3f96..3213c3933 100644
--- a/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pa/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"ਜਵਾਬ ਦਿਓ ਅਤੇ ਜਾਰੀ ਕਾਲ ਨੂੰ ਸਮਾਪਤ ਕਰੋ"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ਵੀਡੀਓ ਬੰਦ ਹੈ"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ਜਵਾਬ ਦੇਣ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ। ਅਸਵੀਕਾਰ ਕਰਨ ਲਈ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"ਮਹੱਤਵਪੂਰਨ ਕਾਲ"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
index 8f3a7c873..9715d199f 100644
--- a/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pl/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Odbierz połączenie i zakończ trwającą rozmowę"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Wideo jest wyłączone"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Przesuń dwoma palcami w górę, aby odebrać. Przesuń dwoma palcami w dół, aby odrzucić."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Ważne połączenie"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
index 1f3e1fa9e..a71c6c7cc 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt-rBR/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Chamada importante"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
index 1f4cbf8a9..d6239901f 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt-rPT/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e terminar uma chamada em curso"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize rapidamente com dois dedos para cima para responder. Deslize rapidamente com dois dedos para baixo para recusar."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Chamada importante"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
index 1f3e1fa9e..a71c6c7cc 100644
--- a/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-pt/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Atender e encerrar a chamada em andamento"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"O vídeo está desativado"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Deslize com dois dedos para cima para atender. Deslize com dois dedos para baixo para recusar."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Chamada importante"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
index 6d54f3c57..0f287c25a 100644
--- a/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ro/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Răspundeți și încheiați apelul în curs"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Camera video este dezactivată."</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Glisați cu două degete în sus pentru a răspunde și în jos pentru a respinge."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Apel important"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
index f2e6cfaf2..b83eea1ff 100644
--- a/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ru/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Ответить и завершить текущий вызов"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера выключена"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведите двумя пальцами по экрану вверх, чтобы ответить, или вниз, чтобы отклонить вызов."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Важный вызов"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-si/strings.xml b/java/com/android/incallui/answer/impl/res/values-si/strings.xml
index 269fffabe..0be5b695f 100644
--- a/java/com/android/incallui/answer/impl/res/values-si/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-si/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"යන අැමතුමට පිළිතරු දී අවසන් කරන්න"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"වීඩියෝව ක්‍රියාවිරහිතයි"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"පිළිතුරු දීමට ඇඟිලි දෙකකින් ඉහළට ස්වයිප් කරන්න, ප්‍රතික්ෂේප කිරීමට ඇඟිලි දෙකකින් පහළට ස්වයිප් කරන්න."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"වැදගත් ඇමතුම"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
index ef6add1ba..639b2b17e 100644
--- a/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sk/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Prijať hovor a ukončiť prebiehajúci hovor"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je vypnuté"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Ak chcete hovor prijať, prejdite dvomi prstami nahor. Ak ho chcete odmietnuť, prejdite dvomi prstami nadol."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Dôležitý hovor"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
index 819999aaf..40075eb2e 100644
--- a/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sl/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sprejmi klic in končaj aktivni klic"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video je izklopljen"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Z dvema prstoma povlecite navzgor, da sprejmete klic. Z dvema prstoma povlecite navzdol, da zavrnete klic."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Pomemben klic"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
index f0c874ac1..7aca08fa4 100644
--- a/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sq/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Përgjigju dhe mbyll telefonatën në vazhdim"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Videoja është joaktive"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Rrëshqit dy gishta lart për t\'u përgjigjur. Rrëshqit dy gishta poshtë për të refuzuar."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Telefonatë e rëndësishme"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
index dc736102c..22c514b80 100644
--- a/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sr/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Јавите се и завршите позив који је у току"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Камера је искључена"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Превуците нагоре помоћу два прста да бисте одговорили. Превуците надоле помоћу два прста да бисте одбили."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Важан позив"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
index cd96908dc..9718d0aa9 100644
--- a/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sv/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Svara och avsluta pågående samtal"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video avstängd"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Dra två fingrar uppåt för att svara och två nedåt för att avvisa."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Viktigt samtal"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
index 6ef801fc2..3783db816 100644
--- a/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-sw/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Jibu na ukate simu inayoendelea"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video imezimwa"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Telezesha juu kwa vidole viwili ili uijibu. Telezesha chini kwa vidole viwili ili uikate."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Simu muhimu"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
index 273aa21fe..81ccd08c6 100644
--- a/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ta/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"உள்வரும் அழைப்பிற்குப் பதிலளித்து, செயலில் உள்ள அழைப்பை முடிக்கும்"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"வீடியோ முடக்கப்பட்டுள்ளது"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"பதிலளிக்க, இரு விரல்களால் மேலே ஸ்வைப் செய்யவும். நிராகரிக்க, இரு விரல்களால் கீழே ஸ்வைப் செய்யவும்."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"முக்கியமான அழைப்பு"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-te/strings.xml b/java/com/android/incallui/answer/impl/res/values-te/strings.xml
index 2fba12102..dabf1a1f2 100644
--- a/java/com/android/incallui/answer/impl/res/values-te/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-te/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"సమాధానం ఇస్తుంది మరియు కొనసాగుతున్న కాల్‌ను ముగిస్తుంది"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"వీడియో ఆఫ్‌లో ఉంది"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"సమాధానం ఇవ్వడానికి రెండు వేళ్లతో పైకి స్వైప్ చేయండి. తిరస్కరించడానికి రెండు వేళ్లతో క్రిందికి స్వైప్ చేయండి."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"ముఖ్యమైన కాల్"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-th/strings.xml b/java/com/android/incallui/answer/impl/res/values-th/strings.xml
index fb34af0ad..819f2c359 100644
--- a/java/com/android/incallui/answer/impl/res/values-th/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-th/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"รับและวางสาย"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"วิดีโอปิดอยู่"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"ใช้สองนิ้วเลื่อนขึ้นเพื่อรับสายและเลื่อนลงเพื่อตัดสาย"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"สายสำคัญ"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
index b0e2c370e..ce2544e2b 100644
--- a/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-tl/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Sagutin at tapusin ang kasalukuyang tawag"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Naka-off ang video"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"I-swipe nang pataas gamit ang dalawang daliri upang sagutin. I-swipe nang pababa gamit ang dalawang daliri upang tanggihan."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Mahalagang tawag"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
index 4dc02a75c..024606e6c 100644
--- a/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-tr/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Bir çağrı cevaplanır ve devam eden çağrı sona erdirilir"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video kapalı"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Cevaplamak için iki parmağınızla hızlıca yukarı kaydırın. Reddetmek içinse iki parmağınızla hızlıca aşağı kaydırın."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Önemli çağrı"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
index e077dbd11..ada4dd124 100644
--- a/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-uk/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Відповісти на виклик, завершивши поточний"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Відео вимкнено"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Проведіть двома пальцями вгору, щоб відповісти, або вниз, щоб відхилити дзвінок."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Важливий виклик"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
index ec9ba4b25..60286df35 100644
--- a/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-ur/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"جواب دیں اور جاری کال ختم کریں"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"ویڈیو آف ہے"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"جواب دینے کیلئے دوانگلیوں کے ساتھ اوپر سوائپ کریں۔ مسترد کرنے کیلئے دو انگلیوں کے ساتھ نیچے سوائپ کریں۔"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"اہم کال"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
index f9a7927f8..4c7ea536e 100644
--- a/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-uz/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Kiruvchi chaqiruvga javob berish va joriy qo‘ng‘iroqni tugatish"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Kamera o‘chiq"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Chaqiruvga javob berish uchun ikki barmoq bilan tepaga, rad etish uchun ikki barmoq bilan pastga suring."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Muhim chaqiruv"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
index 187463472..68407fca8 100644
--- a/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-vi/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Trả lời và kết thúc cuộc gọi đang diễn ra"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Video đã tắt"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Vuốt hai ngón tay lên để trả lời. Vuốt hai ngón tay xuống để từ chối."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Cuộc gọi quan trọng"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
index c57620651..fccbca109 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rCN/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接听并结束当前通话"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"摄像头处于关闭状态"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"双指向上滑动即可接听,向下滑动则可拒接。"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"重要来电"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
index 653466e4d..decbea497 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rHK/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽及結束進行中的通話"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"視像已關閉"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"兩指向上滑動可接聽,向下滑動則可拒接。"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"重要來電"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
index fe2c0d29a..036829116 100644
--- a/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zh-rTW/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"接聽來電及結束進行中的通話"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"已關閉攝影機"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"用雙指向上滑動可接聽,向下滑動可拒接。"</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"重要通話"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
index 9c3a2d253..5bcb02a2b 100644
--- a/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values-zu/strings.xml
@@ -20,5 +20,6 @@
<string name="a11y_description_incoming_call_answer_and_release" msgid="8511087499748888476">"Phendula uphinde uqede ikholi eqhubekayo"</string>
<string name="call_incoming_video_is_off" msgid="3216603035158629403">"Ividiyo ivaliwe"</string>
<string name="a11y_incoming_call_swipe_gesture_prompt" msgid="8682480557168484972">"Swayiphela iminwe emibili phezulu ukuze uphendule. Swayiphela iminwe emibili phansi ukuze wenqabe."</string>
- <string name="call_incoming_important" msgid="6477906345540334049">"Ikholi ebalulekile"</string>
+ <!-- no translation found for call_incoming_important (4090408168895243702) -->
+ <skip />
</resources>
diff --git a/java/com/android/incallui/answer/impl/res/values/strings.xml b/java/com/android/incallui/answer/impl/res/values/strings.xml
index 94577adf7..235922047 100644
--- a/java/com/android/incallui/answer/impl/res/values/strings.xml
+++ b/java/com/android/incallui/answer/impl/res/values/strings.xml
@@ -26,5 +26,5 @@
<!-- Voice prompt of swipe gesture when accessibility is turned on. -->
<string description="The message announced to accessibility assistance on incoming call."
name="a11y_incoming_call_swipe_gesture_prompt">Two finger swipe up to answer. Two finger swipe down to decline.</string>
- <string name="call_incoming_important">Important call</string>
+ <string name="call_incoming_important">Urgent</string>
</resources>
diff --git a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
index 6a2c4b493..24fbfc428 100644
--- a/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
+++ b/java/com/android/incallui/answerproximitysensor/AnswerProximitySensor.java
@@ -140,6 +140,9 @@ public class AnswerProximitySensor
public void onHandoverToWifiFailure() {}
@Override
+ public void onInternationalCallOnWifi() {}
+
+ @Override
public void onDialerCallSessionModificationStateChange() {}
@Override
diff --git a/java/com/android/incallui/autoresizetext/AndroidManifest.xml b/java/com/android/incallui/autoresizetext/AndroidManifest.xml
index 53a8961e4..1b5c19355 100644
--- a/java/com/android/incallui/autoresizetext/AndroidManifest.xml
+++ b/java/com/android/incallui/autoresizetext/AndroidManifest.xml
@@ -19,7 +19,7 @@
<uses-sdk
android:minSdkVersion="23"
- android:targetSdkVersion="25"/>
+ android:targetSdkVersion="26"/>
<application />
</manifest>
diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java
index 26fd926d1..34f0cc0d7 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -28,11 +28,11 @@ import android.telecom.Call;
import android.telecom.DisconnectCause;
import android.telecom.PhoneAccount;
import android.util.ArrayMap;
-import com.android.contacts.common.GeoUtil;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.shortcuts.ShortcutUsageReporter;
@@ -95,7 +95,7 @@ public class CallList implements DialerCallDelegate {
/**
* USED ONLY FOR TESTING Testing-only constructor. Instance should only be acquired through
- * getInstance().
+ * getRunningInstance().
*/
@VisibleForTesting
public CallList() {}
@@ -290,6 +290,10 @@ public class CallList implements DialerCallDelegate {
"CallList.onCallRemoved", "Removing call not previously disconnected " + call.getId());
}
}
+
+ if (!hasLiveCall()) {
+ DialerCall.clearRestrictedCount();
+ }
}
InCallUiLegacyBindings getLegacyBindings(Context context) {
@@ -723,15 +727,17 @@ public class CallList implements DialerCallDelegate {
* WiFi
*/
void onHandoverToWifiFailed(DialerCall call);
+
+ /** Called when the user initiates a call to an international number while on WiFi. */
+ void onInternationalCallOnWifi(@NonNull DialerCall call);
}
private class DialerCallListenerImpl implements DialerCallListener {
- private final DialerCall mCall;
+ @NonNull private final DialerCall mCall;
- DialerCallListenerImpl(DialerCall call) {
- Assert.isNotNull(call);
- mCall = call;
+ DialerCallListenerImpl(@NonNull DialerCall call) {
+ mCall = Assert.isNotNull(call);
}
@Override
@@ -779,6 +785,14 @@ public class CallList implements DialerCallDelegate {
}
@Override
+ public void onInternationalCallOnWifi() {
+ LogUtil.enterBlock("DialerCallListenerImpl.onInternationalCallOnWifi");
+ for (Listener listener : mListeners) {
+ listener.onInternationalCallOnWifi(mCall);
+ }
+ }
+
+ @Override
public void onDialerCallSessionModificationStateChange() {
for (Listener listener : mListeners) {
listener.onSessionModificationStateChange(mCall);
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 71dfd4caa..acedf41f1 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -56,6 +56,7 @@ import com.android.dialer.lightbringer.LightbringerComponent;
import com.android.dialer.logging.ContactLookupResult;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.theme.R;
import com.android.incallui.audiomode.AudioModeProvider;
import com.android.incallui.latencyreport.LatencyReport;
import com.android.incallui.util.TelecomCallUtil;
@@ -92,6 +93,13 @@ public class DialerCall implements VideoTechListener {
private static int sIdCounter = 0;
/**
+ * A counter used to append to restricted/private/hidden calls so that users can identify them in
+ * a conversation. This value is reset in {@link CallList#onCallRemoved(Context, Call)} when there
+ * are no live calls.
+ */
+ private static int sHiddenCounter;
+
+ /**
* The unique call ID for every call. This will help us to identify each call and allow us the
* ability to stitch impressions to calls if needed.
*/
@@ -100,6 +108,7 @@ public class DialerCall implements VideoTechListener {
private final Call mTelecomCall;
private final LatencyReport mLatencyReport;
private final String mId;
+ private final int mHiddenId;
private final List<String> mChildCallIds = new ArrayList<>();
private final LogState mLogState = new LogState();
private final Context mContext;
@@ -243,11 +252,15 @@ public class DialerCall implements VideoTechListener {
isRemotelyHeld = false;
update();
break;
+ case TelephonyManagerCompat.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC:
+ notifyInternationalCallOnWifi();
+ break;
default:
break;
}
}
};
+
private long mTimeAddedMs;
public DialerCall(
@@ -267,6 +280,11 @@ public class DialerCall implements VideoTechListener {
mVideoTechManager = new VideoTechManager(this);
updateFromTelecomCall();
+ if (isHiddenNumber() && TextUtils.isEmpty(getNumber())) {
+ mHiddenId = ++sHiddenCounter;
+ } else {
+ mHiddenId = 0;
+ }
if (registerCallback) {
mTelecomCall.registerCallback(mTelecomCallCallback);
@@ -358,6 +376,13 @@ public class DialerCall implements VideoTechListener {
}
}
+ public void notifyInternationalCallOnWifi() {
+ LogUtil.enterBlock("DialerCall.notifyInternationalCallOnWifi");
+ for (DialerCallListener dialerCallListener : mListeners) {
+ dialerCallListener.onInternationalCallOnWifi();
+ }
+ }
+
/* package-private */ Call getTelecomCall() {
return mTelecomCall;
}
@@ -526,6 +551,27 @@ public class DialerCall implements VideoTechListener {
return mId;
}
+ /**
+ * @return name appended with a number if the number is restricted/unknown and the user has
+ * received more than one restricted/unknown call.
+ */
+ @Nullable
+ public String updateNameIfRestricted(@Nullable String name) {
+ if (name != null && isHiddenNumber() && mHiddenId != 0 && sHiddenCounter > 1) {
+ return mContext.getString(R.string.unknown_counter, name, mHiddenId);
+ }
+ return name;
+ }
+
+ public static void clearRestrictedCount() {
+ sHiddenCounter = 0;
+ }
+
+ private boolean isHiddenNumber() {
+ return getNumberPresentation() == TelecomManager.PRESENTATION_RESTRICTED
+ || getNumberPresentation() == TelecomManager.PRESENTATION_UNKNOWN;
+ }
+
public boolean hasShownWiFiToLteHandoverToast() {
return hasShownWiFiToLteHandoverToast;
}
@@ -1326,7 +1372,6 @@ public class DialerCall implements VideoTechListener {
String phoneNumber = call.getNumber();
phoneNumber = phoneNumber != null ? phoneNumber : "";
- phoneNumber = phoneNumber.replaceAll("[^0-9]", "");
// Insert order here determines the priority of that video tech option
videoTechs = new ArrayList<>();
diff --git a/java/com/android/incallui/call/DialerCallListener.java b/java/com/android/incallui/call/DialerCallListener.java
index fece103fa..ed321be05 100644
--- a/java/com/android/incallui/call/DialerCallListener.java
+++ b/java/com/android/incallui/call/DialerCallListener.java
@@ -34,4 +34,6 @@ public interface DialerCallListener {
void onWiFiToLteHandover();
void onHandoverToWifiFailure();
+
+ void onInternationalCallOnWifi();
}
diff --git a/java/com/android/incallui/call/InCallVideoCallCallbackNotifier.java b/java/com/android/incallui/call/InCallVideoCallCallbackNotifier.java
index 1cb9f742e..ff94120bf 100644
--- a/java/com/android/incallui/call/InCallVideoCallCallbackNotifier.java
+++ b/java/com/android/incallui/call/InCallVideoCallCallbackNotifier.java
@@ -36,7 +36,7 @@ public class InCallVideoCallCallbackNotifier {
private final Set<SurfaceChangeListener> mSurfaceChangeListeners =
Collections.newSetFromMap(new ConcurrentHashMap<SurfaceChangeListener, Boolean>(8, 0.9f, 1));
- /** Private constructor. Instance should only be acquired through getInstance(). */
+ /** Private constructor. Instance should only be acquired through getRunningInstance(). */
private InCallVideoCallCallbackNotifier() {}
/** Static singleton accessor method. */
diff --git a/java/com/android/incallui/calllocation/impl/LocationFragment.java b/java/com/android/incallui/calllocation/impl/LocationFragment.java
index c0592b64a..77e4f7f7d 100644
--- a/java/com/android/incallui/calllocation/impl/LocationFragment.java
+++ b/java/com/android/incallui/calllocation/impl/LocationFragment.java
@@ -88,6 +88,7 @@ public class LocationFragment extends BaseFragment<LocationPresenter, LocationPr
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ LogUtil.enterBlock("LocationFragment.onCreateView");
final View view = inflater.inflate(R.layout.location_fragment, container, false);
viewAnimator = (ViewAnimator) view.findViewById(R.id.location_view_animator);
locationMap = (ImageView) view.findViewById(R.id.location_map);
@@ -95,11 +96,6 @@ public class LocationFragment extends BaseFragment<LocationPresenter, LocationPr
addressLine2 = (TextView) view.findViewById(R.id.address_line_two);
latLongLine = (TextView) view.findViewById(R.id.lat_long_line);
locationLayout = (ViewGroup) view.findViewById(R.id.location_layout);
- view.setOnClickListener(
- v -> {
- LogUtil.enterBlock("LocationFragment.onCreateView");
- launchMap();
- });
return view;
}
@@ -180,6 +176,7 @@ public class LocationFragment extends BaseFragment<LocationPresenter, LocationPr
handler.removeCallbacks(dataTimeoutRunnable);
if (viewAnimator.getDisplayedChild() != LOCATION_VIEW_INDEX) {
viewAnimator.setDisplayedChild(LOCATION_VIEW_INDEX);
+ viewAnimator.setOnClickListener(v -> launchMap());
}
}
diff --git a/java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml b/java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml
new file mode 100644
index 000000000..0bcba95f2
--- /dev/null
+++ b/java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+ android:color="@color/ripple_material_light">
+ <item android:drawable="@android:color/white"/>
+</ripple>
diff --git a/java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml b/java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml
index a6bd07542..53188eb19 100644
--- a/java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml
+++ b/java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml
@@ -23,7 +23,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
- android:background="@android:color/white"
+ android:background="@drawable/bg_location_card"
android:elevation="2dp"
android:inAnimation="@android:anim/fade_in"
android:measureAllChildren="true"
diff --git a/java/com/android/incallui/commontheme/res/values/styles.xml b/java/com/android/incallui/commontheme/res/values/styles.xml
index 81e64cb16..c0a745da1 100644
--- a/java/com/android/incallui/commontheme/res/values/styles.xml
+++ b/java/com/android/incallui/commontheme/res/values/styles.xml
@@ -38,8 +38,7 @@
<item name="android:layout_width">24dp</item>
<item name="android:layout_marginEnd">8dp</item>
<item name="android:scaleType">fitCenter</item>
- <item name="android:tint">?android:textColorSecondary</item>
- <item name="android:tintMode">src_in</item>
+ <item name="colorControlNormal">?android:textColorSecondary</item>
</style>
<style name="Incall.Button.End" parent="android:Widget.Material.Button">
diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java
index ddbceb052..ed533be58 100644
--- a/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -17,15 +17,16 @@
package com.android.incallui.contactgrid;
import android.content.Context;
+import android.graphics.drawable.Animatable;
+import android.graphics.drawable.Drawable;
import android.os.SystemClock;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.v4.view.ViewCompat;
import android.telecom.TelecomManager;
import android.text.TextUtils;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
import android.widget.Chronometer;
import android.widget.ImageView;
import android.widget.TextView;
@@ -50,13 +51,13 @@ public class ContactGridManager {
// Row 0: [Wi-Fi icon] Calling via Starbucks Wi-Fi
// Row 0: [Wi-Fi icon] Starbucks Wi-Fi
// Row 0: Hey Jake, pick up!
- private ImageView connectionIconImageView;
- private TextView statusTextView;
+ private final ImageView connectionIconImageView;
+ private final TextView statusTextView;
// Row 1: Jake Peralta [Contact photo]
// Row 1: Walgreens
// Row 1: +1 (650) 253-0000
- private TextView contactNameTextView;
+ private final TextView contactNameTextView;
@Nullable private ImageView avatarImageView;
// Row 2: Mobile +1 (650) 253-0000
@@ -65,13 +66,14 @@ public class ContactGridManager {
// Row 2: Hanging up
// Row 2: [Alert sign] Suspected spam caller
// Row 2: Your emergency callback number: +1 (650) 253-0000
- private ImageView workIconImageView;
- private ImageView hdIconImageView;
- private ImageView forwardIconImageView;
- private ImageView spamIconImageView;
- private ViewAnimator bottomTextSwitcher;
- private TextView bottomTextView;
- private Chronometer bottomTimerView;
+ private final ImageView workIconImageView;
+ private final ImageView hdIconImageView;
+ private final ImageView forwardIconImageView;
+ private final TextView forwardedNumberView;
+ private final ImageView spamIconImageView;
+ private final ViewAnimator bottomTextSwitcher;
+ private final TextView bottomTextView;
+ private final Chronometer bottomTimerView;
private int avatarSize;
private boolean hideAvatar;
private boolean showAnonymousAvatar;
@@ -89,16 +91,17 @@ public class ContactGridManager {
this.avatarImageView = avatarImageView;
this.avatarSize = avatarSize;
this.showAnonymousAvatar = showAnonymousAvatar;
- connectionIconImageView = (ImageView) view.findViewById(R.id.contactgrid_connection_icon);
- statusTextView = (TextView) view.findViewById(R.id.contactgrid_status_text);
- contactNameTextView = (TextView) view.findViewById(R.id.contactgrid_contact_name);
- workIconImageView = (ImageView) view.findViewById(R.id.contactgrid_workIcon);
- hdIconImageView = (ImageView) view.findViewById(R.id.contactgrid_hdIcon);
- forwardIconImageView = (ImageView) view.findViewById(R.id.contactgrid_forwardIcon);
- spamIconImageView = (ImageView) view.findViewById(R.id.contactgrid_spamIcon);
- bottomTextSwitcher = (ViewAnimator) view.findViewById(R.id.contactgrid_bottom_text_switcher);
- bottomTextView = (TextView) view.findViewById(R.id.contactgrid_bottom_text);
- bottomTimerView = (Chronometer) view.findViewById(R.id.contactgrid_bottom_timer);
+ connectionIconImageView = view.findViewById(R.id.contactgrid_connection_icon);
+ statusTextView = view.findViewById(R.id.contactgrid_status_text);
+ contactNameTextView = view.findViewById(R.id.contactgrid_contact_name);
+ workIconImageView = view.findViewById(R.id.contactgrid_workIcon);
+ hdIconImageView = view.findViewById(R.id.contactgrid_hdIcon);
+ forwardIconImageView = view.findViewById(R.id.contactgrid_forwardIcon);
+ forwardedNumberView = view.findViewById(R.id.contactgrid_forwardNumber);
+ spamIconImageView = view.findViewById(R.id.contactgrid_spamIcon);
+ bottomTextSwitcher = view.findViewById(R.id.contactgrid_bottom_text_switcher);
+ bottomTextView = view.findViewById(R.id.contactgrid_bottom_text);
+ bottomTimerView = view.findViewById(R.id.contactgrid_bottom_timer);
contactGridLayout = (View) contactNameTextView.getParent();
letterTile = new LetterTileDrawable(context.getResources());
@@ -319,19 +322,44 @@ public class ContactGridManager {
bottomTextView.setText(info.label);
bottomTextView.setAllCaps(info.isSpamIconVisible);
workIconImageView.setVisibility(info.isWorkIconVisible ? View.VISIBLE : View.GONE);
- boolean wasHdIconVisible = hdIconImageView.getVisibility() == View.VISIBLE;
- hdIconImageView.setVisibility(
- info.isHdIconVisible || info.isHdAttemptingIconVisible ? View.VISIBLE : View.GONE);
- if (!wasHdIconVisible && info.isHdAttemptingIconVisible) {
- Animation animation = AnimationUtils.loadAnimation(context, R.anim.blinking);
- hdIconImageView.startAnimation(animation);
- } else if (wasHdIconVisible && !info.isHdAttemptingIconVisible) {
- hdIconImageView.clearAnimation();
- hdIconImageView.setAlpha(1f);
+ if (hdIconImageView.getVisibility() == View.GONE) {
+ if (info.isHdAttemptingIconVisible) {
+ hdIconImageView.setVisibility(View.VISIBLE);
+ hdIconImageView.setActivated(false);
+ Drawable drawableCurrent = hdIconImageView.getDrawable().getCurrent();
+ if (drawableCurrent instanceof Animatable && !((Animatable) drawableCurrent).isRunning()) {
+ ((Animatable) drawableCurrent).start();
+ }
+ } else if (info.isHdIconVisible) {
+ hdIconImageView.setVisibility(View.VISIBLE);
+ hdIconImageView.setActivated(true);
+ }
+ } else if (info.isHdIconVisible) {
+ hdIconImageView.setActivated(true);
+ } else if (!info.isHdAttemptingIconVisible) {
+ hdIconImageView.setVisibility(View.GONE);
}
- forwardIconImageView.setVisibility(info.isForwardIconVisible ? View.VISIBLE : View.GONE);
spamIconImageView.setVisibility(info.isSpamIconVisible ? View.VISIBLE : View.GONE);
+ if (info.isForwardIconVisible) {
+ forwardIconImageView.setVisibility(View.VISIBLE);
+ forwardedNumberView.setVisibility(View.VISIBLE);
+ if (info.isTimerVisible) {
+ bottomTextSwitcher.setVisibility(View.VISIBLE);
+ if (ViewCompat.getLayoutDirection(contactGridLayout) == ViewCompat.LAYOUT_DIRECTION_LTR) {
+ forwardedNumberView.setText(TextUtils.concat(info.label, " • "));
+ } else {
+ forwardedNumberView.setText(TextUtils.concat(" • ", info.label));
+ }
+ } else {
+ bottomTextSwitcher.setVisibility(View.GONE);
+ forwardedNumberView.setText(info.label);
+ }
+ } else {
+ forwardIconImageView.setVisibility(View.GONE);
+ forwardedNumberView.setVisibility(View.GONE);
+ }
+
if (info.isTimerVisible) {
bottomTextSwitcher.setDisplayedChild(1);
bottomTimerView.setBase(
diff --git a/java/com/android/incallui/contactgrid/TopRow.java b/java/com/android/incallui/contactgrid/TopRow.java
index 80fa215c7..8c3d6b004 100644
--- a/java/com/android/incallui/contactgrid/TopRow.java
+++ b/java/com/android/incallui/contactgrid/TopRow.java
@@ -30,11 +30,11 @@ import com.android.incallui.videotech.utils.VideoUtils;
* Gets the content of the top row. For example:
*
* <ul>
- * <li>Captain Holt ON HOLD
- * <li>Calling...
- * <li>[Wi-Fi icon] Calling via Starbucks Wi-Fi
- * <li>[Wi-Fi icon] Starbucks Wi-Fi
- * <li>Call from
+ * <li>Captain Holt ON HOLD
+ * <li>Calling...
+ * <li>[Wi-Fi icon] Calling via Starbucks Wi-Fi
+ * <li>[Wi-Fi icon] Starbucks Wi-Fi
+ * <li>Call from
* </ul>
*/
public class TopRow {
@@ -61,7 +61,7 @@ public class TopRow {
boolean labelIsSingleLine = true;
if (state.isWifi && icon == null) {
- icon = context.getDrawable(R.drawable.quantum_ic_network_wifi_white_24);
+ icon = context.getDrawable(R.drawable.quantum_ic_network_wifi_vd_theme_24);
}
if (state.state == State.INCOMING || state.state == State.CALL_WAITING) {
diff --git a/java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator.xml b/java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator.xml
new file mode 100644
index 000000000..2fa92dbba
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+ android:controlX1="0.5"
+ android:controlY1="0"
+ android:controlX2="1"
+ android:controlY2="1"/>
diff --git a/java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator2.xml b/java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator2.xml
new file mode 100644
index 000000000..c312affef
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/anim/hd_scale_interpolator2.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+ android:controlX1="0.5"
+ android:controlY1="0"
+ android:controlX2="0.5"
+ android:controlY2="1"/>
diff --git a/java/com/android/incallui/contactgrid/res/anim/trim_end_interpolator.xml b/java/com/android/incallui/contactgrid/res/anim/trim_end_interpolator.xml
new file mode 100644
index 000000000..20ada92b7
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/anim/trim_end_interpolator.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+ android:pathData="C0.2,0 0.1,1 0.5, 1 L 1,1" /> \ No newline at end of file
diff --git a/java/com/android/incallui/contactgrid/res/anim/trim_start_interpolator.xml b/java/com/android/incallui/contactgrid/res/anim/trim_start_interpolator.xml
new file mode 100644
index 000000000..1b640ec02
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/anim/trim_start_interpolator.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+ android:pathData="L0.5,0 C 0.7,0 0.6,1 1, 1" /> \ No newline at end of file
diff --git a/java/com/android/incallui/contactgrid/res/drawable/asd_hd_icon.xml b/java/com/android/incallui/contactgrid/res/drawable/asd_hd_icon.xml
new file mode 100644
index 000000000..415930e9a
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/drawable/asd_hd_icon.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<animated-selector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt">
+ <item
+ android:id="@+id/hd_attempting"
+ android:drawable="@drawable/avd_hd_attempting"
+ android:state_activated="false"/>
+ <item
+ android:id="@+id/hd_enabled"
+ android:drawable="@drawable/quantum_ic_hd_vd_theme_24"
+ android:state_activated="true"/>
+
+ <transition
+ android:fromId="@id/hd_attempting"
+ android:toId="@id/hd_enabled">
+ <animated-vector android:drawable="@drawable/vd_hd_attempting">
+ <target android:name="hdMask">
+ <aapt:attr name="android:animation">
+ <objectAnimator
+ android:duration="150"
+ android:propertyName="pathData"
+ android:startOffset="45"
+ android:valueFrom="M12, 12 m 0, -9 a 9,9 0 1,1 0,18 a 9,9 0 1,1 0,-18"
+ android:valueTo="M12, 12 m 0, -18 a 18,18 0 1,1 0,36 a 18,18 0 1,1 0,-36"
+ android:valueType="pathType"/>
+ </aapt:attr>
+ </target>
+
+ <target android:name="hdRoot">
+ <aapt:attr name="android:animation">
+ <set android:ordering="sequentially">
+ <set>
+ <objectAnimator
+ android:duration="45"
+ android:interpolator="@anim/hd_scale_interpolator"
+ android:propertyName="scaleX"
+ android:valueFrom="1"
+ android:valueTo="0.9"/>
+ <objectAnimator
+ android:duration="45"
+ android:interpolator="@anim/hd_scale_interpolator"
+ android:propertyName="scaleY"
+ android:valueFrom="1"
+ android:valueTo="0.9"/>
+ </set>
+ <set>
+ <objectAnimator
+ android:duration="120"
+ android:interpolator="@anim/hd_scale_interpolator2"
+ android:propertyName="scaleX"
+ android:valueFrom="0.9"
+ android:valueTo="1.2"/>
+ <objectAnimator
+ android:duration="120"
+ android:interpolator="@anim/hd_scale_interpolator2"
+ android:propertyName="scaleY"
+ android:valueFrom="0.9"
+ android:valueTo="1.2"/>
+ </set>
+ <set>
+ <objectAnimator
+ android:duration="120"
+ android:interpolator="@anim/hd_scale_interpolator2"
+ android:propertyName="scaleX"
+ android:valueFrom="1.2"
+ android:valueTo="1"/>
+ <objectAnimator
+ android:duration="120"
+ android:interpolator="@anim/hd_scale_interpolator2"
+ android:propertyName="scaleY"
+ android:valueFrom="1.2"
+ android:valueTo="1"/>
+ </set>
+ </set>
+ </aapt:attr>
+ </target>
+
+ <target android:name="root">
+ <aapt:attr name="android:animation">
+ <objectAnimator
+ android:duration="150"
+ android:interpolator="@android:interpolator/fast_out_slow_in"
+ android:propertyName="alpha"
+ android:startOffset="45"
+ android:valueFrom="0.5"
+ android:valueTo="1"/>
+ </aapt:attr>
+ </target>
+ </animated-vector>
+ </transition>
+
+</animated-selector> \ No newline at end of file
diff --git a/java/com/android/incallui/contactgrid/res/drawable/avd_hd_attempting.xml b/java/com/android/incallui/contactgrid/res/drawable/avd_hd_attempting.xml
new file mode 100644
index 000000000..a0ac21399
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/drawable/avd_hd_attempting.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:drawable="@drawable/vd_hd_attempting">
+ <target android:name="progressBar">
+ <aapt:attr name="android:animation">
+ <set>
+ <objectAnimator
+ android:duration="1333"
+ android:interpolator="@anim/trim_start_interpolator"
+ android:propertyName="trimPathStart"
+ android:repeatCount="-1"
+ android:valueFrom="0"
+ android:valueTo="0.75"
+ android:valueType="floatType"/>
+ <objectAnimator
+ android:duration="1333"
+ android:interpolator="@anim/trim_end_interpolator"
+ android:propertyName="trimPathEnd"
+ android:repeatCount="-1"
+ android:valueFrom="0"
+ android:valueTo="0.75"
+ android:valueType="floatType"/>
+ <objectAnimator
+ android:duration="1333"
+ android:interpolator="@android:anim/linear_interpolator"
+ android:propertyName="trimPathOffset"
+ android:repeatCount="-1"
+ android:valueFrom="0"
+ android:valueTo="0.25"
+ android:valueType="floatType"/>
+ </set>
+ </aapt:attr>
+ </target>
+
+ <target android:name="progressRoot">
+ <aapt:attr name="android:animation">
+ <objectAnimator
+ android:duration="4444"
+ android:interpolator="@android:anim/linear_interpolator"
+ android:propertyName="rotation"
+ android:repeatCount="-1"
+ android:valueFrom="0"
+ android:valueTo="720"
+ android:valueType="floatType"/>
+ </aapt:attr>
+ </target>
+
+ <target android:name="hdRoot">
+ <aapt:attr name="android:animation">
+ <set>
+ <objectAnimator
+ android:duration="150"
+ android:interpolator="@android:interpolator/linear_out_slow_in"
+ android:propertyName="scaleX"
+ android:valueFrom="0"
+ android:valueTo="1"/>
+ <objectAnimator
+ android:duration="150"
+ android:interpolator="@android:interpolator/linear_out_slow_in"
+ android:propertyName="scaleY"
+ android:valueFrom="0"
+ android:valueTo="1"/>
+ </set>
+ </aapt:attr>
+ </target>
+
+ <target android:name="root">
+ <aapt:attr name="android:animation">
+ <objectAnimator
+ android:duration="150"
+ android:interpolator="@android:interpolator/linear"
+ android:propertyName="alpha"
+ android:valueFrom="0"
+ android:valueTo="0.5"/>
+ </aapt:attr>
+ </target>
+
+</animated-vector> \ No newline at end of file
diff --git a/java/com/android/incallui/contactgrid/res/drawable/vd_hd_attempting.xml b/java/com/android/incallui/contactgrid/res/drawable/vd_hd_attempting.xml
new file mode 100644
index 000000000..3d9a5e439
--- /dev/null
+++ b/java/com/android/incallui/contactgrid/res/drawable/vd_hd_attempting.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<vector
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:height="24dp"
+ android:name="root"
+ android:tint="?attr/colorControlNormal"
+ android:viewportHeight="24"
+ android:viewportWidth="24"
+ android:width="24dp">
+
+ <group
+ android:name="progressRoot"
+ android:translateX="12.0"
+ android:translateY="12.0">
+ <path
+ android:fillColor="#00000000"
+ android:name="progressBar"
+ android:pathData="M0, 0 m 0, -11 a 11,11 0 1,1 0,22 a 11,11 0 1,1 0,-22"
+ android:strokeColor="@android:color/white"
+ android:strokeLineCap="square"
+ android:strokeLineJoin="miter"
+ android:strokeWidth="2"
+ android:trimPathEnd="0"
+ android:trimPathOffset="0"
+ android:trimPathStart="0"/>
+ </group>
+ <group
+ android:name="hdRoot"
+ android:pivotX="12"
+ android:pivotY="12">
+ <clip-path
+ android:name="hdMask"
+ android:pathData="M12, 12 m 0, -9 a 9,9 0 1,1 0,18 a 9,9 0 1,1 0,-18"/>
+ <path
+ android:fillColor="@android:color/white"
+ android:name="hd"
+ android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,5c0,-1.1 -0.9,-2 -2,-2zM11,15L9.5,15v-2h-2v2L6,15L6,9h1.5v2.5h2L9.5,9L11,9v6zM13,9h4c0.55,0 1,0.45 1,1v4c0,0.55 -0.45,1 -1,1h-4L13,9zM14.5,13.5h2v-3h-2v3z"/>
+ </group>
+
+</vector>
diff --git a/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml b/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml
index b6028ed9c..c74017e5d 100644
--- a/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml
+++ b/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml
@@ -1,51 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:orientation="horizontal"
- tools:showIn="@layout/incall_contact_grid">
- <ImageView
- android:id="@id/contactgrid_workIcon"
- android:src="@drawable/ic_work_profile"
- style="@style/BottomRowIcon"/>
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:animateLayoutChanges="true"
+ android:gravity="center_horizontal"
+ android:orientation="horizontal">
<ImageView
- android:id="@id/contactgrid_hdIcon"
- android:src="@drawable/quantum_ic_hd_white_24"
- style="@style/BottomRowIcon"
- android:visibility="gone"/>
+ android:id="@id/contactgrid_workIcon"
+ style="@style/BottomRowIcon"
+ android:src="@drawable/quantum_ic_enterprise_vd_theme_24"/>
<ImageView
- android:id="@id/contactgrid_forwardIcon"
- android:src="@drawable/quantum_ic_forward_white_24"
- style="@style/BottomRowIcon"/>
+ android:id="@+id/contactgrid_hdIcon"
+ style="@style/BottomRowIcon"
+ android:src="@drawable/asd_hd_icon"
+ android:visibility="gone"/>
<ImageView
- android:id="@+id/contactgrid_spamIcon"
- android:src="@drawable/quantum_ic_report_white_18"
- style="@style/BottomRowIcon"/>
- <ViewAnimator
- android:id="@+id/contactgrid_bottom_text_switcher"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="2dp"
- android:measureAllChildren="false">
- <TextView
- android:id="@+id/contactgrid_bottom_text"
+ android:id="@id/contactgrid_forwardIcon"
+ style="@style/BottomRowIcon"
+ android:src="@drawable/quantum_ic_forward_vd_theme_24"/>
+ <TextView
+ android:id="@+id/contactgrid_forwardNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
+ android:visibility="gone"
android:singleLine="true"
android:textAppearance="@style/Dialer.Incall.TextAppearance"
tools:gravity="start"
- tools:text="Mobile +1 (650) 253-0000"/>
- <Chronometer
- android:id="@+id/contactgrid_bottom_timer"
+ tools:text="+1 (650) 253-0000"/>
+ <ImageView
+ android:id="@+id/contactgrid_spamIcon"
+ style="@style/BottomRowIcon"
+ android:src="@drawable/quantum_ic_report_vd_theme_24"/>
+ <ViewAnimator
+ android:id="@+id/contactgrid_bottom_text_switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal"
- android:singleLine="true"
- android:textAppearance="@style/Dialer.Incall.TextAppearance"
- tools:gravity="center"/>
+ android:layout_marginBottom="2dp"
+ android:measureAllChildren="false">
+ <TextView
+ android:id="@+id/contactgrid_bottom_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:singleLine="true"
+ android:textAppearance="@style/Dialer.Incall.TextAppearance"
+ tools:gravity="start"
+ tools:text="Mobile +1 (650) 253-0000"/>
+ <Chronometer
+ android:id="@+id/contactgrid_bottom_timer"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:singleLine="true"
+ android:textAppearance="@style/Dialer.Incall.TextAppearance"
+ tools:gravity="center"/>
</ViewAnimator>
</LinearLayout>
diff --git a/java/com/android/incallui/incall/impl/InCallFragment.java b/java/com/android/incallui/incall/impl/InCallFragment.java
index ac3c57ca9..c5d75329f 100644
--- a/java/com/android/incallui/incall/impl/InCallFragment.java
+++ b/java/com/android/incallui/incall/impl/InCallFragment.java
@@ -208,8 +208,8 @@ public class InCallFragment extends Fragment
}
@Override
- public void onDestroy() {
- super.onDestroy();
+ public void onDestroyView() {
+ super.onDestroyView();
inCallScreenDelegate.onInCallScreenUnready();
}
@@ -267,11 +267,14 @@ public class InCallFragment extends Fragment
adapter.setAttachments(multimediaData);
}
- if (adapter.getCount() > 1) {
+ if (adapter.getCount() > 1 && getResources().getInteger(R.integer.incall_num_rows) > 1) {
paginator.setVisibility(View.VISIBLE);
paginator.setupWithViewPager(pager);
+ pager.setSwipingLocked(false);
if (!stateRestored) {
handler.postDelayed(pagerRunnable, 4_000);
+ } else {
+ pager.setCurrentItem(adapter.getButtonGridPosition(), false /* animateScroll */);
}
} else {
paginator.setVisibility(View.GONE);
diff --git a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
index 2e2183565..0b1088d2d 100644
--- a/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
+++ b/java/com/android/incallui/incall/impl/InCallPagerAdapter.java
@@ -41,7 +41,7 @@ public class InCallPagerAdapter extends FragmentStatePagerAdapter {
return InCallButtonGridFragment.newInstance();
} else {
// TODO: handle fragment invalidation for when the data changes.
- return MultimediaFragment.newInstance(attachments, true, false);
+ return MultimediaFragment.newInstance(attachments, true, false, false);
}
}
diff --git a/java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java b/java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java
index 33e133d7f..d774fc3d4 100644
--- a/java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java
+++ b/java/com/android/incallui/legacyblocking/BlockedNumberContentObserver.java
@@ -24,6 +24,7 @@ import android.support.annotation.NonNull;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.AsyncTaskExecutor;
import com.android.dialer.common.concurrent.AsyncTaskExecutors;
+import com.android.dialer.util.PermissionsUtil;
import java.util.Objects;
/**
@@ -93,8 +94,13 @@ public class BlockedNumberContentObserver extends ContentObserver
*/
public void register() {
LogUtil.i("BlockedNumberContentObserver.register", null);
- context.getContentResolver().registerContentObserver(CallLog.CONTENT_URI, true, this);
- handler.postDelayed(timeoutRunnable, TIMEOUT_MS);
+ if (PermissionsUtil.hasCallLogReadPermissions(context)
+ && PermissionsUtil.hasCallLogWritePermissions(context)) {
+ context.getContentResolver().registerContentObserver(CallLog.CONTENT_URI, true, this);
+ handler.postDelayed(timeoutRunnable, TIMEOUT_MS);
+ } else {
+ LogUtil.w("BlockedNumberContentObserver.register", "no call log read/write permissions.");
+ }
}
private void unregister() {
diff --git a/java/com/android/incallui/sessiondata/MultimediaFragment.java b/java/com/android/incallui/sessiondata/MultimediaFragment.java
index 14aa0a3aa..85a60b6e3 100644
--- a/java/com/android/incallui/sessiondata/MultimediaFragment.java
+++ b/java/com/android/incallui/sessiondata/MultimediaFragment.java
@@ -46,7 +46,7 @@ import com.bumptech.glide.request.target.Target;
* Displays info from {@link MultimediaData MultimediaData}.
*
* <p>Currently displays image, location (as a map), and message that come bundled with
- * MultimediaData when calling {@link #newInstance(MultimediaData, boolean, boolean)}.
+ * MultimediaData when calling {@link #newInstance(MultimediaData, boolean, boolean, boolean)}.
*/
public class MultimediaFragment extends Fragment implements AvatarPresenter {
@@ -55,18 +55,24 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
private static final String ARG_LOCATION = "location";
private static final String ARG_INTERACTIVE = "interactive";
private static final String ARG_SHOW_AVATAR = "show_avatar";
+ private static final String ARG_IS_SPAM = "is_spam";
private ImageView avatarImageView;
private boolean showAvatar;
+ private boolean isSpam;
public static MultimediaFragment newInstance(
- @NonNull MultimediaData multimediaData, boolean isInteractive, boolean showAvatar) {
+ @NonNull MultimediaData multimediaData,
+ boolean isInteractive,
+ boolean showAvatar,
+ boolean isSpam) {
return newInstance(
multimediaData.getText(),
multimediaData.getImageUri(),
multimediaData.getLocation(),
isInteractive,
- showAvatar);
+ showAvatar,
+ isSpam);
}
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
@@ -75,13 +81,15 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
@Nullable Uri imageUri,
@Nullable Location location,
boolean isInteractive,
- boolean showAvatar) {
+ boolean showAvatar,
+ boolean isSpam) {
Bundle args = new Bundle();
args.putString(ARG_SUBJECT, subject);
args.putParcelable(ARG_IMAGE, imageUri);
args.putParcelable(ARG_LOCATION, location);
args.putBoolean(ARG_INTERACTIVE, isInteractive);
args.putBoolean(ARG_SHOW_AVATAR, showAvatar);
+ args.putBoolean(ARG_IS_SPAM, isSpam);
MultimediaFragment fragment = new MultimediaFragment();
fragment.setArguments(args);
return fragment;
@@ -91,12 +99,17 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
public void onCreate(@Nullable Bundle bundle) {
super.onCreate(bundle);
showAvatar = getArguments().getBoolean(ARG_SHOW_AVATAR);
+ isSpam = getArguments().getBoolean(ARG_IS_SPAM);
}
@Nullable
@Override
public View onCreateView(
LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) {
+ if (isSpam) {
+ return layoutInflater.inflate(R.layout.fragment_spam, viewGroup, false);
+ }
+
boolean hasImage = getImageUri() != null;
boolean hasSubject = !TextUtils.isEmpty(getSubject());
boolean hasMap = getLocation() != null;
@@ -127,6 +140,21 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
@Override
public void onViewCreated(View view, @Nullable Bundle bundle) {
super.onViewCreated(view, bundle);
+ View container = view.findViewById(R.id.answer_message_container);
+ if (container != null) {
+ container.setClipToOutline(true);
+ }
+
+ // If the call is spam and only has a subject, update the view to reflect that.
+ if (isSpam
+ && getLocation() == null
+ && getImageUri() == null
+ && !TextUtils.isEmpty(getSubject())) {
+ ((ImageView) view.findViewById(R.id.spam_image))
+ .setImageResource(R.drawable.quantum_ic_message_white_24);
+ ((TextView) view.findViewById(R.id.spam_text)).setText(R.string.spam_message_text);
+ }
+
TextView messageText = (TextView) view.findViewById(R.id.answer_message_text);
if (messageText != null) {
messageText.setText(getSubject());
@@ -175,7 +203,9 @@ public class MultimediaFragment extends Fragment implements AvatarPresenter {
.commitNow();
}
avatarImageView = ((ImageView) view.findViewById(R.id.answer_message_avatar));
- avatarImageView.setVisibility(showAvatar ? View.VISIBLE : View.GONE);
+ if (avatarImageView != null) {
+ avatarImageView.setVisibility(showAvatar ? View.VISIBLE : View.GONE);
+ }
Holder parent = FragmentUtils.getParent(this, Holder.class);
if (parent != null) {
diff --git a/java/com/android/incallui/sessiondata/res/drawable/answer_data_background.xml b/java/com/android/incallui/sessiondata/res/drawable/answer_data_background.xml
index 8826f904b..1d481f3f8 100644
--- a/java/com/android/incallui/sessiondata/res/drawable/answer_data_background.xml
+++ b/java/com/android/incallui/sessiondata/res/drawable/answer_data_background.xml
@@ -15,8 +15,9 @@
~ limitations under the License
-->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
- android:shape="rectangle">
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
<corners android:radius="16dp"/>
- <solid android:color="@android:color/white"/>
+ <solid android:color="@color/background_dialer_white"/>
</shape>
diff --git a/java/com/android/incallui/sessiondata/res/drawable/answer_text_only_background.xml b/java/com/android/incallui/sessiondata/res/drawable/answer_text_only_background.xml
new file mode 100644
index 000000000..ac8edfb99
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/drawable/answer_text_only_background.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2016 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <corners android:radius="16dp"/>
+ <solid android:color="#CC05218B"/>
+</shape>
diff --git a/java/com/android/incallui/sessiondata/res/drawable/spam_container_background.xml b/java/com/android/incallui/sessiondata/res/drawable/spam_container_background.xml
new file mode 100644
index 000000000..f01fe514a
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/drawable/spam_container_background.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<shape
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <corners android:radius="16dp"/>
+ <solid android:color="@color/background_dialer_light"/>
+</shape> \ No newline at end of file
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_frag.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_frag.xml
index ed2bee0d1..e5c879888 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_frag.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_frag.xml
@@ -15,28 +15,28 @@
~ 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:paddingTop="16dp"
- android:paddingStart="16dp"
- android:paddingEnd="24dp"
- android:orientation="horizontal">
-
- <ImageView
- android:id="@id/answer_message_avatar"
- android:layout_width="@dimen/answer_message_avatar_size"
- android:layout_height="@dimen/answer_message_avatar_size"
- android:elevation="@dimen/answer_data_elevation"/>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:paddingStart="@dimen/answer_message_margin_start_end"
+ android:paddingEnd="@dimen/answer_message_margin_start_end">
<FrameLayout
- android:id="@id/answer_message_frag"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:layout_marginBottom="4dp"
- android:layout_marginStart="8dp"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:outlineProvider="background"/>
-</LinearLayout>
+ android:id="@id/answer_message_frag"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/answer_message_contents_margin_top"
+ android:layout_marginBottom="4dp"
+ android:layout_alignTop="@+id/answer_message_avatar"
+ android:background="@drawable/answer_data_background"
+ android:elevation="@dimen/answer_data_elevation"
+ android:outlineProvider="background"/>
+
+ <ImageView
+ android:id="@id/answer_message_avatar"
+ android:layout_width="@dimen/answer_message_avatar_size"
+ android:layout_height="@dimen/answer_message_avatar_size"
+ android:layout_centerHorizontal="true"
+ android:elevation="@dimen/answer_avatar_elevation"/>
+</RelativeLayout>
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
index 431a178c2..ed29e78c4 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image.xml
@@ -16,36 +16,37 @@
-->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="16dp"
- android:paddingStart="16dp"
- android:paddingEnd="24dp">
-
- <ImageView
- android:id="@id/answer_message_avatar"
- android:layout_width="@dimen/answer_message_avatar_size"
- android:layout_height="@dimen/answer_message_avatar_size"
- android:elevation="@dimen/answer_data_elevation"/>
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:paddingStart="@dimen/answer_message_margin_start_end"
+ android:paddingEnd="@dimen/answer_message_margin_start_end">
<ImageView
- android:id="@id/answer_message_image"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="4dp"
- android:layout_marginStart="8dp"
- android:layout_centerInParent="true"
- android:layout_toEndOf="@+id/answer_message_avatar"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:outlineProvider="background"
- android:adjustViewBounds="true"
- android:scaleType="fitCenter"/>
+ android:id="@id/answer_message_image"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/answer_message_contents_margin_top"
+ android:layout_marginBottom="4dp"
+ android:layout_centerInParent="true"
+ android:layout_alignTop="@+id/answer_message_avatar"
+ android:outlineProvider="background"
+ android:background="@drawable/answer_data_background"
+ android:elevation="@dimen/answer_data_elevation"
+ android:adjustViewBounds="true"
+ android:scaleType="fitCenter"/>
<ProgressBar
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/loading_spinner"
- android:layout_centerInParent="true"
- android:elevation="2dp"/>
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/loading_spinner"
+ android:layout_centerInParent="true"
+ android:elevation="@dimen/answer_data_elevation"/>
+
+ <ImageView
+ android:id="@id/answer_message_avatar"
+ android:layout_width="@dimen/answer_message_avatar_size"
+ android:layout_height="@dimen/answer_message_avatar_size"
+ android:layout_centerHorizontal="true"
+ android:elevation="@dimen/answer_avatar_elevation"/>
</RelativeLayout>
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image_frag.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image_frag.xml
index c816418fc..1cb234784 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image_frag.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_image_frag.xml
@@ -15,53 +15,50 @@
~ limitations under the License
-->
-<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="16dp"
- android:paddingStart="16dp"
- android:paddingEnd="24dp"
- android:orientation="horizontal">
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:paddingStart="@dimen/answer_message_margin_start_end"
+ android:paddingEnd="@dimen/answer_message_margin_start_end">
- <ImageView
- android:id="@id/answer_message_avatar"
- android:layout_width="@dimen/answer_message_avatar_size"
- android:layout_height="@dimen/answer_message_avatar_size"
- android:layout_rowSpan="2"
- android:elevation="@dimen/answer_data_elevation"/>
+ <LinearLayout
+ android:id="@id/answer_message_container"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/answer_message_contents_margin_top"
+ android:layout_alignTop="@+id/answer_message_avatar"
+ android:layout_marginBottom="@dimen/answer_data_elevation"
+ android:elevation="@dimen/answer_data_elevation"
+ android:background="@drawable/answer_data_background"
+ android:outlineProvider="background">
- <ImageView
- android:id="@id/answer_message_image"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginStart="8dp"
- android:layout_columnWeight="1"
- android:layout_rowWeight="1"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:outlineProvider="background"
- android:scaleType="centerCrop"/>
+ <ImageView
+ android:id="@id/answer_message_image"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:scaleType="centerCrop"/>
+
+ <FrameLayout
+ android:id="@id/answer_message_frag"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"/>
+ </LinearLayout>
<ProgressBar
- android:id="@+id/loading_spinner"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_column="1"
- android:layout_gravity="center"
- android:elevation="2dp"/>
+ android:id="@+id/loading_spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:elevation="@dimen/answer_data_elevation"/>
- <FrameLayout
- android:id="@id/answer_message_frag"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="4dp"
- android:layout_marginStart="8dp"
- android:layout_column="1"
- android:layout_columnWeight="1"
- android:layout_row="1"
- android:layout_rowWeight="1"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:outlineProvider="background"/>
-</GridLayout>
+ <ImageView
+ android:id="@id/answer_message_avatar"
+ android:layout_width="@dimen/answer_message_avatar_size"
+ android:layout_height="@dimen/answer_message_avatar_size"
+ android:layout_centerHorizontal="true"
+ android:elevation="@dimen/answer_avatar_elevation"/>
+</RelativeLayout>
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text.xml
index c69973042..d2147ea62 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text.xml
@@ -15,29 +15,35 @@
~ 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:paddingTop="16dp"
- android:paddingStart="16dp"
- android:paddingEnd="24dp"
- android:orientation="horizontal">
-
- <ImageView
- android:id="@id/answer_message_avatar"
- android:layout_width="@dimen/answer_message_avatar_size"
- android:layout_height="@dimen/answer_message_avatar_size"
- android:elevation="@dimen/answer_data_elevation"/>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:paddingStart="@dimen/answer_message_margin_start_end"
+ android:paddingEnd="@dimen/answer_message_margin_start_end">
<TextView
- android:id="@id/answer_message_text"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:layout_marginBottom="4dp"
- android:layout_marginStart="8dp"
- android:padding="18dp"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:textAppearance="@style/Dialer.Incall.TextAppearance.Message"/>
-</LinearLayout>
+ android:id="@id/answer_message_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/answer_message_contents_margin_top"
+ android:layout_marginBottom="4dp"
+ android:layout_centerHorizontal="true"
+ android:layout_alignTop="@+id/answer_message_avatar"
+ android:paddingTop="44dp"
+ android:paddingBottom="44dp"
+ android:paddingStart="18dp"
+ android:paddingEnd="18dp"
+ android:background="@drawable/answer_text_only_background"
+ android:elevation="@dimen/answer_data_elevation"
+ android:gravity="center_horizontal"
+ android:textColor="@color/background_dialer_white"
+ android:textAppearance="@style/Dialer.Incall.TextAppearance.Message"/>
+
+ <ImageView
+ android:id="@id/answer_message_avatar"
+ android:layout_width="@dimen/answer_message_avatar_size"
+ android:layout_height="@dimen/answer_message_avatar_size"
+ android:layout_centerHorizontal="true"
+ android:elevation="@dimen/answer_avatar_elevation"/>
+</RelativeLayout>
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_frag.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_frag.xml
index 5a1cf728b..4a73ef619 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_frag.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_frag.xml
@@ -15,47 +15,47 @@
~ limitations under the License
-->
-<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="16dp"
- android:paddingStart="16dp"
- android:paddingEnd="24dp"
- android:orientation="horizontal">
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:paddingStart="@dimen/answer_message_margin_start_end"
+ android:paddingEnd="@dimen/answer_message_margin_start_end">
- <ImageView
- android:id="@id/answer_message_avatar"
- android:layout_width="@dimen/answer_message_avatar_size"
- android:layout_height="@dimen/answer_message_avatar_size"
- android:layout_rowSpan="2"
- android:elevation="@dimen/answer_data_elevation"/>
+ <LinearLayout
+ android:id="@id/answer_message_container"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/answer_message_contents_margin_top"
+ android:layout_alignTop="@+id/answer_message_avatar"
+ android:layout_marginBottom="@dimen/answer_data_elevation"
+ android:elevation="@dimen/answer_data_elevation"
+ android:background="@drawable/answer_data_background"
+ android:outlineProvider="background">
+
+ <FrameLayout
+ android:id="@id/answer_message_frag"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="3"/>
- <TextView
- android:id="@id/answer_message_text"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginStart="8dp"
- android:layout_columnWeight="1"
- android:layout_rowWeight="1"
- android:padding="18dp"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:gravity="center_vertical"
- android:maxLines="2"
- android:textAppearance="@style/Dialer.Incall.TextAppearance.Message"/>
+ <TextView
+ android:id="@id/answer_message_text"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="2"
+ android:paddingStart="18dp"
+ android:paddingEnd="18dp"
+ android:gravity="center"
+ android:maxLines="2"
+ android:textAppearance="@style/Dialer.Incall.TextAppearance.Message"/>
+ </LinearLayout>
- <FrameLayout
- android:id="@id/answer_message_frag"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="4dp"
- android:layout_marginStart="8dp"
- android:layout_column="1"
- android:layout_columnWeight="1"
- android:layout_row="1"
- android:layout_rowWeight="1"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:outlineProvider="background"/>
-</GridLayout>
+ <ImageView
+ android:id="@id/answer_message_avatar"
+ android:layout_width="@dimen/answer_message_avatar_size"
+ android:layout_height="@dimen/answer_message_avatar_size"
+ android:layout_centerHorizontal="true"
+ android:elevation="@dimen/answer_avatar_elevation"/>
+</RelativeLayout> \ No newline at end of file
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image.xml
index 4e6fcbadb..828675b6b 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image.xml
@@ -15,56 +15,55 @@
~ limitations under the License
-->
-<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="16dp"
- android:paddingStart="16dp"
- android:paddingEnd="24dp"
- android:orientation="horizontal">
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:paddingStart="@dimen/answer_message_margin_start_end"
+ android:paddingEnd="@dimen/answer_message_margin_start_end">
- <ImageView
- android:id="@id/answer_message_avatar"
- android:layout_width="@dimen/answer_message_avatar_size"
- android:layout_height="@dimen/answer_message_avatar_size"
- android:layout_rowSpan="2"
- android:elevation="@dimen/answer_data_elevation"/>
+ <LinearLayout
+ android:id="@id/answer_message_container"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/answer_message_contents_margin_top"
+ android:layout_alignTop="@+id/answer_message_avatar"
+ android:layout_marginBottom="@dimen/answer_data_elevation"
+ android:elevation="@dimen/answer_data_elevation"
+ android:background="@drawable/answer_data_background"
+ android:outlineProvider="background">
- <TextView
- android:id="@id/answer_message_text"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginStart="8dp"
- android:layout_columnWeight="1"
- android:layout_rowWeight="1"
- android:padding="18dp"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:gravity="center_vertical"
- android:maxLines="2"
- android:textAppearance="@style/Dialer.Incall.TextAppearance.Message"/>
+ <ImageView
+ android:id="@id/answer_message_image"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="3"
+ android:scaleType="centerCrop"/>
- <ImageView
- android:id="@id/answer_message_image"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="4dp"
- android:layout_marginStart="8dp"
- android:layout_column="1"
- android:layout_columnWeight="1"
- android:layout_row="1"
- android:layout_rowWeight="1"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:outlineProvider="background"
- android:scaleType="centerCrop"/>
+ <TextView
+ android:id="@id/answer_message_text"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="2"
+ android:paddingStart="18dp"
+ android:paddingEnd="18dp"
+ android:gravity="center"
+ android:maxLines="2"
+ android:textAppearance="@style/Dialer.Incall.TextAppearance.Message"/>
+ </LinearLayout>
<ProgressBar
- android:id="@+id/loading_spinner"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_column="1"
- android:layout_gravity="center"
- android:elevation="2dp"/>
-</GridLayout>
+ android:id="@+id/loading_spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:elevation="@dimen/answer_data_elevation"/>
+
+ <ImageView
+ android:id="@id/answer_message_avatar"
+ android:layout_width="@dimen/answer_message_avatar_size"
+ android:layout_height="@dimen/answer_message_avatar_size"
+ android:layout_centerHorizontal="true"
+ android:elevation="@dimen/answer_avatar_elevation"/>
+</RelativeLayout> \ No newline at end of file
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image_frag.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image_frag.xml
index ffbe41bbd..4abdbb25d 100644
--- a/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image_frag.xml
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_composer_text_image_frag.xml
@@ -15,72 +15,68 @@
~ limitations under the License
-->
-<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingTop="16dp"
- android:paddingStart="16dp"
- android:paddingEnd="24dp"
- android:orientation="horizontal">
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="16dp"
+ android:paddingStart="@dimen/answer_message_margin_start_end"
+ android:paddingEnd="@dimen/answer_message_margin_start_end">
- <ImageView
- android:id="@id/answer_message_avatar"
- android:layout_width="@dimen/answer_message_avatar_size"
- android:layout_height="@dimen/answer_message_avatar_size"
- android:layout_rowSpan="2"
- android:elevation="@dimen/answer_data_elevation"/>
+ <LinearLayout
+ android:id="@id/answer_message_container"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="@dimen/answer_message_contents_margin_top"
+ android:layout_alignTop="@+id/answer_message_avatar"
+ android:layout_marginBottom="@dimen/answer_data_elevation"
+ android:elevation="@dimen/answer_data_elevation"
+ android:background="@drawable/answer_data_background"
+ android:outlineProvider="background">
- <TextView
- android:id="@id/answer_message_text"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginStart="8dp"
- android:layout_columnWeight="2"
- android:layout_columnSpan="2"
- android:layout_rowWeight="1"
- android:padding="18dp"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:gravity="center_vertical"
- android:maxLines="2"
- android:textAppearance="@style/Dialer.Incall.TextAppearance.Message"/>
+ <LinearLayout
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="3">
- <ImageView
- android:id="@id/answer_message_image"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="4dp"
- android:layout_marginStart="8dp"
- android:layout_column="1"
- android:layout_columnWeight="1"
- android:layout_row="1"
- android:layout_rowWeight="1"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:outlineProvider="background"
- android:scaleType="centerCrop"/>
+ <ImageView
+ android:id="@id/answer_message_image"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:scaleType="centerCrop"/>
+
+ <FrameLayout
+ android:id="@id/answer_message_frag"
+ android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"/>
+ </LinearLayout>
+
+ <TextView
+ android:id="@id/answer_message_text"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="2"
+ android:paddingStart="18dp"
+ android:paddingEnd="18dp"
+ android:gravity="center"
+ android:maxLines="2"
+ android:textAppearance="@style/Dialer.Incall.TextAppearance.Message"/>
+ </LinearLayout>
<ProgressBar
- android:id="@+id/loading_spinner"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_column="1"
- android:layout_gravity="center"
- android:elevation="2dp"/>
+ android:id="@+id/loading_spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:elevation="@dimen/answer_data_elevation"/>
- <FrameLayout
- android:id="@id/answer_message_frag"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_marginTop="4dp"
- android:layout_marginBottom="4dp"
- android:layout_marginStart="8dp"
- android:layout_column="2"
- android:layout_columnWeight="1"
- android:layout_row="1"
- android:layout_rowWeight="1"
- android:background="@drawable/answer_data_background"
- android:elevation="@dimen/answer_data_elevation"
- android:outlineProvider="background"/>
-</GridLayout>
+ <ImageView
+ android:id="@id/answer_message_avatar"
+ android:layout_width="@dimen/answer_message_avatar_size"
+ android:layout_height="@dimen/answer_message_avatar_size"
+ android:layout_centerHorizontal="true"
+ android:elevation="@dimen/answer_avatar_elevation"/>
+</RelativeLayout> \ No newline at end of file
diff --git a/java/com/android/incallui/sessiondata/res/layout/fragment_spam.xml b/java/com/android/incallui/sessiondata/res/layout/fragment_spam.xml
new file mode 100644
index 000000000..ccf69a50c
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/layout/fragment_spam.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingTop="16dp"
+ android:paddingStart="@dimen/answer_message_margin_start_end"
+ android:paddingEnd="@dimen/answer_message_margin_start_end"
+ android:elevation="@dimen/answer_data_elevation">
+
+ <LinearLayout
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="204dp"
+ android:layout_gravity="center"
+ android:padding="16dp"
+ android:gravity="center"
+ android:outlineProvider="background"
+ android:background="@drawable/spam_container_background">
+
+ <ImageView
+ android:id="@+id/spam_image"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="18dp"
+ android:src="@drawable/quantum_ic_image_white_24"
+ android:tint="#546e7a"/>
+
+ <TextView
+ android:id="@+id/spam_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/spam_photo_text"
+ android:textColor="#546e7a"
+ android:textSize="12sp"/>
+ </LinearLayout>
+</FrameLayout> \ No newline at end of file
diff --git a/java/com/android/incallui/sessiondata/res/values-af/strings.xml b/java/com/android/incallui/sessiondata/res/values-af/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-af/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-am/strings.xml b/java/com/android/incallui/sessiondata/res/values-am/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-am/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ar/strings.xml b/java/com/android/incallui/sessiondata/res/values-ar/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ar/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-az/strings.xml b/java/com/android/incallui/sessiondata/res/values-az/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-az/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/sessiondata/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-be/strings.xml b/java/com/android/incallui/sessiondata/res/values-be/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-be/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-bg/strings.xml b/java/com/android/incallui/sessiondata/res/values-bg/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-bg/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-bn/strings.xml b/java/com/android/incallui/sessiondata/res/values-bn/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-bn/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-bs/strings.xml b/java/com/android/incallui/sessiondata/res/values-bs/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-bs/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ca/strings.xml b/java/com/android/incallui/sessiondata/res/values-ca/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ca/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-cs/strings.xml b/java/com/android/incallui/sessiondata/res/values-cs/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-cs/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-da/strings.xml b/java/com/android/incallui/sessiondata/res/values-da/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-da/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-de/strings.xml b/java/com/android/incallui/sessiondata/res/values-de/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-de/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-el/strings.xml b/java/com/android/incallui/sessiondata/res/values-el/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-el/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-en-rAU/strings.xml b/java/com/android/incallui/sessiondata/res/values-en-rAU/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-en-rAU/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-en-rGB/strings.xml b/java/com/android/incallui/sessiondata/res/values-en-rGB/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-en-rGB/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-en-rIN/strings.xml b/java/com/android/incallui/sessiondata/res/values-en-rIN/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-en-rIN/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-es-rUS/strings.xml b/java/com/android/incallui/sessiondata/res/values-es-rUS/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-es-rUS/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-es/strings.xml b/java/com/android/incallui/sessiondata/res/values-es/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-es/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-et/strings.xml b/java/com/android/incallui/sessiondata/res/values-et/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-et/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-eu/strings.xml b/java/com/android/incallui/sessiondata/res/values-eu/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-eu/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-fa/strings.xml b/java/com/android/incallui/sessiondata/res/values-fa/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-fa/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-fi/strings.xml b/java/com/android/incallui/sessiondata/res/values-fi/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-fi/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-fr-rCA/strings.xml b/java/com/android/incallui/sessiondata/res/values-fr-rCA/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-fr-rCA/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-fr/strings.xml b/java/com/android/incallui/sessiondata/res/values-fr/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-fr/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-gl/strings.xml b/java/com/android/incallui/sessiondata/res/values-gl/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-gl/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-gu/strings.xml b/java/com/android/incallui/sessiondata/res/values-gu/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-gu/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-hi/strings.xml b/java/com/android/incallui/sessiondata/res/values-hi/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-hi/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-hr/strings.xml b/java/com/android/incallui/sessiondata/res/values-hr/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-hr/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-hu/strings.xml b/java/com/android/incallui/sessiondata/res/values-hu/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-hu/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-hy/strings.xml b/java/com/android/incallui/sessiondata/res/values-hy/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-hy/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-in/strings.xml b/java/com/android/incallui/sessiondata/res/values-in/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-in/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-is/strings.xml b/java/com/android/incallui/sessiondata/res/values-is/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-is/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-it/strings.xml b/java/com/android/incallui/sessiondata/res/values-it/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-it/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-iw/strings.xml b/java/com/android/incallui/sessiondata/res/values-iw/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-iw/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ja/strings.xml b/java/com/android/incallui/sessiondata/res/values-ja/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ja/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ka/strings.xml b/java/com/android/incallui/sessiondata/res/values-ka/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ka/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-kk/strings.xml b/java/com/android/incallui/sessiondata/res/values-kk/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-kk/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-km/strings.xml b/java/com/android/incallui/sessiondata/res/values-km/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-km/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-kn/strings.xml b/java/com/android/incallui/sessiondata/res/values-kn/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-kn/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ko/strings.xml b/java/com/android/incallui/sessiondata/res/values-ko/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ko/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ky/strings.xml b/java/com/android/incallui/sessiondata/res/values-ky/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ky/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-lo/strings.xml b/java/com/android/incallui/sessiondata/res/values-lo/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-lo/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-lt/strings.xml b/java/com/android/incallui/sessiondata/res/values-lt/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-lt/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-lv/strings.xml b/java/com/android/incallui/sessiondata/res/values-lv/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-lv/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-mk/strings.xml b/java/com/android/incallui/sessiondata/res/values-mk/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-mk/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ml/strings.xml b/java/com/android/incallui/sessiondata/res/values-ml/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ml/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-mn/strings.xml b/java/com/android/incallui/sessiondata/res/values-mn/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-mn/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-mr/strings.xml b/java/com/android/incallui/sessiondata/res/values-mr/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-mr/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ms/strings.xml b/java/com/android/incallui/sessiondata/res/values-ms/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ms/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-my/strings.xml b/java/com/android/incallui/sessiondata/res/values-my/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-my/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-nb/strings.xml b/java/com/android/incallui/sessiondata/res/values-nb/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-nb/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ne/strings.xml b/java/com/android/incallui/sessiondata/res/values-ne/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ne/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-nl/strings.xml b/java/com/android/incallui/sessiondata/res/values-nl/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-nl/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-no/strings.xml b/java/com/android/incallui/sessiondata/res/values-no/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-no/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-pa/strings.xml b/java/com/android/incallui/sessiondata/res/values-pa/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-pa/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-pl/strings.xml b/java/com/android/incallui/sessiondata/res/values-pl/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-pl/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-pt-rBR/strings.xml b/java/com/android/incallui/sessiondata/res/values-pt-rBR/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-pt-rBR/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-pt-rPT/strings.xml b/java/com/android/incallui/sessiondata/res/values-pt-rPT/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-pt-rPT/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-pt/strings.xml b/java/com/android/incallui/sessiondata/res/values-pt/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-pt/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ro/strings.xml b/java/com/android/incallui/sessiondata/res/values-ro/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ro/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ru/strings.xml b/java/com/android/incallui/sessiondata/res/values-ru/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ru/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-si/strings.xml b/java/com/android/incallui/sessiondata/res/values-si/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-si/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-sk/strings.xml b/java/com/android/incallui/sessiondata/res/values-sk/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-sk/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-sl/strings.xml b/java/com/android/incallui/sessiondata/res/values-sl/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-sl/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-sq/strings.xml b/java/com/android/incallui/sessiondata/res/values-sq/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-sq/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-sr/strings.xml b/java/com/android/incallui/sessiondata/res/values-sr/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-sr/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-sv/strings.xml b/java/com/android/incallui/sessiondata/res/values-sv/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-sv/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-sw/strings.xml b/java/com/android/incallui/sessiondata/res/values-sw/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-sw/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ta/strings.xml b/java/com/android/incallui/sessiondata/res/values-ta/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ta/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-te/strings.xml b/java/com/android/incallui/sessiondata/res/values-te/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-te/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-th/strings.xml b/java/com/android/incallui/sessiondata/res/values-th/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-th/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-tl/strings.xml b/java/com/android/incallui/sessiondata/res/values-tl/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-tl/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-tr/strings.xml b/java/com/android/incallui/sessiondata/res/values-tr/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-tr/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-uk/strings.xml b/java/com/android/incallui/sessiondata/res/values-uk/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-uk/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-ur/strings.xml b/java/com/android/incallui/sessiondata/res/values-ur/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-ur/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-uz/strings.xml b/java/com/android/incallui/sessiondata/res/values-uz/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-uz/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-vi/strings.xml b/java/com/android/incallui/sessiondata/res/values-vi/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-vi/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-zh-rCN/strings.xml b/java/com/android/incallui/sessiondata/res/values-zh-rCN/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-zh-rCN/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-zh-rHK/strings.xml b/java/com/android/incallui/sessiondata/res/values-zh-rHK/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-zh-rHK/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-zh-rTW/strings.xml b/java/com/android/incallui/sessiondata/res/values-zh-rTW/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-zh-rTW/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values-zu/strings.xml b/java/com/android/incallui/sessiondata/res/values-zu/strings.xml
new file mode 100644
index 000000000..effc240e0
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values-zu/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for spam_photo_text (5250301844057954813) -->
+ <skip />
+ <!-- no translation found for spam_message_text (6522893079398269847) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values/dimens.xml b/java/com/android/incallui/sessiondata/res/values/dimens.xml
index 76c7edb1b..71b7640c7 100644
--- a/java/com/android/incallui/sessiondata/res/values/dimens.xml
+++ b/java/com/android/incallui/sessiondata/res/values/dimens.xml
@@ -16,6 +16,9 @@
-->
<resources>
- <dimen name="answer_message_avatar_size">40dp</dimen>
+ <dimen name="answer_message_avatar_size">56dp</dimen>
+ <dimen name="answer_message_contents_margin_top">28dp</dimen>
+ <dimen name="answer_message_margin_start_end">32dp</dimen>
<dimen name="answer_data_elevation">2dp</dimen>
+ <dimen name="answer_avatar_elevation">4dp</dimen>
</resources>
diff --git a/java/com/android/incallui/sessiondata/res/values/ids.xml b/java/com/android/incallui/sessiondata/res/values/ids.xml
index 077474c81..d4e1764dd 100644
--- a/java/com/android/incallui/sessiondata/res/values/ids.xml
+++ b/java/com/android/incallui/sessiondata/res/values/ids.xml
@@ -16,6 +16,7 @@
-->
<resources>
+ <item name="answer_message_container" type="id"/>
<item name="answer_message_avatar" type="id"/>
<item name="answer_message_text" type="id"/>
<item name="answer_message_image" type="id"/>
diff --git a/java/com/android/incallui/sessiondata/res/values/strings.xml b/java/com/android/incallui/sessiondata/res/values/strings.xml
new file mode 100644
index 000000000..039056d64
--- /dev/null
+++ b/java/com/android/incallui/sessiondata/res/values/strings.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2017 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+<resources>
+ <string name="spam_photo_text">Answer to reveal photo</string>
+ <string name="spam_message_text">Answer to reveal message</string>
+</resources> \ No newline at end of file
diff --git a/java/com/android/incallui/spam/SpamCallListListener.java b/java/com/android/incallui/spam/SpamCallListListener.java
index 67dec93ad..547337eda 100644
--- a/java/com/android/incallui/spam/SpamCallListListener.java
+++ b/java/com/android/incallui/spam/SpamCallListListener.java
@@ -23,14 +23,15 @@ import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Icon;
+import android.support.annotation.NonNull;
import android.telecom.DisconnectCause;
import android.telephony.PhoneNumberUtils;
import android.text.TextUtils;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
import com.android.dialer.blocking.FilteredNumberCompat;
import com.android.dialer.blocking.FilteredNumbersUtil;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.ContactLookupResult;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
@@ -101,6 +102,9 @@ public class SpamCallListListener implements CallList.Listener {
public void onHandoverToWifiFailed(DialerCall call) {}
@Override
+ public void onInternationalCallOnWifi(@NonNull DialerCall call) {}
+
+ @Override
public void onDisconnect(DialerCall call) {
if (!shouldShowAfterCallNotification(call)) {
return;
@@ -183,7 +187,7 @@ public class SpamCallListListener implements CallList.Listener {
.setPriority(Notification.PRIORITY_DEFAULT)
.setColor(context.getColor(R.color.dialer_theme_color))
.setSmallIcon(R.drawable.ic_call_end_white_24dp);
- NotificationChannelManager.applyChannel(builder, context, Channel.MISC, null);
+ NotificationChannelManager.applyChannel(builder, context, Channel.DEFAULT, null);
return builder;
}
diff --git a/java/com/android/incallui/spam/SpamNotificationActivity.java b/java/com/android/incallui/spam/SpamNotificationActivity.java
index 98cc2f3da..ece0e4931 100644
--- a/java/com/android/incallui/spam/SpamNotificationActivity.java
+++ b/java/com/android/incallui/spam/SpamNotificationActivity.java
@@ -27,13 +27,13 @@ import android.provider.CallLog;
import android.provider.ContactsContract;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
-import com.android.contacts.common.GeoUtil;
import com.android.contacts.common.compat.PhoneNumberUtilsCompat;
import com.android.dialer.blocking.BlockReportSpamDialogs;
import com.android.dialer.blocking.BlockedNumbersMigrator;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.blocking.FilteredNumberCompat;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.ContactLookupResult;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
diff --git a/java/com/android/incallui/spam/SpamNotificationService.java b/java/com/android/incallui/spam/SpamNotificationService.java
index dbea2cc38..7888fc84e 100644
--- a/java/com/android/incallui/spam/SpamNotificationService.java
+++ b/java/com/android/incallui/spam/SpamNotificationService.java
@@ -23,9 +23,9 @@ import android.content.Intent;
import android.os.IBinder;
import android.provider.CallLog;
import android.support.annotation.Nullable;
-import com.android.contacts.common.GeoUtil;
import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.location.GeoUtil;
import com.android.dialer.logging.ContactLookupResult;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
diff --git a/java/com/android/incallui/telecomeventui/AndroidManifest.xml b/java/com/android/incallui/telecomeventui/AndroidManifest.xml
new file mode 100644
index 000000000..861b9368a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/AndroidManifest.xml
@@ -0,0 +1,15 @@
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<manifest package="com.android.incallui.telecomeventui"/> \ No newline at end of file
diff --git a/java/com/android/incallui/telecomeventui/InternationalCallOnWifiDialogFragment.java b/java/com/android/incallui/telecomeventui/InternationalCallOnWifiDialogFragment.java
new file mode 100644
index 000000000..2b602f876
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/InternationalCallOnWifiDialogFragment.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.incallui.telecomeventui;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
+import android.support.v4.app.DialogFragment;
+import android.support.v4.os.UserManagerCompat;
+import android.view.View;
+import android.widget.CheckBox;
+import com.android.dialer.common.Assert;
+import com.android.dialer.common.LogUtil;
+
+/**
+ * Dialog that may be shown when users place an outgoing call to an international number while on
+ * Wifi.
+ *
+ * <p>The android.telephony.event.EVENT_NOTIFY_INTERNATIONAL_CALL_ON_WFC event is sent when users
+ * attempt to place a call under these circumstances.
+ */
+public class InternationalCallOnWifiDialogFragment extends DialogFragment {
+
+ /**
+ * Returns {@code true} if an {@link InternationalCallOnWifiDialogFragment} should be shown.
+ *
+ * <p>Attempting to show an InternationalCallOnWifiDialogFragment when this method returns {@code
+ * false} will result in an {@link IllegalStateException}.
+ */
+ public static boolean shouldShow(@NonNull Context context) {
+ if (!UserManagerCompat.isUserUnlocked(context)) {
+ LogUtil.i("InternationalCallOnWifiDialogFragment.shouldShow", "user locked, returning false");
+ return false;
+ }
+
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
+ boolean shouldShow = preferences.getBoolean(ALWAYS_SHOW_WARNING_PREFERENCE_KEY, true);
+
+ LogUtil.i("InternationalCallOnWifiDialogFragment.shouldShow", "result: %b", shouldShow);
+ return shouldShow;
+ }
+
+ /**
+ * Called in response to user interaction with the {@link InternationalCallOnWifiDialogFragment}.
+ */
+ public interface Callback {
+
+ /** Indicates that the user wishes to proceed with the call represented by the given call id. */
+ void continueCall(@NonNull String callId);
+
+ /** Indicates that the user wishes to cancel the call represented by the given call id. */
+ void cancelCall(@NonNull String callId);
+ }
+
+ /**
+ * Returns a new instance of {@link InternationalCallOnWifiDialogFragment} with the given
+ * callback.
+ *
+ * <p>Prefer this method over the default constructor.
+ */
+ public static InternationalCallOnWifiDialogFragment newInstance(
+ @NonNull String callId, @NonNull Callback callback) {
+ InternationalCallOnWifiDialogFragment fragment = new InternationalCallOnWifiDialogFragment();
+ fragment.setCallback(callback);
+ Bundle args = new Bundle();
+ args.putString(ARG_CALL_ID, Assert.isNotNull(callId));
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ /**
+ * Key to the preference used to determine if the user wants to see {@link
+ * InternationalCallOnWifiDialogFragment InternationalCallOnWifiDialogFragments}.
+ */
+ @VisibleForTesting
+ static final String ALWAYS_SHOW_WARNING_PREFERENCE_KEY =
+ "ALWAYS_SHOW_INTERNATIONAL_CALL_ON_WIFI_WARNING";
+
+ /** Key in the arguments bundle for call id. */
+ private static final String ARG_CALL_ID = "call_id";
+
+ /**
+ * Callback which will receive information about user interactions with this dialog.
+ *
+ * <p>This is Nullable in the event that the dialog is destroyed by the framework, but doesn't
+ * have a callback reattached. Ideally, the InCallActivity would implement the callback and we
+ * would use FragmentUtils.getParentUnsafe instead of holding onto the callback here, but that's
+ * not possible with the existing InCallActivity/InCallActivityCommon implementation.
+ */
+ @Nullable private Callback callback;
+
+ /**
+ * Sets the callback for this dialog.
+ *
+ * <p>Used to reset the callback after state changes.
+ */
+ public void setCallback(@NonNull Callback callback) {
+ this.callback = Assert.isNotNull(callback);
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(Bundle bundle) {
+ super.onCreateDialog(bundle);
+ LogUtil.enterBlock("InternationalCallOnWifiDialogFragment.onCreateDialog");
+
+ if (!InternationalCallOnWifiDialogFragment.shouldShow(getActivity())) {
+ throw new IllegalStateException(
+ "shouldShow indicated InternationalCallOnWifiDialogFragment should not have showed");
+ }
+
+ View dialogView =
+ View.inflate(getActivity(), R.layout.frag_international_call_on_wifi_dialog, null);
+
+ CheckBox alwaysWarn = dialogView.findViewById(R.id.always_warn);
+
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
+ // The default is set to false in this case to ensure that the first time the dialog opens,
+ // the checkbox is unchecked.
+ alwaysWarn.setChecked(preferences.getBoolean(ALWAYS_SHOW_WARNING_PREFERENCE_KEY, false));
+
+ AlertDialog alertDialog =
+ new AlertDialog.Builder(getActivity(), R.style.AlertDialogTheme)
+ .setCancelable(false)
+ .setView(dialogView)
+ .setPositiveButton(
+ android.R.string.ok,
+ (dialog, which) -> onPositiveButtonClick(preferences, alwaysWarn.isChecked()))
+ .setNegativeButton(
+ android.R.string.cancel,
+ (dialog, which) -> onNegativeButtonClick(preferences, alwaysWarn.isChecked()))
+ .create();
+
+ alertDialog.setCanceledOnTouchOutside(false);
+ return alertDialog;
+ }
+
+ private void onPositiveButtonClick(@NonNull SharedPreferences preferences, boolean alwaysWarn) {
+ LogUtil.i(
+ "InternationalCallOnWifiDialogFragment.onPositiveButtonClick",
+ "alwaysWarn: %b",
+ alwaysWarn);
+ preferences.edit().putBoolean(ALWAYS_SHOW_WARNING_PREFERENCE_KEY, alwaysWarn).apply();
+
+ // Neither callback nor callId are null in normal circumstances. See comments on callback
+ callback.continueCall(getArguments().getString(ARG_CALL_ID));
+ }
+
+ private void onNegativeButtonClick(@NonNull SharedPreferences preferences, boolean alwaysWarn) {
+ LogUtil.i(
+ "InternationalCallOnWifiDialogFragment.onNegativeButtonClick",
+ "alwaysWarn: %b",
+ alwaysWarn);
+ preferences.edit().putBoolean(ALWAYS_SHOW_WARNING_PREFERENCE_KEY, alwaysWarn).apply();
+
+ // Neither callback nor callId are null in normal circumstances. See comments on callback
+ callback.cancelCall(getArguments().getString(ARG_CALL_ID));
+ }
+}
diff --git a/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml b/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml
new file mode 100644
index 000000000..3d8adcb0d
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT 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="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingTop="25dp"
+ android:paddingStart="25dp"
+ android:paddingEnd="25dp"
+ android:paddingBottom="4dp"
+ android:orientation="vertical">
+
+ <TextView
+ android:id="@+id/details"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:text="@string/details"
+ android:textColor="@color/dialer_primary_text_color"
+ android:textSize="16sp"/>
+
+ <CheckBox
+ android:id="@+id/always_warn"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:buttonTint="@color/dialer_theme_color"
+ android:text="@string/always_warn"
+ android:textColor="@color/dialer_primary_text_color"
+ android:textSize="14sp"/>
+</LinearLayout>
+
diff --git a/java/com/android/incallui/telecomeventui/res/values-af/strings.xml b/java/com/android/incallui/telecomeventui/res/values-af/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-af/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-am/strings.xml b/java/com/android/incallui/telecomeventui/res/values-am/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-am/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ar/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ar/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ar/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-az/strings.xml b/java/com/android/incallui/telecomeventui/res/values-az/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-az/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-b+sr+Latn/strings.xml b/java/com/android/incallui/telecomeventui/res/values-b+sr+Latn/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-b+sr+Latn/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-be/strings.xml b/java/com/android/incallui/telecomeventui/res/values-be/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-be/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-bg/strings.xml b/java/com/android/incallui/telecomeventui/res/values-bg/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-bg/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-bn/strings.xml b/java/com/android/incallui/telecomeventui/res/values-bn/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-bn/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-bs/strings.xml b/java/com/android/incallui/telecomeventui/res/values-bs/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-bs/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ca/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ca/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ca/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-cs/strings.xml b/java/com/android/incallui/telecomeventui/res/values-cs/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-cs/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-da/strings.xml b/java/com/android/incallui/telecomeventui/res/values-da/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-da/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-de/strings.xml b/java/com/android/incallui/telecomeventui/res/values-de/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-de/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-el/strings.xml b/java/com/android/incallui/telecomeventui/res/values-el/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-el/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-en-rAU/strings.xml b/java/com/android/incallui/telecomeventui/res/values-en-rAU/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-en-rAU/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-en-rGB/strings.xml b/java/com/android/incallui/telecomeventui/res/values-en-rGB/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-en-rGB/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-en-rIN/strings.xml b/java/com/android/incallui/telecomeventui/res/values-en-rIN/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-en-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-es-rUS/strings.xml b/java/com/android/incallui/telecomeventui/res/values-es-rUS/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-es-rUS/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-es/strings.xml b/java/com/android/incallui/telecomeventui/res/values-es/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-es/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-et/strings.xml b/java/com/android/incallui/telecomeventui/res/values-et/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-et/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-eu/strings.xml b/java/com/android/incallui/telecomeventui/res/values-eu/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-eu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fa/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fa/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-fa/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fi/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fi/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-fi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fr-rCA/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fr-rCA/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-fr-rCA/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-fr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-fr/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-fr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-gl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-gl/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-gl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-gu/strings.xml b/java/com/android/incallui/telecomeventui/res/values-gu/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-gu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-hi/strings.xml b/java/com/android/incallui/telecomeventui/res/values-hi/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-hi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-hr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-hr/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-hr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-hu/strings.xml b/java/com/android/incallui/telecomeventui/res/values-hu/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-hu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-hy/strings.xml b/java/com/android/incallui/telecomeventui/res/values-hy/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-hy/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-in/strings.xml b/java/com/android/incallui/telecomeventui/res/values-in/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-in/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-is/strings.xml b/java/com/android/incallui/telecomeventui/res/values-is/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-is/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-it/strings.xml b/java/com/android/incallui/telecomeventui/res/values-it/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-it/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-iw/strings.xml b/java/com/android/incallui/telecomeventui/res/values-iw/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-iw/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ja/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ja/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ja/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ka/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ka/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ka/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-kk/strings.xml b/java/com/android/incallui/telecomeventui/res/values-kk/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-kk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-km/strings.xml b/java/com/android/incallui/telecomeventui/res/values-km/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-km/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-kn/strings.xml b/java/com/android/incallui/telecomeventui/res/values-kn/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-kn/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ko/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ko/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ko/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ky/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ky/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ky/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-lo/strings.xml b/java/com/android/incallui/telecomeventui/res/values-lo/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-lo/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-lt/strings.xml b/java/com/android/incallui/telecomeventui/res/values-lt/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-lt/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-lv/strings.xml b/java/com/android/incallui/telecomeventui/res/values-lv/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-lv/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-mk/strings.xml b/java/com/android/incallui/telecomeventui/res/values-mk/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-mk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ml/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ml/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ml/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-mn/strings.xml b/java/com/android/incallui/telecomeventui/res/values-mn/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-mn/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-mr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-mr/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-mr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ms/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ms/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ms/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-my/strings.xml b/java/com/android/incallui/telecomeventui/res/values-my/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-my/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-nb/strings.xml b/java/com/android/incallui/telecomeventui/res/values-nb/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-nb/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ne/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ne/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ne/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-nl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-nl/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-nl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-no/strings.xml b/java/com/android/incallui/telecomeventui/res/values-no/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-no/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pa/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pa/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pa/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pl/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pt-rBR/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pt-rBR/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pt-rBR/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pt-rPT/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pt-rPT/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pt-rPT/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-pt/strings.xml b/java/com/android/incallui/telecomeventui/res/values-pt/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-pt/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ro/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ro/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ro/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ru/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ru/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ru/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-si/strings.xml b/java/com/android/incallui/telecomeventui/res/values-si/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-si/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sk/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sk/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sl/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sq/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sq/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sq/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sr/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sv/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sv/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sv/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-sw/strings.xml b/java/com/android/incallui/telecomeventui/res/values-sw/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-sw/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ta/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ta/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ta/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-te/strings.xml b/java/com/android/incallui/telecomeventui/res/values-te/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-te/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-th/strings.xml b/java/com/android/incallui/telecomeventui/res/values-th/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-th/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-tl/strings.xml b/java/com/android/incallui/telecomeventui/res/values-tl/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-tl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-tr/strings.xml b/java/com/android/incallui/telecomeventui/res/values-tr/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-tr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-uk/strings.xml b/java/com/android/incallui/telecomeventui/res/values-uk/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-uk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-ur/strings.xml b/java/com/android/incallui/telecomeventui/res/values-ur/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-ur/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-uz/strings.xml b/java/com/android/incallui/telecomeventui/res/values-uz/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-uz/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-vi/strings.xml b/java/com/android/incallui/telecomeventui/res/values-vi/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-vi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-zh-rCN/strings.xml b/java/com/android/incallui/telecomeventui/res/values-zh-rCN/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-zh-rCN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-zh-rHK/strings.xml b/java/com/android/incallui/telecomeventui/res/values-zh-rHK/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-zh-rHK/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-zh-rTW/strings.xml b/java/com/android/incallui/telecomeventui/res/values-zh-rTW/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-zh-rTW/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values-zu/strings.xml b/java/com/android/incallui/telecomeventui/res/values-zu/strings.xml
new file mode 100644
index 000000000..ce7c4822a
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values-zu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- no translation found for always_warn (8332929731464707890) -->
+ <skip />
+ <!-- no translation found for details (8642701148762155677) -->
+ <skip />
+</resources>
diff --git a/java/com/android/incallui/telecomeventui/res/values/strings.xml b/java/com/android/incallui/telecomeventui/res/values/strings.xml
new file mode 100644
index 000000000..a752e2e50
--- /dev/null
+++ b/java/com/android/incallui/telecomeventui/res/values/strings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+
+ <!-- Label next to the checkbox users can use to prevent the associated dialog from showing -->
+ <string name="always_warn">Show warning every time</string>
+
+ <!-- Main text shown to the user in the dialog -->
+ <string name="details">You are calling an international number and charges may apply.</string>
+
+</resources> \ No newline at end of file
diff --git a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
index 29aea1459..b7a960e35 100644
--- a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
@@ -329,6 +329,7 @@ public class SurfaceViewVideoCallFragment extends Fragment
public void onPause() {
super.onPause();
LogUtil.i("SurfaceViewVideoCallFragment.onPause", null);
+ inCallScreenDelegate.onInCallScreenPaused();
}
@Override
diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java
index 97d38cf3d..8e2f5aefd 100644
--- a/java/com/android/incallui/video/impl/VideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/VideoCallFragment.java
@@ -348,6 +348,7 @@ public class VideoCallFragment extends Fragment
public void onPause() {
super.onPause();
LogUtil.i("VideoCallFragment.onPause", null);
+ inCallScreenDelegate.onInCallScreenPaused();
}
@Override
diff --git a/java/com/android/incallui/video/protocol/AndroidManifest.xml b/java/com/android/incallui/video/protocol/AndroidManifest.xml
index 3a1dfb7a9..cfb6b27ad 100644
--- a/java/com/android/incallui/video/protocol/AndroidManifest.xml
+++ b/java/com/android/incallui/video/protocol/AndroidManifest.xml
@@ -18,5 +18,5 @@
package="com.android.incallui.video.protocol">
<uses-sdk
android:minSdkVersion="23"
- android:targetSdkVersion="25"/>
+ android:targetSdkVersion="26"/>
</manifest> \ No newline at end of file
diff --git a/java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java b/java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java
index 21160cadb..8cac40229 100644
--- a/java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java
+++ b/java/com/android/incallui/videosurface/impl/VideoSurfaceTextureImpl.java
@@ -96,8 +96,7 @@ public class VideoSurfaceTextureImpl implements VideoSurfaceTexture {
if (this.textureView != null) {
this.textureView.setOnClickListener(null);
- // Don't clear the surface texture listener. This is important because our listener prevents
- // the surface from being released so that it can be reused later.
+ this.textureView.setSurfaceTextureListener(null);
}
this.textureView = textureView;
@@ -137,12 +136,12 @@ public class VideoSurfaceTextureImpl implements VideoSurfaceTexture {
LogUtil.i(
"VideoSurfaceTextureImpl.createSurface",
"width: " + width + ", height: " + height + " " + toString());
- if (savedSurfaceTexture != null) {
- savedSurfaceTexture.setDefaultBufferSize(width, height);
- savedSurface = new Surface(savedSurfaceTexture);
- return true;
+ savedSurfaceTexture.setDefaultBufferSize(width, height);
+ if (savedSurface != null) {
+ savedSurface.release();
}
- return false;
+ savedSurface = new Surface(savedSurfaceTexture);
+ return true;
}
private void onSurfaceCreated() {
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
index 40fdc6fde..363a19397 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
@@ -39,6 +39,7 @@ public class ImsVideoTech implements VideoTech {
private @SessionModificationState int sessionModificationState =
SessionModificationState.NO_REQUEST;
private int previousVideoState = VideoProfile.STATE_AUDIO_ONLY;
+ private boolean paused = false;
public ImsVideoTech(LoggingBindings logger, VideoTechListener listener, Call call) {
this.logger = logger;
@@ -182,40 +183,52 @@ public class ImsVideoTech implements VideoTech {
public void stopTransmission() {
LogUtil.enterBlock("ImsVideoTech.stopTransmission");
+ int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
call.getVideoCall()
.sendSessionModifyRequest(
- new VideoProfile(call.getDetails().getVideoState() & ~VideoProfile.STATE_TX_ENABLED));
+ new VideoProfile(unpausedVideoState & ~VideoProfile.STATE_TX_ENABLED));
}
@Override
public void resumeTransmission() {
LogUtil.enterBlock("ImsVideoTech.resumeTransmission");
+ int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
call.getVideoCall()
.sendSessionModifyRequest(
- new VideoProfile(call.getDetails().getVideoState() | VideoProfile.STATE_TX_ENABLED));
+ new VideoProfile(unpausedVideoState | VideoProfile.STATE_TX_ENABLED));
setSessionModificationState(SessionModificationState.WAITING_FOR_RESPONSE);
}
@Override
public void pause() {
- if (canPause()) {
+ if (canPause() && !paused) {
LogUtil.i("ImsVideoTech.pause", "sending pause request");
+ paused = true;
int pausedVideoState = call.getDetails().getVideoState() | VideoProfile.STATE_PAUSED;
call.getVideoCall().sendSessionModifyRequest(new VideoProfile(pausedVideoState));
} else {
- LogUtil.i("ImsVideoTech.pause", "not sending request: canPause: %b", canPause());
+ LogUtil.i(
+ "ImsVideoTech.pause",
+ "not sending request: canPause: %b, paused: %b",
+ canPause(),
+ paused);
}
}
@Override
public void unpause() {
- if (canPause()) {
+ if (canPause() && paused) {
LogUtil.i("ImsVideoTech.unpause", "sending unpause request");
+ paused = false;
int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
call.getVideoCall().sendSessionModifyRequest(new VideoProfile(unpausedVideoState));
} else {
- LogUtil.i("ImsVideoTech.unpause", "not sending request: canPause: %b", canPause());
+ LogUtil.i(
+ "ImsVideoTech.unpause",
+ "not sending request: canPause: %b, paused: %b",
+ canPause(),
+ paused);
}
}
@@ -232,7 +245,8 @@ public class ImsVideoTech implements VideoTech {
private boolean canPause() {
return call.getDetails().can(Details.CAPABILITY_CAN_PAUSE_VIDEO)
- && call.getState() == Call.STATE_ACTIVE;
+ && call.getState() == Call.STATE_ACTIVE
+ && isTransmitting();
}
static int getUnpausedVideoState(int videoState) {
diff --git a/java/com/android/voicemail/impl/ActivationTask.java b/java/com/android/voicemail/impl/ActivationTask.java
index b0ad3bafc..6e27b5015 100644
--- a/java/com/android/voicemail/impl/ActivationTask.java
+++ b/java/com/android/voicemail/impl/ActivationTask.java
@@ -19,11 +19,9 @@ package com.android.voicemail.impl;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
-import android.database.ContentObserver;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.provider.Settings;
-import android.provider.Settings.Global;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import android.telecom.PhoneAccountHandle;
@@ -31,6 +29,7 @@ import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.proguard.UsedByReflection;
+import com.android.voicemail.VoicemailClient;
import com.android.voicemail.impl.protocol.VisualVoicemailProtocol;
import com.android.voicemail.impl.scheduling.BaseTask;
import com.android.voicemail.impl.scheduling.RetryPolicy;
@@ -42,8 +41,6 @@ import com.android.voicemail.impl.sync.SyncTask;
import com.android.voicemail.impl.sync.VvmAccountManager;
import com.android.voicemail.impl.utils.LoggerUtils;
import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;
@@ -66,8 +63,6 @@ public class ActivationTask extends BaseTask {
private static final String EXTRA_MESSAGE_DATA_BUNDLE = "extra_message_data_bundle";
- @Nullable private static DeviceProvisionedObserver sDeviceProvisionedObserver;
-
private final RetryPolicy mRetryPolicy;
private Bundle mMessageData;
@@ -97,7 +92,7 @@ public class ActivationTask extends BaseTask {
// Activation might need information such as system language to be set, so wait until
// the setup wizard is finished. The data bundle from the SMS will be re-requested upon
// activation.
- queueActivationAfterProvisioned(context, phoneAccountHandle);
+ DeviceProvisionedJobService.activateAfterProvisioned(context, phoneAccountHandle);
return;
}
@@ -105,7 +100,7 @@ public class ActivationTask extends BaseTask {
if (messageData != null) {
intent.putExtra(EXTRA_MESSAGE_DATA_BUNDLE, messageData);
}
- context.startService(intent);
+ context.sendBroadcast(intent);
}
@Override
@@ -136,6 +131,8 @@ public class ActivationTask extends BaseTask {
return;
}
+ PreOMigrationHandler.migrate(getContext(), phoneAccountHandle);
+
if (!VisualVoicemailSettingsUtil.isEnabled(getContext(), phoneAccountHandle)) {
VvmLog.i(TAG, "VVM is disabled");
return;
@@ -163,6 +160,7 @@ public class ActivationTask extends BaseTask {
if (VvmAccountManager.isAccountActivated(getContext(), phoneAccountHandle)) {
VvmLog.i(TAG, "Account is already activated");
+ onSuccess(getContext(), phoneAccountHandle);
return;
}
helper.handleEvent(
@@ -222,7 +220,7 @@ public class ActivationTask extends BaseTask {
+ message.getReturnCode());
if (message.getProvisioningStatus().equals(OmtpConstants.SUBSCRIBER_READY)) {
VvmLog.d(TAG, "subscriber ready, no activation required");
- updateSource(getContext(), phoneAccountHandle, status, message);
+ updateSource(getContext(), phoneAccountHandle, message);
} else {
if (helper.supportsProvisioning()) {
VvmLog.i(TAG, "Subscriber not ready, start provisioning");
@@ -232,7 +230,7 @@ public class ActivationTask extends BaseTask {
VvmLog.i(TAG, "Subscriber new but provisioning is not supported");
// Ignore the non-ready state and attempt to use the provided info as is.
// This is probably caused by not completing the new user tutorial.
- updateSource(getContext(), phoneAccountHandle, status, message);
+ updateSource(getContext(), phoneAccountHandle, message);
} else {
VvmLog.i(TAG, "Subscriber not ready but provisioning is not supported");
helper.handleEvent(status, OmtpEvents.CONFIG_SERVICE_NOT_AVAILABLE);
@@ -242,25 +240,38 @@ public class ActivationTask extends BaseTask {
getContext(), DialerImpression.Type.VVM_ACTIVATION_COMPLETED);
}
- public static void updateSource(
- Context context,
- PhoneAccountHandle phone,
- VoicemailStatus.Editor status,
- StatusMessage message) {
+ private static void updateSource(
+ Context context, PhoneAccountHandle phone, StatusMessage message) {
if (OmtpConstants.SUCCESS.equals(message.getReturnCode())) {
- OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(context, phone);
- helper.handleEvent(status, OmtpEvents.CONFIG_REQUEST_STATUS_SUCCESS);
-
// Save the IMAP credentials in preferences so they are persistent and can be retrieved.
VvmAccountManager.addAccount(context, phone, message);
-
- SyncTask.start(context, phone, OmtpVvmSyncService.SYNC_FULL_SYNC);
+ onSuccess(context, phone);
} else {
VvmLog.e(TAG, "Visual voicemail not available for subscriber.");
}
}
+ private static void onSuccess(Context context, PhoneAccountHandle phoneAccountHandle) {
+ OmtpVvmCarrierConfigHelper helper = new OmtpVvmCarrierConfigHelper(context, phoneAccountHandle);
+ helper.handleEvent(
+ VoicemailStatus.edit(context, phoneAccountHandle),
+ OmtpEvents.CONFIG_REQUEST_STATUS_SUCCESS);
+ clearLegacyVoicemailNotification(context, phoneAccountHandle);
+ SyncTask.start(context, phoneAccountHandle, OmtpVvmSyncService.SYNC_FULL_SYNC);
+ }
+
+ /** Sends a broadcast to the dialer UI to clear legacy voicemail notifications if any. */
+ private static void clearLegacyVoicemailNotification(
+ Context context, PhoneAccountHandle phoneAccountHandle) {
+ Intent intent = new Intent(VoicemailClient.ACTION_SHOW_LEGACY_VOICEMAIL);
+ intent.setPackage(context.getPackageName());
+ intent.putExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
+ // Setting voicemail message count to zero will clear the notification.
+ intent.putExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, 0);
+ context.sendBroadcast(intent);
+ }
+
private static boolean hasSignal(Context context, PhoneAccountHandle phoneAccountHandle) {
TelephonyManager telephonyManager =
context
@@ -268,45 +279,4 @@ public class ActivationTask extends BaseTask {
.createForPhoneAccountHandle(phoneAccountHandle);
return telephonyManager.getServiceState().getState() == ServiceState.STATE_IN_SERVICE;
}
-
- private static void queueActivationAfterProvisioned(
- Context context, PhoneAccountHandle phoneAccountHandle) {
- if (sDeviceProvisionedObserver == null) {
- sDeviceProvisionedObserver = new DeviceProvisionedObserver(context);
- context
- .getContentResolver()
- .registerContentObserver(
- Settings.Global.getUriFor(Global.DEVICE_PROVISIONED),
- false,
- sDeviceProvisionedObserver);
- }
- sDeviceProvisionedObserver.addPhoneAcountHandle(phoneAccountHandle);
- }
-
- private static class DeviceProvisionedObserver extends ContentObserver {
-
- private final Context mContext;
- private final Set<PhoneAccountHandle> mPhoneAccountHandles = new HashSet<>();
-
- private DeviceProvisionedObserver(Context context) {
- super(null);
- mContext = context;
- }
-
- public void addPhoneAcountHandle(PhoneAccountHandle phoneAccountHandle) {
- mPhoneAccountHandles.add(phoneAccountHandle);
- }
-
- @Override
- public void onChange(boolean selfChange) {
- if (isDeviceProvisioned(mContext)) {
- VvmLog.i(TAG, "device provisioned, resuming activation");
- for (PhoneAccountHandle phoneAccountHandle : mPhoneAccountHandles) {
- start(mContext, phoneAccountHandle, null);
- }
- mContext.getContentResolver().unregisterContentObserver(sDeviceProvisionedObserver);
- sDeviceProvisionedObserver = null;
- }
- }
- }
}
diff --git a/java/com/android/voicemail/impl/AndroidManifest.xml b/java/com/android/voicemail/impl/AndroidManifest.xml
index 47a4b2dd3..3e512ba1e 100644
--- a/java/com/android/voicemail/impl/AndroidManifest.xml
+++ b/java/com/android/voicemail/impl/AndroidManifest.xml
@@ -31,7 +31,8 @@
<receiver
android:name="com.android.voicemail.impl.sms.OmtpMessageReceiver"
- android:exported="false">
+ android:exported="false"
+ android:directBootAware="true">
<intent-filter>
<action android:name="com.android.vociemailomtp.sms.sms_received"/>
</intent-filter>
@@ -40,7 +41,7 @@
<receiver android:name="com.android.voicemail.impl.VoicemailClientReceiver"
android:exported="false">
<intent-filter>
- <action android:name="com.android.voicemailomtp.VoicemailClient.ACTION_UPLOAD"/>
+ <action android:name="com.android.voicemail.VoicemailClient.ACTION_UPLOAD"/>
</intent-filter>
</receiver>
@@ -76,8 +77,8 @@
</intent-filter>
</receiver>
- <service
- android:name="com.android.voicemail.impl.scheduling.TaskSchedulerService"
+ <receiver
+ android:name="com.android.voicemail.impl.scheduling.TaskReceiver"
android:exported="false"/>
<service
@@ -90,12 +91,20 @@
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false"/>
- <receiver android:name="com.android.voicemail.impl.OmtpReceiver"
- android:exported="true">
+ <service
+ android:name="com.android.voicemail.impl.DeviceProvisionedJobService"
+ android:permission="android.permission.BIND_JOB_SERVICE"
+ android:exported="false"/>
+
+ <service
+ android:name="com.android.voicemail.impl.OmtpService"
+ android:permission="android.permission.BIND_VISUAL_VOICEMAIL_SERVICE"
+ android:exported="true"
+ android:directBootAware="true">
<intent-filter>
- <action android:name="com.android.phone.vvm.ACTION_VISUAL_VOICEMAIL_SERVICE_EVENT" />
+ <action android:name="android.telephony.VisualVoicemailService"/>
</intent-filter>
- </receiver>
+ </service>
<activity
android:name="com.android.voicemail.impl.settings.VoicemailChangePinActivity"
@@ -109,14 +118,5 @@
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
-
- <receiver android:name="com.android.voicemail.impl.VvmPackageInstallReceiver">
- <intent-filter>
- <!-- New O broadcast, can be received in background. Only applies to installation and not
- updates -->
- <action android:name="android.intent.action.PACKAGE_FIRST_ADDED" />
- <data android:scheme="package"/>
- </intent-filter>
- </receiver>
</application>
</manifest>
diff --git a/java/com/android/voicemail/impl/DeviceProvisionedJobService.java b/java/com/android/voicemail/impl/DeviceProvisionedJobService.java
new file mode 100644
index 000000000..a0b999d23
--- /dev/null
+++ b/java/com/android/voicemail/impl/DeviceProvisionedJobService.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl;
+
+import android.annotation.TargetApi;
+import android.app.job.JobInfo;
+import android.app.job.JobInfo.TriggerContentUri;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
+import android.app.job.JobService;
+import android.app.job.JobWorkItem;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build.VERSION_CODES;
+import android.provider.Settings;
+import android.provider.Settings.Global;
+import android.telecom.PhoneAccountHandle;
+import com.android.dialer.constants.ScheduledJobIds;
+
+/**
+ * JobService triggered when the setup wizard is completed, and rerun all {@link ActivationTask}
+ * scheduled during the setup.
+ */
+@TargetApi(VERSION_CODES.O)
+public class DeviceProvisionedJobService extends JobService {
+
+ private static final String EXTRA_PHONE_ACCOUNT_HANDLE = "EXTRA_PHONE_ACCOUNT_HANDLE";
+
+ /** Queue the phone account to be reactivated after the setup wizard has completed. */
+ public static void activateAfterProvisioned(
+ Context context, PhoneAccountHandle phoneAccountHandle) {
+ JobInfo jobInfo =
+ new JobInfo.Builder(
+ ScheduledJobIds.VVM_DEVICE_PROVISIONED_JOB,
+ new ComponentName(context, DeviceProvisionedJobService.class))
+ .addTriggerContentUri(
+ new TriggerContentUri(Global.getUriFor(Global.DEVICE_PROVISIONED), 0))
+ // VVM activation must be run as soon as possible to avoid voicemail loss
+ .setTriggerContentMaxDelay(0)
+ .build();
+
+ Intent intent = new Intent();
+ intent.putExtra(EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
+ context.getSystemService(JobScheduler.class).enqueue(jobInfo, new JobWorkItem(intent));
+ }
+
+ @Override
+ public boolean onStartJob(JobParameters params) {
+ Assert.isTrue(isDeviceProvisioned());
+ VvmLog.i("DeviceProvisionedJobService.onStartJob", "device provisioned");
+ for (JobWorkItem item = params.dequeueWork(); item != null; item = params.dequeueWork()) {
+ PhoneAccountHandle phoneAccountHandle =
+ item.getIntent().getParcelableExtra(EXTRA_PHONE_ACCOUNT_HANDLE);
+ VvmLog.i(
+ "DeviceProvisionedJobService.onStartJob",
+ "restarting activation for " + phoneAccountHandle);
+ ActivationTask.start(this, phoneAccountHandle, null);
+ }
+ return false; // job not running in background
+ }
+
+ @Override
+ public boolean onStopJob(JobParameters params) {
+ return true; // reschedule job
+ }
+
+ private boolean isDeviceProvisioned() {
+ return Settings.Global.getInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 0) == 1;
+ }
+}
diff --git a/java/com/android/voicemail/impl/OmtpService.java b/java/com/android/voicemail/impl/OmtpService.java
new file mode 100644
index 000000000..759be4fd1
--- /dev/null
+++ b/java/com/android/voicemail/impl/OmtpService.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl;
+
+import android.annotation.TargetApi;
+import android.content.Intent;
+import android.os.Build.VERSION_CODES;
+import android.os.UserManager;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.VisualVoicemailService;
+import android.telephony.VisualVoicemailSms;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
+import com.android.voicemail.VoicemailComponent;
+import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
+import com.android.voicemail.impl.sms.LegacyModeSmsHandler;
+import com.android.voicemail.impl.sync.VvmAccountManager;
+
+/** Implements {@link VisualVoicemailService} to receive visual voicemail events */
+@TargetApi(VERSION_CODES.O)
+public class OmtpService extends VisualVoicemailService {
+
+ private static final String TAG = "VvmOmtpService";
+
+ public static final String ACTION_SMS_RECEIVED = "com.android.vociemailomtp.sms.sms_received";
+
+ public static final String EXTRA_VOICEMAIL_SMS = "extra_voicemail_sms";
+
+ @Override
+ public void onCellServiceConnected(
+ VisualVoicemailTask task, final PhoneAccountHandle phoneAccountHandle) {
+ VvmLog.i(TAG, "onCellServiceConnected");
+ if (!isModuleEnabled()) {
+ VvmLog.e(TAG, "onCellServiceConnected received when module is disabled");
+ task.finish();
+ return;
+ }
+
+ if (!isUserUnlocked()) {
+ VvmLog.i(TAG, "onCellServiceConnected: user locked");
+ task.finish();
+ return;
+ }
+
+ if (!isServiceEnabled(phoneAccountHandle)) {
+ task.finish();
+ return;
+ }
+
+ Logger.get(this).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
+ ActivationTask.start(OmtpService.this, phoneAccountHandle, null);
+ task.finish();
+ }
+
+ @Override
+ public void onSmsReceived(VisualVoicemailTask task, final VisualVoicemailSms sms) {
+ VvmLog.i(TAG, "onSmsReceived");
+ if (!isModuleEnabled()) {
+ VvmLog.e(TAG, "onSmsReceived received when module is disabled");
+ task.finish();
+ return;
+ }
+
+ if (!isUserUnlocked()) {
+ LegacyModeSmsHandler.handle(this, sms);
+ return;
+ }
+
+ VvmPackageInstallHandler.scanNewPackages(this);
+
+ if (!isServiceEnabled(sms.getPhoneAccountHandle())) {
+ task.finish();
+ return;
+ }
+
+ // isUserUnlocked() is not checked. OmtpMessageReceiver will handle the locked case.
+
+ Logger.get(this).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
+ Intent intent = new Intent(ACTION_SMS_RECEIVED);
+ intent.setPackage(getPackageName());
+ intent.putExtra(EXTRA_VOICEMAIL_SMS, sms);
+ sendBroadcast(intent);
+ task.finish();
+ }
+
+ @Override
+ public void onSimRemoved(
+ final VisualVoicemailTask task, final PhoneAccountHandle phoneAccountHandle) {
+ VvmLog.i(TAG, "onSimRemoved");
+ if (!isModuleEnabled()) {
+ VvmLog.e(TAG, "onSimRemoved called when module is disabled");
+ task.finish();
+ return;
+ }
+
+ if (!isUserUnlocked()) {
+ VvmLog.i(TAG, "onSimRemoved: user locked");
+ task.finish();
+ return;
+ }
+
+ Logger.get(this).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
+ VvmAccountManager.removeAccount(this, phoneAccountHandle);
+ task.finish();
+ }
+
+ @Override
+ public void onStopped(VisualVoicemailTask task) {
+ VvmLog.i(TAG, "onStopped");
+ if (!isModuleEnabled()) {
+ VvmLog.e(TAG, "onStopped called when module is disabled");
+ task.finish();
+ return;
+ }
+ if (!isUserUnlocked()) {
+ VvmLog.i(TAG, "onStopped: user locked");
+ task.finish();
+ return;
+ }
+ Logger.get(this).logImpression(DialerImpression.Type.VVM_UNBUNDLED_EVENT_RECEIVED);
+ }
+
+ private boolean isModuleEnabled() {
+ return VoicemailComponent.get(this).getVoicemailClient().isVoicemailModuleEnabled();
+ }
+
+ private boolean isServiceEnabled(PhoneAccountHandle phoneAccountHandle) {
+ OmtpVvmCarrierConfigHelper config = new OmtpVvmCarrierConfigHelper(this, phoneAccountHandle);
+ if (!config.isValid()) {
+ VvmLog.i(TAG, "VVM not supported on " + phoneAccountHandle);
+ return false;
+ }
+ if (!VisualVoicemailSettingsUtil.isEnabled(this, phoneAccountHandle)
+ && !config.isLegacyModeEnabled()) {
+ VvmLog.i(TAG, "VVM is disabled");
+ return false;
+ }
+ return true;
+ }
+
+ private boolean isUserUnlocked() {
+ UserManager userManager = getSystemService(UserManager.class);
+ return userManager.isUserUnlocked();
+ }
+}
diff --git a/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java b/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
index 2f1df09dd..4a9e43370 100644
--- a/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
+++ b/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java
@@ -26,7 +26,6 @@ import android.support.annotation.VisibleForTesting;
import android.telecom.PhoneAccountHandle;
import android.telephony.CarrierConfigManager;
import android.telephony.TelephonyManager;
-import android.telephony.VisualVoicemailService;
import android.telephony.VisualVoicemailSmsFilterSettings;
import android.text.TextUtils;
import android.util.ArraySet;
@@ -108,8 +107,7 @@ public class OmtpVvmCarrierConfigHelper {
mCarrierConfig = getCarrierConfig(telephonyManager);
mTelephonyConfig =
- new TelephonyVvmConfigManager(context.getResources())
- .getConfig(telephonyManager.getSimOperator());
+ new TelephonyVvmConfigManager(context).getConfig(telephonyManager.getSimOperator());
mVvmType = getVvmType();
mProtocol = VisualVoicemailProtocolFactory.create(mContext.getResources(), mVvmType);
@@ -234,9 +232,7 @@ public class OmtpVvmCarrierConfigHelper {
return (String) getValue(KEY_VVM_DESTINATION_NUMBER_STRING);
}
- /**
- * @return Port to start a SSL IMAP connection directly.
- */
+ /** @return Port to start a SSL IMAP connection directly. */
public int getSslPort() {
Assert.checkArgument(isValid());
return (int) getValue(KEY_VVM_SSL_PORT_NUMBER_INT, 0);
@@ -328,7 +324,7 @@ public class OmtpVvmCarrierConfigHelper {
public void activateSmsFilter() {
Assert.checkArgument(isValid());
- VisualVoicemailService.setSmsFilterSettings(
+ TelephonyMangerCompat.setVisualVoicemailSmsFilterSettings(
mContext,
getPhoneAccountHandle(),
new VisualVoicemailSmsFilterSettings.Builder().setClientPrefix(getClientPrefix()).build());
@@ -339,7 +335,8 @@ public class OmtpVvmCarrierConfigHelper {
VvmLog.i(TAG, "startDeactivation");
if (!isLegacyModeEnabled()) {
// SMS should still be filtered in legacy mode
- VisualVoicemailService.setSmsFilterSettings(mContext, getPhoneAccountHandle(), null);
+ TelephonyMangerCompat.setVisualVoicemailSmsFilterSettings(
+ mContext, getPhoneAccountHandle(), null);
VvmLog.i(TAG, "filter disabled");
}
if (mProtocol != null) {
diff --git a/java/com/android/voicemail/impl/PreOMigrationHandler.java b/java/com/android/voicemail/impl/PreOMigrationHandler.java
new file mode 100644
index 000000000..6dc2dee90
--- /dev/null
+++ b/java/com/android/voicemail/impl/PreOMigrationHandler.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.WorkerThread;
+import android.telecom.PhoneAccountHandle;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
+import com.android.voicemail.impl.settings.VoicemailChangePinActivity;
+import java.lang.reflect.Method;
+
+/** Handles migration of data from the visual voicemail client in telephony before O. */
+public final class PreOMigrationHandler {
+
+ // Hidden system APIs to access pre O VVM data
+ // Bundle getVisualVoicemailSettings()
+ private static final String METHOD_GET_VISUAL_VOICEMAIL_SETTINGS = "getVisualVoicemailSettings";
+
+ /**
+ * Key in bundle returned by {@link #METHOD_GET_VISUAL_VOICEMAIL_SETTINGS}, indicating whether
+ * visual voicemail was enabled or disabled by the user. If the user never explicitly changed this
+ * setting, this key will not exist.
+ */
+ private static final String EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL =
+ "android.telephony.extra.VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL";
+
+ /**
+ * Key in bundle returned by {@link #METHOD_GET_VISUAL_VOICEMAIL_SETTINGS}, indicating the
+ * voicemail access PIN scrambled during the auto provisioning process. The user is expected to
+ * reset their PIN if this value is not {@code null}.
+ */
+ private static final String EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING =
+ "android.telephony.extra.VOICEMAIL_SCRAMBLED_PIN_STRING";
+
+ private static final String PRE_O_MIGRATION_FINISHED = "pre_o_migration_finished";
+
+ @WorkerThread
+ public static void migrate(Context context, PhoneAccountHandle phoneAccountHandle) {
+ Assert.isNotMainThread();
+ VisualVoicemailPreferences preferences =
+ new VisualVoicemailPreferences(context, phoneAccountHandle);
+ if (preferences.getBoolean(PRE_O_MIGRATION_FINISHED, false)) {
+ VvmLog.i("PreOMigrationHandler", phoneAccountHandle + " already migrated");
+ return;
+ }
+ VvmLog.i("PreOMigrationHandler", "migrating " + phoneAccountHandle);
+ migrateSettings(context, phoneAccountHandle);
+
+ preferences.edit().putBoolean(PRE_O_MIGRATION_FINISHED, true).apply();
+ }
+
+ private static void migrateSettings(Context context, PhoneAccountHandle phoneAccountHandle) {
+ VvmLog.i("PreOMigrationHandler.migrateSettings", "migrating settings");
+ TelephonyManager telephonyManager =
+ context
+ .getSystemService(TelephonyManager.class)
+ .createForPhoneAccountHandle(phoneAccountHandle);
+ if (telephonyManager == null) {
+ VvmLog.e("PreOMigrationHandler.migrateSettings", "invalid PhoneAccountHandle");
+ return;
+ }
+ Bundle legacySettings;
+ try {
+ Method method = TelephonyManager.class.getMethod(METHOD_GET_VISUAL_VOICEMAIL_SETTINGS);
+ legacySettings = (Bundle) method.invoke(telephonyManager);
+ } catch (ReflectiveOperationException | ClassCastException e) {
+ VvmLog.i("PreOMigrationHandler.migrateSettings", "unable to retrieve settings from system");
+ return;
+ }
+
+ if (legacySettings.containsKey(EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL)) {
+ boolean enabled = legacySettings.getBoolean(EXTRA_VISUAL_VOICEMAIL_ENABLED_BY_USER_BOOL);
+ VvmLog.i("PreOMigrationHandler.migrateSettings", "setting VVM enabled to " + enabled);
+ VisualVoicemailSettingsUtil.setEnabled(context, phoneAccountHandle, enabled);
+ }
+
+ if (legacySettings.containsKey(EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING)) {
+ String scrambledPin = legacySettings.getString(EXTRA_VOICEMAIL_SCRAMBLED_PIN_STRING);
+ if (!TextUtils.isEmpty(scrambledPin)) {
+ VvmLog.i("PreOMigrationHandler.migrateSettings", "migrating scrambled PIN");
+ VoicemailChangePinActivity.setDefaultOldPIN(context, phoneAccountHandle, scrambledPin);
+ }
+ }
+ }
+}
diff --git a/java/com/android/voicemail/impl/StatusCheckTask.java b/java/com/android/voicemail/impl/StatusCheckTask.java
index 7699e9848..e59eb3b37 100644
--- a/java/com/android/voicemail/impl/StatusCheckTask.java
+++ b/java/com/android/voicemail/impl/StatusCheckTask.java
@@ -51,7 +51,7 @@ public class StatusCheckTask extends BaseTask {
public static void start(Context context, PhoneAccountHandle phoneAccountHandle) {
Intent intent = BaseTask.createIntent(context, StatusCheckTask.class, phoneAccountHandle);
- context.startService(intent);
+ context.sendBroadcast(intent);
}
@Override
diff --git a/java/com/android/voicemail/impl/TelephonyMangerCompat.java b/java/com/android/voicemail/impl/TelephonyMangerCompat.java
index 353cd69e3..404b4d6ca 100644
--- a/java/com/android/voicemail/impl/TelephonyMangerCompat.java
+++ b/java/com/android/voicemail/impl/TelephonyMangerCompat.java
@@ -16,24 +16,36 @@
package com.android.voicemail.impl;
+import android.app.PendingIntent;
+import android.content.Context;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
+import android.telephony.VisualVoicemailService;
+import android.telephony.VisualVoicemailSmsFilterSettings;
+import com.android.dialer.common.LogUtil;
import java.lang.reflect.Method;
/** Handles {@link TelephonyManager} API changes in experimental SDK */
public class TelephonyMangerCompat {
-
- private static final String GET_VISUAL_VOICEMAIL_PACKGE_NAME = "getVisualVoicemailPackageName";
-
- /**
- * Changed from getVisualVoicemailPackageName(PhoneAccountHandle) to
- * getVisualVoicemailPackageName()
- */
- public static String getVisualVoicemailPackageName(TelephonyManager telephonyManager) {
+ /** Moved from VisualVoicemailService to TelephonyManager */
+ public static String sendVisualVoicemailSms(
+ Context context,
+ PhoneAccountHandle phoneAccountHandle,
+ String number,
+ int port,
+ String text,
+ PendingIntent sentIntent) {
try {
- Method method = TelephonyManager.class.getMethod(GET_VISUAL_VOICEMAIL_PACKGE_NAME);
+ Method method =
+ TelephonyManager.class.getMethod(
+ "sendVisualVoicemailSms", String.class, int.class, String.class, PendingIntent.class);
try {
- return (String) method.invoke(telephonyManager);
+ LogUtil.i("TelephonyMangerCompat.sendVisualVoicemailSms", "using TelephonyManager");
+ TelephonyManager telephonyManager =
+ context
+ .getSystemService(TelephonyManager.class)
+ .createForPhoneAccountHandle(phoneAccountHandle);
+ return (String) method.invoke(telephonyManager, number, port, text, sentIntent);
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
@@ -42,15 +54,61 @@ public class TelephonyMangerCompat {
}
try {
+ LogUtil.i("TelephonyMangerCompat.sendVisualVoicemailSms", "using VisualVoicemailService");
+ Method method =
+ VisualVoicemailService.class.getMethod(
+ "sendVisualVoicemailSms",
+ Context.class,
+ PhoneAccountHandle.class,
+ String.class,
+ short.class,
+ String.class,
+ PendingIntent.class);
+ return (String)
+ method.invoke(null, context, phoneAccountHandle, number, (short) port, text, sentIntent);
+
+ } catch (ReflectiveOperationException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /** Moved from VisualVoicemailService to TelephonyManager */
+ public static String setVisualVoicemailSmsFilterSettings(
+ Context context,
+ PhoneAccountHandle phoneAccountHandle,
+ VisualVoicemailSmsFilterSettings settings) {
+ try {
Method method =
TelephonyManager.class.getMethod(
- GET_VISUAL_VOICEMAIL_PACKGE_NAME, PhoneAccountHandle.class);
+ "setVisualVoicemailSmsFilterSettings", VisualVoicemailSmsFilterSettings.class);
try {
- return (String) method.invoke(telephonyManager, (Object) null);
+ LogUtil.i(
+ "TelephonyMangerCompat.setVisualVoicemailSmsFilterSettings", "using TelephonyManager");
+ TelephonyManager telephonyManager =
+ context
+ .getSystemService(TelephonyManager.class)
+ .createForPhoneAccountHandle(phoneAccountHandle);
+ return (String) method.invoke(telephonyManager, settings);
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
} catch (NoSuchMethodException e) {
+ // Do nothing, try the next version.
+ }
+
+ try {
+ LogUtil.i(
+ "TelephonyMangerCompat.setVisualVoicemailSmsFilterSettings",
+ "using VisualVoicemailService");
+ Method method =
+ VisualVoicemailService.class.getMethod(
+ "setSmsFilterSettings",
+ Context.class,
+ PhoneAccountHandle.class,
+ VisualVoicemailSmsFilterSettings.class);
+ return (String) method.invoke(null, context, phoneAccountHandle, settings);
+
+ } catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
}
diff --git a/java/com/android/voicemail/impl/TelephonyVvmConfigManager.java b/java/com/android/voicemail/impl/TelephonyVvmConfigManager.java
index 04012c9c2..b4def2fc3 100644
--- a/java/com/android/voicemail/impl/TelephonyVvmConfigManager.java
+++ b/java/com/android/voicemail/impl/TelephonyVvmConfigManager.java
@@ -16,11 +16,12 @@
package com.android.voicemail.impl;
-import android.content.res.Resources;
+import android.content.Context;
import android.os.PersistableBundle;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.util.ArrayMap;
+import com.android.dialer.common.ConfigProviderBindings;
import com.android.voicemail.impl.utils.XmlUtils;
import java.io.IOException;
import java.util.ArrayList;
@@ -38,22 +39,24 @@ public class TelephonyVvmConfigManager {
private static final String TAG_PERSISTABLEMAP = "pbundle_as_map";
- static final String KEY_MCCMNC = "mccmnc";
+ @VisibleForTesting static final String KEY_MCCMNC = "mccmnc";
+
+ private static final String KEY_FEATURE_FLAG_NAME = "feature_flag_name";
private static Map<String, PersistableBundle> sCachedConfigs;
private final Map<String, PersistableBundle> mConfigs;
- public TelephonyVvmConfigManager(Resources resources) {
+ public TelephonyVvmConfigManager(Context context) {
if (sCachedConfigs == null) {
- sCachedConfigs = loadConfigs(resources.getXml(R.xml.vvm_config));
+ sCachedConfigs = loadConfigs(context, context.getResources().getXml(R.xml.vvm_config));
}
mConfigs = sCachedConfigs;
}
@VisibleForTesting
- TelephonyVvmConfigManager(XmlPullParser parser) {
- mConfigs = loadConfigs(parser);
+ TelephonyVvmConfigManager(Context context, XmlPullParser parser) {
+ mConfigs = loadConfigs(context, parser);
}
@Nullable
@@ -64,7 +67,7 @@ public class TelephonyVvmConfigManager {
return mConfigs.get(mccMnc);
}
- private static Map<String, PersistableBundle> loadConfigs(XmlPullParser parser) {
+ private static Map<String, PersistableBundle> loadConfigs(Context context, XmlPullParser parser) {
Map<String, PersistableBundle> configs = new ArrayMap<>();
try {
ArrayList list = readBundleList(parser);
@@ -73,6 +76,13 @@ public class TelephonyVvmConfigManager {
throw new IllegalArgumentException("PersistableBundle expected, got " + object);
}
PersistableBundle bundle = (PersistableBundle) object;
+
+ if (bundle.containsKey(KEY_FEATURE_FLAG_NAME)
+ && !ConfigProviderBindings.get(context)
+ .getBoolean(bundle.getString(KEY_FEATURE_FLAG_NAME), false)) {
+ continue;
+ }
+
String[] mccMncs = bundle.getStringArray(KEY_MCCMNC);
if (mccMncs == null) {
throw new IllegalArgumentException("MCCMNC is null");
diff --git a/java/com/android/voicemail/impl/VoicemailClientImpl.java b/java/com/android/voicemail/impl/VoicemailClientImpl.java
index 7747b2486..83c0523bf 100644
--- a/java/com/android/voicemail/impl/VoicemailClientImpl.java
+++ b/java/com/android/voicemail/impl/VoicemailClientImpl.java
@@ -130,8 +130,8 @@ public class VoicemailClientImpl implements VoicemailClient {
@Override
public void appendOmtpVoicemailSelectionClause(
Context context, StringBuilder where, List<String> selectionArgs) {
- TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
- String omtpSource = TelephonyMangerCompat.getVisualVoicemailPackageName(telephonyManager);
+ String omtpSource =
+ context.getSystemService(TelephonyManager.class).getVisualVoicemailPackageName();
if (where.length() != 0) {
where.append(" AND ");
}
@@ -162,8 +162,8 @@ public class VoicemailClientImpl implements VoicemailClient {
@Override
public void appendOmtpVoicemailStatusSelectionClause(
Context context, StringBuilder where, List<String> selectionArgs) {
- TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
- String omtpSource = TelephonyMangerCompat.getVisualVoicemailPackageName(telephonyManager);
+ String omtpSource =
+ context.getSystemService(TelephonyManager.class).getVisualVoicemailPackageName();
if (where.length() != 0) {
where.append(" AND ");
}
diff --git a/java/com/android/voicemail/impl/VvmPackageInstallHandler.java b/java/com/android/voicemail/impl/VvmPackageInstallHandler.java
new file mode 100644
index 000000000..8d1fb2289
--- /dev/null
+++ b/java/com/android/voicemail/impl/VvmPackageInstallHandler.java
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl;
+
+import android.annotation.SuppressLint;
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.pm.ChangedPackages;
+import android.os.Build.VERSION_CODES;
+import android.preference.PreferenceManager;
+import android.provider.Settings.Global;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.util.ArraySet;
+import com.android.dialer.common.PackageUtils;
+import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
+import java.util.Set;
+
+/**
+ * When a new package is installed, check if it matches any of the vvm carrier apps of the currently
+ * enabled dialer VVM sources. The dialer VVM client will be disabled upon carrier VVM app
+ * installation, unless it was explicitly enabled by the user.
+ *
+ * <p>The ACTION_PACKAGE_ADDED broadcast can no longer be received. (see
+ * https://developer.android.com/preview/features/background.html#broadcasts) New apps are scanned
+ * when a VVM SMS is received instead, as it can be a result of the carrier VVM app trying to run
+ * activation.
+ */
+@SuppressLint("AndroidApiChecker") // forEach
+@TargetApi(VERSION_CODES.O)
+public final class VvmPackageInstallHandler {
+
+ private static final String LAST_BOOT_COUNT =
+ "com.android.voicemail.impl.VvmPackageInstallHandler.LAST_BOOT_COUNT";
+
+ private static final String CHANGED_PACKAGES_SEQUENCE_NUMBER =
+ "com.android.voicemail.impl.VvmPackageInstallHandler.CHANGED_PACKAGES_SEQUENCE_NUMBER";
+
+ private static final String INSTALLED_CARRIER_PACKAGES =
+ "com.android.voicemail.impl.VvmPackageInstallHandler.INSTALLED_CARRIER_PACKAGES";
+
+ /**
+ * Perform a scan of all changed apps since the last invocation to see if the carrier VVM app is
+ * installed.
+ */
+ public static void scanNewPackages(Context context) {
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+ int sequenceNumber = sharedPreferences.getInt(CHANGED_PACKAGES_SEQUENCE_NUMBER, 0);
+ int lastBootCount = sharedPreferences.getInt(LAST_BOOT_COUNT, 0);
+ int bootCount = Global.getInt(context.getContentResolver(), Global.BOOT_COUNT, 0);
+ if (lastBootCount != bootCount) {
+ VvmLog.i(
+ "VvmPackageInstallHandler.scanNewPackages", "reboot detected, resetting sequence number");
+ sequenceNumber = 0;
+ sharedPreferences.edit().putInt(LAST_BOOT_COUNT, bootCount).apply();
+ }
+
+ ChangedPackages changedPackages =
+ context.getPackageManager().getChangedPackages(sequenceNumber);
+ if (changedPackages == null) {
+ VvmLog.i("VvmPackageInstallHandler.scanNewPackages", "no package has changed");
+ return;
+ }
+ sharedPreferences
+ .edit()
+ .putInt(CHANGED_PACKAGES_SEQUENCE_NUMBER, changedPackages.getSequenceNumber())
+ .apply();
+
+ Set<String> installedPackages =
+ sharedPreferences.getStringSet(INSTALLED_CARRIER_PACKAGES, new ArraySet<>());
+
+ Set<String> monitoredPackage = getMonitoredPackages(context);
+ installedPackages.removeIf((packageName) -> !monitoredPackage.contains(packageName));
+
+ for (String packageName : changedPackages.getPackageNames()) {
+ if (!monitoredPackage.contains(packageName)) {
+ continue;
+ }
+ if (PackageUtils.isPackageEnabled(packageName, context)) {
+ if (!installedPackages.contains(packageName)) {
+ VvmLog.i("VvmPackageInstallHandler.scanNewPackages", "new package found: " + packageName);
+ installedPackages.add(packageName);
+ handlePackageInstalled(context, packageName);
+ }
+ } else {
+ installedPackages.remove(packageName);
+ }
+ }
+ sharedPreferences.edit().putStringSet(INSTALLED_CARRIER_PACKAGES, installedPackages).apply();
+ }
+
+ private static Set<String> getMonitoredPackages(Context context) {
+ Set<String> result = new ArraySet<>();
+ context
+ .getSystemService(TelecomManager.class)
+ .getCallCapablePhoneAccounts()
+ .forEach(
+ (phoneAccountHandle -> {
+ OmtpVvmCarrierConfigHelper carrierConfigHelper =
+ new OmtpVvmCarrierConfigHelper(context, phoneAccountHandle);
+ if (!carrierConfigHelper.isValid()) {
+ return;
+ }
+ if (carrierConfigHelper.getCarrierVvmPackageNames() == null) {
+ return;
+ }
+ result.addAll(carrierConfigHelper.getCarrierVvmPackageNames());
+ }));
+
+ return result;
+ };
+
+ /**
+ * Iterates through all phone account and disable VVM on a account if {@code packageName} is
+ * listed as a carrier VVM package.
+ */
+ private static void handlePackageInstalled(Context context, String packageName) {
+ // This get called every time an app is installed and will be noisy. Don't log until the app
+ // is identified as a carrier VVM app.
+ for (PhoneAccountHandle phoneAccount :
+ context.getSystemService(TelecomManager.class).getCallCapablePhoneAccounts()) {
+ OmtpVvmCarrierConfigHelper carrierConfigHelper =
+ new OmtpVvmCarrierConfigHelper(context, phoneAccount);
+ if (!carrierConfigHelper.isValid()) {
+ continue;
+ }
+ if (carrierConfigHelper.getCarrierVvmPackageNames() == null) {
+ continue;
+ }
+ if (!carrierConfigHelper.getCarrierVvmPackageNames().contains(packageName)) {
+ continue;
+ }
+
+ VvmLog.i("VvmPackageInstallHandler.handlePackageInstalled", "Carrier app installed");
+ if (VisualVoicemailSettingsUtil.isEnabledUserSet(context, phoneAccount)) {
+ // Skip the check if this voicemail source's setting is overridden by the user.
+ VvmLog.i(
+ "VvmPackageInstallHandler.handlePackageInstalled",
+ "VVM enabled by user, not disabling");
+ continue;
+ }
+
+ // Force deactivate the client. The user can re-enable it in the settings.
+ // There is no need to update the settings for deactivation. At this point, if the
+ // default value is used it should be false because a carrier package is present.
+ VvmLog.i(
+ "VvmPackageInstallHandler.handlePackageInstalled",
+ "Carrier VVM package installed, disabling system VVM client");
+ VisualVoicemailSettingsUtil.setEnabled(context, phoneAccount, false);
+ }
+ }
+}
diff --git a/java/com/android/voicemail/impl/imap/ImapHelper.java b/java/com/android/voicemail/impl/imap/ImapHelper.java
index 6aa415811..f1bc8b221 100644
--- a/java/com/android/voicemail/impl/imap/ImapHelper.java
+++ b/java/com/android/voicemail/impl/imap/ImapHelper.java
@@ -19,7 +19,7 @@ import android.content.Context;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkInfo;
-import android.provider.VoicemailContract;
+import android.support.annotation.Nullable;
import android.telecom.PhoneAccountHandle;
import android.util.Base64;
import com.android.voicemail.impl.OmtpConstants;
@@ -44,6 +44,7 @@ import com.android.voicemail.impl.mail.TempDirectory;
import com.android.voicemail.impl.mail.internet.MimeMessage;
import com.android.voicemail.impl.mail.store.ImapConnection;
import com.android.voicemail.impl.mail.store.ImapFolder;
+import com.android.voicemail.impl.mail.store.ImapFolder.Quota;
import com.android.voicemail.impl.mail.store.ImapStore;
import com.android.voicemail.impl.mail.store.imap.ImapConstants;
import com.android.voicemail.impl.mail.store.imap.ImapResponse;
@@ -73,11 +74,6 @@ public class ImapHelper implements Closeable {
private final Editor mStatus;
VisualVoicemailPreferences mPrefs;
- private static final String PREF_KEY_QUOTA_OCCUPIED = "quota_occupied_";
- private static final String PREF_KEY_QUOTA_TOTAL = "quota_total_";
-
- private int mQuotaOccupied;
- private int mQuotaTotal;
private final OmtpVvmCarrierConfigHelper mConfig;
@@ -90,10 +86,7 @@ public class ImapHelper implements Closeable {
}
public ImapHelper(
- Context context,
- PhoneAccountHandle phoneAccount,
- Network network,
- Editor status)
+ Context context, PhoneAccountHandle phoneAccount, Network network, Editor status)
throws InitializingException {
this(
context,
@@ -139,10 +132,6 @@ public class ImapHelper implements Closeable {
LogUtils.w(TAG, "Could not parse port number");
throw new InitializingException("cannot initialize ImapHelper:" + e.toString());
}
-
- mQuotaOccupied =
- mPrefs.getInt(PREF_KEY_QUOTA_OCCUPIED, VoicemailContract.Status.QUOTA_UNAVAILABLE);
- mQuotaTotal = mPrefs.getInt(PREF_KEY_QUOTA_TOTAL, VoicemailContract.Status.QUOTA_UNAVAILABLE);
}
@Override
@@ -475,12 +464,22 @@ public class ImapHelper implements Closeable {
}
}
- public int getOccuupiedQuota() {
- return mQuotaOccupied;
- }
-
- public int getTotalQuota() {
- return mQuotaTotal;
+ @Nullable
+ public Quota getQuota() {
+ try {
+ mFolder = openImapFolder(ImapFolder.MODE_READ_ONLY);
+ if (mFolder == null) {
+ // This means we were unable to successfully open the folder.
+ LogUtils.e(TAG, "Unable to open folder");
+ return null;
+ }
+ return mFolder.getQuota();
+ } catch (MessagingException e) {
+ LogUtils.e(TAG, e, "Messaging Exception");
+ return null;
+ } finally {
+ closeImapFolder();
+ }
}
private void updateQuota(ImapFolder folder) throws MessagingException {
@@ -489,21 +488,19 @@ public class ImapHelper implements Closeable {
private void setQuota(ImapFolder.Quota quota) {
if (quota == null) {
+ LogUtils.i(TAG, "quota was null");
return;
}
- if (quota.occupied == mQuotaOccupied && quota.total == mQuotaTotal) {
- VvmLog.v(TAG, "Quota hasn't changed");
- return;
- }
- mQuotaOccupied = quota.occupied;
- mQuotaTotal = quota.total;
- VoicemailStatus.edit(mContext, mPhoneAccount).setQuota(mQuotaOccupied, mQuotaTotal).apply();
- mPrefs
- .edit()
- .putInt(PREF_KEY_QUOTA_OCCUPIED, mQuotaOccupied)
- .putInt(PREF_KEY_QUOTA_TOTAL, mQuotaTotal)
- .apply();
- VvmLog.v(TAG, "Quota changed to " + mQuotaOccupied + "/" + mQuotaTotal);
+
+ LogUtils.i(
+ TAG,
+ "Updating Voicemail status table with"
+ + " quota occupied: "
+ + quota.occupied
+ + " new quota total:"
+ + quota.total);
+ VoicemailStatus.edit(mContext, mPhoneAccount).setQuota(quota.occupied, quota.total).apply();
+ LogUtils.i(TAG, "Updated quota occupied and total");
}
/**
diff --git a/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java b/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
index c8a74c8d5..1cdbbfbca 100644
--- a/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
+++ b/java/com/android/voicemail/impl/protocol/Vvm3Subscriber.java
@@ -17,10 +17,13 @@
package com.android.voicemail.impl.protocol;
import android.annotation.TargetApi;
+import android.content.Context;
import android.net.Network;
import android.os.Build;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.annotation.VisibleForTesting;
import android.support.annotation.WorkerThread;
import android.telecom.PhoneAccountHandle;
import android.telephony.TelephonyManager;
@@ -28,6 +31,7 @@ import android.text.Html;
import android.text.Spanned;
import android.text.style.URLSpan;
import android.util.ArrayMap;
+import com.android.dialer.common.ConfigProviderBindings;
import com.android.voicemail.impl.ActivationTask;
import com.android.voicemail.impl.Assert;
import com.android.voicemail.impl.OmtpEvents;
@@ -49,6 +53,8 @@ import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpURLConnection;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Random;
@@ -57,6 +63,8 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.json.JSONArray;
+import org.json.JSONException;
/**
* Class to subscribe to basic VVM3 visual voicemail, for example, Verizon. Subscription is required
@@ -111,7 +119,15 @@ public class Vvm3Subscriber {
private static final String SPG_LANGUAGE_PARAM = "SPG_LANGUAGE_PARAM";
private static final String SPG_LANGUAGE_EN = "ENGLISH";
- private static final String BASIC_SUBSCRIBE_LINK_TEXT = "Subscribe to Basic Visual Voice Mail";
+ @VisibleForTesting
+ static final String VVM3_SUBSCRIBE_LINK_PATTERNS_JSON_ARRAY =
+ "vvm3_subscribe_link_pattern_json_array";
+
+ private static final String VVM3_SUBSCRIBE_LINK_DEFAULT_PATTERNS =
+ "["
+ + "\"(?i)Subscribe to Basic Visual Voice Mail\","
+ + "\"(?i)Subscribe to Basic Visual Voicemail\""
+ + "]";
private static final int REQUEST_TIMEOUT_SECONDS = 30;
@@ -125,7 +141,8 @@ public class Vvm3Subscriber {
private RequestQueue mRequestQueue;
- private static class ProvisioningException extends Exception {
+ @VisibleForTesting
+ static class ProvisioningException extends Exception {
public ProvisioningException(String message) {
super(message);
@@ -188,7 +205,8 @@ public class Vvm3Subscriber {
try {
String gatewayUrl = getSelfProvisioningGateway();
String selfProvisionResponse = getSelfProvisionResponse(gatewayUrl);
- String subscribeLink = findSubscribeLink(selfProvisionResponse);
+ String subscribeLink =
+ findSubscribeLink(getSubscribeLinkPatterns(mHelper.getContext()), selfProvisionResponse);
clickSubscribeLink(subscribeLink);
} catch (ProvisioningException e) {
VvmLog.e(TAG, e.toString());
@@ -291,14 +309,40 @@ public class Vvm3Subscriber {
}
}
- private String findSubscribeLink(String response) throws ProvisioningException {
+ @VisibleForTesting
+ static List<Pattern> getSubscribeLinkPatterns(Context context) {
+ String patternsJsonString =
+ ConfigProviderBindings.get(context)
+ .getString(
+ VVM3_SUBSCRIBE_LINK_PATTERNS_JSON_ARRAY, VVM3_SUBSCRIBE_LINK_DEFAULT_PATTERNS);
+ List<Pattern> patterns = new ArrayList<>();
+ try {
+ JSONArray patternsArray = new JSONArray(patternsJsonString);
+ for (int i = 0; i < patternsArray.length(); i++) {
+ patterns.add(Pattern.compile(patternsArray.getString(i)));
+ }
+ } catch (JSONException e) {
+ throw new IllegalArgumentException("Unable to parse patterns" + e);
+ }
+ return patterns;
+ }
+
+ @VisibleForTesting
+ static String findSubscribeLink(@NonNull List<Pattern> patterns, String response)
+ throws ProvisioningException {
+ if (patterns.isEmpty()) {
+ throw new IllegalArgumentException("empty patterns");
+ }
Spanned doc = Html.fromHtml(response, Html.FROM_HTML_MODE_LEGACY);
URLSpan[] spans = doc.getSpans(0, doc.length(), URLSpan.class);
StringBuilder fulltext = new StringBuilder();
+
for (URLSpan span : spans) {
String text = doc.subSequence(doc.getSpanStart(span), doc.getSpanEnd(span)).toString();
- if (BASIC_SUBSCRIBE_LINK_TEXT.equals(text)) {
- return span.getURL();
+ for (Pattern pattern : patterns) {
+ if (pattern.matcher(text).matches()) {
+ return span.getURL();
+ }
}
fulltext.append(text);
}
diff --git a/java/com/android/voicemail/impl/res/values-af/strings.xml b/java/com/android/voicemail/impl/res/values-af/strings.xml
index 71263217f..a84553480 100644
--- a/java/com/android/voicemail/impl/res/values-af/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-af/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Stemboodskap (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Stemboodskap"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibreer"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibreer"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Klank"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Gevorderde instellings"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuele stemboodskap"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Ekstra rugsteun en berging"</string>
diff --git a/java/com/android/voicemail/impl/res/values-am/strings.xml b/java/com/android/voicemail/impl/res/values-am/strings.xml
index d350bbd94..2f0719a0b 100644
--- a/java/com/android/voicemail/impl/res/values-am/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-am/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"የድምፅ መልዕክት (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"የድምፅ መልዕክት"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"ንዘር"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"ንዘር"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ድምፅ"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"የላቁ ቅንብሮች"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"ምስላዊ የድምፅ መልዕክት"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"ተጨማሪ ምትኬ እና ማከማቻ"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ar/strings.xml b/java/com/android/voicemail/impl/res/values-ar/strings.xml
index 679dcce9c..f46ebe1be 100644
--- a/java/com/android/voicemail/impl/res/values-ar/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ar/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"البريد الصوتي (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"البريد الصوتي"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"اهتزاز"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"اهتزاز"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"صوت"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"الإعدادات المتقدمة"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"بريد صوتي مرئي"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"نسخة احتياطية وسعة تخزين إضافية"</string>
diff --git a/java/com/android/voicemail/impl/res/values-az/strings.xml b/java/com/android/voicemail/impl/res/values-az/strings.xml
index 87b4c0692..ebb85dce8 100644
--- a/java/com/android/voicemail/impl/res/values-az/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-az/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Səsli e-poçt (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Səsli e-poçt"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrasiya"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrasiya"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Səs"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Qabaqcıl Ayarlar"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Görünən Səsli e-poçt"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Əlavə yedəkləmə və yaddaş"</string>
diff --git a/java/com/android/voicemail/impl/res/values-b+sr+Latn/strings.xml b/java/com/android/voicemail/impl/res/values-b+sr+Latn/strings.xml
index 193913081..41294300b 100644
--- a/java/com/android/voicemail/impl/res/values-b+sr+Latn/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-b+sr+Latn/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Govorna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Govorna pošta"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibracija"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibracija"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Zvuk"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Napredna podešavanja"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizuelna govorna pošta"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Dodatne rezervne kopije i prostor"</string>
diff --git a/java/com/android/voicemail/impl/res/values-be/strings.xml b/java/com/android/voicemail/impl/res/values-be/strings.xml
index 874b4791a..ffb7caba0 100644
--- a/java/com/android/voicemail/impl/res/values-be/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-be/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Галасавая пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Галасавая пошта"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Вібрацыя"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Вібрацыя"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Гук"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Пашыраныя налады"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Візуальная галасавая пошта"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Дадатковае рэзервовае капір. і сховішча"</string>
diff --git a/java/com/android/voicemail/impl/res/values-bg/strings.xml b/java/com/android/voicemail/impl/res/values-bg/strings.xml
index f987015e9..d3a66a41c 100644
--- a/java/com/android/voicemail/impl/res/values-bg/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-bg/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Гласова поща (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Гласова поща"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Вибриране"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Вибриране"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Звук"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Разширени настройки"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Визуална гласова поща"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Допълнителни резервни копия и хранилище"</string>
diff --git a/java/com/android/voicemail/impl/res/values-bn/strings.xml b/java/com/android/voicemail/impl/res/values-bn/strings.xml
index 699576d41..636f332cb 100644
--- a/java/com/android/voicemail/impl/res/values-bn/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-bn/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"ভয়েসমেল (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"ভয়েসমেল"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"কম্পন"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"কম্পন"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"শব্দ"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"উন্নত সেটিংস"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"ভিজ্যুয়াল ভয়েসমেল"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"অতিরিক্ত ব্যাক আপ এবং সঞ্চয়স্থান"</string>
diff --git a/java/com/android/voicemail/impl/res/values-bs/strings.xml b/java/com/android/voicemail/impl/res/values-bs/strings.xml
index 2c8cc7682..09b9ab6d1 100644
--- a/java/com/android/voicemail/impl/res/values-bs/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-bs/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Govorna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Govorna pošta"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibracija"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibracija"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Zvuk"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Napredne postavke"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizuelna govorna pošta"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Dodatna sigurnosna kopija i pohrana"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ca/strings.xml b/java/com/android/voicemail/impl/res/values-ca/strings.xml
index b6525d02b..e6c3bc730 100644
--- a/java/com/android/voicemail/impl/res/values-ca/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ca/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Bústia de veu (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Bústia de veu"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibra"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibra"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"So"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Configuració avançada"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Bústia de veu visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Còpia de seguretat addicional i emmagatz."</string>
diff --git a/java/com/android/voicemail/impl/res/values-cs/strings.xml b/java/com/android/voicemail/impl/res/values-cs/strings.xml
index 987f9de01..621c4a8b1 100644
--- a/java/com/android/voicemail/impl/res/values-cs/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-cs/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Hlasová schránka (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Hlasová schránka"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrace"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrace"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Zvuk"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Pokročilá nastavení"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizuální hlasová schránka"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Další zálohování a úložiště"</string>
diff --git a/java/com/android/voicemail/impl/res/values-da/strings.xml b/java/com/android/voicemail/impl/res/values-da/strings.xml
index 70ecb3699..e9f0404d2 100644
--- a/java/com/android/voicemail/impl/res/values-da/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-da/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Telefonsvarer (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Telefonsvarer"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrer"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrer"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Lyd"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Avancerede indstillinger"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuel telefonsvarer"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Ekstra sikkerhedskopiering og lagerplads"</string>
diff --git a/java/com/android/voicemail/impl/res/values-de/strings.xml b/java/com/android/voicemail/impl/res/values-de/strings.xml
index 2746629e9..c4cc75b37 100644
--- a/java/com/android/voicemail/impl/res/values-de/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-de/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Mailbox (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Mailbox"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrieren"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrieren"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Ton"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Erweiterte Einstellungen"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuelle Mailbox"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Zusätzliche Sicherung und mehr Speicher"</string>
diff --git a/java/com/android/voicemail/impl/res/values-el/strings.xml b/java/com/android/voicemail/impl/res/values-el/strings.xml
index e9f9835c6..5456c4875 100644
--- a/java/com/android/voicemail/impl/res/values-el/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-el/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Αυτόματος τηλεφωνητής (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Αυτόματος τηλεφωνητής"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Δόνηση"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Δόνηση"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Ήχος"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Σύνθετες ρυθμίσεις"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Οπτικός αυτόματος τηλεφωνητής"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Επιπλέον αντίγραφα ασφ. και αποθήκευση"</string>
diff --git a/java/com/android/voicemail/impl/res/values-en-rAU/strings.xml b/java/com/android/voicemail/impl/res/values-en-rAU/strings.xml
index ec08faf22..dba1f1624 100644
--- a/java/com/android/voicemail/impl/res/values-en-rAU/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-en-rAU/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Voicemail"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrate"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrate"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Sound"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Advanced settings"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visual voicemail"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Extra backup and storage"</string>
diff --git a/java/com/android/voicemail/impl/res/values-en-rGB/strings.xml b/java/com/android/voicemail/impl/res/values-en-rGB/strings.xml
index ec08faf22..dba1f1624 100644
--- a/java/com/android/voicemail/impl/res/values-en-rGB/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-en-rGB/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Voicemail"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrate"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrate"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Sound"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Advanced settings"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visual voicemail"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Extra backup and storage"</string>
diff --git a/java/com/android/voicemail/impl/res/values-en-rIN/strings.xml b/java/com/android/voicemail/impl/res/values-en-rIN/strings.xml
index ec08faf22..dba1f1624 100644
--- a/java/com/android/voicemail/impl/res/values-en-rIN/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-en-rIN/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Voicemail"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrate"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrate"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Sound"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Advanced settings"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visual voicemail"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Extra backup and storage"</string>
diff --git a/java/com/android/voicemail/impl/res/values-es-rUS/strings.xml b/java/com/android/voicemail/impl/res/values-es-rUS/strings.xml
index fcd9cc7c3..86cb7e934 100644
--- a/java/com/android/voicemail/impl/res/values-es-rUS/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-es-rUS/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Buzón de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Buzón de voz"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrar"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrar"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Sonido"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Configuración avanzada"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Buzón de voz visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Copia de seguridad y almacenamiento adicional"</string>
diff --git a/java/com/android/voicemail/impl/res/values-es/strings.xml b/java/com/android/voicemail/impl/res/values-es/strings.xml
index f20ebc5cf..29863d177 100644
--- a/java/com/android/voicemail/impl/res/values-es/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-es/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Buzón de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Buzón de voz"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibración"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrar"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Sonido"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Configuración avanzada"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Buzón de voz visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Copias de seguridad y almacenamiento extra"</string>
diff --git a/java/com/android/voicemail/impl/res/values-et/strings.xml b/java/com/android/voicemail/impl/res/values-et/strings.xml
index dc7f685ba..6fcf23392 100644
--- a/java/com/android/voicemail/impl/res/values-et/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-et/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Kõnepost (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Kõnepost"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibreerimine"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibreerimine"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Heli"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Täpsemad seaded"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuaalne kõnepost"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Lisavarundus ja -salvestusruum"</string>
diff --git a/java/com/android/voicemail/impl/res/values-eu/strings.xml b/java/com/android/voicemail/impl/res/values-eu/strings.xml
index 8a3bd640a..293dd1c45 100644
--- a/java/com/android/voicemail/impl/res/values-eu/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-eu/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Erantzungailua (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Erantzungailua"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Dardara"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Dardara"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Soinua"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Ezarpen aurreratuak"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Erantzungailu bisuala"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Babeskopiak eta edukia gordetzeko tokia"</string>
diff --git a/java/com/android/voicemail/impl/res/values-fa/strings.xml b/java/com/android/voicemail/impl/res/values-fa/strings.xml
index 0b5d51333..cc04d98f2 100644
--- a/java/com/android/voicemail/impl/res/values-fa/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-fa/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"پست صوتی (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"پست صوتی"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"لرزش"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"لرزش"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"صدا"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"تنظیمات پیشرفته"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"پست صوتی تصویری"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"پشتیبان‌گیری و فضای ذخیره‌سازی اضافی"</string>
diff --git a/java/com/android/voicemail/impl/res/values-fi/strings.xml b/java/com/android/voicemail/impl/res/values-fi/strings.xml
index c20d3e481..0e1cda523 100644
--- a/java/com/android/voicemail/impl/res/values-fi/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-fi/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Vastaaja (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Vastaaja"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Värinä"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Värinä"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Ääni"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Lisäasetukset"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuaalinen vastaaja"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Lisävarmuuskopiointi ja ‑tallennustila"</string>
diff --git a/java/com/android/voicemail/impl/res/values-fr-rCA/strings.xml b/java/com/android/voicemail/impl/res/values-fr-rCA/strings.xml
index 6bbd1341f..f570fa415 100644
--- a/java/com/android/voicemail/impl/res/values-fr-rCA/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-fr-rCA/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Messagerie vocale (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Messagerie vocale"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibreur"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibreur"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Son"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Paramètres avancés"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Messagerie vocale visuelle"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Espace suppl. de sauvegarde et stockage"</string>
diff --git a/java/com/android/voicemail/impl/res/values-fr/strings.xml b/java/com/android/voicemail/impl/res/values-fr/strings.xml
index dc21c76d3..323decf84 100644
--- a/java/com/android/voicemail/impl/res/values-fr/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-fr/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Messagerie vocale (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Messagerie vocale"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibreur"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibreur"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Sonnerie"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Paramètres avancés"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Messagerie vocale visuelle"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Espace suppl. de sauvegarde et stockage"</string>
diff --git a/java/com/android/voicemail/impl/res/values-gl/strings.xml b/java/com/android/voicemail/impl/res/values-gl/strings.xml
index 81f6e679a..b6ff512d2 100644
--- a/java/com/android/voicemail/impl/res/values-gl/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-gl/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Correo de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Correo de voz"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibración"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibración"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Son"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Configuración avanzada"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Correo de voz visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Copia de seguranza e almacenamento extra"</string>
diff --git a/java/com/android/voicemail/impl/res/values-gu/strings.xml b/java/com/android/voicemail/impl/res/values-gu/strings.xml
index 3e8948d19..684bd40fc 100644
--- a/java/com/android/voicemail/impl/res/values-gu/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-gu/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"વૉઇસમેઇલ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"વૉઇસમેઇલ"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"વાઇબ્રેટ"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"વાઇબ્રેટ"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ધ્વનિ"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"વિગતવાર સેટિંગ્સ"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"વિઝ્યુઅલ વૉઇસમેઇલ"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"અતિરિક્ત બેકઅપ અને સ્ટોરેજ"</string>
diff --git a/java/com/android/voicemail/impl/res/values-hi/strings.xml b/java/com/android/voicemail/impl/res/values-hi/strings.xml
index 8daa3e3d7..3cb394f46 100644
--- a/java/com/android/voicemail/impl/res/values-hi/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-hi/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"वॉइसमेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"वॉइसमेल"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"कंपन"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"कंपन"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ध्वनि"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"उन्नत सेटिंग"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"विज़ुअल वॉइसमेल"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"अतिरिक्त बैकअप और जगह"</string>
diff --git a/java/com/android/voicemail/impl/res/values-hr/strings.xml b/java/com/android/voicemail/impl/res/values-hr/strings.xml
index 960909571..6eb0bbc40 100644
--- a/java/com/android/voicemail/impl/res/values-hr/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-hr/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Govorna pošta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Govorna pošta"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibriranje"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibriranje"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Zvuk"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Napredne postavke"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizualna govorna pošta"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Dodatno sigurnosno kopiranje i pohrana"</string>
diff --git a/java/com/android/voicemail/impl/res/values-hu/strings.xml b/java/com/android/voicemail/impl/res/values-hu/strings.xml
index ce18af799..b76412275 100644
--- a/java/com/android/voicemail/impl/res/values-hu/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-hu/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Hangposta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Hangposta"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Rezgés"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Rezgés"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Hang"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Speciális beállítások"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizuális hangpostaüzenet"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Extra tárhely és biztonsági mentés"</string>
diff --git a/java/com/android/voicemail/impl/res/values-hy/strings.xml b/java/com/android/voicemail/impl/res/values-hy/strings.xml
index eaa987aa4..23544bad8 100644
--- a/java/com/android/voicemail/impl/res/values-hy/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-hy/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Ձայնային փոստ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Ձայնային փոստ"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Թրթռոց"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Թրթռոց"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Ձայն"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Ընդլայնված կարգավորումներ"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Տեսողական ձայնային փոստ"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Լրացուցիչ տարածք և պահուստավորում"</string>
diff --git a/java/com/android/voicemail/impl/res/values-in/strings.xml b/java/com/android/voicemail/impl/res/values-in/strings.xml
index 6f7e6377e..76ad47944 100644
--- a/java/com/android/voicemail/impl/res/values-in/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-in/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Pesan Suara (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Pesan Suara"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Getar"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Getar"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Suara"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Setelan Lanjutan"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Pesan Suara Visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Penyimpanan dan backup ekstra"</string>
diff --git a/java/com/android/voicemail/impl/res/values-is/strings.xml b/java/com/android/voicemail/impl/res/values-is/strings.xml
index 5e00487af..26ee45a75 100644
--- a/java/com/android/voicemail/impl/res/values-is/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-is/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Talhólf (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Talhólf"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Titringur"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Titringur"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Hljóð"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Ítarlegar stillingar"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Myndrænt talhólf"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Viðbótaröryggisafritun og samstilling"</string>
diff --git a/java/com/android/voicemail/impl/res/values-it/strings.xml b/java/com/android/voicemail/impl/res/values-it/strings.xml
index 2c37ba281..3f28d4563 100644
--- a/java/com/android/voicemail/impl/res/values-it/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-it/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Segreteria (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Segreteria"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrazione"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrazione"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Suono"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Impostazioni avanzate"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Leggi la segreteria"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Archiviazione supplementare e backup"</string>
diff --git a/java/com/android/voicemail/impl/res/values-iw/strings.xml b/java/com/android/voicemail/impl/res/values-iw/strings.xml
index cdf58dd64..f808e9853 100644
--- a/java/com/android/voicemail/impl/res/values-iw/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-iw/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"דואר קולי (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"דואר קולי"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"רטט"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"רטט"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"צליל"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"הגדרות מתקדמות"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"דואר קולי ויזואלי"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"גיבוי ופינוי מקום"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ja/strings.xml b/java/com/android/voicemail/impl/res/values-ja/strings.xml
index e35359f01..75dcd5e08 100644
--- a/java/com/android/voicemail/impl/res/values-ja/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ja/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"ボイスメール(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"ボイスメール"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"バイブレーション"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"バイブレーション"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"通知音"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"詳細設定"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"ビジュアル ボイスメール"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"追加のバックアップと保存容量"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ka/strings.xml b/java/com/android/voicemail/impl/res/values-ka/strings.xml
index 7eb792fd0..8c46747ff 100644
--- a/java/com/android/voicemail/impl/res/values-ka/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ka/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"ხმოვანი ფოსტა (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"ხმოვანი ფოსტა"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"ვიბრაცია"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"ვიბრაცია"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ხმა"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"გაფართოებული პარამეტრები"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"ვიზუალური ხმოვანი ფოსტა"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"დამატებითი სარეზ. ასლები და მეხსიერება"</string>
diff --git a/java/com/android/voicemail/impl/res/values-kk/strings.xml b/java/com/android/voicemail/impl/res/values-kk/strings.xml
index a03171d01..1badcfd92 100644
--- a/java/com/android/voicemail/impl/res/values-kk/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-kk/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Дауыстық хабар (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Дауыстық хабар"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Діріл"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Діріл"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Дыбыс"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Қосымша параметрлер"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Визуалды дауыстық пошта"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Қосымша сақтық көшірме жасау және сақтау"</string>
diff --git a/java/com/android/voicemail/impl/res/values-km/strings.xml b/java/com/android/voicemail/impl/res/values-km/strings.xml
index 3d55d00bb..35fdb490a 100644
--- a/java/com/android/voicemail/impl/res/values-km/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-km/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"សារ​ជា​សំឡេង (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"សារ​ជា​សំឡេង"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"ញ័រ"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"ញ័រ"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"សំឡេង"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"ការ​កំណត់​កម្រិត​ខ្ពស់"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"សារជាសំឡេងអាចមើលឃើញ"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"ទំហំ​ផ្ទុក និង​ការ​បម្រុងទុក​បន្ថែម"</string>
diff --git a/java/com/android/voicemail/impl/res/values-kn/strings.xml b/java/com/android/voicemail/impl/res/values-kn/strings.xml
index 379e656ce..5ab3a2e75 100644
--- a/java/com/android/voicemail/impl/res/values-kn/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-kn/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"ಧ್ವನಿಮೇಲ್ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"ಧ್ವನಿಮೇಲ್"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"ವೈಬ್ರೇಟ್‌"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"ವೈಬ್ರೇಟ್‌"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ಶಬ್ದ"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"ಸುಧಾರಿತ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"ದೃಶ್ಯ ಧ್ವನಿಮೇಲ್"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"ಹೆಚ್ಚುವರಿ ಬ್ಯಾಕಪ್ ಮತ್ತು ಸಂಗ್ರಹಣೆ"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ko/strings.xml b/java/com/android/voicemail/impl/res/values-ko/strings.xml
index 513a67546..98195e04f 100644
--- a/java/com/android/voicemail/impl/res/values-ko/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ko/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"음성사서함(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"음성사서함"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"진동"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"진동"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"소리"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"고급 설정"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"시각적 음성사서함"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"추가 백업 및 저장용량"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ky/strings.xml b/java/com/android/voicemail/impl/res/values-ky/strings.xml
index 12b7f18c5..5ba4ddeba 100644
--- a/java/com/android/voicemail/impl/res/values-ky/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ky/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Үн почтасы (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Үн почтасы"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Дирилдөө"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Дирилдөө"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Үн"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Өркүндөтүлгөн жөндөөлөр"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Визуалдык үн почтасы"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Кошумча камдык көчүрмөнү сактоо жана сактагыч"</string>
diff --git a/java/com/android/voicemail/impl/res/values-lo/strings.xml b/java/com/android/voicemail/impl/res/values-lo/strings.xml
index f4f45e592..ef9cecc8d 100644
--- a/java/com/android/voicemail/impl/res/values-lo/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-lo/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"ຂໍ້​ຄວາມ​ສຽງ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"ຂໍ້ຄວາມສຽງ"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"ສັ່ນເຕືອນ"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"ສັ່ນເຕືອນ"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ສຽງ"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"ການຕັ້ງຄ່າຂັ້ນສູງ"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"ຂໍ້​ຄວາມ​ສຽງສະເໝືອນ"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"ການສຳຮອງ ແລະ ບ່ອນຈັດເກັບຂໍ້ມູນພິເສດ"</string>
diff --git a/java/com/android/voicemail/impl/res/values-lt/strings.xml b/java/com/android/voicemail/impl/res/values-lt/strings.xml
index 59a15f452..31dba2e5f 100644
--- a/java/com/android/voicemail/impl/res/values-lt/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-lt/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Balso paštas (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Balso paštas"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibruoti"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibravimas"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Garsas"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Išplėstiniai nustatymai"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vaizdinis balso paštas"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Papild. saug. vt. ir ats. kop. kūr. f."</string>
diff --git a/java/com/android/voicemail/impl/res/values-lv/strings.xml b/java/com/android/voicemail/impl/res/values-lv/strings.xml
index 0b8b2f92a..d8230d9ec 100644
--- a/java/com/android/voicemail/impl/res/values-lv/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-lv/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Balss pasts (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Balss pasts"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrācija"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrācija"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Signāls"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Papildu iestatījumi"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizuālais balss pasts"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Papildu dublēšana un krātuve"</string>
diff --git a/java/com/android/voicemail/impl/res/values-mk/strings.xml b/java/com/android/voicemail/impl/res/values-mk/strings.xml
index 90c2f6cb2..375b79a7f 100644
--- a/java/com/android/voicemail/impl/res/values-mk/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-mk/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Говорна пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Говорна пошта"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Вибрации"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Вибрации"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Звук"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Напредни поставки"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Визуелна говорна пошта"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Дополнителен бекап и склад"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ml/strings.xml b/java/com/android/voicemail/impl/res/values-ml/strings.xml
index d7fd31f1e..d21d8bed9 100644
--- a/java/com/android/voicemail/impl/res/values-ml/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ml/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"വോയ്‌സ്‌മെയിൽ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"വോയ്‌സ്‌മെയിൽ"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"വൈബ്രേറ്റുചെയ്യുക"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"വൈബ്രേറ്റുചെയ്യുക"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ശബ്‌ദം"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"വിപുലമായ ക്രമീകരണം"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"വിഷ്വൽ വോയ്‌സ്‌മെയിൽ"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"അധിക ബായ്‌ക്കപ്പും സ്‌റ്റോറേജും"</string>
diff --git a/java/com/android/voicemail/impl/res/values-mn/strings.xml b/java/com/android/voicemail/impl/res/values-mn/strings.xml
index 5f726342f..56cffa9e0 100644
--- a/java/com/android/voicemail/impl/res/values-mn/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-mn/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Дуут шуудан (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Дуут шуудан"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Чичиргээ"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Чичиргээ"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Дуу"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Нарийвчилсан тохиргоо"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Уншиж болохуйц дуут шуудан"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Нэмэлт нөөцлөлт болон хадгалах сан"</string>
diff --git a/java/com/android/voicemail/impl/res/values-mr/strings.xml b/java/com/android/voicemail/impl/res/values-mr/strings.xml
index e8c546ce6..407909876 100644
--- a/java/com/android/voicemail/impl/res/values-mr/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-mr/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"व्हॉइसमेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"व्हॉइसमेल"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"कंपन करा"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"कंपन करा"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ध्वनी"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"प्रगत सेटिंग्ज"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"दृश्‍यमान व्हॉइसमेल"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"अतिरिक्त बॅक अप आणि संचय"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ms/strings.xml b/java/com/android/voicemail/impl/res/values-ms/strings.xml
index 4468d49d7..91fa3051e 100644
--- a/java/com/android/voicemail/impl/res/values-ms/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ms/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Mel suara (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Mel suara"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Bergetar"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Bergetar"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Bunyi"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Tetapan Terperinci"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Mel Suara Visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Sandaran dan storan tambahan"</string>
diff --git a/java/com/android/voicemail/impl/res/values-my/strings.xml b/java/com/android/voicemail/impl/res/values-my/strings.xml
index 41e88351d..8144c1f49 100644
--- a/java/com/android/voicemail/impl/res/values-my/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-my/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"အသံမေးလ် (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"အသံမေးလ်"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"တုန်ခါမှု"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"တုန်ခါမှု"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"အသံ"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"အဆင့်မြင့် ဆက်တင်များ"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"စာသားမှတ်တမ်းပါ အသံမေးလ်"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"အပိုဆောင်း မိတ္တူနှင့် သိုလှောင်မှု"</string>
diff --git a/java/com/android/voicemail/impl/res/values-nb/strings.xml b/java/com/android/voicemail/impl/res/values-nb/strings.xml
index afbdd3bb8..b13be25c4 100644
--- a/java/com/android/voicemail/impl/res/values-nb/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-nb/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Talepostkasse (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Talepost"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrering"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrering"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Lyd"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Avanserte innstillinger"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuell talepostkasse"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Ekstra sikkerhetskopi og lagring"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ne/strings.xml b/java/com/android/voicemail/impl/res/values-ne/strings.xml
index a186535b5..360164eb5 100644
--- a/java/com/android/voicemail/impl/res/values-ne/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ne/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"भ्वाइस मेल (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"भ्वाइस मेल"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"कम्पन"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"कम्पन"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"आवाज"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"उन्नत सेटिङहरू"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"भिजुअल भ्वाइस मेल"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"अतिरिक्त ब्याकअप र भण्डारण"</string>
diff --git a/java/com/android/voicemail/impl/res/values-nl/strings.xml b/java/com/android/voicemail/impl/res/values-nl/strings.xml
index ed66ab303..88fc0f63f 100644
--- a/java/com/android/voicemail/impl/res/values-nl/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-nl/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Voicemail"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Trillen"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Trillen"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Geluid"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Geavanceerde instellingen"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuele voicemail"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Extra back-up en opslag"</string>
diff --git a/java/com/android/voicemail/impl/res/values-no/strings.xml b/java/com/android/voicemail/impl/res/values-no/strings.xml
index afbdd3bb8..b13be25c4 100644
--- a/java/com/android/voicemail/impl/res/values-no/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-no/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Talepostkasse (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Talepost"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrering"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrering"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Lyd"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Avanserte innstillinger"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuell talepostkasse"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Ekstra sikkerhetskopi og lagring"</string>
diff --git a/java/com/android/voicemail/impl/res/values-pa/strings.xml b/java/com/android/voicemail/impl/res/values-pa/strings.xml
index ec68867c6..b7711b903 100644
--- a/java/com/android/voicemail/impl/res/values-pa/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-pa/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"ਵੌਇਸਮੇਲ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"ਵੌਇਸਮੇਲ"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"ਵਾਈਬ੍ਰੇਟ ਕਰੋ"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"ਵਾਈਬ੍ਰੇਟ ਕਰੋ"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ਧੁਨੀ"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"ਉੱਨਤ ਸੈਟਿੰਗਾਂ"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"ਦ੍ਰਿਸ਼ਟਾਂਤਕ ਵੌਇਸਮੇਲ"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"ਵਾਧੂ ਬੈਕਅੱਪ ਅਤੇ ਸਟੋਰੇਜ"</string>
diff --git a/java/com/android/voicemail/impl/res/values-pl/strings.xml b/java/com/android/voicemail/impl/res/values-pl/strings.xml
index 25b891475..d240f7dbc 100644
--- a/java/com/android/voicemail/impl/res/values-pl/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-pl/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Poczta głosowa (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Poczta głosowa"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Wibracje"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Wibracje"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Dźwięk"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Ustawienia zaawansowane"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Wizualna poczta głosowa"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Dodatkowe miejsce i kopia zapasowa"</string>
diff --git a/java/com/android/voicemail/impl/res/values-pt-rBR/strings.xml b/java/com/android/voicemail/impl/res/values-pt-rBR/strings.xml
index c93402e36..501924a35 100644
--- a/java/com/android/voicemail/impl/res/values-pt-rBR/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-pt-rBR/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Correio de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Correio de voz"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibração"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibração"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Som"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Configurações avançadas"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Correio de voz visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Armazenamento extra e backup"</string>
diff --git a/java/com/android/voicemail/impl/res/values-pt-rPT/strings.xml b/java/com/android/voicemail/impl/res/values-pt-rPT/strings.xml
index 00ed0331b..d443329bb 100644
--- a/java/com/android/voicemail/impl/res/values-pt-rPT/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-pt-rPT/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Correio de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Correio de voz"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrar"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrar"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Som"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Definições avançadas"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Mensagem de correio de voz visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Cópia de segurança e armazenamento extra"</string>
diff --git a/java/com/android/voicemail/impl/res/values-pt/strings.xml b/java/com/android/voicemail/impl/res/values-pt/strings.xml
index c93402e36..501924a35 100644
--- a/java/com/android/voicemail/impl/res/values-pt/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-pt/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Correio de voz (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Correio de voz"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibração"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibração"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Som"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Configurações avançadas"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Correio de voz visual"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Armazenamento extra e backup"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ro/strings.xml b/java/com/android/voicemail/impl/res/values-ro/strings.xml
index 9099065c1..44bfd0d81 100644
--- a/java/com/android/voicemail/impl/res/values-ro/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ro/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Mesagerie vocală (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Mesagerie vocală"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrații"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrații"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Sunet"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Setări avansate"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Mesagerie vocală vizuală"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Backup și spațiu de stocare suplimentare"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ru/strings.xml b/java/com/android/voicemail/impl/res/values-ru/strings.xml
index 322b41bfb..b0512f842 100644
--- a/java/com/android/voicemail/impl/res/values-ru/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ru/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Голосовая почта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Голосовая почта"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Вибросигнал"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Вибросигнал"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Звук"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Расширенные настройки"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Визуальная голосовая почта"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Дополнительное место для хранения и резервного копирования"</string>
diff --git a/java/com/android/voicemail/impl/res/values-si/strings.xml b/java/com/android/voicemail/impl/res/values-si/strings.xml
index 8ad6f87e6..ff16e6173 100644
--- a/java/com/android/voicemail/impl/res/values-si/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-si/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"හඬ තැපෑල (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"හඬ තැපෑල"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"කම්පනය"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"කම්පනය කරන්න"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"හඬ"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"උසස් සැකසීම්"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"දෘශ්‍ය හඬ තැපෑල"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"අතිරේක උපස්ථය සහ ගබඩාව"</string>
diff --git a/java/com/android/voicemail/impl/res/values-sk/strings.xml b/java/com/android/voicemail/impl/res/values-sk/strings.xml
index 80252d454..a824ca83f 100644
--- a/java/com/android/voicemail/impl/res/values-sk/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-sk/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Hlasová schránka <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Hlasová schránka"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrovať"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrovať"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Zvuk"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Rozšírené nastavenia"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizuálna hlasová schránka"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Ďalšie zálohovanie a úložisko"</string>
diff --git a/java/com/android/voicemail/impl/res/values-sl/strings.xml b/java/com/android/voicemail/impl/res/values-sl/strings.xml
index b634d156a..6ad9569e7 100644
--- a/java/com/android/voicemail/impl/res/values-sl/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-sl/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Sporočilo v odzivniku (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Sporočilo v odzivniku"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibriranje"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibriranje"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Zvok"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Dodatne nastavitve"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizualno sporočilo v odzivniku"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Dodatno varnostno kopiranje in shramba"</string>
diff --git a/java/com/android/voicemail/impl/res/values-sq/strings.xml b/java/com/android/voicemail/impl/res/values-sq/strings.xml
index 59db0fd74..b9dfad9a4 100644
--- a/java/com/android/voicemail/impl/res/values-sq/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-sq/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Posta zanore (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Posta zanore"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Dridhje"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Dridhje"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Tingulli"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Cilësimet e përparuara"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Posta zanore vizuale"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Rezervimi dhe hapësira ruajtëse shtesë"</string>
diff --git a/java/com/android/voicemail/impl/res/values-sr/strings.xml b/java/com/android/voicemail/impl/res/values-sr/strings.xml
index d4998ed2e..3608263e2 100644
--- a/java/com/android/voicemail/impl/res/values-sr/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-sr/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Говорна пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Говорна пошта"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Вибрација"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Вибрација"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Звук"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Напредна подешавања"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Визуелна говорна пошта"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Додатне резервне копије и простор"</string>
diff --git a/java/com/android/voicemail/impl/res/values-sv/strings.xml b/java/com/android/voicemail/impl/res/values-sv/strings.xml
index c69a2df5f..6818b3977 100644
--- a/java/com/android/voicemail/impl/res/values-sv/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-sv/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Röstbrevlåda (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Röstbrevlåda"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Vibrera"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Vibrera"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Ljud"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Avancerade inställningar"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visuell röstbrevlåda"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Extra säkerhetskopiering och lagring"</string>
diff --git a/java/com/android/voicemail/impl/res/values-sw/strings.xml b/java/com/android/voicemail/impl/res/values-sw/strings.xml
index d1cccc78c..b08db9a41 100644
--- a/java/com/android/voicemail/impl/res/values-sw/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-sw/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Ujumbe wa sauti (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Ujumbe wa sauti"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Mtetemo"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Tetema"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Mlio"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Mipangilio ya Kina"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Ujumbe wa Sauti Unaoonekana"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Nafasi ya ziada na hifadhi rudufu"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ta/strings.xml b/java/com/android/voicemail/impl/res/values-ta/strings.xml
index 0c3c454e1..f240cdd14 100644
--- a/java/com/android/voicemail/impl/res/values-ta/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ta/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"குரலஞ்சல் (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"குரலஞ்சல்"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"அதிர்வுறுதல்"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"அதிர்வுறு"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ஒலி"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"மேம்பட்ட அமைப்புகள்"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"விஷூவல் குரலஞ்சல்"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"கூடுதல் காப்புப் பிரதியும் சேமிப்பகமும்"</string>
diff --git a/java/com/android/voicemail/impl/res/values-te/strings.xml b/java/com/android/voicemail/impl/res/values-te/strings.xml
index 7a865f43f..038ed98f1 100644
--- a/java/com/android/voicemail/impl/res/values-te/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-te/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"వాయిస్ మెయిల్ (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"వాయిస్ మెయిల్"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"వైబ్రేషన్"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"వైబ్రేషన్"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"ధ్వని"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"అధునాతన సెట్టింగ్‌లు"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"దృశ్యమాన వాయిస్ మెయిల్"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"అదనపు బ్యాకప్ మరియు నిల్వ"</string>
diff --git a/java/com/android/voicemail/impl/res/values-th/strings.xml b/java/com/android/voicemail/impl/res/values-th/strings.xml
index 68b32fb45..d4f527020 100644
--- a/java/com/android/voicemail/impl/res/values-th/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-th/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"ข้อความเสียง (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"ข้อความเสียง"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"สั่น"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"สั่น"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"เสียง"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"การตั้งค่าขั้นสูง"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"ภาพแสดงข้อความเสียง"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"การสำรองข้อมูลและพื้นที่เก็บข้อมูลเพิ่มเติม"</string>
diff --git a/java/com/android/voicemail/impl/res/values-tl/strings.xml b/java/com/android/voicemail/impl/res/values-tl/strings.xml
index c14919c03..184f27edb 100644
--- a/java/com/android/voicemail/impl/res/values-tl/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-tl/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Voicemail (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Voicemail"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"I-vibrate"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"I-vibrate"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Tunog"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Mga Advanced na Setting"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Visual na Voicemail"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Karagdagang backup at storage"</string>
diff --git a/java/com/android/voicemail/impl/res/values-tr/strings.xml b/java/com/android/voicemail/impl/res/values-tr/strings.xml
index e8f9336f3..2b36fba34 100644
--- a/java/com/android/voicemail/impl/res/values-tr/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-tr/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Sesli mesaj (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Sesli mesaj"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Titreşim"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Titreşim"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Ses"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Gelişmiş Ayarlar"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Görsel Sesli Mesaj"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Ekstra yedekleme ve depolama alanı"</string>
diff --git a/java/com/android/voicemail/impl/res/values-uk/strings.xml b/java/com/android/voicemail/impl/res/values-uk/strings.xml
index 760177ca4..5e4ab77c0 100644
--- a/java/com/android/voicemail/impl/res/values-uk/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-uk/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Голосова пошта (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Голосова пошта"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Вібросигнал"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Вібросигнал"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Звук"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Розширені налаштування"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Візуальна голосова пошта"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Додаткова пам’ять і резервне копіювання"</string>
diff --git a/java/com/android/voicemail/impl/res/values-ur/strings.xml b/java/com/android/voicemail/impl/res/values-ur/strings.xml
index 2105fae08..ae6e98def 100644
--- a/java/com/android/voicemail/impl/res/values-ur/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-ur/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"صوتی میل (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"صوتی میل"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"ارتعاش"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"ارتعاش"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"آواز"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"اعلی ترتیبات"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"بصری صوتی میل"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"اضافی بیک اپ اور اسٹوریج"</string>
diff --git a/java/com/android/voicemail/impl/res/values-uz/strings.xml b/java/com/android/voicemail/impl/res/values-uz/strings.xml
index fad79164d..f458aee7b 100644
--- a/java/com/android/voicemail/impl/res/values-uz/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-uz/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Ovozli pochta (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Ovozli pochta"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Tebranish"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Tebranish"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Ovoz"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Kengaytirilgan sozlamalar"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Vizual ovozli pochta"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Zaxira. va saqlash u-n qo‘shimcha xotira"</string>
diff --git a/java/com/android/voicemail/impl/res/values-vi/strings.xml b/java/com/android/voicemail/impl/res/values-vi/strings.xml
index 1d029ea12..c0bfa8183 100644
--- a/java/com/android/voicemail/impl/res/values-vi/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-vi/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Thư thoại <xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Thư thoại"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Rung"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Rung"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Âm báo"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Cài đặt nâng cao"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Thư thoại kèm theo hình ảnh"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Bộ nhớ và bản sao lưu bổ sung"</string>
diff --git a/java/com/android/voicemail/impl/res/values-zh-rCN/strings.xml b/java/com/android/voicemail/impl/res/values-zh-rCN/strings.xml
index d70f1fa51..66b058b1f 100644
--- a/java/com/android/voicemail/impl/res/values-zh-rCN/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-zh-rCN/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"语音邮件(<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"语音邮件"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"振动"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"振动"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"提示音"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"高级设置"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"可视语音信箱"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"额外存储空间和备份功能"</string>
diff --git a/java/com/android/voicemail/impl/res/values-zh-rHK/strings.xml b/java/com/android/voicemail/impl/res/values-zh-rHK/strings.xml
index 4adc3fd97..d76068790 100644
--- a/java/com/android/voicemail/impl/res/values-zh-rHK/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-zh-rHK/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"留言 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"留言"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"震動"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"震動"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"音效"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"進階設定"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"視像留言"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"額外備份功能和儲存空間"</string>
diff --git a/java/com/android/voicemail/impl/res/values-zh-rTW/strings.xml b/java/com/android/voicemail/impl/res/values-zh-rTW/strings.xml
index 6ff084f60..2b4de45d9 100644
--- a/java/com/android/voicemail/impl/res/values-zh-rTW/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-zh-rTW/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"語音信箱 (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"語音信箱"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"震動"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"震動"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"音效"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"進階設定"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"視覺化語音信箱"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"額外的備份功能和儲存空間"</string>
diff --git a/java/com/android/voicemail/impl/res/values-zu/strings.xml b/java/com/android/voicemail/impl/res/values-zu/strings.xml
index 5adf300e5..1debac61b 100644
--- a/java/com/android/voicemail/impl/res/values-zu/strings.xml
+++ b/java/com/android/voicemail/impl/res/values-zu/strings.xml
@@ -18,9 +18,8 @@
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="voicemail_settings_with_label" msgid="563926539137546586">"Ivoyisimeyili (<xliff:g id="SUBSCRIPTIONLABEL">%s</xliff:g>)"</string>
<string name="voicemail_settings_title" msgid="6685263321755930738">"Ivoyisimeyili"</string>
- <string name="voicemail_notification_vibrate_when_title" msgid="1017489970564669402">"Dlidlizela"</string>
- <string name="voicemail_notification_vibarte_when_dialog_title" msgid="913495075516305202">"Dlidlizela"</string>
- <string name="voicemail_notification_ringtone_title" msgid="7516921280035140960">"Umsindo"</string>
+ <!-- no translation found for voicemail_notifications_preference_title (3490553930230492405) -->
+ <skip />
<string name="voicemail_advanced_settings_title" msgid="6390900339808156711">"Izilungiselelo ezithuthukisiwe"</string>
<string name="voicemail_visual_voicemail_switch_title" msgid="3158454817165714998">"Ivoyisimeyili ebonakalayo"</string>
<string name="voicemail_visual_voicemail_auto_archive_switch_title" msgid="7120443850486401455">"Isipele esingeziwe nesitoreji"</string>
diff --git a/java/com/android/voicemail/impl/res/values/strings.xml b/java/com/android/voicemail/impl/res/values/strings.xml
index bb754d18b..375a1e9ba 100644
--- a/java/com/android/voicemail/impl/res/values/strings.xml
+++ b/java/com/android/voicemail/impl/res/values/strings.xml
@@ -23,19 +23,12 @@
<string name="voicemail_settings_title">Voicemail</string>
<!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
- <string name="voicemail_notification_ringtone_key" translatable="false">voicemail_notification_ringtone_key</string>
- <!-- DO NOT TRANSLATE. Internal key for a voicemail notification preference. -->
- <string name="voicemail_notification_vibrate_key" translatable="false">voicemail_notification_vibrate_key</string>
-
- <!-- Title for the vibration settings for voicemail notifications [CHAR LIMIT=40] -->
- <string name="voicemail_notification_vibrate_when_title">Vibrate</string>
- <!-- Dialog title for the vibration settings for voice mail notifications [CHAR LIMIT=40]-->
- <string name="voicemail_notification_vibarte_when_dialog_title">Vibrate</string>
+ <string name="voicemail_notifications_key" translatable="false">voicemail_notification_key</string>
- <!-- Voicemail ringtone title. The user clicks on this preference to select
- which sound to play when a voicemail notification is received.
+ <!-- Voicemail notifications title. The user clicks on this preference to select
+ which sound to play and whether to vibrate when a voicemail notification is received.
[CHAR LIMIT=30] -->
- <string name="voicemail_notification_ringtone_title">Sound</string>
+ <string name="voicemail_notifications_preference_title">Notifications</string>
<string name="voicemail_advanced_settings_key" translatable="false">voicemail_advanced_settings_key</string>
<!-- Title for advanced settings in the voicemail settings -->
diff --git a/java/com/android/voicemail/impl/res/xml/voicemail_settings.xml b/java/com/android/voicemail/impl/res/xml/voicemail_settings.xml
index 53fd57f7e..50510905c 100644
--- a/java/com/android/voicemail/impl/res/xml/voicemail_settings.xml
+++ b/java/com/android/voicemail/impl/res/xml/voicemail_settings.xml
@@ -17,16 +17,9 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/voicemail_settings_title">
- <com.android.voicemail.impl.settings.VoicemailRingtonePreference
- android:key="@string/voicemail_notification_ringtone_key"
- android:title="@string/voicemail_notification_ringtone_title"
- android:persistent="false"
- android:ringtoneType="notification" />
-
- <CheckBoxPreference
- android:key="@string/voicemail_notification_vibrate_key"
- android:title="@string/voicemail_notification_vibrate_when_title"
- android:persistent="true" />
+ <Preference
+ android:key="@string/voicemail_notifications_key"
+ android:title="@string/voicemail_notifications_preference_title"/>
<SwitchPreference
android:key="@string/voicemail_visual_voicemail_key"
diff --git a/java/com/android/voicemail/impl/res/xml/vvm_config.xml b/java/com/android/voicemail/impl/res/xml/vvm_config.xml
index 230d40f90..daba3d511 100644
--- a/java/com/android/voicemail/impl/res/xml/vvm_config.xml
+++ b/java/com/android/voicemail/impl/res/xml/vvm_config.xml
@@ -23,6 +23,30 @@
</pbundle_as_map>
<pbundle_as_map>
+ <!-- Orange Belgium -->
+ <string name="feature_flag_name">vvm_carrier_flag_20610</string>
+ <string-array name="mccmnc">
+ <item value="20610"/>
+ </string-array>
+
+ <int
+ name="vvm_port_number_int"
+ value="0"/>
+ <string name="vvm_destination_number_string">8082</string>
+ <string-array name="carrier_vvm_package_name_string_array">
+ <item value="com.orange.vvm"/>
+ </string-array>
+ <string name="vvm_type_string">vvm_type_omtp</string>
+ <boolean
+ name="vvm_cellular_data_required_bool"
+ value="true"/>
+ <string-array name="vvm_disabled_capabilities_string_array">
+ <!-- b/32365569 -->
+ <item value="STARTTLS"/>
+ </string-array>
+ </pbundle_as_map>
+
+ <pbundle_as_map>
<!-- Orange France -->
<string-array name="mccmnc">
<item value="20801"/>
@@ -47,6 +71,30 @@
</pbundle_as_map>
<pbundle_as_map>
+ <!-- Orange Luxembourg -->
+ <string name="feature_flag_name">vvm_carrier_flag_20610</string>
+ <string-array name="mccmnc">
+ <item value="27099"/>
+ </string-array>
+
+ <int
+ name="vvm_port_number_int"
+ value="0"/>
+ <string name="vvm_destination_number_string">64085</string>
+ <string-array name="carrier_vvm_package_name_string_array">
+ <item value="com.orange.vvm"/>
+ </string-array>
+ <string name="vvm_type_string">vvm_type_omtp</string>
+ <boolean
+ name="vvm_cellular_data_required_bool"
+ value="true"/>
+ <string-array name="vvm_disabled_capabilities_string_array">
+ <!-- b/32365569 -->
+ <item value="STARTTLS"/>
+ </string-array>
+ </pbundle_as_map>
+
+ <pbundle_as_map>
<!-- T-Mobile USA-->
<string-array name="mccmnc">
<item value="310160"/>
@@ -86,6 +134,22 @@
</pbundle_as_map>
<pbundle_as_map>
+ <!-- Telus Canada -->
+ <string name="feature_flag_name">vvm_carrier_flag_302220</string>
+ <string-array name="mccmnc">
+ <item value="302220"/>
+ </string-array>
+ <int
+ name="vvm_port_number_int"
+ value="5499"/>
+ <string name="vvm_destination_number_string">7723</string>
+ <string name="vvm_type_string">vvm_type_omtp</string>
+ <boolean
+ name="vvm_cellular_data_required_bool"
+ value="true"/>
+ </pbundle_as_map>
+
+ <pbundle_as_map>
<!-- Verizon USA -->
<string-array name="mccmnc">
<item value="310004"/>
diff --git a/java/com/android/voicemail/impl/scheduling/BaseTask.java b/java/com/android/voicemail/impl/scheduling/BaseTask.java
index 0144e346f..bbdca8c88 100644
--- a/java/com/android/voicemail/impl/scheduling/BaseTask.java
+++ b/java/com/android/voicemail/impl/scheduling/BaseTask.java
@@ -133,7 +133,7 @@ public abstract class BaseTask implements Task {
}
/**
- * Creates an intent that can be used to start the {@link TaskSchedulerService}. Derived class
+ * Creates an intent that can be used to be broadcast to the {@link TaskReceiver}. Derived class
* should build their intent upon this.
*/
public static Intent createIntent(
diff --git a/java/com/android/voicemail/impl/scheduling/MinimalIntervalPolicy.java b/java/com/android/voicemail/impl/scheduling/MinimalIntervalPolicy.java
index 76fba4fb0..342b56e8a 100644
--- a/java/com/android/voicemail/impl/scheduling/MinimalIntervalPolicy.java
+++ b/java/com/android/voicemail/impl/scheduling/MinimalIntervalPolicy.java
@@ -51,7 +51,7 @@ public class MinimalIntervalPolicy implements Policy {
BaseTask.createIntent(mTask.getContext(), BlockerTask.class, mId.phoneAccountHandle);
intent.putExtra(BlockerTask.EXTRA_TASK_ID, mId.id);
intent.putExtra(BlockerTask.EXTRA_BLOCK_FOR_MILLIS, mBlockForMillis);
- mTask.getContext().startService(intent);
+ mTask.getContext().sendBroadcast(intent);
}
}
diff --git a/java/com/android/voicemail/impl/scheduling/RetryPolicy.java b/java/com/android/voicemail/impl/scheduling/RetryPolicy.java
index b8703ea15..c408bdc4a 100644
--- a/java/com/android/voicemail/impl/scheduling/RetryPolicy.java
+++ b/java/com/android/voicemail/impl/scheduling/RetryPolicy.java
@@ -99,7 +99,7 @@ public class RetryPolicy implements Policy {
Intent intent = mTask.createRestartIntent();
intent.putExtra(EXTRA_RETRY_COUNT, mRetryCount + 1);
- mTask.getContext().startService(intent);
+ mTask.getContext().sendBroadcast(intent);
}
@Override
diff --git a/java/com/android/voicemail/impl/scheduling/Task.java b/java/com/android/voicemail/impl/scheduling/Task.java
index 447a9db7b..484a6262e 100644
--- a/java/com/android/voicemail/impl/scheduling/Task.java
+++ b/java/com/android/voicemail/impl/scheduling/Task.java
@@ -24,8 +24,8 @@ import android.telecom.PhoneAccountHandle;
import java.util.Objects;
/**
- * A task for {@link TaskSchedulerService} to execute. Since the task is sent through a bundle to
- * the scheduler, The task must be constructable with the bundle. Specifically, It must have a
+ * A task for {@link TaskExecutor} to execute. Since the task is sent through a bundle to the
+ * scheduler, The task must be constructable with the bundle. Specifically, It must have a
* constructor with zero arguments, and have all relevant data packed inside the bundle. Use {@link
* Tasks#createIntent(Context, Class)} to create a intent that will construct the Task.
*
@@ -112,8 +112,8 @@ public interface Task {
/**
* @return number of milliSeconds the scheduler should wait before running this task. A value less
- * than {@link TaskSchedulerService#READY_TOLERANCE_MILLISECONDS} will be considered ready. If
- * no tasks are ready, the scheduler will sleep for this amount of time before doing another
+ * than {@link TaskExecutor#READY_TOLERANCE_MILLISECONDS} will be considered ready. If no
+ * tasks are ready, the scheduler will sleep for this amount of time before doing another
* check (it will still wake if a new task is added). The first task in the queue that is
* ready will be executed.
*/
diff --git a/java/com/android/voicemail/impl/scheduling/TaskExecutor.java b/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
new file mode 100644
index 000000000..e3b718e50
--- /dev/null
+++ b/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
@@ -0,0 +1,462 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl.scheduling;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build.VERSION_CODES;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Looper;
+import android.os.Message;
+import android.support.annotation.MainThread;
+import android.support.annotation.Nullable;
+import android.support.annotation.VisibleForTesting;
+import android.support.annotation.WorkerThread;
+import com.android.voicemail.impl.Assert;
+import com.android.voicemail.impl.NeededForTesting;
+import com.android.voicemail.impl.VvmLog;
+import com.android.voicemail.impl.scheduling.TaskQueue.NextTask;
+import java.util.List;
+
+/**
+ * A singleton to queue and run {@link Task} with the {@link android.app.job.JobScheduler}. A task
+ * is queued by sending a broadcast to {@link TaskReceiver}. The intent should contain enough
+ * information in {@link Intent#getExtras()} to construct the task (see {@link
+ * Tasks#createIntent(Context, Class)}).
+ *
+ * <p>The executor will only exist when {@link TaskSchedulerJobService} is running.
+ *
+ * <p>All tasks are ran in the background with a wakelock being held by the {@link
+ * android.app.job.JobScheduler}, which is between {@link #onStartJob(Job, List)} and {@link
+ * #finishJobAsync()}. The {@link TaskSchedulerJobService} also has a {@link TaskQueue}, but the
+ * data is stored in the {@link android.app.job.JobScheduler} instead of the process memory, so if
+ * the process is killed the queued tasks will be restored. If a new task is added, a new {@link
+ * TaskSchedulerJobService} will be scheduled to run the task. If the job is already scheduled, the
+ * new task will be pushed into the queue of the scheduled job. If the job is already running, the
+ * job will be queued in process memory.
+ *
+ * <p>Only one task will be ran at a time, and same task cannot exist in the queue at the same time.
+ * Refer to {@link TaskQueue} for queuing and execution order.
+ *
+ * <p>If there are still tasks in the queue but none are executable immediately, the service will
+ * enter a "sleep", pushing all remaining task into a new job and end the current job.
+ *
+ * <p>The executor will be started when {@link TaskSchedulerJobService} is running, and stopped when
+ * there are no more tasks in the queue or when the executor is put to sleep.
+ *
+ * <p>{@link android.app.job.JobScheduler} is not used directly due to:
+ *
+ * <ul>
+ * <li>The {@link android.telecom.PhoneAccountHandle} used to differentiate task can not be easily
+ * mapped into an integer for job id
+ * <li>A job cannot be mutated to store information such as retry count.
+ * </ul>
+ */
+@TargetApi(VERSION_CODES.O)
+final class TaskExecutor {
+
+ /**
+ * An entity that holds execution resources for the {@link TaskExecutor} to run, usually a {@link
+ * android.app.job.JobService}.
+ */
+ interface Job {
+
+ /**
+ * Signals to Job to end and release its' resources. This is an asynchronous call and may not
+ * take effect immediately.
+ */
+ @MainThread
+ void finishAsync();
+
+ /** Whether the call to {@link #finishAsync()} has actually taken effect. */
+ @MainThread
+ boolean isFinished();
+ }
+
+ private static final String TAG = "VvmTaskExecutor";
+
+ private static final int READY_TOLERANCE_MILLISECONDS = 100;
+
+ /**
+ * Threshold to determine whether to do a short or long sleep when a task is scheduled in the
+ * future.
+ *
+ * <p>A short sleep will continue the job and use {@link Handler#postDelayed(Runnable, long)} to
+ * wait for the next task.
+ *
+ * <p>A long sleep will finish the job and schedule a new one. The exact execution time is
+ * subjected to {@link android.app.job.JobScheduler} battery optimization, and is not exact.
+ */
+ private static final int SHORT_SLEEP_THRESHOLD_MILLISECONDS = 10_000;
+ /**
+ * When there are no more tasks to be run the service should be stopped. But when all tasks has
+ * finished there might still be more tasks in the message queue waiting to be processed,
+ * especially the ones submitted in {@link Task#onCompleted()}. Wait for a while before stopping
+ * the service to make sure there are no pending messages.
+ */
+ private static final int STOP_DELAY_MILLISECONDS = 5_000;
+
+ /** Interval between polling of whether the job is finished. */
+ private static final int TERMINATE_POLLING_INTERVAL_MILLISECONDS = 1_000;
+
+ // The thread to run tasks on
+ private final WorkerThreadHandler workerThreadHandler;
+
+ private static TaskExecutor instance;
+
+ /**
+ * Used by tests to turn task handling into a single threaded process by calling {@link
+ * Handler#handleMessage(Message)} directly
+ */
+ private MessageSender messageSender = new MessageSender();
+
+ private final MainThreadHandler mainThreadHandler;
+
+ private final Context context;
+
+ /** Main thread only, access through {@link #getTasks()} */
+ private final TaskQueue tasks = new TaskQueue();
+
+ private boolean isWorkerThreadBusy = false;
+
+ private boolean isTerminating = false;
+
+ private Job job;
+
+ private final Runnable stopServiceWithDelay =
+ new Runnable() {
+ @MainThread
+ @Override
+ public void run() {
+ VvmLog.i(TAG, "Stopping service");
+ if (!isJobRunning() || isTerminating()) {
+ VvmLog.e(TAG, "Service already stopped");
+ return;
+ }
+ scheduleJobAndTerminate(0, true);
+ }
+ };
+
+ /**
+ * Reschedule the {@link TaskSchedulerJobService} and terminate the executor when the {@link Job}
+ * is truly finished. If the job is still not finished, this runnable will requeue itself on the
+ * main thread. The requeue is only expected to happen a few times.
+ */
+ private class JobFinishedPoller implements Runnable {
+
+ private final long delayMillis;
+ private final boolean isNewJob;
+ private int invocationCounter = 0;
+
+ JobFinishedPoller(long delayMillis, boolean isNewJob) {
+ this.delayMillis = delayMillis;
+ this.isNewJob = isNewJob;
+ }
+
+ @Override
+ public void run() {
+ // The job should be finished relatively quickly. Assert to make sure this assumption is true.
+ Assert.isTrue(invocationCounter < 10);
+ invocationCounter++;
+ if (job.isFinished()) {
+ VvmLog.i("JobFinishedPoller.run", "Job finished");
+ if (!getTasks().isEmpty()) {
+ TaskSchedulerJobService.scheduleJob(
+ context, serializePendingTasks(), delayMillis, isNewJob);
+ tasks.clear();
+ }
+ terminate();
+ return;
+ }
+ VvmLog.w("JobFinishedPoller.run", "Job still running");
+ mainThreadHandler.postDelayed(this, TERMINATE_POLLING_INTERVAL_MILLISECONDS);
+ }
+ };
+
+ /** Should attempt to run the next task when a task has finished or been added. */
+ private boolean taskAutoRunDisabledForTesting = false;
+
+ /** Handles execution of the background task in teh worker thread. */
+ @VisibleForTesting
+ final class WorkerThreadHandler extends Handler {
+
+ public WorkerThreadHandler(Looper looper) {
+ super(looper);
+ }
+ @Override
+ @WorkerThread
+ public void handleMessage(Message msg) {
+ Assert.isNotMainThread();
+ Task task = (Task) msg.obj;
+ try {
+ VvmLog.i(TAG, "executing task " + task);
+ task.onExecuteInBackgroundThread();
+ } catch (Throwable throwable) {
+ VvmLog.e(TAG, "Exception while executing task " + task + ":", throwable);
+ }
+
+ Message schedulerMessage = mainThreadHandler.obtainMessage();
+ schedulerMessage.obj = task;
+ messageSender.send(schedulerMessage);
+ }
+ }
+
+ /** Handles completion of the background task in the main thread. */
+ @VisibleForTesting
+ final class MainThreadHandler extends Handler {
+
+ public MainThreadHandler(Looper looper) {
+ super(looper);
+ }
+
+ @Override
+ @MainThread
+ public void handleMessage(Message msg) {
+ Assert.isMainThread();
+ Task task = (Task) msg.obj;
+ getTasks().remove(task);
+ task.onCompleted();
+ isWorkerThreadBusy = false;
+ if (!isJobRunning() || isTerminating()) {
+ // TaskExecutor was terminated when the task is running in background, don't need to run the
+ // next task or terminate again
+ return;
+ }
+ maybeRunNextTask();
+ }
+ }
+
+ /** Starts a new TaskExecutor. May only be called by {@link TaskSchedulerJobService}. */
+ @MainThread
+ static void createRunningInstance(Context context) {
+ Assert.isMainThread();
+ Assert.isTrue(instance == null);
+ instance = new TaskExecutor(context);
+ }
+
+ /** @return the currently running instance, or {@code null} if the executor is not running. */
+ @MainThread
+ @Nullable
+ static TaskExecutor getRunningInstance() {
+ return instance;
+ }
+
+ private TaskExecutor(Context context) {
+ this.context = context;
+ HandlerThread thread = new HandlerThread("VvmTaskExecutor");
+ thread.start();
+
+ workerThreadHandler = new WorkerThreadHandler(thread.getLooper());
+ mainThreadHandler = new MainThreadHandler(Looper.getMainLooper());
+ }
+
+ @VisibleForTesting
+ void terminate() {
+ VvmLog.i(TAG, "terminated");
+ Assert.isMainThread();
+ job = null;
+ workerThreadHandler.getLooper().quit();
+ instance = null;
+ TaskReceiver.resendDeferredBroadcasts(context);
+ }
+
+ @MainThread
+ void addTask(Task task) {
+ Assert.isMainThread();
+ getTasks().add(task);
+ VvmLog.i(TAG, task + " added");
+ mainThreadHandler.removeCallbacks(stopServiceWithDelay);
+ maybeRunNextTask();
+ }
+
+ @MainThread
+ @VisibleForTesting
+ TaskQueue getTasks() {
+ Assert.isMainThread();
+ return tasks;
+ }
+
+ @MainThread
+ private void maybeRunNextTask() {
+ Assert.isMainThread();
+
+ if (isWorkerThreadBusy) {
+ return;
+ }
+ if (taskAutoRunDisabledForTesting) {
+ // If taskAutoRunDisabledForTesting is true, runNextTask() must be explicitly called
+ // to run the next task.
+ return;
+ }
+
+ runNextTask();
+ }
+
+ @VisibleForTesting
+ @MainThread
+ void runNextTask() {
+ Assert.isMainThread();
+ if (getTasks().isEmpty()) {
+ prepareStop();
+ return;
+ }
+ NextTask nextTask = getTasks().getNextTask(READY_TOLERANCE_MILLISECONDS);
+
+ if (nextTask.task != null) {
+ nextTask.task.onBeforeExecute();
+ Message message = workerThreadHandler.obtainMessage();
+ message.obj = nextTask.task;
+ isWorkerThreadBusy = true;
+ messageSender.send(message);
+ return;
+ }
+ VvmLog.i(TAG, "minimal wait time:" + nextTask.minimalWaitTimeMillis);
+ if (!taskAutoRunDisabledForTesting && nextTask.minimalWaitTimeMillis != null) {
+ // No tasks are currently ready. Sleep until the next one should be.
+ // If a new task is added during the sleep the service will wake immediately.
+ sleep(nextTask.minimalWaitTimeMillis);
+ }
+ }
+
+ @MainThread
+ private void sleep(long timeMillis) {
+ VvmLog.i(TAG, "sleep for " + timeMillis + " millis");
+ if (timeMillis < SHORT_SLEEP_THRESHOLD_MILLISECONDS) {
+ mainThreadHandler.postDelayed(
+ new Runnable() {
+ @Override
+ public void run() {
+ maybeRunNextTask();
+ }
+ },
+ timeMillis);
+ return;
+ }
+ scheduleJobAndTerminate(timeMillis, false);
+ }
+
+ private List<Bundle> serializePendingTasks() {
+ return getTasks().toBundles();
+ }
+
+ private void prepareStop() {
+ VvmLog.i(
+ TAG,
+ "no more tasks, stopping service if no task are added in "
+ + STOP_DELAY_MILLISECONDS
+ + " millis");
+ mainThreadHandler.postDelayed(stopServiceWithDelay, STOP_DELAY_MILLISECONDS);
+ }
+
+ @NeededForTesting
+ static class MessageSender {
+
+ public void send(Message message) {
+ message.sendToTarget();
+ }
+ }
+
+ @NeededForTesting
+ void setTaskAutoRunDisabledForTest(boolean value) {
+ taskAutoRunDisabledForTesting = value;
+ }
+
+ @NeededForTesting
+ void setMessageSenderForTest(MessageSender sender) {
+ messageSender = sender;
+ }
+
+ /**
+ * The {@link TaskSchedulerJobService} has started and all queued task should be executed in the
+ * worker thread.
+ */
+ @MainThread
+ public void onStartJob(Job job, List<Bundle> pendingTasks) {
+ VvmLog.i(TAG, "onStartJob");
+ this.job = job;
+ tasks.fromBundles(context, pendingTasks);
+ maybeRunNextTask();
+ }
+
+ /**
+ * The {@link TaskSchedulerJobService} is being terminated by the system (timeout or network
+ * lost). A new job will be queued to resume all pending tasks. The current unfinished job may be
+ * ran again.
+ */
+ @MainThread
+ public void onStopJob() {
+ VvmLog.e(TAG, "onStopJob");
+ if (isJobRunning() && !isTerminating()) {
+ scheduleJobAndTerminate(0, true);
+ }
+ }
+
+ /**
+ * Send all pending tasks and schedule a new {@link TaskSchedulerJobService}. The current executor
+ * will start the termination process, but restarted when the scheduled job runs in the future.
+ *
+ * @param delayMillis the delay before stating the job, see {@link
+ * android.app.job.JobInfo.Builder#setMinimumLatency(long)}. This must be 0 if {@code
+ * isNewJob} is true.
+ * @param isNewJob a new job will be requested to run immediately, bypassing all requirements.
+ */
+ @MainThread
+ @VisibleForTesting
+ void scheduleJobAndTerminate(long delayMillis, boolean isNewJob) {
+ Assert.isMainThread();
+ finishJobAsync();
+ mainThreadHandler.post(new JobFinishedPoller(delayMillis, isNewJob));
+ }
+
+ /**
+ * Whether the TaskExecutor is still terminating. {@link TaskReceiver} should defer all new task
+ * until {@link #getRunningInstance()} returns {@code null} so a new job can be started. {@link
+ * #scheduleJobAndTerminate(long, boolean)} does not run immediately because the job can only be
+ * scheduled after the main thread has returned. The TaskExecutor will be in a intermediate state
+ * between scheduleJobAndTerminate() and terminate(). In this state, {@link #getRunningInstance()}
+ * returns non-null because it has not been fully stopped yet, but the TaskExecutor cannot do
+ * anything. A new job should not be scheduled either because the current job might still be
+ * running.
+ */
+ @MainThread
+ public boolean isTerminating() {
+ return isTerminating;
+ }
+
+ /**
+ * Signals {@link TaskSchedulerJobService} the current session of tasks has finished, and the wake
+ * lock can be released. Note: this only takes effect after the main thread has been returned. If
+ * a new job need to be scheduled, it should be posted on the main thread handler instead of
+ * calling directly.
+ */
+ @MainThread
+ private void finishJobAsync() {
+ Assert.isTrue(!isTerminating());
+ Assert.isMainThread();
+ VvmLog.i(TAG, "finishing Job");
+ job.finishAsync();
+ isTerminating = true;
+ mainThreadHandler.removeCallbacks(stopServiceWithDelay);
+ }
+
+ private boolean isJobRunning() {
+ return job != null;
+ }
+}
diff --git a/java/com/android/voicemail/impl/scheduling/TaskReceiver.java b/java/com/android/voicemail/impl/scheduling/TaskReceiver.java
new file mode 100644
index 000000000..e78dcf72c
--- /dev/null
+++ b/java/com/android/voicemail/impl/scheduling/TaskReceiver.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.voicemail.impl.scheduling;
+
+import android.annotation.TargetApi;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build.VERSION_CODES;
+import android.os.Bundle;
+import com.android.voicemail.impl.VvmLog;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * BroadcastReceiver to queue and run {@link Task} with the {@link android.app.job.JobScheduler}. A
+ * task is queued using a explicit broadcast to this receiver. The intent should contain enough
+ * information in {@link Intent#getExtras()} to construct the task (see {@link
+ * Tasks#createIntent(Context, Class)}). The task will be queued directly in {@link TaskExecutor} if
+ * it is already running, or in {@link TaskSchedulerJobService} if not.
+ */
+@TargetApi(VERSION_CODES.O)
+public class TaskReceiver extends BroadcastReceiver {
+
+ private static final String TAG = "VvmTaskReceiver";
+
+ private static final List<Intent> deferredBroadcasts = new ArrayList<>();
+
+ /**
+ * When {@link TaskExecutor#isTerminating()} is {@code true}, newly added tasks will be deferred
+ * to allow the TaskExecutor to terminate properly. After termination is completed this should be
+ * called to add the tasks again.
+ */
+ public static void resendDeferredBroadcasts(Context context) {
+ for (Intent intent : deferredBroadcasts) {
+ context.sendBroadcast(intent);
+ }
+ deferredBroadcasts.clear();
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent == null) {
+ VvmLog.w(TAG, "null intent received");
+ return;
+ }
+ VvmLog.i(TAG, "task received");
+ TaskExecutor taskExecutor = TaskExecutor.getRunningInstance();
+ if (taskExecutor != null) {
+ VvmLog.i(TAG, "TaskExecutor already running");
+ if (taskExecutor.isTerminating()) {
+ // The current taskExecutor and cannot do anything and a new job cannot be scheduled. Defer
+ // the task until a new job can be scheduled.
+ VvmLog.w(TAG, "TaskExecutor is terminating, bouncing task");
+ deferredBroadcasts.add(intent);
+ return;
+ }
+ Task task = Tasks.createTask(context.getApplicationContext(), intent.getExtras());
+ taskExecutor.addTask(task);
+ } else {
+ VvmLog.i(TAG, "scheduling new job");
+ List<Bundle> taskList = new ArrayList<>();
+ taskList.add(intent.getExtras());
+ TaskSchedulerJobService.scheduleJob(context.getApplicationContext(), taskList, 0, true);
+ }
+ }
+}
diff --git a/java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java b/java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java
index eab410eb0..107234edc 100644
--- a/java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java
+++ b/java/com/android/voicemail/impl/scheduling/TaskSchedulerJobService.java
@@ -23,12 +23,11 @@ import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.content.ComponentName;
import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
+import android.content.SharedPreferences;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
-import android.os.IBinder;
import android.os.Parcelable;
+import android.preference.PreferenceManager;
import android.support.annotation.MainThread;
import com.android.dialer.constants.ScheduledJobIds;
import com.android.voicemail.impl.Assert;
@@ -36,59 +35,59 @@ import com.android.voicemail.impl.VvmLog;
import java.util.ArrayList;
import java.util.List;
-/**
- * A {@link JobService} that will trigger the background execution of {@link TaskSchedulerService}.
- */
+/** A {@link JobService} that will trigger the background execution of {@link TaskExecutor}. */
@TargetApi(VERSION_CODES.O)
-public class TaskSchedulerJobService extends JobService implements TaskSchedulerService.Job {
+public class TaskSchedulerJobService extends JobService implements TaskExecutor.Job {
private static final String TAG = "TaskSchedulerJobService";
private static final String EXTRA_TASK_EXTRAS_ARRAY = "extra_task_extras_array";
- private JobParameters jobParameters;
- private TaskSchedulerService scheduler;
-
- private final ServiceConnection mConnection =
- new ServiceConnection() {
-
- @Override
- public void onServiceConnected(ComponentName className, IBinder binder) {
- VvmLog.i(TAG, "TaskSchedulerService connected");
- scheduler = ((TaskSchedulerService.LocalBinder) binder).getService();
- scheduler.onStartJob(
- TaskSchedulerJobService.this,
- getBundleList(
- jobParameters.getTransientExtras().getParcelableArray(EXTRA_TASK_EXTRAS_ARRAY)));
- }
+ private static final String EXTRA_JOB_ID = "extra_job_id";
- @Override
- public void onServiceDisconnected(ComponentName unused) {
- // local service, process should always be killed together.
- Assert.fail();
- }
- };
+ private static final String EXPECTED_JOB_ID =
+ "com.android.voicemail.impl.scheduling.TaskSchedulerJobService.EXPECTED_JOB_ID";
+
+ private static final String NEXT_JOB_ID =
+ "com.android.voicemail.impl.scheduling.TaskSchedulerJobService.NEXT_JOB_ID";
+
+ private JobParameters jobParameters;
@Override
@MainThread
public boolean onStartJob(JobParameters params) {
+ int jobId = params.getTransientExtras().getInt(EXTRA_JOB_ID);
+ int expectedJobId =
+ PreferenceManager.getDefaultSharedPreferences(this).getInt(EXPECTED_JOB_ID, 0);
+ if (jobId != expectedJobId) {
+ VvmLog.e(
+ TAG, "Job " + jobId + " is not the last scheduled job " + expectedJobId + ", ignoring");
+ return false; // nothing more to do. Job not running in background.
+ }
+ VvmLog.i(TAG, "starting " + jobId);
jobParameters = params;
- bindService(
- new Intent(this, TaskSchedulerService.class), mConnection, Context.BIND_AUTO_CREATE);
+ TaskExecutor.createRunningInstance(this);
+ TaskExecutor.getRunningInstance()
+ .onStartJob(
+ this,
+ getBundleList(
+ jobParameters.getTransientExtras().getParcelableArray(EXTRA_TASK_EXTRAS_ARRAY)));
return true /* job still running in background */;
}
@Override
@MainThread
public boolean onStopJob(JobParameters params) {
- scheduler.onStopJob();
+ TaskExecutor.getRunningInstance().onStopJob();
jobParameters = null;
- return false /* don't reschedule. TaskScheduler service will post a new job */;
+ return false /* don't reschedule. TaskExecutor service will post a new job */;
}
/**
* Schedule a job to run the {@code pendingTasks}. If a job is already scheduled it will be
- * appended to the back of the queue and the job will be rescheduled.
+ * appended to the back of the queue and the job will be rescheduled. A job may only be scheduled
+ * when the {@link TaskExecutor} is not running ({@link TaskExecutor#getRunningInstance()}
+ * returning {@code null})
*
* @param delayMillis delay before running the job. Must be 0 if{@code isNewJob} is true.
* @param isNewJob a new job will be forced to run immediately.
@@ -117,6 +116,13 @@ public class TaskSchedulerJobService extends JobService implements TaskScheduler
jobScheduler.cancel(ScheduledJobIds.VVM_TASK_SCHEDULER_JOB);
}
Bundle extras = new Bundle();
+ int jobId = createJobId(context);
+ extras.putInt(EXTRA_JOB_ID, jobId);
+ PreferenceManager.getDefaultSharedPreferences(context)
+ .edit()
+ .putInt(EXPECTED_JOB_ID, jobId)
+ .apply();
+
extras.putParcelableArray(
EXTRA_TASK_EXTRAS_ARRAY, pendingTasks.toArray(new Bundle[pendingTasks.size()]));
JobInfo.Builder builder =
@@ -132,7 +138,7 @@ public class TaskSchedulerJobService extends JobService implements TaskScheduler
VvmLog.i(TAG, "running job instantly.");
}
jobScheduler.schedule(builder.build());
- VvmLog.i(TAG, "job scheduled");
+ VvmLog.i(TAG, "job " + jobId + " scheduled");
}
/**
@@ -141,11 +147,19 @@ public class TaskSchedulerJobService extends JobService implements TaskScheduler
* the wakelock
*/
@Override
- public void finish() {
- VvmLog.i(TAG, "finishing job and unbinding TaskSchedulerService");
+ public void finishAsync() {
+ VvmLog.i(TAG, "finishing job");
jobFinished(jobParameters, false);
jobParameters = null;
- unbindService(mConnection);
+ }
+
+ @MainThread
+ @Override
+ public boolean isFinished() {
+ Assert.isMainThread();
+ return getSystemService(JobScheduler.class)
+ .getPendingJob(ScheduledJobIds.VVM_TASK_SCHEDULER_JOB)
+ == null;
}
private static List<Bundle> getBundleList(Parcelable[] parcelables) {
@@ -155,4 +169,11 @@ public class TaskSchedulerJobService extends JobService implements TaskScheduler
}
return result;
}
+
+ private static int createJobId(Context context) {
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+ int jobId = sharedPreferences.getInt(NEXT_JOB_ID, 0);
+ sharedPreferences.edit().putInt(NEXT_JOB_ID, jobId + 1).apply();
+ return jobId;
+ }
}
diff --git a/java/com/android/voicemail/impl/scheduling/Tasks.java b/java/com/android/voicemail/impl/scheduling/Tasks.java
index 34debaf29..76da3d7f6 100644
--- a/java/com/android/voicemail/impl/scheduling/Tasks.java
+++ b/java/com/android/voicemail/impl/scheduling/Tasks.java
@@ -19,6 +19,7 @@ package com.android.voicemail.impl.scheduling;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.support.annotation.NonNull;
import com.android.voicemail.impl.VvmLog;
/** Common operations on {@link Task} */
@@ -32,6 +33,7 @@ final class Tasks {
* Create a task from a bundle. The bundle is created either with {@link #toBundle(Task)} or
* {@link #createIntent(Context, Class)} from the target {@link Task}
*/
+ @NonNull
public static Task createTask(Context context, Bundle extras) {
// The extra contains custom parcelables which cannot be unmarshalled by the framework class
// loader.
@@ -66,7 +68,8 @@ final class Tasks {
* necessary information.
*/
public static Intent createIntent(Context context, Class<? extends Task> task) {
- Intent intent = new Intent(context, TaskSchedulerService.class);
+ Intent intent = new Intent(context, TaskReceiver.class);
+ intent.setPackage(context.getPackageName());
intent.putExtra(EXTRA_CLASS_NAME, task.getName());
return intent;
}
diff --git a/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java b/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java
index 423fd11b4..ac5f3cac9 100644
--- a/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java
+++ b/java/com/android/voicemail/impl/settings/VoicemailSettingsFragment.java
@@ -17,7 +17,6 @@ import android.annotation.TargetApi;
import android.content.Intent;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
-import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceFragment;
@@ -29,6 +28,8 @@ import android.telephony.TelephonyManager;
import com.android.dialer.common.Assert;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
+import com.android.dialer.notification.NotificationChannelManager;
+import com.android.dialer.notification.NotificationChannelManager.Channel;
import com.android.voicemail.VoicemailClient;
import com.android.voicemail.VoicemailComponent;
import com.android.voicemail.impl.OmtpVvmCarrierConfigHelper;
@@ -43,7 +44,6 @@ import com.android.voicemail.impl.sync.VvmAccountManager;
@TargetApi(VERSION_CODES.O)
public class VoicemailSettingsFragment extends PreferenceFragment
implements Preference.OnPreferenceChangeListener,
- VoicemailRingtonePreference.VoicemailRingtoneNameChangeListener,
VvmAccountManager.Listener {
private static final String TAG = "VmSettingsActivity";
@@ -51,17 +51,12 @@ public class VoicemailSettingsFragment extends PreferenceFragment
@Nullable private PhoneAccountHandle phoneAccountHandle;
private OmtpVvmCarrierConfigHelper omtpVvmCarrierConfigHelper;
- private VoicemailRingtonePreference voicemailRingtonePreference;
- private CheckBoxPreference voicemailVibration;
+ private Preference voicemailNotificationPreference;
private SwitchPreference voicemailVisualVoicemail;
private SwitchPreference autoArchiveSwitchPreference;
private Preference voicemailChangePinPreference;
private PreferenceScreen advancedSettings;
- // The ringtone name is retrieved with an async call. Cache the old name so there will be no jank
- // during transition.
- private CharSequence oldRingtoneName = "";
-
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -86,12 +81,12 @@ public class VoicemailSettingsFragment extends PreferenceFragment
PreferenceScreen prefSet = getPreferenceScreen();
- voicemailRingtonePreference =
- (VoicemailRingtonePreference)
- findPreference(getString(R.string.voicemail_notification_ringtone_key));
- voicemailRingtonePreference.setVoicemailRingtoneNameChangeListener(this);
- voicemailRingtonePreference.init(phoneAccountHandle, oldRingtoneName);
- voicemailRingtonePreference.setOnPreferenceClickListener(
+ voicemailNotificationPreference =
+ findPreference(getString(R.string.voicemail_notifications_key));
+ voicemailNotificationPreference.setIntent(
+ NotificationChannelManager.getInstance()
+ .getSettingsIntentForChannel(getContext(), Channel.VOICEMAIL, phoneAccountHandle));
+ voicemailNotificationPreference.setOnPreferenceClickListener(
new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
@@ -102,24 +97,6 @@ public class VoicemailSettingsFragment extends PreferenceFragment
}
});
- voicemailVibration =
- (CheckBoxPreference) findPreference(getString(R.string.voicemail_notification_vibrate_key));
- voicemailVibration.setOnPreferenceChangeListener(this);
- voicemailVibration.setChecked(
- getContext()
- .getSystemService(TelephonyManager.class)
- .isVoicemailVibrationEnabled(phoneAccountHandle));
- voicemailVibration.setOnPreferenceClickListener(
- new OnPreferenceClickListener() {
- @Override
- public boolean onPreferenceClick(Preference preference) {
- Logger.get(getContext())
- .logImpression(DialerImpression.Type.VVM_CHANGE_VIBRATION_CLICKED);
- // Let the preference handle the click.
- return false;
- }
- });
-
voicemailVisualVoicemail =
(SwitchPreference) findPreference(getString(R.string.voicemail_visual_voicemail_key));
@@ -219,10 +196,6 @@ public class VoicemailSettingsFragment extends PreferenceFragment
logArchiveToggle((boolean) objValue);
VisualVoicemailSettingsUtil.setArchiveEnabled(
getContext(), phoneAccountHandle, (boolean) objValue);
- } else if (preference.getKey().equals(voicemailVibration.getKey())) {
- getContext()
- .getSystemService(TelephonyManager.class)
- .setVoicemailVibrationEnabled(phoneAccountHandle, (boolean) objValue);
}
// Always let the preference setting proceed.
@@ -255,11 +228,6 @@ public class VoicemailSettingsFragment extends PreferenceFragment
}
@Override
- public void onVoicemailRingtoneNameChanged(CharSequence name) {
- oldRingtoneName = name;
- }
-
- @Override
public void onActivationStateChanged(PhoneAccountHandle phoneAccountHandle, boolean isActivated) {
if (this.phoneAccountHandle.equals(phoneAccountHandle)) {
updateChangePin();
diff --git a/java/com/android/voicemail/impl/sms/OmtpMessageReceiver.java b/java/com/android/voicemail/impl/sms/OmtpMessageReceiver.java
index 43e2b85bd..ef0bf10e9 100644
--- a/java/com/android/voicemail/impl/sms/OmtpMessageReceiver.java
+++ b/java/com/android/voicemail/impl/sms/OmtpMessageReceiver.java
@@ -28,7 +28,7 @@ import android.telecom.PhoneAccountHandle;
import android.telephony.VisualVoicemailSms;
import com.android.voicemail.impl.ActivationTask;
import com.android.voicemail.impl.OmtpConstants;
-import com.android.voicemail.impl.OmtpReceiver;
+import com.android.voicemail.impl.OmtpService;
import com.android.voicemail.impl.OmtpVvmCarrierConfigHelper;
import com.android.voicemail.impl.Voicemail;
import com.android.voicemail.impl.Voicemail.Builder;
@@ -52,7 +52,7 @@ public class OmtpMessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
mContext = context;
- VisualVoicemailSms sms = intent.getExtras().getParcelable(OmtpReceiver.EXTRA_VOICEMAIL_SMS);
+ VisualVoicemailSms sms = intent.getExtras().getParcelable(OmtpService.EXTRA_VOICEMAIL_SMS);
PhoneAccountHandle phone = sms.getPhoneAccountHandle();
if (phone == null) {
diff --git a/java/com/android/voicemail/impl/sms/OmtpMessageSender.java b/java/com/android/voicemail/impl/sms/OmtpMessageSender.java
index 6c9333fb3..e9d145cde 100644
--- a/java/com/android/voicemail/impl/sms/OmtpMessageSender.java
+++ b/java/com/android/voicemail/impl/sms/OmtpMessageSender.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015 Google Inc. All Rights Reserved.
+ * 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.
@@ -20,8 +20,8 @@ import android.content.Context;
import android.support.annotation.Nullable;
import android.telecom.PhoneAccountHandle;
import android.telephony.SmsManager;
-import android.telephony.VisualVoicemailService;
import com.android.voicemail.impl.OmtpConstants;
+import com.android.voicemail.impl.TelephonyMangerCompat;
/**
* Send client originated OMTP messages to the OMTP server.
@@ -75,7 +75,7 @@ public abstract class OmtpMessageSender {
public void requestVvmStatus(@Nullable PendingIntent sentIntent) {}
protected void sendSms(String text, PendingIntent sentIntent) {
- VisualVoicemailService.sendVisualVoicemailSms(
+ TelephonyMangerCompat.sendVisualVoicemailSms(
mContext, mPhoneAccountHandle, mDestinationNumber, mApplicationPort, text, sentIntent);
}
diff --git a/java/com/android/voicemail/impl/sms/StatusSmsFetcher.java b/java/com/android/voicemail/impl/sms/StatusSmsFetcher.java
index dd9204d3e..d178628c6 100644
--- a/java/com/android/voicemail/impl/sms/StatusSmsFetcher.java
+++ b/java/com/android/voicemail/impl/sms/StatusSmsFetcher.java
@@ -33,7 +33,7 @@ import android.telephony.SmsManager;
import android.telephony.VisualVoicemailSms;
import com.android.voicemail.impl.Assert;
import com.android.voicemail.impl.OmtpConstants;
-import com.android.voicemail.impl.OmtpReceiver;
+import com.android.voicemail.impl.OmtpService;
import com.android.voicemail.impl.OmtpVvmCarrierConfigHelper;
import com.android.voicemail.impl.VvmLog;
import com.android.voicemail.impl.protocol.VisualVoicemailProtocol;
@@ -67,7 +67,7 @@ public class StatusSmsFetcher extends BroadcastReceiver implements Closeable {
mContext = context;
mPhoneAccountHandle = phoneAccountHandle;
IntentFilter filter = new IntentFilter(ACTION_REQUEST_SENT_INTENT);
- filter.addAction(OmtpReceiver.ACTION_SMS_RECEIVED);
+ filter.addAction(OmtpService.ACTION_SMS_RECEIVED);
context.registerReceiver(this, filter);
}
@@ -110,7 +110,7 @@ public class StatusSmsFetcher extends BroadcastReceiver implements Closeable {
return;
}
- VisualVoicemailSms sms = intent.getExtras().getParcelable(OmtpReceiver.EXTRA_VOICEMAIL_SMS);
+ VisualVoicemailSms sms = intent.getExtras().getParcelable(OmtpService.EXTRA_VOICEMAIL_SMS);
if (!mPhoneAccountHandle.equals(sms.getPhoneAccountHandle())) {
return;
diff --git a/java/com/android/voicemail/impl/sync/OmtpVvmSyncService.java b/java/com/android/voicemail/impl/sync/OmtpVvmSyncService.java
index af934dd3c..3443737cd 100644
--- a/java/com/android/voicemail/impl/sync/OmtpVvmSyncService.java
+++ b/java/com/android/voicemail/impl/sync/OmtpVvmSyncService.java
@@ -36,6 +36,7 @@ import com.android.voicemail.impl.VvmLog;
import com.android.voicemail.impl.fetch.VoicemailFetchedCallback;
import com.android.voicemail.impl.imap.ImapHelper;
import com.android.voicemail.impl.imap.ImapHelper.InitializingException;
+import com.android.voicemail.impl.mail.store.ImapFolder.Quota;
import com.android.voicemail.impl.scheduling.BaseTask;
import com.android.voicemail.impl.settings.VisualVoicemailSettingsUtil;
import com.android.voicemail.impl.sync.VvmNetworkRequest.NetworkWrapper;
@@ -152,21 +153,28 @@ public class OmtpVvmSyncService {
*/
private void autoDeleteAndArchiveVM(
ImapHelper imapHelper, PhoneAccountHandle phoneAccountHandle) {
-
- if (isArchiveAllowedAndEnabled(mContext, phoneAccountHandle)) {
- if ((float) imapHelper.getOccuupiedQuota() / (float) imapHelper.getTotalQuota()
- > AUTO_DELETE_ARCHIVE_VM_THRESHOLD) {
- deleteAndArchiveVM(imapHelper);
- imapHelper.updateQuota();
- LoggerUtils.logImpressionOnMainThread(
- mContext, DialerImpression.Type.VVM_ARCHIVE_AUTO_DELETED_VM_FROM_SERVER);
- } else {
- VvmLog.i(TAG, "no need to archive and auto delete VM, quota below threshold");
- }
- } else {
+ if (!isArchiveAllowedAndEnabled(mContext, phoneAccountHandle)) {
VvmLog.i(TAG, "autoDeleteAndArchiveVM is turned off");
LoggerUtils.logImpressionOnMainThread(
mContext, DialerImpression.Type.VVM_ARCHIVE_AUTO_DELETE_TURNED_OFF);
+ return;
+ }
+ Quota quotaOnServer = imapHelper.getQuota();
+ if (quotaOnServer == null) {
+ LoggerUtils.logImpressionOnMainThread(
+ mContext, DialerImpression.Type.VVM_ARCHIVE_AUTO_DELETE_FAILED_DUE_TO_FAILED_QUOTA_CHECK);
+ VvmLog.e(TAG, "autoDeleteAndArchiveVM failed - Can't retrieve Imap quota.");
+ return;
+ }
+
+ if ((float) quotaOnServer.occupied / (float) quotaOnServer.total
+ > AUTO_DELETE_ARCHIVE_VM_THRESHOLD) {
+ deleteAndArchiveVM(imapHelper, quotaOnServer);
+ imapHelper.updateQuota();
+ LoggerUtils.logImpressionOnMainThread(
+ mContext, DialerImpression.Type.VVM_ARCHIVE_AUTO_DELETED_VM_FROM_SERVER);
+ } else {
+ VvmLog.i(TAG, "no need to archive and auto delete VM, quota below threshold");
}
}
@@ -190,14 +198,15 @@ public class OmtpVvmSyncService {
return true;
}
- private void deleteAndArchiveVM(ImapHelper imapHelper) {
+ private void deleteAndArchiveVM(ImapHelper imapHelper, Quota quotaOnServer) {
// Archive column should only be used for 0 and above
Assert.isTrue(BuildCompat.isAtLeastO());
+
// The number of voicemails that exceed our threshold and should be deleted from the server
int numVoicemails =
- imapHelper.getOccuupiedQuota()
- - (int) (AUTO_DELETE_ARCHIVE_VM_THRESHOLD * imapHelper.getTotalQuota());
+ quotaOnServer.occupied - (int) (AUTO_DELETE_ARCHIVE_VM_THRESHOLD * quotaOnServer.total);
List<Voicemail> oldestVoicemails = mQueryHelper.oldestVoicemailsOnServer(numVoicemails);
+ VvmLog.w(TAG, "number of voicemails to delete " + numVoicemails);
if (!oldestVoicemails.isEmpty()) {
mQueryHelper.markArchivedInDatabase(oldestVoicemails);
imapHelper.markMessagesAsDeleted(oldestVoicemails);
diff --git a/java/com/android/voicemail/impl/sync/SyncOneTask.java b/java/com/android/voicemail/impl/sync/SyncOneTask.java
index 19419ec8a..cd2782abb 100644
--- a/java/com/android/voicemail/impl/sync/SyncOneTask.java
+++ b/java/com/android/voicemail/impl/sync/SyncOneTask.java
@@ -51,7 +51,7 @@ public class SyncOneTask extends BaseTask {
intent.putExtra(EXTRA_PHONE_ACCOUNT_HANDLE, phone);
intent.putExtra(EXTRA_SYNC_TYPE, OmtpVvmSyncService.SYNC_DOWNLOAD_ONE_TRANSCRIPTION);
intent.putExtra(EXTRA_VOICEMAIL, voicemail);
- context.startService(intent);
+ context.sendBroadcast(intent);
}
public SyncOneTask() {
diff --git a/java/com/android/voicemail/impl/sync/SyncTask.java b/java/com/android/voicemail/impl/sync/SyncTask.java
index 27f803401..0b3e090bf 100644
--- a/java/com/android/voicemail/impl/sync/SyncTask.java
+++ b/java/com/android/voicemail/impl/sync/SyncTask.java
@@ -48,7 +48,7 @@ public class SyncTask extends BaseTask {
Intent intent = BaseTask.createIntent(context, SyncTask.class, phone);
intent.putExtra(EXTRA_PHONE_ACCOUNT_HANDLE, phone);
intent.putExtra(EXTRA_SYNC_TYPE, syncType);
- context.startService(intent);
+ context.sendBroadcast(intent);
}
public SyncTask() {
diff --git a/java/com/android/voicemail/impl/sync/UploadTask.java b/java/com/android/voicemail/impl/sync/UploadTask.java
index 403074572..f2b2036b5 100644
--- a/java/com/android/voicemail/impl/sync/UploadTask.java
+++ b/java/com/android/voicemail/impl/sync/UploadTask.java
@@ -44,7 +44,7 @@ public class UploadTask extends BaseTask {
public static void start(Context context, PhoneAccountHandle phoneAccountHandle) {
Intent intent = BaseTask.createIntent(context, UploadTask.class, phoneAccountHandle);
- context.startService(intent);
+ context.sendBroadcast(intent);
}
@Override
diff --git a/java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java b/java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java
index bfc2e5f20..9b295dbb7 100644
--- a/java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java
+++ b/java/com/android/voicemail/impl/sync/VoicemailsQueryHelper.java
@@ -27,7 +27,6 @@ import android.provider.VoicemailContract;
import android.provider.VoicemailContract.Voicemails;
import android.support.annotation.NonNull;
import android.telecom.PhoneAccountHandle;
-import android.text.TextUtils;
import com.android.dialer.common.Assert;
import com.android.voicemail.impl.Voicemail;
import java.util.ArrayList;
@@ -54,12 +53,6 @@ public class VoicemailsQueryHelper {
Voicemails.DIRTY + "=1 AND " + Voicemails.DELETED + "!=1 AND " + Voicemails.IS_READ + "=1";
static final String DELETED_SELECTION = Voicemails.DELETED + "=1";
static final String ARCHIVED_SELECTION = Voicemails.ARCHIVED + "=0";
- private static final String PHONE_ACCOUNT_HANDLE_SELECTION =
- "("
- + Voicemails.PHONE_ACCOUNT_COMPONENT_NAME
- + "=? AND "
- + Voicemails.PHONE_ACCOUNT_ID
- + "=?)";
private Context mContext;
private ContentResolver mContentResolver;
@@ -101,23 +94,14 @@ public class VoicemailsQueryHelper {
/**
* Utility method to make queries to the voicemail database.
*
+ * <p>TODO(b/36588206) add PhoneAccountHandle filtering back
+ *
* @param selection A filter declaring which rows to return. {@code null} returns all rows.
* @return A list of voicemails according to the selection statement.
*/
private List<Voicemail> getLocalVoicemails(
- @NonNull PhoneAccountHandle phoneAccountHandle, String selection) {
-
- String[] selectionArgs =
- new String[] {
- phoneAccountHandle.getComponentName().flattenToString(), phoneAccountHandle.getId()
- };
- if (TextUtils.isEmpty(selection)) {
- selection = PHONE_ACCOUNT_HANDLE_SELECTION;
- } else {
- selection = PHONE_ACCOUNT_HANDLE_SELECTION + " AND (" + selection + ")";
- }
-
- Cursor cursor = mContentResolver.query(mSourceUri, PROJECTION, selection, selectionArgs, null);
+ @NonNull PhoneAccountHandle unusedPhoneAccountHandle, String selection) {
+ Cursor cursor = mContentResolver.query(mSourceUri, PROJECTION, selection, null, null);
if (cursor == null) {
return null;
}
diff --git a/java/com/android/voicemail/permissions.xml b/java/com/android/voicemail/permissions.xml
index adb4b6f54..bedf06898 100644
--- a/java/com/android/voicemail/permissions.xml
+++ b/java/com/android/voicemail/permissions.xml
@@ -3,7 +3,7 @@
<uses-sdk
android:minSdkVersion="23"
- android:targetSdkVersion="25"/>
+ android:targetSdkVersion="26"/>
<!-- Applications using this module should merge these permissions using android_manifest_merge -->