From c857f90590e7d7fcffa89511982eb33afd34805f Mon Sep 17 00:00:00 2001 From: Eric Erfanian Date: Mon, 15 May 2017 14:05:33 -0700 Subject: Update Dialer to v10 RC32 This release was created following the instructions at: go/dialer-aosp-release Subsequent dialer releases will follow as O bugs are fixed, until we reach our final RC. Version: 10 Candidate: RC32 Branch: dialer-android_release_branch/153304843.1 dialer-android_20170416.00/dialer-android_20170416.00_RC32 This release contains the following bug fixes since RC17: Bug: 33176679 33272455 3646510 36773894 37297649 37413780 37513689 37640315 37680595 37698062 37873639 37901752 37919295 37953423 38062852 38069600 38137349 38173549 38180252 38191514 Test: make, on device Change-Id: I4e4bb630082758e418ff24892b7db3142c6eb09a --- Android.mk | 7 + .../contacts/common/ContactPhotoManager.java | 2 +- .../common/compat/TelephonyManagerCompat.java | 3 + .../common/dialog/ClearFrequentsDialog.java | 2 +- .../contacts/common/list/DirectoryListLoader.java | 19 +- .../contacts/common/model/ContactLoader.java | 9 +- .../android/dialer/about/AboutPhoneFragment.java | 64 + java/com/android/dialer/about/AndroidManifest.xml | 17 + java/com/android/dialer/about/License.java | 99 + java/com/android/dialer/about/LicenseActivity.java | 87 + java/com/android/dialer/about/LicenseLoader.java | 57 + .../android/dialer/about/LicenseMenuActivity.java | 101 + java/com/android/dialer/about/Licenses.java | 106 + .../dialer/about/res/layout/dummy_placeholder.xml | 21 + .../android/dialer/about/res/layout/license.xml | 40 + .../about/res/layout/license_menu_activity.xml | 35 + .../dialer/about/res/layout/license_scrollview.xml | 34 + java/com/android/dialer/about/res/raw/keep.xml | 19 + .../about/res/raw/third_party_license_metadata | 34 + .../dialer/about/res/raw/third_party_licenses | 6414 ++++++++++++++++++++ .../android/dialer/about/res/values-af/strings.xml | 14 + .../android/dialer/about/res/values-am/strings.xml | 14 + .../android/dialer/about/res/values-ar/strings.xml | 14 + .../android/dialer/about/res/values-az/strings.xml | 14 + .../dialer/about/res/values-b+sr+Latn/strings.xml | 14 + .../android/dialer/about/res/values-be/strings.xml | 14 + .../android/dialer/about/res/values-bg/strings.xml | 14 + .../android/dialer/about/res/values-bn/strings.xml | 14 + .../android/dialer/about/res/values-bs/strings.xml | 14 + .../android/dialer/about/res/values-ca/strings.xml | 14 + .../android/dialer/about/res/values-cs/strings.xml | 14 + .../android/dialer/about/res/values-da/strings.xml | 14 + .../android/dialer/about/res/values-de/strings.xml | 14 + .../android/dialer/about/res/values-el/strings.xml | 14 + .../dialer/about/res/values-en-rAU/strings.xml | 14 + .../dialer/about/res/values-en-rGB/strings.xml | 14 + .../dialer/about/res/values-en-rIN/strings.xml | 14 + .../dialer/about/res/values-es-rUS/strings.xml | 14 + .../android/dialer/about/res/values-es/strings.xml | 14 + .../android/dialer/about/res/values-et/strings.xml | 14 + .../android/dialer/about/res/values-eu/strings.xml | 14 + .../android/dialer/about/res/values-fa/strings.xml | 14 + .../android/dialer/about/res/values-fi/strings.xml | 14 + .../dialer/about/res/values-fr-rCA/strings.xml | 14 + .../android/dialer/about/res/values-fr/strings.xml | 14 + .../android/dialer/about/res/values-gl/strings.xml | 14 + .../android/dialer/about/res/values-gu/strings.xml | 14 + .../android/dialer/about/res/values-hi/strings.xml | 14 + .../android/dialer/about/res/values-hr/strings.xml | 14 + .../android/dialer/about/res/values-hu/strings.xml | 14 + .../android/dialer/about/res/values-hy/strings.xml | 14 + .../android/dialer/about/res/values-in/strings.xml | 14 + .../android/dialer/about/res/values-is/strings.xml | 14 + .../android/dialer/about/res/values-it/strings.xml | 14 + .../android/dialer/about/res/values-iw/strings.xml | 14 + .../android/dialer/about/res/values-ja/strings.xml | 14 + .../android/dialer/about/res/values-ka/strings.xml | 14 + .../android/dialer/about/res/values-kk/strings.xml | 14 + .../android/dialer/about/res/values-km/strings.xml | 14 + .../android/dialer/about/res/values-kn/strings.xml | 14 + .../android/dialer/about/res/values-ko/strings.xml | 14 + .../android/dialer/about/res/values-ky/strings.xml | 14 + .../android/dialer/about/res/values-lo/strings.xml | 14 + .../android/dialer/about/res/values-lt/strings.xml | 14 + .../android/dialer/about/res/values-lv/strings.xml | 14 + .../android/dialer/about/res/values-mk/strings.xml | 14 + .../android/dialer/about/res/values-ml/strings.xml | 14 + .../android/dialer/about/res/values-mn/strings.xml | 14 + .../android/dialer/about/res/values-mr/strings.xml | 14 + .../android/dialer/about/res/values-ms/strings.xml | 14 + .../android/dialer/about/res/values-my/strings.xml | 14 + .../android/dialer/about/res/values-nb/strings.xml | 14 + .../android/dialer/about/res/values-ne/strings.xml | 14 + .../android/dialer/about/res/values-nl/strings.xml | 14 + .../android/dialer/about/res/values-no/strings.xml | 14 + .../android/dialer/about/res/values-pa/strings.xml | 14 + .../android/dialer/about/res/values-pl/strings.xml | 14 + .../dialer/about/res/values-pt-rBR/strings.xml | 14 + .../dialer/about/res/values-pt-rPT/strings.xml | 14 + .../android/dialer/about/res/values-pt/strings.xml | 14 + .../android/dialer/about/res/values-ro/strings.xml | 14 + .../android/dialer/about/res/values-ru/strings.xml | 14 + .../android/dialer/about/res/values-si/strings.xml | 14 + .../android/dialer/about/res/values-sk/strings.xml | 14 + .../android/dialer/about/res/values-sl/strings.xml | 14 + .../android/dialer/about/res/values-sq/strings.xml | 14 + .../android/dialer/about/res/values-sr/strings.xml | 14 + .../android/dialer/about/res/values-sv/strings.xml | 14 + .../android/dialer/about/res/values-sw/strings.xml | 14 + .../android/dialer/about/res/values-ta/strings.xml | 14 + .../android/dialer/about/res/values-te/strings.xml | 14 + .../android/dialer/about/res/values-th/strings.xml | 14 + .../android/dialer/about/res/values-tl/strings.xml | 14 + .../android/dialer/about/res/values-tr/strings.xml | 14 + .../android/dialer/about/res/values-uk/strings.xml | 14 + .../android/dialer/about/res/values-ur/strings.xml | 14 + .../android/dialer/about/res/values-uz/strings.xml | 14 + .../android/dialer/about/res/values-vi/strings.xml | 14 + .../dialer/about/res/values-zh-rCN/strings.xml | 14 + .../dialer/about/res/values-zh-rHK/strings.xml | 14 + .../dialer/about/res/values-zh-rTW/strings.xml | 14 + .../android/dialer/about/res/values-zu/strings.xml | 14 + .../android/dialer/about/res/values/strings.xml | 39 + .../dialer/about/res/xml/about_phone_fragment.xml | 31 + java/com/android/dialer/app/DialtactsActivity.java | 3 +- .../android/dialer/app/calllog/CallLogAdapter.java | 7 +- .../dialer/app/calllog/CallLogFragment.java | 17 +- .../app/calllog/CallLogListItemViewHolder.java | 42 +- .../app/calllog/CallLogNotificationsActivity.java | 2 +- .../calllog/CallLogNotificationsQueryHelper.java | 5 - .../app/calllog/CallLogNotificationsService.java | 89 +- .../dialer/app/calllog/CallLogReceiver.java | 6 +- .../app/calllog/DefaultVoicemailNotifier.java | 61 +- .../calllog/MissedCallNotificationReceiver.java | 38 +- .../dialer/app/calllog/MissedCallNotifier.java | 23 +- .../calllog/VisualVoicemailCallLogFragment.java | 41 +- .../dialer/app/calllog/VoicemailQueryHandler.java | 15 - .../dialer/app/dialpad/DialpadFragment.java | 2 +- .../dialer/app/dialpad/SmartDialCursorLoader.java | 2 +- .../com/android/dialer/app/list/ListsFragment.java | 14 +- .../dialer/app/list/OldSpeedDialFragment.java | 4 +- .../android/dialer/app/list/SearchFragment.java | 2 +- .../android/dialer/app/res/values-af/strings.xml | 2 + .../android/dialer/app/res/values-am/strings.xml | 2 + .../android/dialer/app/res/values-ar/strings.xml | 2 + .../android/dialer/app/res/values-az/strings.xml | 2 + .../dialer/app/res/values-b+sr+Latn/strings.xml | 2 + .../android/dialer/app/res/values-be/strings.xml | 2 + .../android/dialer/app/res/values-bg/strings.xml | 2 + .../android/dialer/app/res/values-bn/strings.xml | 2 + .../android/dialer/app/res/values-bs/strings.xml | 2 + .../android/dialer/app/res/values-ca/strings.xml | 2 + .../android/dialer/app/res/values-cs/strings.xml | 2 + .../android/dialer/app/res/values-da/strings.xml | 2 + .../android/dialer/app/res/values-de/strings.xml | 2 + .../android/dialer/app/res/values-el/strings.xml | 2 + .../dialer/app/res/values-en-rAU/strings.xml | 2 + .../dialer/app/res/values-en-rGB/strings.xml | 2 + .../dialer/app/res/values-en-rIN/strings.xml | 2 + .../dialer/app/res/values-es-rUS/strings.xml | 2 + .../android/dialer/app/res/values-es/strings.xml | 2 + .../android/dialer/app/res/values-et/strings.xml | 2 + .../android/dialer/app/res/values-eu/strings.xml | 2 + .../android/dialer/app/res/values-fa/strings.xml | 2 + .../android/dialer/app/res/values-fi/strings.xml | 2 + .../dialer/app/res/values-fr-rCA/strings.xml | 2 + .../android/dialer/app/res/values-fr/strings.xml | 2 + .../android/dialer/app/res/values-gl/strings.xml | 2 + .../android/dialer/app/res/values-gu/strings.xml | 2 + .../android/dialer/app/res/values-hi/strings.xml | 2 + .../android/dialer/app/res/values-hr/strings.xml | 2 + .../android/dialer/app/res/values-hu/strings.xml | 2 + .../android/dialer/app/res/values-hy/strings.xml | 2 + .../android/dialer/app/res/values-in/strings.xml | 2 + .../android/dialer/app/res/values-is/strings.xml | 2 + .../android/dialer/app/res/values-it/strings.xml | 2 + .../android/dialer/app/res/values-iw/strings.xml | 2 + .../android/dialer/app/res/values-ja/strings.xml | 2 + .../android/dialer/app/res/values-ka/strings.xml | 2 + .../android/dialer/app/res/values-kk/strings.xml | 2 + .../android/dialer/app/res/values-km/strings.xml | 2 + .../android/dialer/app/res/values-kn/strings.xml | 2 + .../android/dialer/app/res/values-ko/strings.xml | 2 + .../android/dialer/app/res/values-ky/strings.xml | 2 + .../android/dialer/app/res/values-lo/strings.xml | 2 + .../android/dialer/app/res/values-lt/strings.xml | 2 + .../android/dialer/app/res/values-lv/strings.xml | 2 + .../android/dialer/app/res/values-mk/strings.xml | 2 + .../android/dialer/app/res/values-ml/strings.xml | 2 + .../android/dialer/app/res/values-mn/strings.xml | 2 + .../android/dialer/app/res/values-mr/strings.xml | 2 + .../android/dialer/app/res/values-ms/strings.xml | 2 + .../android/dialer/app/res/values-my/strings.xml | 2 + .../android/dialer/app/res/values-nb/strings.xml | 2 + .../android/dialer/app/res/values-ne/strings.xml | 2 + .../android/dialer/app/res/values-nl/strings.xml | 2 + .../android/dialer/app/res/values-no/strings.xml | 2 + .../android/dialer/app/res/values-pa/strings.xml | 2 + .../android/dialer/app/res/values-pl/strings.xml | 2 + .../dialer/app/res/values-pt-rBR/strings.xml | 2 + .../dialer/app/res/values-pt-rPT/strings.xml | 2 + .../android/dialer/app/res/values-pt/strings.xml | 2 + .../android/dialer/app/res/values-ro/strings.xml | 2 + .../android/dialer/app/res/values-ru/strings.xml | 2 + .../android/dialer/app/res/values-si/strings.xml | 2 + .../android/dialer/app/res/values-sk/strings.xml | 2 + .../android/dialer/app/res/values-sl/strings.xml | 2 + .../android/dialer/app/res/values-sq/strings.xml | 2 + .../android/dialer/app/res/values-sr/strings.xml | 2 + .../android/dialer/app/res/values-sv/strings.xml | 2 + .../android/dialer/app/res/values-sw/strings.xml | 2 + .../android/dialer/app/res/values-ta/strings.xml | 2 + .../android/dialer/app/res/values-te/strings.xml | 2 + .../android/dialer/app/res/values-th/strings.xml | 2 + .../android/dialer/app/res/values-tl/strings.xml | 2 + .../android/dialer/app/res/values-tr/strings.xml | 2 + .../android/dialer/app/res/values-uk/strings.xml | 2 + .../android/dialer/app/res/values-ur/strings.xml | 2 + .../android/dialer/app/res/values-uz/strings.xml | 2 + .../android/dialer/app/res/values-vi/strings.xml | 2 + .../dialer/app/res/values-zh-rCN/strings.xml | 2 + .../dialer/app/res/values-zh-rHK/strings.xml | 2 + .../dialer/app/res/values-zh-rTW/strings.xml | 2 + .../android/dialer/app/res/values-zu/strings.xml | 2 + java/com/android/dialer/app/res/values/strings.xml | 3 + .../app/settings/DialerSettingsActivity.java | 6 + .../LegacyVoicemailNotificationReceiver.java | 67 +- .../app/voicemail/VoicemailPlaybackPresenter.java | 5 +- .../blocking/BlockedNumbersAutoMigrator.java | 5 + .../blocking/FilteredNumberAsyncQueryHandler.java | 16 +- .../dialer/blocking/FilteredNumbersUtil.java | 5 +- .../calldetails/res/layout/contact_container.xml | 4 +- .../datasources/contacts/ContactsDataSource.java | 4 +- .../systemcalllog/SystemCallLogDataSource.java | 6 + .../dialer/common/ConfigProviderBindings.java | 8 + .../android/dialer/constants/ScheduledJobIds.java | 5 + .../dialer/contactsfragment/ContactsFragment.java | 6 + .../dialer/database/DialerDatabaseHelper.java | 2 +- .../android/dialer/logging/dialer_impression.proto | 15 +- .../notification/NotificationChannelManager.java | 4 +- .../android/dialer/oem/CequintCallerIdManager.java | 6 + .../persistentlog/PersistentLogFileHandler.java | 24 +- .../dialer/persistentlog/PersistentLogger.java | 4 + .../dialer/phonenumbercache/ContactInfoHelper.java | 2 +- .../android/dialer/theme/res/values-af/strings.xml | 4 + .../android/dialer/theme/res/values-am/strings.xml | 4 + .../android/dialer/theme/res/values-ar/strings.xml | 4 + .../android/dialer/theme/res/values-az/strings.xml | 4 + .../dialer/theme/res/values-b+sr+Latn/strings.xml | 4 + .../android/dialer/theme/res/values-be/strings.xml | 4 + .../android/dialer/theme/res/values-bg/strings.xml | 4 + .../android/dialer/theme/res/values-bn/strings.xml | 4 + .../android/dialer/theme/res/values-bs/strings.xml | 4 + .../android/dialer/theme/res/values-ca/strings.xml | 4 + .../android/dialer/theme/res/values-cs/strings.xml | 4 + .../android/dialer/theme/res/values-da/strings.xml | 4 + .../android/dialer/theme/res/values-de/strings.xml | 4 + .../android/dialer/theme/res/values-el/strings.xml | 4 + .../dialer/theme/res/values-en-rAU/strings.xml | 4 + .../dialer/theme/res/values-en-rGB/strings.xml | 4 + .../dialer/theme/res/values-en-rIN/strings.xml | 4 + .../dialer/theme/res/values-es-rUS/strings.xml | 4 + .../android/dialer/theme/res/values-es/strings.xml | 4 + .../android/dialer/theme/res/values-et/strings.xml | 4 + .../android/dialer/theme/res/values-eu/strings.xml | 4 + .../android/dialer/theme/res/values-fa/strings.xml | 4 + .../android/dialer/theme/res/values-fi/strings.xml | 4 + .../dialer/theme/res/values-fr-rCA/strings.xml | 4 + .../android/dialer/theme/res/values-fr/strings.xml | 4 + .../android/dialer/theme/res/values-gl/strings.xml | 4 + .../android/dialer/theme/res/values-gu/strings.xml | 4 + .../android/dialer/theme/res/values-hi/strings.xml | 4 + .../android/dialer/theme/res/values-hr/strings.xml | 4 + .../android/dialer/theme/res/values-hu/strings.xml | 4 + .../android/dialer/theme/res/values-hy/strings.xml | 4 + .../android/dialer/theme/res/values-in/strings.xml | 4 + .../android/dialer/theme/res/values-is/strings.xml | 4 + .../android/dialer/theme/res/values-it/strings.xml | 4 + .../android/dialer/theme/res/values-iw/strings.xml | 4 + .../android/dialer/theme/res/values-ja/strings.xml | 4 + .../android/dialer/theme/res/values-ka/strings.xml | 4 + .../android/dialer/theme/res/values-kk/strings.xml | 4 + .../android/dialer/theme/res/values-km/strings.xml | 4 + .../android/dialer/theme/res/values-kn/strings.xml | 4 + .../android/dialer/theme/res/values-ko/strings.xml | 4 + .../android/dialer/theme/res/values-ky/strings.xml | 4 + .../android/dialer/theme/res/values-lo/strings.xml | 4 + .../android/dialer/theme/res/values-lt/strings.xml | 4 + .../android/dialer/theme/res/values-lv/strings.xml | 4 + .../android/dialer/theme/res/values-mk/strings.xml | 4 + .../android/dialer/theme/res/values-ml/strings.xml | 4 + .../android/dialer/theme/res/values-mn/strings.xml | 4 + .../android/dialer/theme/res/values-mr/strings.xml | 4 + .../android/dialer/theme/res/values-ms/strings.xml | 4 + .../android/dialer/theme/res/values-my/strings.xml | 4 + .../android/dialer/theme/res/values-nb/strings.xml | 4 + .../android/dialer/theme/res/values-ne/strings.xml | 4 + .../android/dialer/theme/res/values-nl/strings.xml | 4 + .../android/dialer/theme/res/values-no/strings.xml | 4 + .../android/dialer/theme/res/values-pa/strings.xml | 4 + .../android/dialer/theme/res/values-pl/strings.xml | 4 + .../dialer/theme/res/values-pt-rBR/strings.xml | 4 + .../dialer/theme/res/values-pt-rPT/strings.xml | 4 + .../android/dialer/theme/res/values-pt/strings.xml | 4 + .../android/dialer/theme/res/values-ro/strings.xml | 4 + .../android/dialer/theme/res/values-ru/strings.xml | 4 + .../android/dialer/theme/res/values-si/strings.xml | 4 + .../android/dialer/theme/res/values-sk/strings.xml | 4 + .../android/dialer/theme/res/values-sl/strings.xml | 4 + .../android/dialer/theme/res/values-sq/strings.xml | 4 + .../android/dialer/theme/res/values-sr/strings.xml | 4 + .../android/dialer/theme/res/values-sv/strings.xml | 4 + .../android/dialer/theme/res/values-sw/strings.xml | 4 + .../android/dialer/theme/res/values-ta/strings.xml | 4 + .../android/dialer/theme/res/values-te/strings.xml | 4 + .../android/dialer/theme/res/values-th/strings.xml | 4 + .../android/dialer/theme/res/values-tl/strings.xml | 4 + .../android/dialer/theme/res/values-tr/strings.xml | 4 + .../android/dialer/theme/res/values-uk/strings.xml | 4 + .../android/dialer/theme/res/values-ur/strings.xml | 4 + .../android/dialer/theme/res/values-uz/strings.xml | 4 + .../android/dialer/theme/res/values-vi/strings.xml | 4 + .../dialer/theme/res/values-zh-rCN/strings.xml | 4 + .../dialer/theme/res/values-zh-rHK/strings.xml | 4 + .../dialer/theme/res/values-zh-rTW/strings.xml | 4 + .../android/dialer/theme/res/values-zu/strings.xml | 4 + .../android/dialer/theme/res/values/strings.xml | 10 +- java/com/android/dialer/util/PermissionsUtil.java | 27 +- .../android/incallui/AnswerScreenPresenter.java | 3 + java/com/android/incallui/CallCardPresenter.java | 7 +- java/com/android/incallui/CallerInfoUtils.java | 2 +- .../incallui/ConferenceParticipantListAdapter.java | 7 +- java/com/android/incallui/InCallActivity.java | 6 + .../com/android/incallui/InCallActivityCommon.java | 62 +- java/com/android/incallui/InCallPresenter.java | 8 + java/com/android/incallui/StatusBarNotifier.java | 3 + .../answer/impl/hint/AnswerHintFactory.java | 15 +- .../answer/impl/hint/PawImageLoaderImpl.java | 5 +- .../AnswerProximitySensor.java | 3 + java/com/android/incallui/call/CallList.java | 22 +- java/com/android/incallui/call/DialerCall.java | 47 +- .../android/incallui/call/DialerCallListener.java | 2 + .../incallui/contactgrid/ContactGridManager.java | 63 +- .../res/layout/incall_contactgrid_bottom_row.xml | 9 + .../BlockedNumberContentObserver.java | 10 +- .../incallui/spam/SpamCallListListener.java | 4 + .../incallui/telecomeventui/AndroidManifest.xml | 15 + .../InternationalCallOnWifiDialogFragment.java | 179 + .../frag_international_call_on_wifi_dialog.xml | 43 + .../telecomeventui/res/values-af/strings.xml | 23 + .../telecomeventui/res/values-am/strings.xml | 23 + .../telecomeventui/res/values-ar/strings.xml | 23 + .../telecomeventui/res/values-az/strings.xml | 23 + .../res/values-b+sr+Latn/strings.xml | 23 + .../telecomeventui/res/values-be/strings.xml | 23 + .../telecomeventui/res/values-bg/strings.xml | 23 + .../telecomeventui/res/values-bn/strings.xml | 23 + .../telecomeventui/res/values-bs/strings.xml | 23 + .../telecomeventui/res/values-ca/strings.xml | 23 + .../telecomeventui/res/values-cs/strings.xml | 23 + .../telecomeventui/res/values-da/strings.xml | 23 + .../telecomeventui/res/values-de/strings.xml | 23 + .../telecomeventui/res/values-el/strings.xml | 23 + .../telecomeventui/res/values-en-rAU/strings.xml | 23 + .../telecomeventui/res/values-en-rGB/strings.xml | 23 + .../telecomeventui/res/values-en-rIN/strings.xml | 23 + .../telecomeventui/res/values-es-rUS/strings.xml | 23 + .../telecomeventui/res/values-es/strings.xml | 23 + .../telecomeventui/res/values-et/strings.xml | 23 + .../telecomeventui/res/values-eu/strings.xml | 23 + .../telecomeventui/res/values-fa/strings.xml | 23 + .../telecomeventui/res/values-fi/strings.xml | 23 + .../telecomeventui/res/values-fr-rCA/strings.xml | 23 + .../telecomeventui/res/values-fr/strings.xml | 23 + .../telecomeventui/res/values-gl/strings.xml | 23 + .../telecomeventui/res/values-gu/strings.xml | 23 + .../telecomeventui/res/values-hi/strings.xml | 23 + .../telecomeventui/res/values-hr/strings.xml | 23 + .../telecomeventui/res/values-hu/strings.xml | 23 + .../telecomeventui/res/values-hy/strings.xml | 23 + .../telecomeventui/res/values-in/strings.xml | 23 + .../telecomeventui/res/values-is/strings.xml | 23 + .../telecomeventui/res/values-it/strings.xml | 23 + .../telecomeventui/res/values-iw/strings.xml | 23 + .../telecomeventui/res/values-ja/strings.xml | 23 + .../telecomeventui/res/values-ka/strings.xml | 23 + .../telecomeventui/res/values-kk/strings.xml | 23 + .../telecomeventui/res/values-km/strings.xml | 23 + .../telecomeventui/res/values-kn/strings.xml | 23 + .../telecomeventui/res/values-ko/strings.xml | 23 + .../telecomeventui/res/values-ky/strings.xml | 23 + .../telecomeventui/res/values-lo/strings.xml | 23 + .../telecomeventui/res/values-lt/strings.xml | 23 + .../telecomeventui/res/values-lv/strings.xml | 23 + .../telecomeventui/res/values-mk/strings.xml | 23 + .../telecomeventui/res/values-ml/strings.xml | 23 + .../telecomeventui/res/values-mn/strings.xml | 23 + .../telecomeventui/res/values-mr/strings.xml | 23 + .../telecomeventui/res/values-ms/strings.xml | 23 + .../telecomeventui/res/values-my/strings.xml | 23 + .../telecomeventui/res/values-nb/strings.xml | 23 + .../telecomeventui/res/values-ne/strings.xml | 23 + .../telecomeventui/res/values-nl/strings.xml | 23 + .../telecomeventui/res/values-no/strings.xml | 23 + .../telecomeventui/res/values-pa/strings.xml | 23 + .../telecomeventui/res/values-pl/strings.xml | 23 + .../telecomeventui/res/values-pt-rBR/strings.xml | 23 + .../telecomeventui/res/values-pt-rPT/strings.xml | 23 + .../telecomeventui/res/values-pt/strings.xml | 23 + .../telecomeventui/res/values-ro/strings.xml | 23 + .../telecomeventui/res/values-ru/strings.xml | 23 + .../telecomeventui/res/values-si/strings.xml | 23 + .../telecomeventui/res/values-sk/strings.xml | 23 + .../telecomeventui/res/values-sl/strings.xml | 23 + .../telecomeventui/res/values-sq/strings.xml | 23 + .../telecomeventui/res/values-sr/strings.xml | 23 + .../telecomeventui/res/values-sv/strings.xml | 23 + .../telecomeventui/res/values-sw/strings.xml | 23 + .../telecomeventui/res/values-ta/strings.xml | 23 + .../telecomeventui/res/values-te/strings.xml | 23 + .../telecomeventui/res/values-th/strings.xml | 23 + .../telecomeventui/res/values-tl/strings.xml | 23 + .../telecomeventui/res/values-tr/strings.xml | 23 + .../telecomeventui/res/values-uk/strings.xml | 23 + .../telecomeventui/res/values-ur/strings.xml | 23 + .../telecomeventui/res/values-uz/strings.xml | 23 + .../telecomeventui/res/values-vi/strings.xml | 23 + .../telecomeventui/res/values-zh-rCN/strings.xml | 23 + .../telecomeventui/res/values-zh-rHK/strings.xml | 23 + .../telecomeventui/res/values-zh-rTW/strings.xml | 23 + .../telecomeventui/res/values-zu/strings.xml | 23 + .../incallui/telecomeventui/res/values/strings.xml | 24 + .../video/impl/SurfaceViewVideoCallFragment.java | 2 +- .../impl/res/layout/frag_videocall_surfaceview.xml | 33 +- .../incallui/video/impl/res/values-land/styles.xml | 3 +- .../incallui/video/impl/res/values/styles.xml | 3 +- .../com/android/voicemail/impl/ActivationTask.java | 49 +- .../com/android/voicemail/impl/AndroidManifest.xml | 5 + .../impl/DeviceProvisionedJobService.java | 85 + java/com/android/voicemail/impl/OmtpService.java | 6 + .../voicemail/impl/OmtpVvmCarrierConfigHelper.java | 3 +- .../voicemail/impl/TelephonyVvmConfigManager.java | 24 +- .../android/voicemail/impl/res/xml/vvm_config.xml | 64 + .../voicemail/impl/scheduling/TaskExecutor.java | 9 +- .../voicemail/impl/scheduling/TaskReceiver.java | 5 +- .../impl/scheduling/TaskSchedulerJobService.java | 35 +- 426 files changed, 11867 insertions(+), 371 deletions(-) create mode 100644 java/com/android/dialer/about/AboutPhoneFragment.java create mode 100644 java/com/android/dialer/about/AndroidManifest.xml create mode 100644 java/com/android/dialer/about/License.java create mode 100644 java/com/android/dialer/about/LicenseActivity.java create mode 100644 java/com/android/dialer/about/LicenseLoader.java create mode 100644 java/com/android/dialer/about/LicenseMenuActivity.java create mode 100644 java/com/android/dialer/about/Licenses.java create mode 100644 java/com/android/dialer/about/res/layout/dummy_placeholder.xml create mode 100644 java/com/android/dialer/about/res/layout/license.xml create mode 100644 java/com/android/dialer/about/res/layout/license_menu_activity.xml create mode 100644 java/com/android/dialer/about/res/layout/license_scrollview.xml create mode 100644 java/com/android/dialer/about/res/raw/keep.xml create mode 100644 java/com/android/dialer/about/res/raw/third_party_license_metadata create mode 100644 java/com/android/dialer/about/res/raw/third_party_licenses create mode 100644 java/com/android/dialer/about/res/values-af/strings.xml create mode 100644 java/com/android/dialer/about/res/values-am/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ar/strings.xml create mode 100644 java/com/android/dialer/about/res/values-az/strings.xml create mode 100644 java/com/android/dialer/about/res/values-b+sr+Latn/strings.xml create mode 100644 java/com/android/dialer/about/res/values-be/strings.xml create mode 100644 java/com/android/dialer/about/res/values-bg/strings.xml create mode 100644 java/com/android/dialer/about/res/values-bn/strings.xml create mode 100644 java/com/android/dialer/about/res/values-bs/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ca/strings.xml create mode 100644 java/com/android/dialer/about/res/values-cs/strings.xml create mode 100644 java/com/android/dialer/about/res/values-da/strings.xml create mode 100644 java/com/android/dialer/about/res/values-de/strings.xml create mode 100644 java/com/android/dialer/about/res/values-el/strings.xml create mode 100644 java/com/android/dialer/about/res/values-en-rAU/strings.xml create mode 100644 java/com/android/dialer/about/res/values-en-rGB/strings.xml create mode 100644 java/com/android/dialer/about/res/values-en-rIN/strings.xml create mode 100644 java/com/android/dialer/about/res/values-es-rUS/strings.xml create mode 100644 java/com/android/dialer/about/res/values-es/strings.xml create mode 100644 java/com/android/dialer/about/res/values-et/strings.xml create mode 100644 java/com/android/dialer/about/res/values-eu/strings.xml create mode 100644 java/com/android/dialer/about/res/values-fa/strings.xml create mode 100644 java/com/android/dialer/about/res/values-fi/strings.xml create mode 100644 java/com/android/dialer/about/res/values-fr-rCA/strings.xml create mode 100644 java/com/android/dialer/about/res/values-fr/strings.xml create mode 100644 java/com/android/dialer/about/res/values-gl/strings.xml create mode 100644 java/com/android/dialer/about/res/values-gu/strings.xml create mode 100644 java/com/android/dialer/about/res/values-hi/strings.xml create mode 100644 java/com/android/dialer/about/res/values-hr/strings.xml create mode 100644 java/com/android/dialer/about/res/values-hu/strings.xml create mode 100644 java/com/android/dialer/about/res/values-hy/strings.xml create mode 100644 java/com/android/dialer/about/res/values-in/strings.xml create mode 100644 java/com/android/dialer/about/res/values-is/strings.xml create mode 100644 java/com/android/dialer/about/res/values-it/strings.xml create mode 100644 java/com/android/dialer/about/res/values-iw/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ja/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ka/strings.xml create mode 100644 java/com/android/dialer/about/res/values-kk/strings.xml create mode 100644 java/com/android/dialer/about/res/values-km/strings.xml create mode 100644 java/com/android/dialer/about/res/values-kn/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ko/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ky/strings.xml create mode 100644 java/com/android/dialer/about/res/values-lo/strings.xml create mode 100644 java/com/android/dialer/about/res/values-lt/strings.xml create mode 100644 java/com/android/dialer/about/res/values-lv/strings.xml create mode 100644 java/com/android/dialer/about/res/values-mk/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ml/strings.xml create mode 100644 java/com/android/dialer/about/res/values-mn/strings.xml create mode 100644 java/com/android/dialer/about/res/values-mr/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ms/strings.xml create mode 100644 java/com/android/dialer/about/res/values-my/strings.xml create mode 100644 java/com/android/dialer/about/res/values-nb/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ne/strings.xml create mode 100644 java/com/android/dialer/about/res/values-nl/strings.xml create mode 100644 java/com/android/dialer/about/res/values-no/strings.xml create mode 100644 java/com/android/dialer/about/res/values-pa/strings.xml create mode 100644 java/com/android/dialer/about/res/values-pl/strings.xml create mode 100644 java/com/android/dialer/about/res/values-pt-rBR/strings.xml create mode 100644 java/com/android/dialer/about/res/values-pt-rPT/strings.xml create mode 100644 java/com/android/dialer/about/res/values-pt/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ro/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ru/strings.xml create mode 100644 java/com/android/dialer/about/res/values-si/strings.xml create mode 100644 java/com/android/dialer/about/res/values-sk/strings.xml create mode 100644 java/com/android/dialer/about/res/values-sl/strings.xml create mode 100644 java/com/android/dialer/about/res/values-sq/strings.xml create mode 100644 java/com/android/dialer/about/res/values-sr/strings.xml create mode 100644 java/com/android/dialer/about/res/values-sv/strings.xml create mode 100644 java/com/android/dialer/about/res/values-sw/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ta/strings.xml create mode 100644 java/com/android/dialer/about/res/values-te/strings.xml create mode 100644 java/com/android/dialer/about/res/values-th/strings.xml create mode 100644 java/com/android/dialer/about/res/values-tl/strings.xml create mode 100644 java/com/android/dialer/about/res/values-tr/strings.xml create mode 100644 java/com/android/dialer/about/res/values-uk/strings.xml create mode 100644 java/com/android/dialer/about/res/values-ur/strings.xml create mode 100644 java/com/android/dialer/about/res/values-uz/strings.xml create mode 100644 java/com/android/dialer/about/res/values-vi/strings.xml create mode 100644 java/com/android/dialer/about/res/values-zh-rCN/strings.xml create mode 100644 java/com/android/dialer/about/res/values-zh-rHK/strings.xml create mode 100644 java/com/android/dialer/about/res/values-zh-rTW/strings.xml create mode 100644 java/com/android/dialer/about/res/values-zu/strings.xml create mode 100644 java/com/android/dialer/about/res/values/strings.xml create mode 100644 java/com/android/dialer/about/res/xml/about_phone_fragment.xml create mode 100644 java/com/android/incallui/telecomeventui/AndroidManifest.xml create mode 100644 java/com/android/incallui/telecomeventui/InternationalCallOnWifiDialogFragment.java create mode 100644 java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-af/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-am/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ar/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-az/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-b+sr+Latn/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-be/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-bg/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-bn/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-bs/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ca/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-cs/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-da/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-de/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-el/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-en-rAU/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-en-rGB/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-en-rIN/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-es-rUS/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-es/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-et/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-eu/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-fa/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-fi/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-fr-rCA/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-fr/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-gl/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-gu/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-hi/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-hr/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-hu/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-hy/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-in/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-is/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-it/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-iw/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ja/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ka/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-kk/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-km/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-kn/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ko/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ky/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-lo/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-lt/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-lv/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-mk/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ml/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-mn/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-mr/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ms/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-my/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-nb/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ne/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-nl/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-no/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-pa/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-pl/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-pt-rBR/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-pt-rPT/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-pt/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ro/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ru/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-si/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-sk/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-sl/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-sq/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-sr/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-sv/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-sw/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ta/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-te/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-th/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-tl/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-tr/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-uk/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-ur/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-uz/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-vi/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-zh-rCN/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-zh-rHK/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-zh-rTW/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values-zu/strings.xml create mode 100644 java/com/android/incallui/telecomeventui/res/values/strings.xml create mode 100644 java/com/android/voicemail/impl/DeviceProvisionedJobService.java 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/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/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/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 { @@ -38,7 +39,6 @@ public class DirectoryListLoader extends AsyncTaskLoader { 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 { @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 { 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 { 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/model/ContactLoader.java b/java/com/android/contacts/common/model/ContactLoader.java index 8e9ef9429..55464b161 100644 --- a/java/com/android/contacts/common/model/ContactLoader.java +++ b/java/com/android/contacts/common/model/ContactLoader.java @@ -47,6 +47,7 @@ import com.android.contacts.common.util.ContactLoaderUtils; import com.android.contacts.common.util.UriUtils; 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; @@ -688,11 +689,15 @@ public class ContactLoader extends AsyncTaskLoader { mLookupUri = result.getLookupUri(); if (!result.isDirectoryEntry()) { - LogUtil.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) { 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 @@ + + + + + + + + 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, 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 CREATOR = + new Parcelable.Creator() { + @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> { + + private List 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 loadInBackground() { + return Licenses.getLicenses(getContext()); + } + + @Override + public void deliverResult(List 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> { + + static final String ARGS_LICENSE = "license"; + + private static final int LOADER_ID = 54321; + + private ArrayAdapter 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> onCreateLoader(int id, Bundle args) { + return new LicenseLoader(this); + } + + @Override + public void onLoadFinished(Loader> loader, List licenses) { + listAdapter.clear(); + listAdapter.addAll(licenses); + listAdapter.notifyDataSetChanged(); + } + + @Override + public void onLoaderReset(Loader> 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 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 getLicenseListFromMetadata(String metadata) { + String[] entries = metadata.split("\n"); + ArrayList licenses = new ArrayList(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 @@ + + + + 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 @@ + + + + + + + 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 @@ + + + + + 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 @@ + + + + + + + \ 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 @@ + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + 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 @@ + + + + build_version + + + Build version + + + open_source_licenses + + + License details for open source software + + + Open source licenses + + + privacy_policy + + + Privacy policy + + + http://www.google.com/policies/privacy + + + Terms of service + + + terms_of_service + + + http://www.google.com/policies/terms + + 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 @@ + + + + + + + + + + + + + + diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java index 3318c506d..6e2c6be7d 100644 --- a/java/com/android/dialer/app/DialtactsActivity.java +++ b/java/com/android/dialer/app/DialtactsActivity.java @@ -162,7 +162,6 @@ public class DialtactsActivity extends TransactionSafeActivity private static final int ACTIVITY_REQUEST_CODE_VOICE_SEARCH = 1; public static final int ACTIVITY_REQUEST_CODE_CALL_COMPOSE = 2; - public static final int ACTIVITY_REQUEST_CODE_LIGHTBRINGER = 3; private static final int FAB_SCALE_IN_DELAY_MS = 300; @@ -1489,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/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java index b433e6529..2f8a58c8a 100644 --- a/java/com/android/dialer/app/calllog/CallLogAdapter.java +++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java @@ -108,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. */ @@ -228,7 +231,7 @@ 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 || v.getId() == R.id.quick_contact_photo) { if (mActionMode == null) { @@ -373,7 +376,7 @@ public class CallLogAdapter extends GroupingListAdapter mContactInfoCache = contactInfoCache; - if (!PermissionsUtil.hasContactsPermissions(activity)) { + if (!PermissionsUtil.hasContactsReadPermissions(activity)) { mContactInfoCache.disableRequestProcessing(); } diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java index 874aeeac8..6e4b23fc1 100644 --- a/java/com/android/dialer/app/calllog/CallLogFragment.java +++ b/java/com/android/dialer/app/calllog/CallLogFragment.java @@ -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); } @@ -494,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 278caba92..1daccd1a4 100644 --- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java +++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java @@ -17,7 +17,6 @@ package com.android.dialer.app.calllog; import android.app.Activity; -import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.res.Resources; @@ -45,7 +44,6 @@ import android.widget.ImageButton; import android.widget.ImageView; import android.widget.QuickContactBadge; import android.widget.TextView; -import android.widget.Toast; import com.android.contacts.common.ClipboardUtils; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.compat.PhoneNumberUtilsCompat; @@ -62,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; @@ -258,7 +257,11 @@ 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 { @@ -792,38 +795,17 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder mVoicemailPlaybackPresenter.shareVoicemail(); } else { logCallLogAction(view.getId()); - final IntentProvider intentProvider = (IntentProvider) view.getTag(); - if (intentProvider == null) { - return; - } - - final Intent intent = intentProvider.getIntent(mContext); - // See IntentProvider.getCallDetailIntentProvider() for why this may be null. - if (intent == null) { - return; - } - - // We check to see if we are starting a Lightbringer intent. The reason is Lightbringer - // intents need to be started using startActivityForResult instead of the usual startActivity - String packageName = intent.getPackage(); - if (packageName != null && packageName.equals(getLightbringer().getPackageName(mContext))) { - startLightbringerActivity(intent); - } else { - DialerUtils.startActivityWithErrorToast(mContext, intent); + if (intentProvider != null) { + final Intent intent = intentProvider.getIntent(mContext); + // See IntentProvider.getCallDetailIntentProvider() for why this may be null. + if (intent != null) { + DialerUtils.startActivityWithErrorToast(mContext, intent); + } } } } - private void startLightbringerActivity(Intent intent) { - try { - Activity activity = (Activity) mContext; - activity.startActivityForResult(intent, DialtactsActivity.ACTIVITY_REQUEST_CODE_LIGHTBRINGER); - } catch (ActivityNotFoundException e) { - Toast.makeText(mContext, R.string.activity_not_available, Toast.LENGTH_SHORT).show(); - } - } - private CallComposerContact buildContact() { CallComposerContact.Builder contact = CallComposerContact.newBuilder(); contact.setPhotoId(info.photoId); 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 4127d1f0b..e169b8de9 100644 --- a/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java +++ b/java/com/android/dialer/app/calllog/CallLogNotificationsQueryHelper.java @@ -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. - * - *

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 = @@ -71,22 +59,6 @@ public class CallLogNotificationsService extends IntentService { public static final String ACTION_CALL_BACK_FROM_MISSED_CALL_NOTIFICATION = "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. - * - *

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

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. * @@ -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 d67f12266..58fe6fa2c 100644 --- a/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java +++ b/java/com/android/dialer/app/calllog/DefaultVoicemailNotifier.java @@ -54,17 +54,20 @@ 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 { public static final String TAG = "VoicemailNotifier"; @@ -90,14 +93,20 @@ public class DefaultVoicemailNotifier { this.filteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler; } - /** Returns an instance of {@link DefaultVoicemailNotifier}. */ - public static DefaultVoicemailNotifier getInstance(Context context) { - return new DefaultVoicemailNotifier( + 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; + } + /** * Updates the notification and notifies of the call with the given URI. * @@ -106,8 +115,9 @@ public class DefaultVoicemailNotifier { * *

It is not safe to call this method from the main thread. */ + @VisibleForTesting @WorkerThread - public void updateNotification() { + void updateNotification() { Assert.isWorkerThread(); // Lookup the list of new voicemails to include in the notification. final List newCalls = queryHelper.getNewVoicemails(); @@ -178,6 +188,10 @@ public class DefaultVoicemailNotifier { .setGroupSummary(true) .setContentIntent(newVoicemailIntent(null)); + if (BuildCompat.isAtLeastO()) { + groupSummary.setGroupAlertBehavior(Notification.GROUP_ALERT_CHILDREN); + } + NotificationChannelManager.applyChannel( groupSummary, context, @@ -392,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, 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 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 1440218fb..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 { @@ -54,19 +55,35 @@ public class VisualVoicemailCallLogFragment extends CallLogFragment { public void onActivityCreated(Bundle savedInstanceState) { mVoicemailPlaybackPresenter = VoicemailPlaybackPresenter.getInstance(getActivity(), savedInstanceState); - 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( + "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 @@ -118,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); } 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/dialpad/DialpadFragment.java b/java/com/android/dialer/app/dialpad/DialpadFragment.java index a0c348424..e9d57b399 100644 --- a/java/com/android/dialer/app/dialpad/DialpadFragment.java +++ b/java/com/android/dialer/app/dialpad/DialpadFragment.java @@ -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(); diff --git a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java index 175360c2d..a0c8b18d3 100644 --- a/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java +++ b/java/com/android/dialer/app/dialpad/SmartDialCursorLoader.java @@ -77,7 +77,7 @@ public class SmartDialCursorLoader extends AsyncTaskLoader { LogUtil.v(TAG, "Load in background " + mQuery); } - if (!PermissionsUtil.hasContactsPermissions(mContext)) { + if (!PermissionsUtil.hasContactsReadPermissions(mContext)) { return new MatrixCursor(PhoneQuery.PROJECTION_PRIMARY); } 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/res/values-af/strings.xml b/java/com/android/dialer/app/res/values-af/strings.xml index 2cd688023..7eaa7cb94 100644 --- a/java/com/android/dialer/app/res/values-af/strings.xml +++ b/java/com/android/dialer/app/res/values-af/strings.xml @@ -230,4 +230,6 @@ "Deblokkeer nommer" "Strooipos" "%1$s is vanlyn en kan nie bereik word nie" + + 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 760099d26..dd20b3119 100644 --- a/java/com/android/dialer/app/res/values-am/strings.xml +++ b/java/com/android/dialer/app/res/values-am/strings.xml @@ -231,4 +231,6 @@ "ቁጥርን አታግድ" "አይፈለጌ መልዕክት" "%1$s ከመስመር ውጭ ነው እና ሊደረስበት አይችልም" + + diff --git a/java/com/android/dialer/app/res/values-ar/strings.xml b/java/com/android/dialer/app/res/values-ar/strings.xml index 6e387b490..c24d313c4 100644 --- a/java/com/android/dialer/app/res/values-ar/strings.xml +++ b/java/com/android/dialer/app/res/values-ar/strings.xml @@ -238,4 +238,6 @@ "إلغاء حظر الرقم" "تعليق غير مرغوب فيه" "%1$s غير متصل ولا يمكن الوصول إليه" + + diff --git a/java/com/android/dialer/app/res/values-az/strings.xml b/java/com/android/dialer/app/res/values-az/strings.xml index 9522764aa..70e926cbe 100644 --- a/java/com/android/dialer/app/res/values-az/strings.xml +++ b/java/com/android/dialer/app/res/values-az/strings.xml @@ -231,4 +231,6 @@ "Nömrəni blokdan çıxarın" "Spam" "%1$s oflayn olduğu üçün əlaqə saxlamaq mümkün deyil" + + 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 c046d94aa..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 @@ -233,4 +233,6 @@ "Deblokiraj broj" "Nepoželjan" "%1$s je oflajn i ne možete da ga/je kontaktirate" + + 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 552e6ac17..effc7e025 100644 --- a/java/com/android/dialer/app/res/values-be/strings.xml +++ b/java/com/android/dialer/app/res/values-be/strings.xml @@ -235,4 +235,6 @@ "Разблакіраваць нумар" "Спам" "Карыстальнік %1$s па-за сеткай і не даступны" + + diff --git a/java/com/android/dialer/app/res/values-bg/strings.xml b/java/com/android/dialer/app/res/values-bg/strings.xml index 277cb63a7..d3d1a9974 100644 --- a/java/com/android/dialer/app/res/values-bg/strings.xml +++ b/java/com/android/dialer/app/res/values-bg/strings.xml @@ -230,4 +230,6 @@ "Отблокиране на номера" "Спам" %1$s не може да се установи връзка, тъй като е офлайн" + + diff --git a/java/com/android/dialer/app/res/values-bn/strings.xml b/java/com/android/dialer/app/res/values-bn/strings.xml index 0a5569234..4b7354c00 100644 --- a/java/com/android/dialer/app/res/values-bn/strings.xml +++ b/java/com/android/dialer/app/res/values-bn/strings.xml @@ -231,4 +231,6 @@ "নম্বর অবরোধ মুক্ত করুন" "স্প্যাম" "%1$s এখন অফলাইনে থাকায় যোগাযোগ করা যাবে না" + + diff --git a/java/com/android/dialer/app/res/values-bs/strings.xml b/java/com/android/dialer/app/res/values-bs/strings.xml index 834d29609..4e028461a 100644 --- a/java/com/android/dialer/app/res/values-bs/strings.xml +++ b/java/com/android/dialer/app/res/values-bs/strings.xml @@ -233,4 +233,6 @@ "Deblokiraj broj" "Neželjena pošta" "Osoba %1$s je van mreže i ne možete je kontaktirati" + + 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 6afd86b6b..e18256d5a 100644 --- a/java/com/android/dialer/app/res/values-ca/strings.xml +++ b/java/com/android/dialer/app/res/values-ca/strings.xml @@ -231,4 +231,6 @@ "Desbloqueja el número" "Contingut brossa" "%1$s no té connexió i no s\'hi pot contactar" + + 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 97f43319c..bb7e3c5fb 100644 --- a/java/com/android/dialer/app/res/values-cs/strings.xml +++ b/java/com/android/dialer/app/res/values-cs/strings.xml @@ -235,4 +235,6 @@ "Zrušit blokování čísla" "Spam" "Uživatel %1$s je offline a není možné se s ním spojit" + + 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 7f162b9db..498817652 100644 --- a/java/com/android/dialer/app/res/values-da/strings.xml +++ b/java/com/android/dialer/app/res/values-da/strings.xml @@ -231,4 +231,6 @@ "Ophæv blokering af nummer" "Spam" "%1$s er offline og kan ikke nås" + + 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 eaa798694..ab12c1f4f 100644 --- a/java/com/android/dialer/app/res/values-de/strings.xml +++ b/java/com/android/dialer/app/res/values-de/strings.xml @@ -233,4 +233,6 @@ "Blockierung der Nummer aufheben" "Spam" "%1$s ist offline und nicht erreichbar" + + 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 6996817d8..2a00c46f7 100644 --- a/java/com/android/dialer/app/res/values-el/strings.xml +++ b/java/com/android/dialer/app/res/values-el/strings.xml @@ -231,4 +231,6 @@ "Κατάργηση αποκλεισμού αριθμού" "Ανεπιθύμητα" "Ο χρήστης %1$s είναι εκτός σύνδεσης και δεν μπορείτε να έρθετε σε επικοινωνία μαζί του" + + diff --git a/java/com/android/dialer/app/res/values-en-rAU/strings.xml b/java/com/android/dialer/app/res/values-en-rAU/strings.xml index 967c74158..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 @@ -231,4 +231,6 @@ "Unblock number" "Spam" "%1$s is offline and can\'t be reached" + + 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 967c74158..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 @@ -231,4 +231,6 @@ "Unblock number" "Spam" "%1$s is offline and can\'t be reached" + + 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 967c74158..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 @@ -231,4 +231,6 @@ "Unblock number" "Spam" "%1$s is offline and can\'t be reached" + + 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 4a39f3418..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 @@ -231,4 +231,6 @@ "Desbloquear número" "Spam" "%1$s está sin conexión y no se lo puede contactar" + + 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 f3ebe5d9b..15c129972 100644 --- a/java/com/android/dialer/app/res/values-es/strings.xml +++ b/java/com/android/dialer/app/res/values-es/strings.xml @@ -230,4 +230,6 @@ "Desbloquear número" "Spam" "%1$s no tiene conexión y no se puede contactar" + + 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 e880e3d5e..3dd4ebc04 100644 --- a/java/com/android/dialer/app/res/values-et/strings.xml +++ b/java/com/android/dialer/app/res/values-et/strings.xml @@ -231,4 +231,6 @@ "Numbri deblokeerimine" "Rämpspost" "%1$s ei ole võrgus ja temaga ei saa ühendust" + + 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 079e5c75b..e2701f965 100644 --- a/java/com/android/dialer/app/res/values-eu/strings.xml +++ b/java/com/android/dialer/app/res/values-eu/strings.xml @@ -231,4 +231,6 @@ "Desblokeatu zenbakia" "Spama" "%1$s ez dago konektatuta, eta ezin zara jarri harremanetan berarekin" + + 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 67f58a04e..fb1fa8b31 100644 --- a/java/com/android/dialer/app/res/values-fa/strings.xml +++ b/java/com/android/dialer/app/res/values-fa/strings.xml @@ -233,4 +233,6 @@ "رفع انسداد شماره" "هرزنامه" "%1$s آفلاین است و در دسترس نمی‌باشد" + + diff --git a/java/com/android/dialer/app/res/values-fi/strings.xml b/java/com/android/dialer/app/res/values-fi/strings.xml index 417305b69..3a03c8e55 100644 --- a/java/com/android/dialer/app/res/values-fi/strings.xml +++ b/java/com/android/dialer/app/res/values-fi/strings.xml @@ -230,4 +230,6 @@ "Poista numeron esto" "Roskaposti" "%1$s on offline-tilassa, eikä siihen saada yhteyttä." + + 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 0429a767f..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 @@ -230,4 +230,6 @@ "Débloquer le numéro" "Pourriel" "%1$s est hors connexion et injoignable" + + 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 933acc130..e1eda7243 100644 --- a/java/com/android/dialer/app/res/values-fr/strings.xml +++ b/java/com/android/dialer/app/res/values-fr/strings.xml @@ -230,4 +230,6 @@ "Débloquer le numéro" "Spam" "%1$s est injoignable, car non connecté" + + 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 df162bffd..2a79835c2 100644 --- a/java/com/android/dialer/app/res/values-gl/strings.xml +++ b/java/com/android/dialer/app/res/values-gl/strings.xml @@ -231,4 +231,6 @@ "Desbloquear número" "Spam" "Non se pode contactar con %1$s porque está sen conexión" + + 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 ad5cd0776..940dea028 100644 --- a/java/com/android/dialer/app/res/values-gu/strings.xml +++ b/java/com/android/dialer/app/res/values-gu/strings.xml @@ -231,4 +231,6 @@ "નંબર અનાવરોધિત કરો" "સ્પામ" "%1$s ઑફલાઇન છે અને તેના સુધી પહોંચી શકતાં નથી" + + diff --git a/java/com/android/dialer/app/res/values-hi/strings.xml b/java/com/android/dialer/app/res/values-hi/strings.xml index 320baa559..c4f135b16 100644 --- a/java/com/android/dialer/app/res/values-hi/strings.xml +++ b/java/com/android/dialer/app/res/values-hi/strings.xml @@ -231,4 +231,6 @@ "नंबर अनवरोधित करें" "स्पैम" "%1$s ऑफ़लाइन हैं और उन तक नहीं पहुंचा जा सकता" + + diff --git a/java/com/android/dialer/app/res/values-hr/strings.xml b/java/com/android/dialer/app/res/values-hr/strings.xml index ee2df5495..fb96256f5 100644 --- a/java/com/android/dialer/app/res/values-hr/strings.xml +++ b/java/com/android/dialer/app/res/values-hr/strings.xml @@ -235,4 +235,6 @@ "Deblokiranje broja" "Neželjena pošta" "%1$s nije online i nije dostupan" + + 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 9660b0c47..a39c5846f 100644 --- a/java/com/android/dialer/app/res/values-hu/strings.xml +++ b/java/com/android/dialer/app/res/values-hu/strings.xml @@ -233,4 +233,6 @@ "Szám tiltásának feloldása" "Spam" "%1$s offline, és nem érhető el." + + 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 58a8e9a35..362c57048 100644 --- a/java/com/android/dialer/app/res/values-hy/strings.xml +++ b/java/com/android/dialer/app/res/values-hy/strings.xml @@ -230,4 +230,6 @@ "Արգելաբացել համարը" "Լցոն" "%1$s օգտատերը միացած չէ ցանցին և անհասանելի է" + + diff --git a/java/com/android/dialer/app/res/values-in/strings.xml b/java/com/android/dialer/app/res/values-in/strings.xml index 3b9fcbeca..ca7341ae3 100644 --- a/java/com/android/dialer/app/res/values-in/strings.xml +++ b/java/com/android/dialer/app/res/values-in/strings.xml @@ -233,4 +233,6 @@ "Bebaskan nomor" "Spam" "%1$s sedang offline dan tidak dapat dijangkau" + + 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 e08471203..a8a9ae15d 100644 --- a/java/com/android/dialer/app/res/values-is/strings.xml +++ b/java/com/android/dialer/app/res/values-is/strings.xml @@ -231,4 +231,6 @@ "Taka númer af bannlista" "Ruslnúmer" "%1$s er án nettengingar og ekki er hægt að ná í viðkomandi" + + 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 341d49771..7fc581115 100644 --- a/java/com/android/dialer/app/res/values-it/strings.xml +++ b/java/com/android/dialer/app/res/values-it/strings.xml @@ -231,4 +231,6 @@ "Sblocca numero" "Spam" "%1$s è offline e non può essere raggiunto" + + 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 9b61af74b..743d45505 100644 --- a/java/com/android/dialer/app/res/values-iw/strings.xml +++ b/java/com/android/dialer/app/res/values-iw/strings.xml @@ -234,4 +234,6 @@ "בטל חסימת מספר" "ספאם" "לא ניתן להתקשר כי המכשיר של %1$s לא מחובר כרגע" + + diff --git a/java/com/android/dialer/app/res/values-ja/strings.xml b/java/com/android/dialer/app/res/values-ja/strings.xml index 22cfd4831..72bc2debb 100644 --- a/java/com/android/dialer/app/res/values-ja/strings.xml +++ b/java/com/android/dialer/app/res/values-ja/strings.xml @@ -230,4 +230,6 @@ "番号のブロックを解除" "スパム" "%1$s さんはオフラインのため、通話を受信できません" + + 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 06bc726a6..befdd3aca 100644 --- a/java/com/android/dialer/app/res/values-ka/strings.xml +++ b/java/com/android/dialer/app/res/values-ka/strings.xml @@ -233,4 +233,6 @@ "ნომრის განბლოკვა" "სპამი" "%1$s ხაზგარეშეა და ვერ დაუკავშირდებით" + + diff --git a/java/com/android/dialer/app/res/values-kk/strings.xml b/java/com/android/dialer/app/res/values-kk/strings.xml index 409217a77..8ed666109 100644 --- a/java/com/android/dialer/app/res/values-kk/strings.xml +++ b/java/com/android/dialer/app/res/values-kk/strings.xml @@ -231,4 +231,6 @@ "Нөмірді бөгеуден шығару" "Спам" "%1$s желіден тыс және байланысу мүмкін емес" + + diff --git a/java/com/android/dialer/app/res/values-km/strings.xml b/java/com/android/dialer/app/res/values-km/strings.xml index 7ebe85d5b..298070806 100644 --- a/java/com/android/dialer/app/res/values-km/strings.xml +++ b/java/com/android/dialer/app/res/values-km/strings.xml @@ -230,4 +230,6 @@ "ឈប់ទប់ស្កាត់លេខ" "សារ​ឥតបានការ" "%1$s មិន​នៅ​លើ​អ៊ីនធឺណិត និង​មិន​អាច​ទាក់ទង​បាន​ទេ" + + diff --git a/java/com/android/dialer/app/res/values-kn/strings.xml b/java/com/android/dialer/app/res/values-kn/strings.xml index 3e70c8819..ff780f99c 100644 --- a/java/com/android/dialer/app/res/values-kn/strings.xml +++ b/java/com/android/dialer/app/res/values-kn/strings.xml @@ -231,4 +231,6 @@ "ಸಂಖ್ಯೆಯನ್ನು ಅನಿರ್ಬಂಧಿಸು" "ಸ್ಪ್ಯಾಮ್" "%1$s ಆಫ್‌ಲೈನ್ ಆಗಿದ್ದಾರೆ ಮತ್ತು ಅವರನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ" + + diff --git a/java/com/android/dialer/app/res/values-ko/strings.xml b/java/com/android/dialer/app/res/values-ko/strings.xml index 0f6abdf59..cdd0d5205 100644 --- a/java/com/android/dialer/app/res/values-ko/strings.xml +++ b/java/com/android/dialer/app/res/values-ko/strings.xml @@ -231,4 +231,6 @@ "번호 차단 해제" "스팸" "%1$s님은 오프라인 상태이며 연락할 수 없습니다." + + diff --git a/java/com/android/dialer/app/res/values-ky/strings.xml b/java/com/android/dialer/app/res/values-ky/strings.xml index 4a2ccf3f7..0784a3e07 100644 --- a/java/com/android/dialer/app/res/values-ky/strings.xml +++ b/java/com/android/dialer/app/res/values-ky/strings.xml @@ -233,4 +233,6 @@ "Номерди бөгөттөн чыгаруу" "Спам" "%1$s оффлайн режиминде болгондуктан, байланышууга болбойт" + + diff --git a/java/com/android/dialer/app/res/values-lo/strings.xml b/java/com/android/dialer/app/res/values-lo/strings.xml index 315534639..d7b8f3207 100644 --- a/java/com/android/dialer/app/res/values-lo/strings.xml +++ b/java/com/android/dialer/app/res/values-lo/strings.xml @@ -231,4 +231,6 @@ "ປົດ​ບ​ລັອກ​ໝາຍ​ເລກ" "ສະແປມ" "%1$s ອອບລາຍຢູ່ ແລະ ບໍ່ສາມາດຕິດຕໍ່ຫາໄດ້" + + diff --git a/java/com/android/dialer/app/res/values-lt/strings.xml b/java/com/android/dialer/app/res/values-lt/strings.xml index 6ac7e4d2b..eaa11cbc7 100644 --- a/java/com/android/dialer/app/res/values-lt/strings.xml +++ b/java/com/android/dialer/app/res/values-lt/strings.xml @@ -235,4 +235,6 @@ "Panaikinti numerio blokavimą" "Šlamštas" "%1$s yra neprisijungęs (-usi) ir su juo (ja) negalima susisiekti" + + 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 df51e60a4..3c73cd580 100644 --- a/java/com/android/dialer/app/res/values-lv/strings.xml +++ b/java/com/android/dialer/app/res/values-lv/strings.xml @@ -233,4 +233,6 @@ "Atbloķēt numuru" "Nevēlami zvani" "Lietotājs %1$s ir bezsaistē un nav sasniedzams" + + 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 1086e34fb..016821d96 100644 --- a/java/com/android/dialer/app/res/values-mk/strings.xml +++ b/java/com/android/dialer/app/res/values-mk/strings.xml @@ -231,4 +231,6 @@ "Одблокирај го бројот" "Спам" "Контактот %1$s е офлајн и недостапен" + + diff --git a/java/com/android/dialer/app/res/values-ml/strings.xml b/java/com/android/dialer/app/res/values-ml/strings.xml index 7a43a2dfd..081a05a04 100644 --- a/java/com/android/dialer/app/res/values-ml/strings.xml +++ b/java/com/android/dialer/app/res/values-ml/strings.xml @@ -231,4 +231,6 @@ "നമ്പർ അൺബ്ലോക്കുചെയ്യുക" "സ്‌പാം" "%1$s ഓഫ്‌ലൈനായതിനാൽ കോൾ ചെയ്യാനാവില്ല" + + diff --git a/java/com/android/dialer/app/res/values-mn/strings.xml b/java/com/android/dialer/app/res/values-mn/strings.xml index 0dda88e18..16f7e1ad1 100644 --- a/java/com/android/dialer/app/res/values-mn/strings.xml +++ b/java/com/android/dialer/app/res/values-mn/strings.xml @@ -230,4 +230,6 @@ "Дугаар блокноос гаргах" "Спам" "%1$s офлайн, холбогдох боломжгүй байна" + + diff --git a/java/com/android/dialer/app/res/values-mr/strings.xml b/java/com/android/dialer/app/res/values-mr/strings.xml index 505dae72c..eb374b9e0 100644 --- a/java/com/android/dialer/app/res/values-mr/strings.xml +++ b/java/com/android/dialer/app/res/values-mr/strings.xml @@ -231,4 +231,6 @@ "नंबर अनावरोधित करा" "स्पॅम" "%1$s ऑफलाइन आहे आणि त्यांच्याशी संपर्क साधू शकत नाही" + + diff --git a/java/com/android/dialer/app/res/values-ms/strings.xml b/java/com/android/dialer/app/res/values-ms/strings.xml index 74d9b051a..c471ce922 100644 --- a/java/com/android/dialer/app/res/values-ms/strings.xml +++ b/java/com/android/dialer/app/res/values-ms/strings.xml @@ -233,4 +233,6 @@ "Nyahsekat nombor" "Spam" "%1$s di luar talian dan tidak dapat dihubungi" + + 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 88f5bd394..dd81dee5f 100644 --- a/java/com/android/dialer/app/res/values-my/strings.xml +++ b/java/com/android/dialer/app/res/values-my/strings.xml @@ -231,4 +231,6 @@ "နံပါတ်ကို ဖွင့်မည်" "စပမ်း" "%1$s သည် အော့ဖ်လိုင်းဖြစ်နေသောကြောင့် ဆက်သွယ်၍ မရနိုင်ပါ" + + diff --git a/java/com/android/dialer/app/res/values-nb/strings.xml b/java/com/android/dialer/app/res/values-nb/strings.xml index 7a8528e2e..8f83c949d 100644 --- a/java/com/android/dialer/app/res/values-nb/strings.xml +++ b/java/com/android/dialer/app/res/values-nb/strings.xml @@ -230,4 +230,6 @@ "Opphev blokkeringen av nummeret" "Nettsøppel" "%1$s er frakoblet og kan ikke nås" + + 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 8595062d3..f9524637a 100644 --- a/java/com/android/dialer/app/res/values-ne/strings.xml +++ b/java/com/android/dialer/app/res/values-ne/strings.xml @@ -230,4 +230,6 @@ "नम्बरमाथिको रोक हटाउनुहोस्" "स्प्याम" "%1$s अफलाइन हुनुहुन्छ र वहाँलाई भेट्न सकिँदैन" + + diff --git a/java/com/android/dialer/app/res/values-nl/strings.xml b/java/com/android/dialer/app/res/values-nl/strings.xml index 54d784b91..498436897 100644 --- a/java/com/android/dialer/app/res/values-nl/strings.xml +++ b/java/com/android/dialer/app/res/values-nl/strings.xml @@ -231,4 +231,6 @@ "Blokkeren van nummer opheffen" "Spam" "%1$s is offline en kan niet worden bereikt" + + 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 7a8528e2e..8f83c949d 100644 --- a/java/com/android/dialer/app/res/values-no/strings.xml +++ b/java/com/android/dialer/app/res/values-no/strings.xml @@ -230,4 +230,6 @@ "Opphev blokkeringen av nummeret" "Nettsøppel" "%1$s er frakoblet og kan ikke nås" + + 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 880eecccd..88e3aa718 100644 --- a/java/com/android/dialer/app/res/values-pa/strings.xml +++ b/java/com/android/dialer/app/res/values-pa/strings.xml @@ -231,4 +231,6 @@ "ਨੰਬਰ ਨੂੰ ਅਨਬਲੌਕ ਕਰੋ" "ਸਪੈਮ" "%1$s ਔਫਲਾਈਨ ਹੈ ਅਤੇ ਉਸ \'ਤੇ ਪਹੁੰਚ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ" + + diff --git a/java/com/android/dialer/app/res/values-pl/strings.xml b/java/com/android/dialer/app/res/values-pl/strings.xml index b36d09628..f408ed353 100644 --- a/java/com/android/dialer/app/res/values-pl/strings.xml +++ b/java/com/android/dialer/app/res/values-pl/strings.xml @@ -235,4 +235,6 @@ "Odblokuj numer" "Spam" "Użytkownik %1$s jest offline i nie można się z nim skontaktować" + + 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 9e0eab854..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 @@ -231,4 +231,6 @@ "Desbloquear número" "Spam" "%1$s está off-line e não é possível entrar em contato" + + 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 669d66065..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 @@ -231,4 +231,6 @@ "Desbloquear número" "Spam" "%1$s está offline e não pode ser contactado" + + 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 9e0eab854..0fc1da7ac 100644 --- a/java/com/android/dialer/app/res/values-pt/strings.xml +++ b/java/com/android/dialer/app/res/values-pt/strings.xml @@ -231,4 +231,6 @@ "Desbloquear número" "Spam" "%1$s está off-line e não é possível entrar em contato" + + 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 007199d3a..d07dbed87 100644 --- a/java/com/android/dialer/app/res/values-ro/strings.xml +++ b/java/com/android/dialer/app/res/values-ro/strings.xml @@ -233,4 +233,6 @@ "Deblocați numărul" "Spam" "%1$s este offline și nu poate fi contactat(ă)" + + 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 6744592e8..e98622de8 100644 --- a/java/com/android/dialer/app/res/values-ru/strings.xml +++ b/java/com/android/dialer/app/res/values-ru/strings.xml @@ -235,4 +235,6 @@ "Разблокировать номер" "Спам" "%1$s сейчас офлайн и не ответит на вызов" + + diff --git a/java/com/android/dialer/app/res/values-si/strings.xml b/java/com/android/dialer/app/res/values-si/strings.xml index 4340c0edf..c4ae1736d 100644 --- a/java/com/android/dialer/app/res/values-si/strings.xml +++ b/java/com/android/dialer/app/res/values-si/strings.xml @@ -231,4 +231,6 @@ "අංකය අවහිර නොකරන්න" "අයාචිත තැපෑල" "%1$s නොබැඳි අතර ළඟා වීමට නොහැකිය" + + diff --git a/java/com/android/dialer/app/res/values-sk/strings.xml b/java/com/android/dialer/app/res/values-sk/strings.xml index 25b8d74c5..b5f426938 100644 --- a/java/com/android/dialer/app/res/values-sk/strings.xml +++ b/java/com/android/dialer/app/res/values-sk/strings.xml @@ -235,4 +235,6 @@ "Zrušiť blokovanie čísla" "Spam" "%1$s je offline a nedá sa zastihnúť" + + 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 d5a22d5be..51ac390de 100644 --- a/java/com/android/dialer/app/res/values-sl/strings.xml +++ b/java/com/android/dialer/app/res/values-sl/strings.xml @@ -235,4 +235,6 @@ "Odblokiranje telefonske številke" "Vsiljena pošta" "Oseba %1$s nima vzpostavljene povezave in ni dosegljiva" + + 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 cfa84436f..8bc3e85be 100644 --- a/java/com/android/dialer/app/res/values-sq/strings.xml +++ b/java/com/android/dialer/app/res/values-sq/strings.xml @@ -233,4 +233,6 @@ "Zhblloko numrin" "E bezdisshme" "%1$s është jashtë linje dhe nuk mund të kontaktohet" + + 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 d8222da95..e7f7f912d 100644 --- a/java/com/android/dialer/app/res/values-sr/strings.xml +++ b/java/com/android/dialer/app/res/values-sr/strings.xml @@ -233,4 +233,6 @@ "Деблокирај број" "Непожељан" "%1$s је офлајн и не можете да га/је контактирате" + + diff --git a/java/com/android/dialer/app/res/values-sv/strings.xml b/java/com/android/dialer/app/res/values-sv/strings.xml index 47b215136..36616ce83 100644 --- a/java/com/android/dialer/app/res/values-sv/strings.xml +++ b/java/com/android/dialer/app/res/values-sv/strings.xml @@ -231,4 +231,6 @@ "Häv blockeringen av numret" "Spam" "%1$s är offline och går inte att nå" + + 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 1516b9a9c..fdbdd7d02 100644 --- a/java/com/android/dialer/app/res/values-sw/strings.xml +++ b/java/com/android/dialer/app/res/values-sw/strings.xml @@ -233,4 +233,6 @@ "Ondolea nambari kizuizi" "Taka" "%1$s hayuko mtandaoni na hapatikani" + + 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 5a80a2b4a..f7e1d19c4 100644 --- a/java/com/android/dialer/app/res/values-ta/strings.xml +++ b/java/com/android/dialer/app/res/values-ta/strings.xml @@ -231,4 +231,6 @@ "எண்ணை அனுமதி" "ஸ்பேம்" "%1$s ஆஃப்லைனில் உள்ளதால், தொடர்புகொள்ள முடியாது" + + diff --git a/java/com/android/dialer/app/res/values-te/strings.xml b/java/com/android/dialer/app/res/values-te/strings.xml index aea962527..babfb9a1e 100644 --- a/java/com/android/dialer/app/res/values-te/strings.xml +++ b/java/com/android/dialer/app/res/values-te/strings.xml @@ -231,4 +231,6 @@ "నంబర్‌ను అన్‌బ్లాక్ చేయి" "స్పామ్" "%1$s ఆఫ్‌లైన్‌లో ఉన్నందున వారిని చేరుకోవడం సాధ్యపడదు" + + diff --git a/java/com/android/dialer/app/res/values-th/strings.xml b/java/com/android/dialer/app/res/values-th/strings.xml index cecf217a1..4c2fd37b2 100644 --- a/java/com/android/dialer/app/res/values-th/strings.xml +++ b/java/com/android/dialer/app/res/values-th/strings.xml @@ -231,4 +231,6 @@ "เลิกบล็อกหมายเลข" "สแปม" "%1$s ออฟไลน์อยู่และไม่สามารถติดต่อได้" + + diff --git a/java/com/android/dialer/app/res/values-tl/strings.xml b/java/com/android/dialer/app/res/values-tl/strings.xml index d7408cb01..6afb11c1d 100644 --- a/java/com/android/dialer/app/res/values-tl/strings.xml +++ b/java/com/android/dialer/app/res/values-tl/strings.xml @@ -231,4 +231,6 @@ "Alisin sa pagkaka-block ang numero" "Spam" "Offline si %1$s at hindi makontak" + + 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 3c92206df..8b30d4bff 100644 --- a/java/com/android/dialer/app/res/values-tr/strings.xml +++ b/java/com/android/dialer/app/res/values-tr/strings.xml @@ -233,4 +233,6 @@ "Numaranın engellemesini kaldır" "Spam" "%1$s çevrimdışı olduğundan ulaşılamıyor" + + 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 5a1dfcc59..f1c5b3f37 100644 --- a/java/com/android/dialer/app/res/values-uk/strings.xml +++ b/java/com/android/dialer/app/res/values-uk/strings.xml @@ -235,4 +235,6 @@ "Розблокувати номер" "Спам" "%1$s не в мережі, неможливо встановити зв’язок" + + diff --git a/java/com/android/dialer/app/res/values-ur/strings.xml b/java/com/android/dialer/app/res/values-ur/strings.xml index eec7db062..b21281288 100644 --- a/java/com/android/dialer/app/res/values-ur/strings.xml +++ b/java/com/android/dialer/app/res/values-ur/strings.xml @@ -233,4 +233,6 @@ "نمبر غیر مسدود کریں" "سپام" "%1$s آف لائن ہے اور اس تک پہنچا نہیں جا سکتا" + + diff --git a/java/com/android/dialer/app/res/values-uz/strings.xml b/java/com/android/dialer/app/res/values-uz/strings.xml index 2a2b7afba..e52d2bdf7 100644 --- a/java/com/android/dialer/app/res/values-uz/strings.xml +++ b/java/com/android/dialer/app/res/values-uz/strings.xml @@ -233,4 +233,6 @@ "Raqamni blokdan chiqarish" "Spam" "%1$s hozir oflayn va u bilan bog‘lanishning imkoni yo‘q" + + 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 9def34a1e..66b346854 100644 --- a/java/com/android/dialer/app/res/values-vi/strings.xml +++ b/java/com/android/dialer/app/res/values-vi/strings.xml @@ -231,4 +231,6 @@ "Bỏ chặn số" "Spam" "%1$s ngoại tuyến và không liên hệ được" + + 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 c1b802979..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 @@ -231,4 +231,6 @@ "取消屏蔽号码" "骚扰电话号码" "%1$s不在线,无法接通" + + diff --git a/java/com/android/dialer/app/res/values-zh-rHK/strings.xml b/java/com/android/dialer/app/res/values-zh-rHK/strings.xml index 95b72f2b5..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 @@ -230,4 +230,6 @@ "解除封鎖號碼" "垃圾號碼" "%1$s已離線,無法取得聯繫" + + diff --git a/java/com/android/dialer/app/res/values-zh-rTW/strings.xml b/java/com/android/dialer/app/res/values-zh-rTW/strings.xml index c846980c1..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 @@ -233,4 +233,6 @@ "解除封鎖號碼" "騷擾/廣告電話" "%1$s已離線,無法接聽來電" + + diff --git a/java/com/android/dialer/app/res/values-zu/strings.xml b/java/com/android/dialer/app/res/values-zu/strings.xml index 07aa68d24..0d9957dda 100644 --- a/java/com/android/dialer/app/res/values-zu/strings.xml +++ b/java/com/android/dialer/app/res/values-zu/strings.xml @@ -231,4 +231,6 @@ "Vulela inombolo" "Ugaxekile" "U-%1$s akaxhunyiwe kwi-inthanethi futhi akakwazi ukufinyelelwa" + + diff --git a/java/com/android/dialer/app/res/values/strings.xml b/java/com/android/dialer/app/res/values/strings.xml index 174bbe17a..9e1fdeb5a 100644 --- a/java/com/android/dialer/app/res/values/strings.xml +++ b/java/com/android/dialer/app/res/values/strings.xml @@ -897,4 +897,7 @@ %1$s is offline and can\'t be reached + + About + diff --git a/java/com/android/dialer/app/settings/DialerSettingsActivity.java b/java/com/android/dialer/app/settings/DialerSettingsActivity.java index fae5ff3ee..f1c270ca9 100644 --- a/java/com/android/dialer/app/settings/DialerSettingsActivity.java +++ b/java/com/android/dialer/app/settings/DialerSettingsActivity.java @@ -32,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; @@ -136,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

target, boolean isPrimaryUser) { diff --git a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java index a7ef4f43a..9d07ec561 100644 --- a/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java +++ b/java/com/android/dialer/app/voicemail/LegacyVoicemailNotificationReceiver.java @@ -52,39 +52,32 @@ public class LegacyVoicemailNotificationReceiver extends BroadcastReceiver { PhoneAccountHandle phoneAccountHandle = Assert.isNotNull(intent.getParcelableExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE)); - // 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") - int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, 1); + int count = intent.getIntExtra(TelephonyManager.EXTRA_NOTIFICATION_COUNT, -1); - // Need credential encrypted storage to access preferences. - if (UserManagerCompat.isUserUnlocked(context)) { - PerAccountSharedPreferences preferences = - new PerAccountSharedPreferences( - context, phoneAccountHandle, PreferenceManager.getDefaultSharedPreferences(context)); - // Carriers may send multiple notifications for the same voicemail. - if (count != 0 && count == preferences.getInt(LEGACY_VOICEMAIL_COUNT, -1)) { - LogUtil.i( - "LegacyVoicemailNotificationReceiver.onReceive", - "voicemail count hasn't changed, ignoring"); - return; - } - preferences.edit().putInt(LEGACY_VOICEMAIL_COUNT, count).apply(); - } else { + if (!hasVoicemailCountChanged(context, phoneAccountHandle, count)) { LogUtil.i( "LegacyVoicemailNotificationReceiver.onReceive", - "User locked, bypassing voicemail count check"); + "voicemail count hasn't changed, ignoring"); + return; + } + + 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 (VoicemailComponent.get(context) - .getVoicemailClient() - .isActivated(context, phoneAccountHandle)) { + if (UserManagerCompat.isUserUnlocked(context) + && VoicemailComponent.get(context) + .getVoicemailClient() + .isActivated(context, phoneAccountHandle)) { LogUtil.i( "LegacyVoicemailNotificationReceiver.onReceive", "visual voicemail is activated, ignoring notification"); @@ -98,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, @@ -106,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 524873f6d..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; @@ -1051,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/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 12a2086d4..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() { diff --git a/java/com/android/dialer/blocking/FilteredNumbersUtil.java b/java/com/android/dialer/blocking/FilteredNumbersUtil.java index a95e8d789..3c001a2c2 100644 --- a/java/com/android/dialer/blocking/FilteredNumbersUtil.java +++ b/java/com/android/dialer/blocking/FilteredNumbersUtil.java @@ -37,6 +37,7 @@ 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; /** Utility to help with tasks related to filtered numbers. */ @@ -72,7 +73,7 @@ public class FilteredNumbersUtil { new AsyncTask() { @Override public Boolean doInBackground(Object... params) { - if (context == null || !PermissionsUtil.hasContactsPermissions(context)) { + if (context == null || !PermissionsUtil.hasContactsReadPermissions(context)) { return false; } @@ -186,7 +187,7 @@ public class FilteredNumbersUtil { } public static long getLastEmergencyCallTimeMillis(Context context) { - return PreferenceManager.getDefaultSharedPreferences(context) + return DialerUtils.getDefaultSharedPreferenceForDeviceProtectedStorageContext(context) .getLong(LAST_EMERGENCY_CALL_MS_PREF_KEY, 0); } 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"/> - \ No newline at end of file + 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/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 8f7a18edd..2fed4ef8a 100644 --- a/java/com/android/dialer/constants/ScheduledJobIds.java +++ b/java/com/android/dialer/constants/ScheduledJobIds.java @@ -31,6 +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 7b6033b65..348814281 100644 --- a/java/com/android/dialer/database/DialerDatabaseHelper.java +++ b/java/com/android/dialer/database/DialerDatabaseHelper.java @@ -333,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(); } } diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto index c3c160a42..541614623 100644 --- a/java/com/android/dialer/logging/dialer_impression.proto +++ b/java/com/android/dialer/logging/dialer_impression.proto @@ -360,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; diff --git a/java/com/android/dialer/notification/NotificationChannelManager.java b/java/com/android/dialer/notification/NotificationChannelManager.java index ef0f5f17a..599e5ca59 100644 --- a/java/com/android/dialer/notification/NotificationChannelManager.java +++ b/java/com/android/dialer/notification/NotificationChannelManager.java @@ -340,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); diff --git a/java/com/android/dialer/oem/CequintCallerIdManager.java b/java/com/android/dialer/oem/CequintCallerIdManager.java index 983be6c48..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; /** @@ -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 4ba5a72ec..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; @@ -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; } /** @@ -117,10 +129,10 @@ final class PersistentLogFileHandler { return byteBuffer.array(); } - private static final int getTotalSize(File[] files) { + private static int getTotalSize(File[] files) { int sum = 0; for (File file : files) { - sum += file.length(); + sum += (int) file.length(); } return sum; } @@ -195,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 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/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/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 @@ "Onbekend" + + "Telefoonhokkie" "Foon" + + 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 @@ "ያልታወቀ" + + "የሕዝብ ስልክ" "ስልክ" + + 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 @@ "غير معروف" + + "هاتف يعمل بالعملة" "الهاتف" + + 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 @@ "Naməlum" + + "Taksofon" "Telefon" + + 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 @@ "Nepoznato" + + "Telefonska govornica" "Telefon" + + 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 @@ "Невядомы" + + "Таксафон" "Тэлефон" + + 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 @@ "Неизвестен номер" + + "Обществен телефон" "Телефон" + + 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 @@ "অজানা" + + "পে ফোন" "ফোন" + + 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 @@ "Nepoznato" + + "Telefonska govornica" "Telefon" + + 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 @@ "Desconegut" + + "Telèfon públic" "Telèfon" + + 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 @@ "Neznámé" + + "Telefonní automat" "Telefon" + + 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 @@ "Ukendt" + + "Mønttelefon" "Opkald" + + 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 @@ "Unbekannt" + + "Münztelefon" "Telefon" + + 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 @@ "Άγνωστος" + + "Τηλέφωνο με χρέωση" "Τηλέφωνο" + + 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 @@ "Unknown" + + "Payphone" "Phone" + + 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 @@ "Unknown" + + "Payphone" "Phone" + + 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 @@ "Unknown" + + "Payphone" "Phone" + + 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 @@ "Desconocido" + + "Teléfono público" "Teléfono" + + 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 @@ "Desconocido" + + "Teléfono público" "Teléfono" + + 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 @@ "Tundmatu" + + "Telefoniautomaat" "Telefon" + + 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 @@ "Ezezaguna" + + "Telefono publikoa" "Telefonoa" + + 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 @@ "ناشناس" + + "تلفن عمومی" "تلفن" + + 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 @@ "Tuntematon" + + "Maksupuhelin" "Puhelin" + + 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 @@ "Inconnu" + + "Cabine téléphonique" "Téléphone" + + 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 @@ "Inconnu" + + "Cabine téléphonique" "Téléphone" + + 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 @@ "Descoñecido" + + "Teléfono público" "Teléfono" + + 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 @@ "અજાણ્યું" + + "પેફોન" "ફોન" + + 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 @@ "अज्ञात" + + "पे-फ़ोन" "फ़ोन" + + 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 @@ "Nepoznato" + + "Javna telefonska govornica" "Telefon" + + 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 @@ "Ismeretlen" + + "Nyilvános telefon" "Telefon" + + 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 @@ "Անհայտ" + + "Բջջային տերմինալ" "Հեռախոս" + + 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 @@ "Tidak diketahui" + + "Telepon Umum" "Telepon" + + 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 @@ "Óþekkt" + + "Símasjálfsali" "Sími" + + 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 @@ "Sconosciuto" + + "Cabina telefonica" "Telefono" + + 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 @@ "לא ידוע" + + "טלפון ציבורי" "טלפון" + + 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 @@ "不明" + + "公衆電話" "電話" + + 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 @@ "უცნობი" + + "გადახდის ტელეფონი" "ტელეფონი" + + 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 @@ "Белгісіз" + + "Автомат-телефон" "Телефон" + + 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 @@ "មិន​ស្គាល់" + + "ទូរស័ព្ទសាធារណៈ" "ទូរស័ព្ទ" + + 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 @@ "ಅಪರಿಚಿತ" + + "ಪೇಫೋನ್" "ಫೋನ್" + + 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 @@ "알 수 없음" + + "공중전화" "휴대전화" + + 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 @@ "Белгисиз" + + "Таксофон" "Телефон" + + 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 @@ "ບໍ່ຮູ້ຈັກ" + + "ຕູ້​ໂທ​ລະ​ສັບ​ສາ​ທາ​ລະ​ນະ" "ໂທລະສັບ" + + 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 @@ "Nežinomas" + + "Taksofonas" "Telefonas" + + 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 @@ "Nezināms" + + "Maksas tālrunis" "Tālrunis" + + 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 @@ "Непознато" + + "Говорница" "Телефон" + + 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 @@ "അജ്ഞാതം" + + "പണം നൽകി ഉപയോഗിക്കുന്ന ഫോൺ" "ഫോണ്‍" + + 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 @@ "Тодорхойгүй" + + "Payphone" "Утас" + + 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 @@ "अज्ञात" + + "सार्वजनिक फोन" "फोन" + + 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 @@ "Tidak diketahui" + + "Telefon Awam" "Telefon" + + 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 @@ "အကြောင်းအရာ မသိရှိ" + + "ငွေပေးရသည့်ဖုန်း" "ဖုန်း" + + 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 @@ "Ukjent" + + "Telefonkiosk" "Telefon" + + 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 @@ "अज्ञात" + + "पेफोन" "फोन" + + 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 @@ "Onbekend" + + "Telefooncel" "Telefoon" + + 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 @@ "Ukjent" + + "Telefonkiosk" "Telefon" + + 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 @@ "ਅਗਿਆਤ" + + "ਪੇਫੋਨ" "ਫੋਨ" + + 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 @@ "Nieznane" + + "Automat telefoniczny" "Telefon" + + 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 @@ "Desconhecido" + + "Telefone público" "Telefone" + + 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 @@ "Desconhecido" + + "Telefone público" "Telefone" + + 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 @@ "Desconhecido" + + "Telefone público" "Telefone" + + 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 @@ "Necunoscut" + + "Telefon public" "Telefon" + + 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 @@ "Неизвестно" + + "Телефон-автомат" "Телефон" + + 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 @@ "නොදනී" + + "පේෆෝනය" "දුරකථනය" + + 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 @@ "Neznáme" + + "Telefónny automat" "Telefón" + + 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 @@ "Neznano" + + "Telefonska govorilnica" "Telefon" + + 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 @@ "I panjohur" + + "Telefon me pagesë" "Telefoni" + + 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 @@ "Непознато" + + "Телефонска говорница" "Телефон" + + 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 @@ "Okänd" + + "Telefonautomat" "Telefon" + + 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 @@ "Haijulikani" + + "Simu ya kulipia" "Simu" + + 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 @@ "தெரியாதவர்" + + "கட்டணத் தொலைபேசி" "மொபைல்" + + 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 @@ "తెలియదు" + + "పే ఫోన్" "ఫోన్" + + 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 @@ "ไม่ทราบ" + + "โทรศัพท์สาธารณะ" "โทรศัพท์" + + 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 @@ "Di-kilala" + + "Payphone" "Telepono" + + 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 @@ "Bilinmiyor" + + "Ankesörlü telefon" "Telefon" + + 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 @@ "Невідомий" + + "Таксофон" "Телефон" + + 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 @@ "نامعلوم" + + "پے فون" "فون" + + 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 @@ "Noma’lum" + + "Taksofon" "Telefon" + + 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 @@ "Không xác định" + + "Điện thoại công cộng" "Điện thoại" + + 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 @@ "未知" + + "公用电话" "电话" + + 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 @@ "未知" + + "公共電話" "電話" + + 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 @@ "不明" + + "公用電話" "電話" + + 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 @@ "Akwaziwa" + + "Ucingo olufakwa imali" "Ifoni" + + 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 --> - + Unknown + + + %s %d + + Payphone Phone + + + Call 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/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 76a5d24a8..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() { @@ -737,7 +740,7 @@ public class CallCardPresenter mInCallScreen.setPrimary( new PrimaryInfo( number, - name, + mPrimary.updateNameIfRestricted(name), nameIsNumber, shouldShowLocationAsLabel(nameIsNumber, mPrimaryContactInfo.shouldShowLocation) ? mPrimaryContactInfo.location @@ -890,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/InCallActivity.java b/java/com/android/incallui/InCallActivity.java index e1e699011..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; @@ -487,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); diff --git a/java/com/android/incallui/InCallActivityCommon.java b/java/com/android/incallui/InCallActivityCommon.java index e6c74b0a9..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); } @@ -510,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) { @@ -584,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 a5ba31c50..9c8120c92 100644 --- a/java/com/android/incallui/InCallPresenter.java +++ b/java/com/android/incallui/InCallPresenter.java @@ -641,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 diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java index 4fb402caa..af541b0e5 100644 --- a/java/com/android/incallui/StatusBarNotifier.java +++ b/java/com/android/incallui/StatusBarNotifier.java @@ -1004,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/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/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/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 @@ -139,6 +139,9 @@ public class AnswerProximitySensor @Override public void onHandoverToWifiFailure() {} + @Override + public void onInternationalCallOnWifi() {} + @Override public void onDialerCallSessionModificationStateChange() {} diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java index 0bb16080b..34f0cc0d7 100644 --- a/java/com/android/incallui/call/CallList.java +++ b/java/com/android/incallui/call/CallList.java @@ -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 @@ -778,6 +784,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) { diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java index 3825e6e26..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; @@ -91,6 +92,13 @@ public class DialerCall implements VideoTechListener { "emergency_callback_window_millis"; 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 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/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java index b3b775be2..ed533be58 100644 --- a/java/com/android/incallui/contactgrid/ContactGridManager.java +++ b/java/com/android/incallui/contactgrid/ContactGridManager.java @@ -22,6 +22,7 @@ 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; @@ -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()); @@ -336,9 +339,27 @@ public class ContactGridManager { } 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/res/layout/incall_contactgrid_bottom_row.xml b/java/com/android/incallui/contactgrid/res/layout/incall_contactgrid_bottom_row.xml index ac378484b..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 @@ -20,6 +20,15 @@ android:id="@id/contactgrid_forwardIcon" style="@style/BottomRowIcon" android:src="@drawable/quantum_ic_forward_vd_theme_24"/> + + \ 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. + * + *

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

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

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

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

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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + + + + 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 @@ + + + + + + Show warning every time + + + You are calling an international number and charges may apply. + + \ 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 608634778..b7a960e35 100644 --- a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java +++ b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java @@ -495,7 +495,7 @@ public class SurfaceViewVideoCallFragment extends Fragment } private View[] getAllPreviewRelatedViews() { - return new View[] {previewRoot, mutePreviewOverlay}; + return new View[] {previewRoot}; } private int getOffsetTop(View view) { diff --git a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml index 1a2bc2429..c67246675 100644 --- a/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml +++ b/java/com/android/incallui/video/impl/res/layout/frag_videocall_surfaceview.xml @@ -14,7 +14,7 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License --> - - - + + - + diff --git a/java/com/android/incallui/video/impl/res/values-land/styles.xml b/java/com/android/incallui/video/impl/res/values-land/styles.xml index f60dbd1d6..a809708df 100644 --- a/java/com/android/incallui/video/impl/res/values-land/styles.xml +++ b/java/com/android/incallui/video/impl/res/values-land/styles.xml @@ -16,8 +16,7 @@ -->