intl-tel-input 18.2.0 → 18.3.0

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.
Files changed (418) hide show
  1. package/README.md +14 -10
  2. package/build/css/intlTelInput.css +5 -5
  3. package/build/css/intlTelInput.min.css +1 -1
  4. package/build/js/data.js +2 -2
  5. package/build/js/data.min.js +2 -2
  6. package/build/js/intlTelInput-jquery.js +12 -13
  7. package/build/js/intlTelInput-jquery.min.js +3 -3
  8. package/build/js/intlTelInput.js +12 -13
  9. package/build/js/intlTelInput.min.js +3 -3
  10. package/build/js/utils.js +147 -147
  11. package/composer.json +1 -1
  12. package/demo.html +1 -0
  13. package/grunt/replace.js +0 -3
  14. package/package.json +1 -1
  15. package/spec.html +2 -0
  16. package/src/css/intlTelInput.scss +6 -4
  17. package/src/js/data.js +1 -7
  18. package/src/js/intlTelInput.js +13 -15
  19. package/src/spec/helpers/helpers.js +1 -1
  20. package/src/spec/tests/options/useFullscreenPopup.js +45 -0
  21. package/third_party/libphonenumber/.github/dependabot.yml +16 -16
  22. package/third_party/libphonenumber/.github/workflows/codeql.yml +4 -4
  23. package/third_party/libphonenumber/.github/workflows/dependency-review.yml +2 -2
  24. package/third_party/libphonenumber/.github/workflows/scorecards.yml +2 -2
  25. package/third_party/libphonenumber/.github/workflows/unit-test.yml +3 -3
  26. package/third_party/libphonenumber/FAQ.md +0 -6
  27. package/third_party/libphonenumber/README.md +10 -2
  28. package/third_party/libphonenumber/cpp/CMakeLists.txt +1 -7
  29. package/third_party/libphonenumber/cpp/src/phonenumbers/alternate_format.cc +15 -15
  30. package/third_party/libphonenumber/cpp/src/phonenumbers/lite_metadata.cc +12079 -12165
  31. package/third_party/libphonenumber/cpp/src/phonenumbers/metadata.cc +13707 -13791
  32. package/third_party/libphonenumber/cpp/src/phonenumbers/short_metadata.cc +2394 -2389
  33. package/third_party/libphonenumber/java/build.xml +10 -1
  34. package/third_party/libphonenumber/java/carrier/pom.xml +6 -6
  35. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/212_en +0 -0
  36. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/216_en +0 -0
  37. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/221_en +0 -0
  38. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/228_en +0 -0
  39. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/229_en +0 -0
  40. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/230_en +0 -0
  41. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/237_en +0 -0
  42. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/250_en +0 -0
  43. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/262_en +0 -0
  44. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/30_en +0 -0
  45. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/371_en +0 -0
  46. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/385_en +0 -0
  47. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/389_en +0 -0
  48. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/39_en +0 -0
  49. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/40_en +0 -0
  50. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/41_en +0 -0
  51. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/423_en +0 -0
  52. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/43_en +0 -0
  53. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/45_en +0 -0
  54. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/46_en +0 -0
  55. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/47_en +0 -0
  56. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/49_en +0 -0
  57. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/502_en +0 -0
  58. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/503_en +0 -0
  59. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/51_en +0 -0
  60. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/53_en +0 -0
  61. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/56_en +0 -0
  62. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/57_en +0 -0
  63. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/592_en +0 -0
  64. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/60_en +0 -0
  65. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/61_en +0 -0
  66. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/64_en +0 -0
  67. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/65_en +0 -0
  68. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/683_en +0 -0
  69. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/81_en +0 -0
  70. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/82_en +0 -0
  71. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/82_ko +0 -0
  72. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/84_en +0 -0
  73. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_en +0 -0
  74. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh +0 -0
  75. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_zh_Hant +0 -0
  76. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/853_en +0 -0
  77. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_en +0 -0
  78. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_zh +0 -0
  79. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/90_en +0 -0
  80. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/92_en +0 -0
  81. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/966_en +0 -0
  82. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/972_en +0 -0
  83. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/973_en +0 -0
  84. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/992_en +0 -0
  85. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/995_en +0 -0
  86. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/996_en +0 -0
  87. package/third_party/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/998_en +0 -0
  88. package/third_party/libphonenumber/java/demo/pom.xml +9 -9
  89. package/third_party/libphonenumber/java/demoapp/README.md +51 -0
  90. package/third_party/libphonenumber/java/demoapp/app/build.gradle +45 -0
  91. package/third_party/libphonenumber/java/demoapp/app/src/main/AndroidManifest.xml +39 -0
  92. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/MyApplication.java +16 -0
  93. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/contacts/ContactsPermissionManagement.java +161 -0
  94. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/contacts/ContactsRead.java +62 -0
  95. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/contacts/ContactsWrite.java +59 -0
  96. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/main/CountryDropdown.java +203 -0
  97. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/main/MainActivity.java +226 -0
  98. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/phonenumbers/PhoneNumberFormatting.java +74 -0
  99. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/phonenumbers/PhoneNumberInApp.java +96 -0
  100. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/FormattableFragment.java +161 -0
  101. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/FormattableRvAdapter.java +157 -0
  102. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/NotFormattableFragment.java +119 -0
  103. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/NotFormattableRvAdapter.java +94 -0
  104. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/ResultActivity.java +102 -0
  105. package/third_party/libphonenumber/java/demoapp/app/src/main/java/com/google/phonenumbers/demoapp/result/ResultVpAdapter.java +72 -0
  106. package/third_party/libphonenumber/java/demoapp/app/src/main/res/drawable/ic_launcher_background.xml +32 -0
  107. package/third_party/libphonenumber/java/demoapp/app/src/main/res/drawable/ic_launcher_foreground.xml +16 -0
  108. package/third_party/libphonenumber/java/demoapp/app/src/main/res/drawable/ic_outline_home_30.xml +10 -0
  109. package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/activity_main.xml +83 -0
  110. package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/activity_result.xml +26 -0
  111. package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/country_dropdown.xml +24 -0
  112. package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/country_dropdown_item.xml +9 -0
  113. package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/formattable_list_item.xml +66 -0
  114. package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/fragment_formattable.xml +30 -0
  115. package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/fragment_not_formattable.xml +64 -0
  116. package/third_party/libphonenumber/java/demoapp/app/src/main/res/layout/not_formattable_list_item.xml +57 -0
  117. package/third_party/libphonenumber/java/demoapp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
  118. package/third_party/libphonenumber/java/demoapp/app/src/main/res/values/dimens.xml +9 -0
  119. package/third_party/libphonenumber/java/demoapp/app/src/main/res/values/strings.xml +48 -0
  120. package/third_party/libphonenumber/java/demoapp/app/src/main/res/values/themes.xml +4 -0
  121. package/third_party/libphonenumber/java/demoapp/app/src/main/res/values-night/themes.xml +4 -0
  122. package/third_party/libphonenumber/java/demoapp/app/src/test/java/com/google/phonenumbers/demoapp/phonenumbers/PhoneNumberFormattingTest.java +103 -0
  123. package/third_party/libphonenumber/java/demoapp/app/src/test/java/com/google/phonenumbers/demoapp/phonenumbers/PhoneNumberInAppTest.java +70 -0
  124. package/third_party/libphonenumber/java/demoapp/build.gradle +5 -0
  125. package/third_party/libphonenumber/java/demoapp/gradle.properties +21 -0
  126. package/third_party/libphonenumber/java/demoapp/settings.gradle +16 -0
  127. package/third_party/libphonenumber/java/geocoder/pom.xml +6 -6
  128. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1227_en +0 -0
  129. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1329_en +0 -0
  130. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1369_en +0 -0
  131. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1730_en +0 -0
  132. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1983_en +0 -0
  133. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_en +0 -0
  134. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_fr +0 -0
  135. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/267_en +0 -0
  136. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/299_en +0 -0
  137. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/44_en +0 -0
  138. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/52_en +0 -0
  139. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/53_en +0 -0
  140. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/598_en +0 -0
  141. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/61_en +0 -0
  142. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/975_en +0 -0
  143. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/config +0 -0
  144. package/third_party/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data +0 -0
  145. package/third_party/libphonenumber/java/internal/prefixmapper/pom.xml +5 -5
  146. package/third_party/libphonenumber/java/libphonenumber/pom.xml +4 -4
  147. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_84 +0 -0
  148. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_881 +0 -0
  149. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_883 +0 -0
  150. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM +0 -0
  151. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR +0 -0
  152. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU +0 -0
  153. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD +0 -0
  154. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH +0 -0
  155. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ +0 -0
  156. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL +0 -0
  157. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW +0 -0
  158. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC +0 -0
  159. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO +0 -0
  160. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU +0 -0
  161. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX +0 -0
  162. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE +0 -0
  163. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG +0 -0
  164. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH +0 -0
  165. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR +0 -0
  166. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB +0 -0
  167. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE +0 -0
  168. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF +0 -0
  169. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL +0 -0
  170. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP +0 -0
  171. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT +0 -0
  172. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU +0 -0
  173. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY +0 -0
  174. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK +0 -0
  175. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR +0 -0
  176. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL +0 -0
  177. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM +0 -0
  178. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP +0 -0
  179. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG +0 -0
  180. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR +0 -0
  181. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ +0 -0
  182. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI +0 -0
  183. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA +0 -0
  184. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF +0 -0
  185. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK +0 -0
  186. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ +0 -0
  187. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU +0 -0
  188. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX +0 -0
  189. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY +0 -0
  190. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO +0 -0
  191. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU +0 -0
  192. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ +0 -0
  193. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM +0 -0
  194. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA +0 -0
  195. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK +0 -0
  196. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL +0 -0
  197. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM +0 -0
  198. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE +0 -0
  199. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO +0 -0
  200. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU +0 -0
  201. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW +0 -0
  202. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA +0 -0
  203. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG +0 -0
  204. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ +0 -0
  205. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO +0 -0
  206. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV +0 -0
  207. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ +0 -0
  208. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN +0 -0
  209. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR +0 -0
  210. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG +0 -0
  211. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US +0 -0
  212. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY +0 -0
  213. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ +0 -0
  214. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN +0 -0
  215. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT +0 -0
  216. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GL +0 -0
  217. package/third_party/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JP +0 -0
  218. package/third_party/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +4 -3
  219. package/third_party/libphonenumber/java/pom.xml +13 -13
  220. package/third_party/libphonenumber/java/script/download-junit-jars.sh +26 -0
  221. package/third_party/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.js +217 -218
  222. package/third_party/libphonenumber/javascript/i18n/phonenumbers/metadata.js +160 -161
  223. package/third_party/libphonenumber/javascript/i18n/phonenumbers/metadatalite.js +160 -161
  224. package/third_party/libphonenumber/javascript/i18n/phonenumbers/shortnumbermetadata.js +8 -6
  225. package/third_party/libphonenumber/metadata/metadata.zip +0 -0
  226. package/third_party/libphonenumber/metadata/pom.xml +7 -7
  227. package/third_party/libphonenumber/metadata/src/main/java/com/google/i18n/phonenumbers/metadata/model/NumberingScheme.java +10 -3
  228. package/third_party/libphonenumber/migrator/migrator-servlet/pom.xml +5 -5
  229. package/third_party/libphonenumber/migrator/pom.xml +4 -4
  230. package/third_party/libphonenumber/release_notes.txt +93 -0
  231. package/third_party/libphonenumber/resources/PhoneNumberAlternateFormats.xml +1 -1
  232. package/third_party/libphonenumber/resources/PhoneNumberMetadata.xml +532 -620
  233. package/third_party/libphonenumber/resources/ShortNumberMetadata.xml +16 -4
  234. package/third_party/libphonenumber/resources/carrier/en/212.txt +1 -0
  235. package/third_party/libphonenumber/resources/carrier/en/216.txt +2 -6
  236. package/third_party/libphonenumber/resources/carrier/en/221.txt +1 -1
  237. package/third_party/libphonenumber/resources/carrier/en/228.txt +6 -6
  238. package/third_party/libphonenumber/resources/carrier/en/229.txt +5 -4
  239. package/third_party/libphonenumber/resources/carrier/en/230.txt +1 -0
  240. package/third_party/libphonenumber/resources/carrier/en/237.txt +6 -1
  241. package/third_party/libphonenumber/resources/carrier/en/250.txt +1 -0
  242. package/third_party/libphonenumber/resources/carrier/en/262.txt +36 -38
  243. package/third_party/libphonenumber/resources/carrier/en/30.txt +1 -0
  244. package/third_party/libphonenumber/resources/carrier/en/371.txt +5 -0
  245. package/third_party/libphonenumber/resources/carrier/en/385.txt +1 -0
  246. package/third_party/libphonenumber/resources/carrier/en/389.txt +1 -0
  247. package/third_party/libphonenumber/resources/carrier/en/39.txt +3 -0
  248. package/third_party/libphonenumber/resources/carrier/en/40.txt +1 -0
  249. package/third_party/libphonenumber/resources/carrier/en/41.txt +15 -3
  250. package/third_party/libphonenumber/resources/carrier/en/423.txt +2 -0
  251. package/third_party/libphonenumber/resources/carrier/en/43.txt +1 -0
  252. package/third_party/libphonenumber/resources/carrier/en/45.txt +9 -8
  253. package/third_party/libphonenumber/resources/carrier/en/46.txt +12 -14
  254. package/third_party/libphonenumber/resources/carrier/en/47.txt +0 -2
  255. package/third_party/libphonenumber/resources/carrier/en/49.txt +1 -1
  256. package/third_party/libphonenumber/resources/carrier/en/502.txt +1 -0
  257. package/third_party/libphonenumber/resources/carrier/en/503.txt +21 -2
  258. package/third_party/libphonenumber/resources/carrier/en/51.txt +2 -0
  259. package/third_party/libphonenumber/resources/carrier/en/53.txt +1 -0
  260. package/third_party/libphonenumber/resources/carrier/en/56.txt +1 -0
  261. package/third_party/libphonenumber/resources/carrier/en/57.txt +5 -0
  262. package/third_party/libphonenumber/resources/carrier/en/592.txt +21 -7
  263. package/third_party/libphonenumber/resources/carrier/en/60.txt +1 -0
  264. package/third_party/libphonenumber/resources/carrier/en/61.txt +4 -0
  265. package/third_party/libphonenumber/resources/carrier/en/64.txt +8 -0
  266. package/third_party/libphonenumber/resources/carrier/en/65.txt +8 -1
  267. package/third_party/libphonenumber/resources/carrier/en/683.txt +2 -0
  268. package/third_party/libphonenumber/resources/carrier/en/81.txt +14 -8
  269. package/third_party/libphonenumber/resources/carrier/en/82.txt +1 -0
  270. package/third_party/libphonenumber/resources/carrier/en/84.txt +2 -0
  271. package/third_party/libphonenumber/resources/carrier/en/852.txt +49 -35
  272. package/third_party/libphonenumber/resources/carrier/en/853.txt +5 -0
  273. package/third_party/libphonenumber/resources/carrier/en/86.txt +1 -1
  274. package/third_party/libphonenumber/resources/carrier/en/90.txt +2 -1
  275. package/third_party/libphonenumber/resources/carrier/en/92.txt +1 -0
  276. package/third_party/libphonenumber/resources/carrier/en/966.txt +1 -0
  277. package/third_party/libphonenumber/resources/carrier/en/972.txt +3 -2
  278. package/third_party/libphonenumber/resources/carrier/en/973.txt +3 -0
  279. package/third_party/libphonenumber/resources/carrier/en/992.txt +19 -5
  280. package/third_party/libphonenumber/resources/carrier/en/995.txt +1 -6
  281. package/third_party/libphonenumber/resources/carrier/en/996.txt +1 -0
  282. package/third_party/libphonenumber/resources/carrier/en/998.txt +1 -11
  283. package/third_party/libphonenumber/resources/carrier/ko/82.txt +1 -0
  284. package/third_party/libphonenumber/resources/carrier/zh/852.txt +49 -35
  285. package/third_party/libphonenumber/resources/carrier/zh/86.txt +1 -1
  286. package/third_party/libphonenumber/resources/geocoding/en/1.txt +5 -0
  287. package/third_party/libphonenumber/resources/geocoding/en/212.txt +13 -6
  288. package/third_party/libphonenumber/resources/geocoding/en/267.txt +1 -0
  289. package/third_party/libphonenumber/resources/geocoding/en/299.txt +1 -0
  290. package/third_party/libphonenumber/resources/geocoding/en/44.txt +15 -1
  291. package/third_party/libphonenumber/resources/geocoding/en/52.txt +1 -0
  292. package/third_party/libphonenumber/resources/geocoding/en/53.txt +1 -0
  293. package/third_party/libphonenumber/resources/geocoding/en/598.txt +1 -9
  294. package/third_party/libphonenumber/resources/geocoding/en/61.txt +19 -47
  295. package/third_party/libphonenumber/resources/geocoding/en/975.txt +3 -1
  296. package/third_party/libphonenumber/resources/geocoding/es/52.txt +1 -0
  297. package/third_party/libphonenumber/resources/geocoding/fr/212.txt +13 -6
  298. package/third_party/libphonenumber/resources/metadata/1/ranges.csv +9 -3
  299. package/third_party/libphonenumber/resources/metadata/20/formats.csv +1 -0
  300. package/third_party/libphonenumber/resources/metadata/20/ranges.csv +4 -4
  301. package/third_party/libphonenumber/resources/metadata/212/formats.csv +0 -1
  302. package/third_party/libphonenumber/resources/metadata/212/ranges.csv +106 -115
  303. package/third_party/libphonenumber/resources/metadata/216/operators.csv +0 -1
  304. package/third_party/libphonenumber/resources/metadata/216/ranges.csv +2 -1
  305. package/third_party/libphonenumber/resources/metadata/221/operators.csv +1 -1
  306. package/third_party/libphonenumber/resources/metadata/221/ranges.csv +1 -1
  307. package/third_party/libphonenumber/resources/metadata/228/operators.csv +1 -0
  308. package/third_party/libphonenumber/resources/metadata/228/ranges.csv +3 -2
  309. package/third_party/libphonenumber/resources/metadata/229/operators.csv +5 -5
  310. package/third_party/libphonenumber/resources/metadata/229/ranges.csv +58 -58
  311. package/third_party/libphonenumber/resources/metadata/230/ranges.csv +2 -1
  312. package/third_party/libphonenumber/resources/metadata/237/ranges.csv +2 -1
  313. package/third_party/libphonenumber/resources/metadata/250/operators.csv +5 -4
  314. package/third_party/libphonenumber/resources/metadata/250/ranges.csv +10 -9
  315. package/third_party/libphonenumber/resources/metadata/252/ranges.csv +1 -0
  316. package/third_party/libphonenumber/resources/metadata/256/ranges.csv +1 -2
  317. package/third_party/libphonenumber/resources/metadata/262/examples.csv +2 -0
  318. package/third_party/libphonenumber/resources/metadata/262/operators.csv +1 -1
  319. package/third_party/libphonenumber/resources/metadata/262/ranges.csv +22 -21
  320. package/third_party/libphonenumber/resources/metadata/267/ranges.csv +3 -2
  321. package/third_party/libphonenumber/resources/metadata/27/ranges.csv +24 -19
  322. package/third_party/libphonenumber/resources/metadata/299/ranges.csv +3 -2
  323. package/third_party/libphonenumber/resources/metadata/299/shortcodes.csv +4 -2
  324. package/third_party/libphonenumber/resources/metadata/30/ranges.csv +2 -1
  325. package/third_party/libphonenumber/resources/metadata/33/ranges.csv +31 -69
  326. package/third_party/libphonenumber/resources/metadata/353/ranges.csv +59 -70
  327. package/third_party/libphonenumber/resources/metadata/371/ranges.csv +2 -1
  328. package/third_party/libphonenumber/resources/metadata/372/ranges.csv +2 -1
  329. package/third_party/libphonenumber/resources/metadata/374/ranges.csv +1 -1
  330. package/third_party/libphonenumber/resources/metadata/385/operators.csv +1 -0
  331. package/third_party/libphonenumber/resources/metadata/385/ranges.csv +3 -0
  332. package/third_party/libphonenumber/resources/metadata/389/ranges.csv +2 -1
  333. package/third_party/libphonenumber/resources/metadata/39/operators.csv +1 -0
  334. package/third_party/libphonenumber/resources/metadata/39/ranges.csv +5 -1
  335. package/third_party/libphonenumber/resources/metadata/40/ranges.csv +2 -0
  336. package/third_party/libphonenumber/resources/metadata/41/operators.csv +3 -1
  337. package/third_party/libphonenumber/resources/metadata/41/ranges.csv +37 -34
  338. package/third_party/libphonenumber/resources/metadata/423/ranges.csv +2 -1
  339. package/third_party/libphonenumber/resources/metadata/43/operators.csv +1 -0
  340. package/third_party/libphonenumber/resources/metadata/43/ranges.csv +2 -1
  341. package/third_party/libphonenumber/resources/metadata/44/ranges.csv +1 -0
  342. package/third_party/libphonenumber/resources/metadata/45/operators.csv +1 -0
  343. package/third_party/libphonenumber/resources/metadata/45/ranges.csv +6 -2
  344. package/third_party/libphonenumber/resources/metadata/46/operators.csv +1 -0
  345. package/third_party/libphonenumber/resources/metadata/46/ranges.csv +9 -4
  346. package/third_party/libphonenumber/resources/metadata/47/ranges.csv +0 -3
  347. package/third_party/libphonenumber/resources/metadata/48/ranges.csv +1 -1
  348. package/third_party/libphonenumber/resources/metadata/49/operators.csv +1 -1
  349. package/third_party/libphonenumber/resources/metadata/49/ranges.csv +1 -2
  350. package/third_party/libphonenumber/resources/metadata/502/ranges.csv +1 -0
  351. package/third_party/libphonenumber/resources/metadata/503/operators.csv +1 -0
  352. package/third_party/libphonenumber/resources/metadata/503/ranges.csv +133 -248
  353. package/third_party/libphonenumber/resources/metadata/507/ranges.csv +2 -2
  354. package/third_party/libphonenumber/resources/metadata/508/ranges.csv +2 -1
  355. package/third_party/libphonenumber/resources/metadata/51/ranges.csv +2 -2
  356. package/third_party/libphonenumber/resources/metadata/52/ranges.csv +1 -0
  357. package/third_party/libphonenumber/resources/metadata/53/ranges.csv +2 -0
  358. package/third_party/libphonenumber/resources/metadata/54/ranges.csv +3 -1
  359. package/third_party/libphonenumber/resources/metadata/56/ranges.csv +2 -1
  360. package/third_party/libphonenumber/resources/metadata/57/operators.csv +2 -0
  361. package/third_party/libphonenumber/resources/metadata/57/ranges.csv +5 -2
  362. package/third_party/libphonenumber/resources/metadata/590/ranges.csv +2 -1
  363. package/third_party/libphonenumber/resources/metadata/592/examples.csv +1 -0
  364. package/third_party/libphonenumber/resources/metadata/592/operators.csv +5 -3
  365. package/third_party/libphonenumber/resources/metadata/592/ranges.csv +94 -82
  366. package/third_party/libphonenumber/resources/metadata/594/ranges.csv +3 -2
  367. package/third_party/libphonenumber/resources/metadata/596/ranges.csv +4 -2
  368. package/third_party/libphonenumber/resources/metadata/598/formats.csv +7 -6
  369. package/third_party/libphonenumber/resources/metadata/598/ranges.csv +37 -35
  370. package/third_party/libphonenumber/resources/metadata/60/ranges.csv +1 -0
  371. package/third_party/libphonenumber/resources/metadata/61/ranges.csv +23 -42
  372. package/third_party/libphonenumber/resources/metadata/64/examples.csv +0 -1
  373. package/third_party/libphonenumber/resources/metadata/64/ranges.csv +9 -6
  374. package/third_party/libphonenumber/resources/metadata/65/operators.csv +0 -1
  375. package/third_party/libphonenumber/resources/metadata/65/ranges.csv +6 -2
  376. package/third_party/libphonenumber/resources/metadata/683/ranges.csv +2 -0
  377. package/third_party/libphonenumber/resources/metadata/81/comments.csv +2 -0
  378. package/third_party/libphonenumber/resources/metadata/81/operators.csv +6 -5
  379. package/third_party/libphonenumber/resources/metadata/81/ranges.csv +979 -975
  380. package/third_party/libphonenumber/resources/metadata/81/shortcodes.csv +7 -6
  381. package/third_party/libphonenumber/resources/metadata/82/ranges.csv +1 -0
  382. package/third_party/libphonenumber/resources/metadata/84/ranges.csv +11 -9
  383. package/third_party/libphonenumber/resources/metadata/852/operators.csv +16 -18
  384. package/third_party/libphonenumber/resources/metadata/852/ranges.csv +224 -230
  385. package/third_party/libphonenumber/resources/metadata/853/ranges.csv +1 -2
  386. package/third_party/libphonenumber/resources/metadata/86/ranges.csv +3 -2
  387. package/third_party/libphonenumber/resources/metadata/880/comments.csv +1 -0
  388. package/third_party/libphonenumber/resources/metadata/880/ranges.csv +1 -0
  389. package/third_party/libphonenumber/resources/metadata/881/formats.csv +3 -2
  390. package/third_party/libphonenumber/resources/metadata/881/ranges.csv +6 -5
  391. package/third_party/libphonenumber/resources/metadata/883/ranges.csv +1 -0
  392. package/third_party/libphonenumber/resources/metadata/90/operators.csv +1 -0
  393. package/third_party/libphonenumber/resources/metadata/90/ranges.csv +2 -1
  394. package/third_party/libphonenumber/resources/metadata/92/ranges.csv +2 -0
  395. package/third_party/libphonenumber/resources/metadata/966/ranges.csv +1 -0
  396. package/third_party/libphonenumber/resources/metadata/968/ranges.csv +1 -1
  397. package/third_party/libphonenumber/resources/metadata/972/operators.csv +1 -0
  398. package/third_party/libphonenumber/resources/metadata/972/ranges.csv +6 -7
  399. package/third_party/libphonenumber/resources/metadata/973/operators.csv +1 -0
  400. package/third_party/libphonenumber/resources/metadata/973/ranges.csv +8 -1
  401. package/third_party/libphonenumber/resources/metadata/975/ranges.csv +4 -3
  402. package/third_party/libphonenumber/resources/metadata/992/operators.csv +6 -6
  403. package/third_party/libphonenumber/resources/metadata/992/ranges.csv +104 -102
  404. package/third_party/libphonenumber/resources/metadata/995/ranges.csv +4 -1
  405. package/third_party/libphonenumber/resources/metadata/996/operators.csv +9 -8
  406. package/third_party/libphonenumber/resources/metadata/996/ranges.csv +94 -93
  407. package/third_party/libphonenumber/resources/metadata/998/ranges.csv +2 -17
  408. package/third_party/libphonenumber/resources/metadata/metadata.csv +1 -1
  409. package/third_party/libphonenumber/resources/timezones/map_data.txt +10 -2
  410. package/third_party/libphonenumber/tools/cpp/CMakeLists.txt +0 -5
  411. package/third_party/libphonenumber/tools/java/common/pom.xml +3 -3
  412. package/third_party/libphonenumber/tools/java/cpp-build/pom.xml +6 -6
  413. package/third_party/libphonenumber/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  414. package/third_party/libphonenumber/tools/java/data/pom.xml +2 -2
  415. package/third_party/libphonenumber/tools/java/java-build/pom.xml +2 -2
  416. package/third_party/libphonenumber/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  417. package/third_party/libphonenumber/java/lib/junit-4.13.1.jar +0 -0
  418. 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
+ }