intl-tel-input 18.2.1 → 18.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/CONTRIBUTING.md +1 -1
- package/README.md +14 -10
- package/build/css/intlTelInput.css +3 -3
- package/build/css/intlTelInput.min.css +1 -1
- package/build/js/data.js +2 -2
- package/build/js/data.min.js +2 -2
- package/build/js/intlTelInput-jquery.js +13 -15
- package/build/js/intlTelInput-jquery.min.js +3 -3
- package/build/js/intlTelInput.js +13 -15
- package/build/js/intlTelInput.min.js +3 -3
- package/build/js/utils.js +147 -147
- package/composer.json +1 -1
- package/demo.html +1 -0
- package/grunt/replace.js +0 -3
- package/package.json +2 -2
- package/spec.html +2 -0
- package/src/css/intlTelInput.scss +2 -2
- package/src/js/data.js +1 -7
- package/src/js/intlTelInput.js +14 -17
- package/src/spec/helpers/helpers.js +1 -1
- package/src/spec/tests/options/useFullscreenPopup.js +45 -0
- package/third_party/libphonenumber/.github/dependabot.yml +16 -16
- package/third_party/libphonenumber/.github/workflows/codeql.yml +4 -4
- package/third_party/libphonenumber/.github/workflows/dependency-review.yml +2 -2
- package/third_party/libphonenumber/.github/workflows/scorecards.yml +2 -2
- package/third_party/libphonenumber/.github/workflows/unit-test.yml +3 -3
- package/third_party/libphonenumber/FAQ.md +0 -6
- package/third_party/libphonenumber/README.md +10 -2
- package/third_party/libphonenumber/cpp/CMakeLists.txt +1 -7
- package/third_party/libphonenumber/cpp/src/phonenumbers/alternate_format.cc +15 -15
- package/third_party/libphonenumber/cpp/src/phonenumbers/lite_metadata.cc +12079 -12165
- package/third_party/libphonenumber/cpp/src/phonenumbers/metadata.cc +13707 -13791
- package/third_party/libphonenumber/cpp/src/phonenumbers/short_metadata.cc +2394 -2389
- package/third_party/libphonenumber/java/build.xml +10 -1
- package/third_party/libphonenumber/java/carrier/pom.xml +6 -6
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/212_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/216_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/221_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/228_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/229_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/230_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/237_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/250_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/262_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/30_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/371_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/385_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/389_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/39_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/40_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/41_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/423_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/43_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/45_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/46_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/47_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/49_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/502_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/503_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/51_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/53_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/56_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/57_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/592_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/60_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/61_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/64_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/65_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/683_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/81_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/82_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/82_ko +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/84_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh_Hant +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/853_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_zh +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/90_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/92_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/966_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/972_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/973_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/992_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/995_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/996_en +0 -0
- package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/998_en +0 -0
- package/third_party/libphonenumber/java/demo/pom.xml +9 -9
- package/third_party/libphonenumber/java/demoapp/README.md +51 -0
- package/third_party/libphonenumber/java/demoapp/app/build.gradle +45 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/AndroidManifest.xml +39 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/MyApplication.java +16 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/contacts/ContactsPermissionManagement.java +161 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/contacts/ContactsRead.java +62 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/contacts/ContactsWrite.java +59 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/main/CountryDropdown.java +203 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/main/MainActivity.java +226 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/phonenumbers/PhoneNumberFormatting.java +74 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/phonenumbers/PhoneNumberInApp.java +96 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/FormattableFragment.java +161 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/FormattableRvAdapter.java +157 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/NotFormattableFragment.java +119 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/NotFormattableRvAdapter.java +94 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/ResultActivity.java +102 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/ResultVpAdapter.java +72 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/drawable/ic_launcher_background.xml +32 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/drawable/ic_launcher_foreground.xml +16 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/drawable/ic_outline_home_30.xml +10 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/activity_main.xml +83 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/activity_result.xml +26 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/country_dropdown.xml +24 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/country_dropdown_item.xml +9 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/formattable_list_item.xml +66 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/fragment_formattable.xml +30 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/fragment_not_formattable.xml +64 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/not_formattable_list_item.xml +57 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/values/dimens.xml +9 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/values/strings.xml +48 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/values/themes.xml +4 -0
- package/third_party/libphonenumber/java/demoapp/app/src/main/res/values-night/themes.xml +4 -0
- package/third_party/libphonenumber/java/demoapp/app/src/test/java/com/google/phonenumbers/demoapp/phonenumbers/PhoneNumberFormattingTest.java +103 -0
- package/third_party/libphonenumber/java/demoapp/app/src/test/java/com/google/phonenumbers/demoapp/phonenumbers/PhoneNumberInAppTest.java +70 -0
- package/third_party/libphonenumber/java/demoapp/build.gradle +5 -0
- package/third_party/libphonenumber/java/demoapp/gradle.properties +21 -0
- package/third_party/libphonenumber/java/demoapp/settings.gradle +16 -0
- package/third_party/libphonenumber/java/geocoder/pom.xml +6 -6
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1227_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1329_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1369_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1730_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1983_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_fr +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/267_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/299_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/44_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/52_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/53_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/598_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/61_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/975_en +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/config +0 -0
- package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data +0 -0
- package/third_party/libphonenumber/java/internal/prefixmapper/pom.xml +5 -5
- package/third_party/libphonenumber/java/libphonenumber/pom.xml +4 -4
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_84 +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_881 +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_883 +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GL +0 -0
- package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JP +0 -0
- package/third_party/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +4 -3
- package/third_party/libphonenumber/java/pom.xml +13 -13
- package/third_party/libphonenumber/java/script/download-junit-jars.sh +26 -0
- package/third_party/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.js +217 -218
- package/third_party/libphonenumber/javascript/i18n/phonenumbers/metadata.js +160 -161
- package/third_party/libphonenumber/javascript/i18n/phonenumbers/metadatalite.js +160 -161
- package/third_party/libphonenumber/javascript/i18n/phonenumbers/shortnumbermetadata.js +8 -6
- package/third_party/libphonenumber/metadata/metadata.zip +0 -0
- package/third_party/libphonenumber/metadata/pom.xml +7 -7
- package/third_party/libphonenumber/metadata/src/main/java/com/google/i18n/phonenumbers/metadata/model/NumberingScheme.java +10 -3
- package/third_party/libphonenumber/migrator/migrator-servlet/pom.xml +5 -5
- package/third_party/libphonenumber/migrator/pom.xml +4 -4
- package/third_party/libphonenumber/release_notes.txt +93 -0
- package/third_party/libphonenumber/resources/PhoneNumberAlternateFormats.xml +1 -1
- package/third_party/libphonenumber/resources/PhoneNumberMetadata.xml +532 -620
- package/third_party/libphonenumber/resources/ShortNumberMetadata.xml +16 -4
- package/third_party/libphonenumber/resources/carrier/en/212.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/216.txt +2 -6
- package/third_party/libphonenumber/resources/carrier/en/221.txt +1 -1
- package/third_party/libphonenumber/resources/carrier/en/228.txt +6 -6
- package/third_party/libphonenumber/resources/carrier/en/229.txt +5 -4
- package/third_party/libphonenumber/resources/carrier/en/230.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/237.txt +6 -1
- package/third_party/libphonenumber/resources/carrier/en/250.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/262.txt +36 -38
- package/third_party/libphonenumber/resources/carrier/en/30.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/371.txt +5 -0
- package/third_party/libphonenumber/resources/carrier/en/385.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/389.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/39.txt +3 -0
- package/third_party/libphonenumber/resources/carrier/en/40.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/41.txt +15 -3
- package/third_party/libphonenumber/resources/carrier/en/423.txt +2 -0
- package/third_party/libphonenumber/resources/carrier/en/43.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/45.txt +9 -8
- package/third_party/libphonenumber/resources/carrier/en/46.txt +12 -14
- package/third_party/libphonenumber/resources/carrier/en/47.txt +0 -2
- package/third_party/libphonenumber/resources/carrier/en/49.txt +1 -1
- package/third_party/libphonenumber/resources/carrier/en/502.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/503.txt +21 -2
- package/third_party/libphonenumber/resources/carrier/en/51.txt +2 -0
- package/third_party/libphonenumber/resources/carrier/en/53.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/56.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/57.txt +5 -0
- package/third_party/libphonenumber/resources/carrier/en/592.txt +21 -7
- package/third_party/libphonenumber/resources/carrier/en/60.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/61.txt +4 -0
- package/third_party/libphonenumber/resources/carrier/en/64.txt +8 -0
- package/third_party/libphonenumber/resources/carrier/en/65.txt +8 -1
- package/third_party/libphonenumber/resources/carrier/en/683.txt +2 -0
- package/third_party/libphonenumber/resources/carrier/en/81.txt +14 -8
- package/third_party/libphonenumber/resources/carrier/en/82.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/84.txt +2 -0
- package/third_party/libphonenumber/resources/carrier/en/852.txt +49 -35
- package/third_party/libphonenumber/resources/carrier/en/853.txt +5 -0
- package/third_party/libphonenumber/resources/carrier/en/86.txt +1 -1
- package/third_party/libphonenumber/resources/carrier/en/90.txt +2 -1
- package/third_party/libphonenumber/resources/carrier/en/92.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/966.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/972.txt +3 -2
- package/third_party/libphonenumber/resources/carrier/en/973.txt +3 -0
- package/third_party/libphonenumber/resources/carrier/en/992.txt +19 -5
- package/third_party/libphonenumber/resources/carrier/en/995.txt +1 -6
- package/third_party/libphonenumber/resources/carrier/en/996.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/en/998.txt +1 -11
- package/third_party/libphonenumber/resources/carrier/ko/82.txt +1 -0
- package/third_party/libphonenumber/resources/carrier/zh/852.txt +49 -35
- package/third_party/libphonenumber/resources/carrier/zh/86.txt +1 -1
- package/third_party/libphonenumber/resources/geocoding/en/1.txt +5 -0
- package/third_party/libphonenumber/resources/geocoding/en/212.txt +13 -6
- package/third_party/libphonenumber/resources/geocoding/en/267.txt +1 -0
- package/third_party/libphonenumber/resources/geocoding/en/299.txt +1 -0
- package/third_party/libphonenumber/resources/geocoding/en/44.txt +15 -1
- package/third_party/libphonenumber/resources/geocoding/en/52.txt +1 -0
- package/third_party/libphonenumber/resources/geocoding/en/53.txt +1 -0
- package/third_party/libphonenumber/resources/geocoding/en/598.txt +1 -9
- package/third_party/libphonenumber/resources/geocoding/en/61.txt +19 -47
- package/third_party/libphonenumber/resources/geocoding/en/975.txt +3 -1
- package/third_party/libphonenumber/resources/geocoding/es/52.txt +1 -0
- package/third_party/libphonenumber/resources/geocoding/fr/212.txt +13 -6
- package/third_party/libphonenumber/resources/metadata/1/ranges.csv +9 -3
- package/third_party/libphonenumber/resources/metadata/20/formats.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/20/ranges.csv +4 -4
- package/third_party/libphonenumber/resources/metadata/212/formats.csv +0 -1
- package/third_party/libphonenumber/resources/metadata/212/ranges.csv +106 -115
- package/third_party/libphonenumber/resources/metadata/216/operators.csv +0 -1
- package/third_party/libphonenumber/resources/metadata/216/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/221/operators.csv +1 -1
- package/third_party/libphonenumber/resources/metadata/221/ranges.csv +1 -1
- package/third_party/libphonenumber/resources/metadata/228/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/228/ranges.csv +3 -2
- package/third_party/libphonenumber/resources/metadata/229/operators.csv +5 -5
- package/third_party/libphonenumber/resources/metadata/229/ranges.csv +58 -58
- package/third_party/libphonenumber/resources/metadata/230/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/237/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/250/operators.csv +5 -4
- package/third_party/libphonenumber/resources/metadata/250/ranges.csv +10 -9
- package/third_party/libphonenumber/resources/metadata/252/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/256/ranges.csv +1 -2
- package/third_party/libphonenumber/resources/metadata/262/examples.csv +2 -0
- package/third_party/libphonenumber/resources/metadata/262/operators.csv +1 -1
- package/third_party/libphonenumber/resources/metadata/262/ranges.csv +22 -21
- package/third_party/libphonenumber/resources/metadata/267/ranges.csv +3 -2
- package/third_party/libphonenumber/resources/metadata/27/ranges.csv +24 -19
- package/third_party/libphonenumber/resources/metadata/299/ranges.csv +3 -2
- package/third_party/libphonenumber/resources/metadata/299/shortcodes.csv +4 -2
- package/third_party/libphonenumber/resources/metadata/30/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/33/ranges.csv +31 -69
- package/third_party/libphonenumber/resources/metadata/353/ranges.csv +59 -70
- package/third_party/libphonenumber/resources/metadata/371/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/372/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/374/ranges.csv +1 -1
- package/third_party/libphonenumber/resources/metadata/385/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/385/ranges.csv +3 -0
- package/third_party/libphonenumber/resources/metadata/389/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/39/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/39/ranges.csv +5 -1
- package/third_party/libphonenumber/resources/metadata/40/ranges.csv +2 -0
- package/third_party/libphonenumber/resources/metadata/41/operators.csv +3 -1
- package/third_party/libphonenumber/resources/metadata/41/ranges.csv +37 -34
- package/third_party/libphonenumber/resources/metadata/423/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/43/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/43/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/44/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/45/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/45/ranges.csv +6 -2
- package/third_party/libphonenumber/resources/metadata/46/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/46/ranges.csv +9 -4
- package/third_party/libphonenumber/resources/metadata/47/ranges.csv +0 -3
- package/third_party/libphonenumber/resources/metadata/48/ranges.csv +1 -1
- package/third_party/libphonenumber/resources/metadata/49/operators.csv +1 -1
- package/third_party/libphonenumber/resources/metadata/49/ranges.csv +1 -2
- package/third_party/libphonenumber/resources/metadata/502/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/503/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/503/ranges.csv +133 -248
- package/third_party/libphonenumber/resources/metadata/507/ranges.csv +2 -2
- package/third_party/libphonenumber/resources/metadata/508/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/51/ranges.csv +2 -2
- package/third_party/libphonenumber/resources/metadata/52/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/53/ranges.csv +2 -0
- package/third_party/libphonenumber/resources/metadata/54/ranges.csv +3 -1
- package/third_party/libphonenumber/resources/metadata/56/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/57/operators.csv +2 -0
- package/third_party/libphonenumber/resources/metadata/57/ranges.csv +5 -2
- package/third_party/libphonenumber/resources/metadata/590/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/592/examples.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/592/operators.csv +5 -3
- package/third_party/libphonenumber/resources/metadata/592/ranges.csv +94 -82
- package/third_party/libphonenumber/resources/metadata/594/ranges.csv +3 -2
- package/third_party/libphonenumber/resources/metadata/596/ranges.csv +4 -2
- package/third_party/libphonenumber/resources/metadata/598/formats.csv +7 -6
- package/third_party/libphonenumber/resources/metadata/598/ranges.csv +37 -35
- package/third_party/libphonenumber/resources/metadata/60/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/61/ranges.csv +23 -42
- package/third_party/libphonenumber/resources/metadata/64/examples.csv +0 -1
- package/third_party/libphonenumber/resources/metadata/64/ranges.csv +9 -6
- package/third_party/libphonenumber/resources/metadata/65/operators.csv +0 -1
- package/third_party/libphonenumber/resources/metadata/65/ranges.csv +6 -2
- package/third_party/libphonenumber/resources/metadata/683/ranges.csv +2 -0
- package/third_party/libphonenumber/resources/metadata/81/comments.csv +2 -0
- package/third_party/libphonenumber/resources/metadata/81/operators.csv +6 -5
- package/third_party/libphonenumber/resources/metadata/81/ranges.csv +979 -975
- package/third_party/libphonenumber/resources/metadata/81/shortcodes.csv +7 -6
- package/third_party/libphonenumber/resources/metadata/82/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/84/ranges.csv +11 -9
- package/third_party/libphonenumber/resources/metadata/852/operators.csv +16 -18
- package/third_party/libphonenumber/resources/metadata/852/ranges.csv +224 -230
- package/third_party/libphonenumber/resources/metadata/853/ranges.csv +1 -2
- package/third_party/libphonenumber/resources/metadata/86/ranges.csv +3 -2
- package/third_party/libphonenumber/resources/metadata/880/comments.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/880/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/881/formats.csv +3 -2
- package/third_party/libphonenumber/resources/metadata/881/ranges.csv +6 -5
- package/third_party/libphonenumber/resources/metadata/883/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/90/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/90/ranges.csv +2 -1
- package/third_party/libphonenumber/resources/metadata/92/ranges.csv +2 -0
- package/third_party/libphonenumber/resources/metadata/966/ranges.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/968/ranges.csv +1 -1
- package/third_party/libphonenumber/resources/metadata/972/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/972/ranges.csv +6 -7
- package/third_party/libphonenumber/resources/metadata/973/operators.csv +1 -0
- package/third_party/libphonenumber/resources/metadata/973/ranges.csv +8 -1
- package/third_party/libphonenumber/resources/metadata/975/ranges.csv +4 -3
- package/third_party/libphonenumber/resources/metadata/992/operators.csv +6 -6
- package/third_party/libphonenumber/resources/metadata/992/ranges.csv +104 -102
- package/third_party/libphonenumber/resources/metadata/995/ranges.csv +4 -1
- package/third_party/libphonenumber/resources/metadata/996/operators.csv +9 -8
- package/third_party/libphonenumber/resources/metadata/996/ranges.csv +94 -93
- package/third_party/libphonenumber/resources/metadata/998/ranges.csv +2 -17
- package/third_party/libphonenumber/resources/metadata/metadata.csv +1 -1
- package/third_party/libphonenumber/resources/timezones/map_data.txt +10 -2
- package/third_party/libphonenumber/tools/cpp/CMakeLists.txt +0 -5
- package/third_party/libphonenumber/tools/java/common/pom.xml +3 -3
- package/third_party/libphonenumber/tools/java/cpp-build/pom.xml +6 -6
- package/third_party/libphonenumber/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
- package/third_party/libphonenumber/tools/java/data/pom.xml +2 -2
- package/third_party/libphonenumber/tools/java/java-build/pom.xml +2 -2
- package/third_party/libphonenumber/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
- package/third_party/libphonenumber/java/lib/junit-4.13.1.jar +0 -0
- package/third_party/libphonenumber/java/lib/mockito-all-1.10.19.jar +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
package com.google.phonenumbers.demoapp.phonenumbers;
|
|
2
|
+
|
|
3
|
+
import java.io.Serializable;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Represents a phone number and the conversion of it in the app (between reading from and writing
|
|
7
|
+
* to contacts).
|
|
8
|
+
*/
|
|
9
|
+
public class PhoneNumberInApp implements Serializable, Comparable<PhoneNumberInApp> {
|
|
10
|
+
|
|
11
|
+
/** ID to identify the phone number in the device's contacts. */
|
|
12
|
+
private final String id;
|
|
13
|
+
/** Display name of the contact the phone number belongs to. */
|
|
14
|
+
private final String contactName;
|
|
15
|
+
|
|
16
|
+
/** Phone number as originally in contacts. */
|
|
17
|
+
private final String originalPhoneNumber;
|
|
18
|
+
/**
|
|
19
|
+
* The in E.164 formatted {@link PhoneNumberInApp#originalPhoneNumber} (e.g. {@code +41446681800})
|
|
20
|
+
* if formattable, else {@code null}.
|
|
21
|
+
*/
|
|
22
|
+
private String formattedPhoneNumber = null;
|
|
23
|
+
|
|
24
|
+
private FormattingState formattingState = FormattingState.PENDING;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Equal to the value of the checkbox in the UI. Only if {@code true} the phone number should be
|
|
28
|
+
* updated in the contacts.
|
|
29
|
+
*/
|
|
30
|
+
private boolean shouldContactBeUpdated = false;
|
|
31
|
+
|
|
32
|
+
public PhoneNumberInApp(String id, String contactName, String originalPhoneNumber) {
|
|
33
|
+
this.id = id;
|
|
34
|
+
this.contactName = contactName;
|
|
35
|
+
this.originalPhoneNumber = originalPhoneNumber;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public String getId() {
|
|
39
|
+
return id;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
public String getContactName() {
|
|
43
|
+
return contactName;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public String getOriginalPhoneNumber() {
|
|
47
|
+
return originalPhoneNumber;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public String getFormattedPhoneNumber() {
|
|
51
|
+
return formattedPhoneNumber;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public void setFormattedPhoneNumber(String formattedPhoneNumber) {
|
|
55
|
+
this.formattedPhoneNumber = formattedPhoneNumber;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public FormattingState getFormattingState() {
|
|
59
|
+
return formattingState;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public void setFormattingState(FormattingState formattingState) {
|
|
63
|
+
this.formattingState = formattingState;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public boolean shouldContactBeUpdated() {
|
|
67
|
+
return shouldContactBeUpdated;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
public void setShouldContactBeUpdated(boolean shouldContactBeUpdated) {
|
|
71
|
+
this.shouldContactBeUpdated = shouldContactBeUpdated;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@Override
|
|
75
|
+
public int compareTo(PhoneNumberInApp o) {
|
|
76
|
+
return getContactName().compareTo(o.getContactName());
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Represents the state the formatting of {@link PhoneNumberInApp#originalPhoneNumber} can be at.
|
|
81
|
+
*/
|
|
82
|
+
public enum FormattingState {
|
|
83
|
+
/** Used before the formatting is tried/done. */
|
|
84
|
+
PENDING,
|
|
85
|
+
/** Formatting completed to {@link PhoneNumberInApp#formattedPhoneNumber} without errors. */
|
|
86
|
+
COMPLETED,
|
|
87
|
+
/** Error while parsing the {@link PhoneNumberInApp#originalPhoneNumber}. */
|
|
88
|
+
PARSING_ERROR,
|
|
89
|
+
/** {@link PhoneNumberInApp#originalPhoneNumber} is a short number. */
|
|
90
|
+
NUMBER_IS_SHORT_NUMBER,
|
|
91
|
+
/** {@link PhoneNumberInApp#originalPhoneNumber} is not a valid number. */
|
|
92
|
+
NUMBER_IS_NOT_VALID,
|
|
93
|
+
/** {@link PhoneNumberInApp#originalPhoneNumber} is already in E.164 format. */
|
|
94
|
+
NUMBER_IS_ALREADY_IN_E164
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
package com.google.phonenumbers.demoapp.result;
|
|
2
|
+
|
|
3
|
+
import android.os.Bundle;
|
|
4
|
+
import android.view.LayoutInflater;
|
|
5
|
+
import android.view.View;
|
|
6
|
+
import android.view.ViewGroup;
|
|
7
|
+
import android.widget.Button;
|
|
8
|
+
import androidx.fragment.app.Fragment;
|
|
9
|
+
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
10
|
+
import androidx.recyclerview.widget.RecyclerView;
|
|
11
|
+
import com.google.android.material.snackbar.Snackbar;
|
|
12
|
+
import com.google.phonenumbers.demoapp.R;
|
|
13
|
+
import com.google.phonenumbers.demoapp.contacts.ContactsWrite;
|
|
14
|
+
import com.google.phonenumbers.demoapp.phonenumbers.PhoneNumberInApp;
|
|
15
|
+
import java.util.ArrayList;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Used to handle and process interactions from/with the "Formattable" results section in the result
|
|
19
|
+
* page UI of the app.
|
|
20
|
+
*/
|
|
21
|
+
public class FormattableFragment extends Fragment {
|
|
22
|
+
|
|
23
|
+
/** The fragment root view. */
|
|
24
|
+
private View root;
|
|
25
|
+
/** The RecyclerView containing the list. */
|
|
26
|
+
private RecyclerView recyclerView;
|
|
27
|
+
|
|
28
|
+
private Button btnUpdateSelected;
|
|
29
|
+
|
|
30
|
+
/** The sorted phone numbers the list currently contains. */
|
|
31
|
+
private ArrayList<PhoneNumberInApp> phoneNumbers;
|
|
32
|
+
|
|
33
|
+
public FormattableFragment(ArrayList<PhoneNumberInApp> phoneNumbers) {
|
|
34
|
+
this.phoneNumbers = phoneNumbers;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
@Override
|
|
38
|
+
public View onCreateView(
|
|
39
|
+
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
|
40
|
+
root = inflater.inflate(R.layout.fragment_formattable, container, false);
|
|
41
|
+
recyclerView = root.findViewById(R.id.recycler_view);
|
|
42
|
+
recyclerView.setLayoutManager(new LinearLayoutManager(root.getContext()));
|
|
43
|
+
|
|
44
|
+
btnUpdateSelected = root.findViewById(R.id.btn_update_selected);
|
|
45
|
+
btnUpdateSelected.setOnClickListener(v -> btnUpdateSelectedClicked());
|
|
46
|
+
|
|
47
|
+
reloadList();
|
|
48
|
+
return root;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Attempts to update the selected contacts and shows success or error based on the outcome.
|
|
53
|
+
* Called when the update selected button is clicked.
|
|
54
|
+
*/
|
|
55
|
+
private void btnUpdateSelectedClicked() {
|
|
56
|
+
updateUiState(UiState.PROCESSING);
|
|
57
|
+
|
|
58
|
+
// Get the most up to date list of phone numbers from the RecyclerView adapter.
|
|
59
|
+
if (recyclerView.getAdapter() == null) {
|
|
60
|
+
showErrorSnackbar();
|
|
61
|
+
updateUiState(UiState.SELECT_PHONE_NUMBERS);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
phoneNumbers = ((FormattableRvAdapter) recyclerView.getAdapter()).getAllPhoneNumbers();
|
|
65
|
+
|
|
66
|
+
// Create a sublist with all phone numbers that have the checkbox checked.
|
|
67
|
+
ArrayList<PhoneNumberInApp> phoneNumbersToUpdate = new ArrayList<>();
|
|
68
|
+
for (PhoneNumberInApp phoneNumber : phoneNumbers) {
|
|
69
|
+
if (phoneNumber.shouldContactBeUpdated()) {
|
|
70
|
+
phoneNumbersToUpdate.add(phoneNumber);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (phoneNumbersToUpdate.isEmpty()) {
|
|
75
|
+
showNoNumbersSelectedSnackbar();
|
|
76
|
+
updateUiState(UiState.SELECT_PHONE_NUMBERS);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
boolean errorWhileUpdatingPhoneNumbers =
|
|
81
|
+
!ContactsWrite.updatePhoneNumbers(phoneNumbersToUpdate, root.getContext());
|
|
82
|
+
if (errorWhileUpdatingPhoneNumbers) {
|
|
83
|
+
showErrorSnackbar();
|
|
84
|
+
updateUiState(UiState.SELECT_PHONE_NUMBERS);
|
|
85
|
+
} else {
|
|
86
|
+
showContactsWriteSuccessSnackbar();
|
|
87
|
+
phoneNumbers.removeAll(phoneNumbersToUpdate);
|
|
88
|
+
reloadList();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Shows a Snackbar informing that no numbers are selected. */
|
|
93
|
+
private void showNoNumbersSelectedSnackbar() {
|
|
94
|
+
Snackbar.make(root, R.string.formattable_no_numbers_selected_text, Snackbar.LENGTH_LONG).show();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/** Shows a Snackbar informing that the selected contacts were successfully written. */
|
|
98
|
+
private void showContactsWriteSuccessSnackbar() {
|
|
99
|
+
Snackbar.make(root, R.string.formattable_contacts_write_success_text, Snackbar.LENGTH_LONG)
|
|
100
|
+
.show();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Shows a Snackbar informing that there was an error (and the user should try again). */
|
|
104
|
+
private void showErrorSnackbar() {
|
|
105
|
+
Snackbar.make(root, R.string.formattable_error_text, Snackbar.LENGTH_LONG).show();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Reloads the UI so the list contains the phone numbers currently in {@link
|
|
110
|
+
* FormattableFragment#phoneNumbers}.
|
|
111
|
+
*/
|
|
112
|
+
private void reloadList() {
|
|
113
|
+
FormattableRvAdapter adapter = new FormattableRvAdapter(phoneNumbers, root.getContext());
|
|
114
|
+
recyclerView.setAdapter(adapter);
|
|
115
|
+
updateUiState(
|
|
116
|
+
phoneNumbers.isEmpty() ? UiState.NO_PHONE_NUMBERS_IN_LIST : UiState.SELECT_PHONE_NUMBERS);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Updates the UI to represent the param {@code uiState}.
|
|
121
|
+
*
|
|
122
|
+
* @param uiState State the UI should be changed to
|
|
123
|
+
*/
|
|
124
|
+
private void updateUiState(UiState uiState) {
|
|
125
|
+
// Specifically: btnUpdateSelected, and all CheckBoxes (of the list items)
|
|
126
|
+
boolean mainInteractionsEnabled = false;
|
|
127
|
+
|
|
128
|
+
switch (uiState) {
|
|
129
|
+
case SELECT_PHONE_NUMBERS:
|
|
130
|
+
default:
|
|
131
|
+
mainInteractionsEnabled = true;
|
|
132
|
+
btnUpdateSelected.setText(R.string.formattable_update_selected_text_default);
|
|
133
|
+
break;
|
|
134
|
+
case PROCESSING:
|
|
135
|
+
btnUpdateSelected.setText(R.string.formattable_update_selected_text_processing);
|
|
136
|
+
break;
|
|
137
|
+
case NO_PHONE_NUMBERS_IN_LIST:
|
|
138
|
+
btnUpdateSelected.setText(R.string.formattable_update_selected_text_default);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
btnUpdateSelected.setEnabled(mainInteractionsEnabled);
|
|
143
|
+
|
|
144
|
+
if (recyclerView.getAdapter() != null) {
|
|
145
|
+
((FormattableRvAdapter) recyclerView.getAdapter()).setAllEnabled(mainInteractionsEnabled);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** Represents the different states the UI of this fragment can become. */
|
|
150
|
+
enum UiState {
|
|
151
|
+
/** The user should select the phone numbers to update. */
|
|
152
|
+
SELECT_PHONE_NUMBERS,
|
|
153
|
+
/** Used when loading or processing. The UI is disabled for the user during this time. */
|
|
154
|
+
PROCESSING,
|
|
155
|
+
/**
|
|
156
|
+
* There are no phone number sin the list (the list is empty). Therefore the update selected
|
|
157
|
+
* button is disabled.
|
|
158
|
+
*/
|
|
159
|
+
NO_PHONE_NUMBERS_IN_LIST
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
package com.google.phonenumbers.demoapp.result;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.view.LayoutInflater;
|
|
5
|
+
import android.view.View;
|
|
6
|
+
import android.view.ViewGroup;
|
|
7
|
+
import android.widget.CheckBox;
|
|
8
|
+
import android.widget.TextView;
|
|
9
|
+
import androidx.annotation.NonNull;
|
|
10
|
+
import androidx.constraintlayout.widget.ConstraintLayout;
|
|
11
|
+
import androidx.recyclerview.widget.RecyclerView;
|
|
12
|
+
import com.google.phonenumbers.demoapp.R;
|
|
13
|
+
import com.google.phonenumbers.demoapp.phonenumbers.PhoneNumberInApp;
|
|
14
|
+
import java.util.ArrayList;
|
|
15
|
+
|
|
16
|
+
/** Adapter for the {@link RecyclerView} used in {@link FormattableFragment}. */
|
|
17
|
+
public class FormattableRvAdapter extends RecyclerView.Adapter<FormattableRvAdapter.ViewHolder> {
|
|
18
|
+
|
|
19
|
+
private final LayoutInflater layoutInflater;
|
|
20
|
+
|
|
21
|
+
/** List of the original version of {@link PhoneNumberInApp}s at the time of object creation. */
|
|
22
|
+
private final ArrayList<PhoneNumberInApp> originalPhoneNumbers;
|
|
23
|
+
|
|
24
|
+
/** List of all created {@link ViewHolder}s. */
|
|
25
|
+
private final ArrayList<ViewHolder> viewHolders = new ArrayList<>();
|
|
26
|
+
|
|
27
|
+
public FormattableRvAdapter(ArrayList<PhoneNumberInApp> phoneNumbers, Context context) {
|
|
28
|
+
this.originalPhoneNumbers = phoneNumbers;
|
|
29
|
+
this.layoutInflater = LayoutInflater.from(context);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@NonNull
|
|
33
|
+
@Override
|
|
34
|
+
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
|
35
|
+
View view = layoutInflater.inflate(R.layout.formattable_list_item, parent, false);
|
|
36
|
+
ViewHolder viewHolder = new ViewHolder(view);
|
|
37
|
+
viewHolders.add(viewHolder);
|
|
38
|
+
return viewHolder;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@Override
|
|
42
|
+
public void onViewRecycled(@NonNull ViewHolder holder) {
|
|
43
|
+
super.onViewRecycled(holder);
|
|
44
|
+
viewHolders.remove(holder);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@Override
|
|
48
|
+
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
|
|
49
|
+
if (position >= 0 && position < getItemCount()) {
|
|
50
|
+
viewHolder.setFromPhoneNumberInAppRepresentation(originalPhoneNumbers.get(position));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@Override
|
|
55
|
+
public int getItemCount() {
|
|
56
|
+
return originalPhoneNumbers.size();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Sets the enabled state for the checkbox of all list items.
|
|
61
|
+
*
|
|
62
|
+
* @param enabled boolean enable state to set
|
|
63
|
+
*/
|
|
64
|
+
public void setAllEnabled(boolean enabled) {
|
|
65
|
+
for (ViewHolder viewHolder : viewHolders) {
|
|
66
|
+
viewHolder.setEnabled(enabled);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Returns a list of all list items as {@link PhoneNumberInApp}s in the current state of the UI.
|
|
72
|
+
*
|
|
73
|
+
* @return ArrayList of all list items as {@link PhoneNumberInApp}s in the current state of the UI
|
|
74
|
+
*/
|
|
75
|
+
public ArrayList<PhoneNumberInApp> getAllPhoneNumbers() {
|
|
76
|
+
ArrayList<PhoneNumberInApp> phoneNumbers = new ArrayList<>();
|
|
77
|
+
for (ViewHolder viewHolder : viewHolders) {
|
|
78
|
+
phoneNumbers.add(viewHolder.getPhoneNumberInAppRepresentation());
|
|
79
|
+
}
|
|
80
|
+
return phoneNumbers;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** {@link RecyclerView.ViewHolder} specifically for a list item of a formattable phone number. */
|
|
84
|
+
public static class ViewHolder extends RecyclerView.ViewHolder {
|
|
85
|
+
|
|
86
|
+
/** Representation of the UI as a {@link PhoneNumberInApp}. */
|
|
87
|
+
private PhoneNumberInApp phoneNumberInAppRepresentation;
|
|
88
|
+
|
|
89
|
+
private final TextView tvContactName;
|
|
90
|
+
private final TextView tvOriginalPhoneNumber;
|
|
91
|
+
private final TextView tvArrow;
|
|
92
|
+
private final TextView tvFormattedPhoneNumber;
|
|
93
|
+
|
|
94
|
+
private final CheckBox checkBox;
|
|
95
|
+
|
|
96
|
+
public ViewHolder(View view) {
|
|
97
|
+
super(view);
|
|
98
|
+
ConstraintLayout clListItem = view.findViewById(R.id.cl_list_item);
|
|
99
|
+
clListItem.setOnClickListener(v -> toggleChecked());
|
|
100
|
+
|
|
101
|
+
tvContactName = view.findViewById(R.id.tv_contact_name);
|
|
102
|
+
tvOriginalPhoneNumber = view.findViewById(R.id.tv_original_phone_number);
|
|
103
|
+
tvArrow = view.findViewById(R.id.tv_arrow);
|
|
104
|
+
tvFormattedPhoneNumber = view.findViewById(R.id.tv_formatted_phone_number);
|
|
105
|
+
checkBox = view.findViewById(R.id.check_box);
|
|
106
|
+
|
|
107
|
+
checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> updateUiToMatchCheckBox());
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Sets the content of the view to the information of param {@code
|
|
112
|
+
* phoneNumberInAppRepresentation}.
|
|
113
|
+
*
|
|
114
|
+
* @param phoneNumberInAppRepresentation PhoneNumberInApp to set content of the view from
|
|
115
|
+
*/
|
|
116
|
+
public void setFromPhoneNumberInAppRepresentation(
|
|
117
|
+
PhoneNumberInApp phoneNumberInAppRepresentation) {
|
|
118
|
+
this.phoneNumberInAppRepresentation = phoneNumberInAppRepresentation;
|
|
119
|
+
tvContactName.setText(phoneNumberInAppRepresentation.getContactName());
|
|
120
|
+
tvOriginalPhoneNumber.setText(phoneNumberInAppRepresentation.getOriginalPhoneNumber());
|
|
121
|
+
String formattedPhoneNumber = phoneNumberInAppRepresentation.getFormattedPhoneNumber();
|
|
122
|
+
tvFormattedPhoneNumber.setText(formattedPhoneNumber != null ? formattedPhoneNumber : "");
|
|
123
|
+
checkBox.setChecked(phoneNumberInAppRepresentation.shouldContactBeUpdated());
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** Toggles the checked state of the {@link ViewHolder#checkBox} if it is enabled. */
|
|
127
|
+
private void toggleChecked() {
|
|
128
|
+
if (checkBox.isEnabled()) {
|
|
129
|
+
checkBox.toggle();
|
|
130
|
+
phoneNumberInAppRepresentation.setShouldContactBeUpdated(checkBox.isChecked());
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Update the rest of the UI elements to represent the checked state of {@link
|
|
136
|
+
* ViewHolder#checkBox} correctly.
|
|
137
|
+
*/
|
|
138
|
+
private void updateUiToMatchCheckBox() {
|
|
139
|
+
boolean isChecked = checkBox.isChecked();
|
|
140
|
+
tvArrow.setEnabled(isChecked);
|
|
141
|
+
tvFormattedPhoneNumber.setEnabled(isChecked);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Sets the enabled state of the {@link ViewHolder#checkBox}.
|
|
146
|
+
*
|
|
147
|
+
* @param enabled boolean whether the {@link ViewHolder#checkBox} should be enabled
|
|
148
|
+
*/
|
|
149
|
+
public void setEnabled(boolean enabled) {
|
|
150
|
+
checkBox.setEnabled(enabled);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
public PhoneNumberInApp getPhoneNumberInAppRepresentation() {
|
|
154
|
+
return phoneNumberInAppRepresentation;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
package com.google.phonenumbers.demoapp.result;
|
|
2
|
+
|
|
3
|
+
import android.os.Bundle;
|
|
4
|
+
import android.view.LayoutInflater;
|
|
5
|
+
import android.view.View;
|
|
6
|
+
import android.view.ViewGroup;
|
|
7
|
+
import androidx.fragment.app.Fragment;
|
|
8
|
+
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
9
|
+
import androidx.recyclerview.widget.RecyclerView;
|
|
10
|
+
import com.google.android.material.chip.Chip;
|
|
11
|
+
import com.google.android.material.snackbar.Snackbar;
|
|
12
|
+
import com.google.phonenumbers.demoapp.R;
|
|
13
|
+
import com.google.phonenumbers.demoapp.phonenumbers.PhoneNumberInApp;
|
|
14
|
+
import com.google.phonenumbers.demoapp.phonenumbers.PhoneNumberInApp.FormattingState;
|
|
15
|
+
import java.util.ArrayList;
|
|
16
|
+
import java.util.Arrays;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Used to handle and process interactions from/with the "Not formattable" results section in the
|
|
20
|
+
* result page UI of the app.
|
|
21
|
+
*/
|
|
22
|
+
public class NotFormattableFragment extends Fragment {
|
|
23
|
+
|
|
24
|
+
/** The fragment root view. */
|
|
25
|
+
private View root;
|
|
26
|
+
/** The RecyclerView containing the list. */
|
|
27
|
+
private RecyclerView recyclerView;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* The sorted phone numbers the list contains (some might not be visible in the UI due to the
|
|
31
|
+
* {@link NotFormattableFragment#appliedFilters}).
|
|
32
|
+
*/
|
|
33
|
+
private final ArrayList<PhoneNumberInApp> phoneNumbers;
|
|
34
|
+
|
|
35
|
+
/** The filters that are currently applied to the list. */
|
|
36
|
+
private final ArrayList<FormattingState> appliedFilters = new ArrayList<>();
|
|
37
|
+
|
|
38
|
+
public NotFormattableFragment(ArrayList<PhoneNumberInApp> phoneNumbers) {
|
|
39
|
+
this.phoneNumbers = phoneNumbers;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@Override
|
|
43
|
+
public View onCreateView(
|
|
44
|
+
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
|
45
|
+
root = inflater.inflate(R.layout.fragment_not_formattable, container, false);
|
|
46
|
+
recyclerView = root.findViewById(R.id.recycler_view);
|
|
47
|
+
recyclerView.setLayoutManager(new LinearLayoutManager(root.getContext()));
|
|
48
|
+
|
|
49
|
+
Chip chipParsingError = root.findViewById(R.id.chip_parsing_error);
|
|
50
|
+
connectChipToFormattingState(chipParsingError, FormattingState.PARSING_ERROR);
|
|
51
|
+
Chip chipShortNumber = root.findViewById(R.id.chip_short_number);
|
|
52
|
+
connectChipToFormattingState(chipShortNumber, FormattingState.NUMBER_IS_SHORT_NUMBER);
|
|
53
|
+
Chip chipAlreadyE164 = root.findViewById(R.id.chip_already_e164);
|
|
54
|
+
connectChipToFormattingState(chipAlreadyE164, FormattingState.NUMBER_IS_ALREADY_IN_E164);
|
|
55
|
+
Chip chipInvalidNumber = root.findViewById(R.id.chip_invalid_number);
|
|
56
|
+
connectChipToFormattingState(chipInvalidNumber, FormattingState.NUMBER_IS_NOT_VALID);
|
|
57
|
+
|
|
58
|
+
// Add add filters as they are all preselected in the UI
|
|
59
|
+
appliedFilters.addAll(
|
|
60
|
+
Arrays.asList(
|
|
61
|
+
FormattingState.PARSING_ERROR,
|
|
62
|
+
FormattingState.NUMBER_IS_SHORT_NUMBER,
|
|
63
|
+
FormattingState.NUMBER_IS_ALREADY_IN_E164,
|
|
64
|
+
FormattingState.NUMBER_IS_NOT_VALID));
|
|
65
|
+
// List only needs to be loaded if there are phone numbers.
|
|
66
|
+
if (!phoneNumbers.isEmpty()) {
|
|
67
|
+
reloadListWithFilters();
|
|
68
|
+
}
|
|
69
|
+
return root;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Sets up the param {@code chip} to add/remove the param {@code formattingState} from the {@link
|
|
74
|
+
* NotFormattableFragment#appliedFilters} list when it is checked/unchecked, and then reloads the
|
|
75
|
+
* phone number list.
|
|
76
|
+
*
|
|
77
|
+
* @param chip Chip of which to handle check/uncheck action
|
|
78
|
+
* @param formattingState FormattingState the param {@code chip} represents
|
|
79
|
+
*/
|
|
80
|
+
private void connectChipToFormattingState(Chip chip, FormattingState formattingState) {
|
|
81
|
+
chip.setOnCheckedChangeListener(
|
|
82
|
+
(buttonView, isChecked) -> {
|
|
83
|
+
if (isChecked) {
|
|
84
|
+
appliedFilters.add(formattingState);
|
|
85
|
+
} else {
|
|
86
|
+
appliedFilters.remove(formattingState);
|
|
87
|
+
}
|
|
88
|
+
reloadListWithFilters();
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Reloads the UI so the list contains the phone numbers matching the currently {@link
|
|
94
|
+
* NotFormattableFragment#appliedFilters}.
|
|
95
|
+
*/
|
|
96
|
+
private void reloadListWithFilters() {
|
|
97
|
+
ArrayList<PhoneNumberInApp> phoneNumbersToShow = new ArrayList<>();
|
|
98
|
+
for (PhoneNumberInApp phoneNumber : phoneNumbers) {
|
|
99
|
+
if (appliedFilters.contains(phoneNumber.getFormattingState())) {
|
|
100
|
+
phoneNumbersToShow.add(phoneNumber);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (phoneNumbersToShow.isEmpty()) {
|
|
105
|
+
showNoNumbersMatchFiltersSnackbar();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
NotFormattableRvAdapter adapter =
|
|
109
|
+
new NotFormattableRvAdapter(phoneNumbersToShow, root.getContext());
|
|
110
|
+
recyclerView.setAdapter(adapter);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/** Shows a Snackbar informing that no numbers match the selected filters. */
|
|
114
|
+
private void showNoNumbersMatchFiltersSnackbar() {
|
|
115
|
+
Snackbar.make(
|
|
116
|
+
root, R.string.not_formattable_no_numbers_match_filters_text, Snackbar.LENGTH_LONG)
|
|
117
|
+
.show();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
package com.google.phonenumbers.demoapp.result;
|
|
2
|
+
|
|
3
|
+
import android.content.Context;
|
|
4
|
+
import android.view.LayoutInflater;
|
|
5
|
+
import android.view.View;
|
|
6
|
+
import android.view.ViewGroup;
|
|
7
|
+
import android.widget.TextView;
|
|
8
|
+
import androidx.annotation.NonNull;
|
|
9
|
+
import androidx.recyclerview.widget.RecyclerView;
|
|
10
|
+
import com.google.phonenumbers.demoapp.R;
|
|
11
|
+
import com.google.phonenumbers.demoapp.phonenumbers.PhoneNumberInApp;
|
|
12
|
+
import java.util.ArrayList;
|
|
13
|
+
|
|
14
|
+
/** Adapter for the {@link RecyclerView} used in {@link NotFormattableFragment}. */
|
|
15
|
+
public class NotFormattableRvAdapter
|
|
16
|
+
extends RecyclerView.Adapter<NotFormattableRvAdapter.ViewHolder> {
|
|
17
|
+
|
|
18
|
+
private final LayoutInflater layoutInflater;
|
|
19
|
+
|
|
20
|
+
/** List of the original version of {@link PhoneNumberInApp}s at the time of object creation. */
|
|
21
|
+
private final ArrayList<PhoneNumberInApp> originalPhoneNumbers;
|
|
22
|
+
|
|
23
|
+
public NotFormattableRvAdapter(ArrayList<PhoneNumberInApp> phoneNumbers, Context context) {
|
|
24
|
+
this.originalPhoneNumbers = phoneNumbers;
|
|
25
|
+
this.layoutInflater = LayoutInflater.from(context);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@NonNull
|
|
29
|
+
@Override
|
|
30
|
+
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
|
31
|
+
View view = layoutInflater.inflate(R.layout.not_formattable_list_item, parent, false);
|
|
32
|
+
return new ViewHolder(view);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Override
|
|
36
|
+
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
|
|
37
|
+
if (position >= 0 && position < getItemCount()) {
|
|
38
|
+
viewHolder.setFromPhoneNumberInAppRepresentation(originalPhoneNumbers.get(position));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@Override
|
|
43
|
+
public int getItemCount() {
|
|
44
|
+
return originalPhoneNumbers.size();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* {@link RecyclerView.ViewHolder} specifically for a list item of a not formattable phone number.
|
|
49
|
+
*/
|
|
50
|
+
public static class ViewHolder extends RecyclerView.ViewHolder {
|
|
51
|
+
|
|
52
|
+
private final TextView tvContactName;
|
|
53
|
+
private final TextView tvReason;
|
|
54
|
+
private final TextView tvOriginalPhoneNumber;
|
|
55
|
+
|
|
56
|
+
public ViewHolder(View view) {
|
|
57
|
+
super(view);
|
|
58
|
+
tvContactName = view.findViewById(R.id.tv_contact_name);
|
|
59
|
+
tvReason = view.findViewById(R.id.tv_reason);
|
|
60
|
+
tvOriginalPhoneNumber = view.findViewById(R.id.tv_original_phone_number);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Sets the content of the view to the information of param {@code
|
|
65
|
+
* phoneNumberInAppRepresentation}.
|
|
66
|
+
*
|
|
67
|
+
* @param phoneNumberInAppRepresentation PhoneNumberInApp to set content of the view from
|
|
68
|
+
*/
|
|
69
|
+
public void setFromPhoneNumberInAppRepresentation(
|
|
70
|
+
PhoneNumberInApp phoneNumberInAppRepresentation) {
|
|
71
|
+
tvContactName.setText(phoneNumberInAppRepresentation.getContactName());
|
|
72
|
+
|
|
73
|
+
switch (phoneNumberInAppRepresentation.getFormattingState()) {
|
|
74
|
+
case PARSING_ERROR:
|
|
75
|
+
tvReason.setText(R.string.not_formattable_parsing_error_text);
|
|
76
|
+
break;
|
|
77
|
+
case NUMBER_IS_SHORT_NUMBER:
|
|
78
|
+
tvReason.setText(R.string.not_formattable_short_number_text);
|
|
79
|
+
break;
|
|
80
|
+
case NUMBER_IS_ALREADY_IN_E164:
|
|
81
|
+
tvReason.setText(R.string.not_formattable_already_e164_text);
|
|
82
|
+
break;
|
|
83
|
+
case NUMBER_IS_NOT_VALID:
|
|
84
|
+
tvReason.setText(R.string.not_formattable_invalid_number_text);
|
|
85
|
+
break;
|
|
86
|
+
default:
|
|
87
|
+
tvReason.setText(R.string.not_formattable_unknown_error_text);
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
tvOriginalPhoneNumber.setText(phoneNumberInAppRepresentation.getOriginalPhoneNumber());
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|