From 445a81760fbd30343513a37486c9f08068a846a8 Mon Sep 17 00:00:00 2001 From: Nathaniel Ogunye Date: Mon, 9 Jan 2023 07:39:03 +0100 Subject: [PATCH 1/4] 1. Removed dependency on pub.dev libphonenumber 2. Updated Google's Java libphonenumber package to latest --- .../.idea/libraries/Dart_Packages.xml | 104 ++++++------- .../.idea/libraries/Dart_SDK.xml | 39 +++-- .../.idea/workspace.xml | 33 +++- .../pubspec.lock | 49 +++--- .../.idea/libraries/Dart_Packages.xml | 128 +++++++--------- .../.idea/libraries/Dart_SDK.xml | 39 +++-- .../.idea/libraries/Flutter_Plugins.xml | 3 +- libphonenumber_plugin/.idea/workspace.xml | 32 +++- libphonenumber_plugin/android/build.gradle | 12 +- .../LibphonenumberPlugin.java | 143 ++++++++++++++++-- .../example/android/app/build.gradle | 5 +- .../android/app/src/debug/AndroidManifest.xml | 3 +- .../android/app/src/main/AndroidManifest.xml | 3 +- .../app/src/profile/AndroidManifest.xml | 3 +- .../example/android/build.gradle | 6 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- libphonenumber_plugin/example/pubspec.lock | 60 +++----- libphonenumber_plugin/pubspec.lock | 60 +++----- libphonenumber_plugin/pubspec.yaml | 2 - .../.idea/libraries/Dart_Packages.xml | 116 +++++++------- .../.idea/libraries/Dart_SDK.xml | 39 +++-- libphonenumber_web/.idea/workspace.xml | 35 ++++- libphonenumber_web/libphonenumber_web.iml | 2 +- libphonenumber_web/pubspec.lock | 51 +++---- 24 files changed, 540 insertions(+), 429 deletions(-) diff --git a/libphonenumber_platform_interface/.idea/libraries/Dart_Packages.xml b/libphonenumber_platform_interface/.idea/libraries/Dart_Packages.xml index 7441ace..1e3bd87 100644 --- a/libphonenumber_platform_interface/.idea/libraries/Dart_Packages.xml +++ b/libphonenumber_platform_interface/.idea/libraries/Dart_Packages.xml @@ -5,182 +5,174 @@ - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/libphonenumber_platform_interface/.idea/libraries/Dart_SDK.xml b/libphonenumber_platform_interface/.idea/libraries/Dart_SDK.xml index e450131..41e82d7 100644 --- a/libphonenumber_platform_interface/.idea/libraries/Dart_SDK.xml +++ b/libphonenumber_platform_interface/.idea/libraries/Dart_SDK.xml @@ -1,26 +1,25 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/libphonenumber_platform_interface/.idea/workspace.xml b/libphonenumber_platform_interface/.idea/workspace.xml index 285a965..f7fecfa 100644 --- a/libphonenumber_platform_interface/.idea/workspace.xml +++ b/libphonenumber_platform_interface/.idea/workspace.xml @@ -1,5 +1,8 @@ + + @@ -20,17 +23,30 @@ + + - - - + + + + + + + + + + + - + + + - + + - diff --git a/libphonenumber_platform_interface/pubspec.lock b/libphonenumber_platform_interface/pubspec.lock index d3c3392..805f1ae 100644 --- a/libphonenumber_platform_interface/pubspec.lock +++ b/libphonenumber_platform_interface/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.9.0" boolean_selector: dependency: transitive description: @@ -21,35 +21,28 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" + version: "1.2.1" clock: dependency: transitive description: name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.15.0" + version: "1.16.0" fake_async: dependency: transitive description: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -66,21 +59,28 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.12" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.2" plugin_platform_interface: dependency: "direct main" description: @@ -99,7 +99,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.1" + version: "1.9.0" stack_trace: dependency: transitive description: @@ -120,35 +120,28 @@ packages: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" + version: "0.4.12" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.2" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.17.0-0 <3.0.0" flutter: ">=1.20.0" diff --git a/libphonenumber_plugin/.idea/libraries/Dart_Packages.xml b/libphonenumber_plugin/.idea/libraries/Dart_Packages.xml index a90d3ee..0307faf 100644 --- a/libphonenumber_plugin/.idea/libraries/Dart_Packages.xml +++ b/libphonenumber_plugin/.idea/libraries/Dart_Packages.xml @@ -5,230 +5,214 @@ - - - - - - - - - - - - - - - - - - + - - + - - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libphonenumber_plugin/.idea/libraries/Dart_SDK.xml b/libphonenumber_plugin/.idea/libraries/Dart_SDK.xml index e450131..41e82d7 100644 --- a/libphonenumber_plugin/.idea/libraries/Dart_SDK.xml +++ b/libphonenumber_plugin/.idea/libraries/Dart_SDK.xml @@ -1,26 +1,25 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/libphonenumber_plugin/.idea/libraries/Flutter_Plugins.xml b/libphonenumber_plugin/.idea/libraries/Flutter_Plugins.xml index 6fcf1c9..29954a1 100644 --- a/libphonenumber_plugin/.idea/libraries/Flutter_Plugins.xml +++ b/libphonenumber_plugin/.idea/libraries/Flutter_Plugins.xml @@ -2,8 +2,7 @@ - - + diff --git a/libphonenumber_plugin/.idea/workspace.xml b/libphonenumber_plugin/.idea/workspace.xml index fe9f8dc..6483aa9 100644 --- a/libphonenumber_plugin/.idea/workspace.xml +++ b/libphonenumber_plugin/.idea/workspace.xml @@ -23,20 +23,45 @@ + + + + + + + + + + + + + + + + + + + + + + + - - + + + + @@ -47,7 +72,9 @@ + + @@ -87,6 +114,5 @@ - \ No newline at end of file diff --git a/libphonenumber_plugin/android/build.gradle b/libphonenumber_plugin/android/build.gradle index 440f017..da89519 100644 --- a/libphonenumber_plugin/android/build.gradle +++ b/libphonenumber_plugin/android/build.gradle @@ -4,30 +4,32 @@ version '1.0' buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:4.1.3' } } rootProject.allprojects { repositories { google() - jcenter() + mavenCentral() } } apply plugin: 'com.android.library' android { - compileSdkVersion 30 + compileSdkVersion 33 defaultConfig { minSdkVersion 16 } + dependencies { - compileOnly rootProject.findProject(":libphonenumber") + api 'com.googlecode.libphonenumber:libphonenumber:8.13.4' + api 'com.googlecode.libphonenumber:carrier:1.188' } } diff --git a/libphonenumber_plugin/android/src/main/java/com/example/libphonenumber_plugin/LibphonenumberPlugin.java b/libphonenumber_plugin/android/src/main/java/com/example/libphonenumber_plugin/LibphonenumberPlugin.java index 1a7b3e4..af5fd02 100644 --- a/libphonenumber_plugin/android/src/main/java/com/example/libphonenumber_plugin/LibphonenumberPlugin.java +++ b/libphonenumber_plugin/android/src/main/java/com/example/libphonenumber_plugin/LibphonenumberPlugin.java @@ -2,7 +2,14 @@ import androidx.annotation.NonNull; +import com.google.i18n.phonenumbers.AsYouTypeFormatter; +import com.google.i18n.phonenumbers.NumberParseException; +import com.google.i18n.phonenumbers.PhoneNumberToCarrierMapper; +import com.google.i18n.phonenumbers.PhoneNumberUtil; +import com.google.i18n.phonenumbers.Phonenumber; + import java.util.HashMap; +import java.util.Locale; import java.util.Map; import io.flutter.embedding.engine.plugins.FlutterPlugin; @@ -21,14 +28,14 @@ public class LibphonenumberPlugin implements FlutterPlugin, MethodCallHandler { /// when the Flutter Engine is detached from the Activity private MethodChannel channel; - private com.codeheadlabs.libphonenumber.LibphonenumberPlugin libphonenumberPlugin; + private static final PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); + private static final PhoneNumberToCarrierMapper phoneNumberToCarrierMapper = PhoneNumberToCarrierMapper.getInstance(); + @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "plugin.libphonenumber"); channel.setMethodCallHandler(this); - - libphonenumberPlugin = new com.codeheadlabs.libphonenumber.LibphonenumberPlugin(); } @Override @@ -40,12 +47,22 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { switch (call.method) { case "isValidPhoneNumber": + handleIsValidPhoneNumber(call, result); + break; case "getNameForNumber": + handleGetNameForNumber(call, result); + break; case "normalizePhoneNumber": + handleNormalizePhoneNumber(call, result); + break; case "getRegionInfo": + handleGetRegionInfo(call, result); + break; case "getNumberType": + handleGetNumberType(call, result); + break; case "formatAsYouType": - onDirectMethodCall(call, result); + handleFormatAsYouType(call, result); break; default: result.notImplemented(); @@ -53,17 +70,123 @@ public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { } } - private void onDirectMethodCall(MethodCall call, Result result) { + private void handleIsValidPhoneNumber(MethodCall call, Result result) { + String phoneNumber = call.argument("phoneNumber"); + String isoCode = call.argument("isoCode"); + + try { + Phonenumber.PhoneNumber p = phoneUtil.parse(phoneNumber, isoCode); + result.success(phoneNumberToCarrierMapper.getNameForNumber(p, Locale.getDefault())); + } catch (NumberParseException e) { + result.error("NumberParseException", e.getMessage(), null); + } + } + + private void handleGetNameForNumber(MethodCall call, Result result) { + String phoneNumber = call.argument("phoneNumber"); + String isoCode = call.argument("isoCode"); + + try { + Phonenumber.PhoneNumber p = phoneUtil.parse(phoneNumber, isoCode); + result.success(phoneUtil.isValidNumber(p)); + } catch (NumberParseException e) { + result.error("NumberParseException", e.getMessage(), null); + } + } + + private void handleNormalizePhoneNumber(MethodCall call, Result result) { + String phoneNumber = call.argument("phoneNumber"); + String isoCode = call.argument("isoCode"); + + try { + Phonenumber.PhoneNumber p = phoneUtil.parse(phoneNumber, isoCode); + final String normalized = phoneUtil.format(p, PhoneNumberUtil.PhoneNumberFormat.E164); + result.success(normalized); + } catch (NumberParseException e) { + result.error("NumberParseException", e.getMessage(), null); + } + } + + private void handleGetRegionInfo(MethodCall call, Result result) { String phoneNumber = call.argument("phoneNumber"); String isoCode = call.argument("isoCode"); - Map arguments = new HashMap<>(); - arguments.put("phone_number", phoneNumber); - arguments.put("iso_code", isoCode); + try { + Phonenumber.PhoneNumber p = phoneUtil.parse(phoneNumber, isoCode); + String regionCode = phoneUtil.getRegionCodeForNumber(p); + String countryCode = String.valueOf(p.getCountryCode()); + String formattedNumber = phoneUtil.format(p, PhoneNumberUtil.PhoneNumberFormat.NATIONAL); + Map resultMap = new HashMap<>(); + resultMap.put("isoCode", regionCode); + resultMap.put("regionCode", countryCode); + resultMap.put("formattedPhoneNumber", formattedNumber); + result.success(resultMap); + } catch (NumberParseException e) { + result.error("NumberParseException", e.getMessage(), null); + } + } - final MethodCall methodCall = new MethodCall(call.method, arguments); + private void handleGetNumberType(MethodCall call, Result result) { + String phoneNumber = call.argument("phoneNumber"); + String isoCode = call.argument("isoCode"); + try { + Phonenumber.PhoneNumber p = phoneUtil.parse(phoneNumber, isoCode); + PhoneNumberUtil.PhoneNumberType t = phoneUtil.getNumberType(p); + + switch (t) { + case FIXED_LINE: + result.success(0); + break; + case MOBILE: + result.success(1); + break; + case FIXED_LINE_OR_MOBILE: + result.success(2); + break; + case TOLL_FREE: + result.success(3); + break; + case PREMIUM_RATE: + result.success(4); + break; + case SHARED_COST: + result.success(5); + break; + case VOIP: + result.success(6); + break; + case PERSONAL_NUMBER: + result.success(7); + break; + case PAGER: + result.success(8); + break; + case UAN: + result.success(9); + break; + case VOICEMAIL: + result.success(10); + break; + case UNKNOWN: + result.success(-1); + break; + } + } catch (NumberParseException e) { + result.error("NumberParseException", e.getMessage(), null); + } + } + + private void handleFormatAsYouType(MethodCall call, Result result) { + String phoneNumber = call.argument("phoneNumber"); + String isoCode = call.argument("isoCode"); + + AsYouTypeFormatter asYouTypeFormatter = phoneUtil.getAsYouTypeFormatter(isoCode); + String data = null; + for (int i = 0; i < (phoneNumber != null ? phoneNumber.length() : 0); i++) { + data = asYouTypeFormatter.inputDigit(phoneNumber.charAt(i)); + } - libphonenumberPlugin.onMethodCall(methodCall, result); + result.success(data); } } diff --git a/libphonenumber_plugin/example/android/app/build.gradle b/libphonenumber_plugin/example/android/app/build.gradle index f487afc..2a71392 100644 --- a/libphonenumber_plugin/example/android/app/build.gradle +++ b/libphonenumber_plugin/example/android/app/build.gradle @@ -25,13 +25,13 @@ apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 30 + compileSdkVersion 33 defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.libphonenumber_plugin_example" minSdkVersion 16 - targetSdkVersion 30 + targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -43,6 +43,7 @@ android { signingConfig signingConfigs.debug } } + namespace 'com.example.libphonenumber_plugin_example' } flutter { diff --git a/libphonenumber_plugin/example/android/app/src/debug/AndroidManifest.xml b/libphonenumber_plugin/example/android/app/src/debug/AndroidManifest.xml index 8929d33..f880684 100644 --- a/libphonenumber_plugin/example/android/app/src/debug/AndroidManifest.xml +++ b/libphonenumber_plugin/example/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/libphonenumber_plugin/example/android/app/src/main/AndroidManifest.xml b/libphonenumber_plugin/example/android/app/src/main/AndroidManifest.xml index b0e43b9..b469a1c 100644 --- a/libphonenumber_plugin/example/android/app/src/main/AndroidManifest.xml +++ b/libphonenumber_plugin/example/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/libphonenumber_plugin/example/android/app/src/profile/AndroidManifest.xml b/libphonenumber_plugin/example/android/app/src/profile/AndroidManifest.xml index 8929d33..f880684 100644 --- a/libphonenumber_plugin/example/android/app/src/profile/AndroidManifest.xml +++ b/libphonenumber_plugin/example/android/app/src/profile/AndroidManifest.xml @@ -1,5 +1,4 @@ - + diff --git a/libphonenumber_plugin/example/android/build.gradle b/libphonenumber_plugin/example/android/build.gradle index c9e3db0..3593d96 100644 --- a/libphonenumber_plugin/example/android/build.gradle +++ b/libphonenumber_plugin/example/android/build.gradle @@ -1,18 +1,18 @@ buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:7.3.1' } } allprojects { repositories { google() - jcenter() + mavenCentral() } } diff --git a/libphonenumber_plugin/example/android/gradle/wrapper/gradle-wrapper.properties b/libphonenumber_plugin/example/android/gradle/wrapper/gradle-wrapper.properties index bc6a58a..cc5527d 100644 --- a/libphonenumber_plugin/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/libphonenumber_plugin/example/android/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/libphonenumber_plugin/example/pubspec.lock b/libphonenumber_plugin/example/pubspec.lock index 225d473..feef30f 100644 --- a/libphonenumber_plugin/example/pubspec.lock +++ b/libphonenumber_plugin/example/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.9.0" boolean_selector: dependency: transitive description: @@ -21,28 +21,21 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" + version: "1.2.1" clock: dependency: transitive description: name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.15.0" + version: "1.16.0" cupertino_icons: dependency: "direct main" description: @@ -56,7 +49,7 @@ packages: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -78,14 +71,7 @@ packages: name: js url: "https://pub.dartlang.org" source: hosted - version: "0.6.3" - libphonenumber: - dependency: transitive - description: - name: libphonenumber - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.2" + version: "0.6.4" libphonenumber_platform_interface: dependency: transitive description: @@ -113,21 +99,28 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.12" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.2" plugin_platform_interface: dependency: transitive description: @@ -146,7 +139,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.1" + version: "1.9.0" stack_trace: dependency: transitive description: @@ -167,35 +160,28 @@ packages: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" + version: "0.4.12" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.2" sdks: - dart: ">=2.12.0 <3.0.0" - flutter: ">=2.0.0" + dart: ">=2.17.0-0 <3.0.0" + flutter: ">=1.20.0" diff --git a/libphonenumber_plugin/pubspec.lock b/libphonenumber_plugin/pubspec.lock index 6de609d..1ba8e3c 100644 --- a/libphonenumber_plugin/pubspec.lock +++ b/libphonenumber_plugin/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.9.0" boolean_selector: dependency: transitive description: @@ -21,35 +21,28 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" + version: "1.2.1" clock: dependency: transitive description: name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.15.0" + version: "1.16.0" fake_async: dependency: transitive description: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -71,14 +64,7 @@ packages: name: js url: "https://pub.dartlang.org" source: hosted - version: "0.6.3" - libphonenumber: - dependency: "direct main" - description: - name: libphonenumber - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.2" + version: "0.6.4" libphonenumber_platform_interface: dependency: "direct main" description: @@ -99,21 +85,28 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.12" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.2" plugin_platform_interface: dependency: transitive description: @@ -132,7 +125,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.1" + version: "1.9.0" stack_trace: dependency: transitive description: @@ -153,35 +146,28 @@ packages: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" + version: "0.4.12" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.2" sdks: - dart: ">=2.12.0 <3.0.0" - flutter: ">=2.0.0" + dart: ">=2.17.0-0 <3.0.0" + flutter: ">=1.20.0" diff --git a/libphonenumber_plugin/pubspec.yaml b/libphonenumber_plugin/pubspec.yaml index b82b50e..90375ae 100644 --- a/libphonenumber_plugin/pubspec.yaml +++ b/libphonenumber_plugin/pubspec.yaml @@ -17,8 +17,6 @@ dependencies: libphonenumber_web: ^0.2.0+1 - libphonenumber: ^2.0.2 - dev_dependencies: flutter_test: sdk: flutter diff --git a/libphonenumber_web/.idea/libraries/Dart_Packages.xml b/libphonenumber_web/.idea/libraries/Dart_Packages.xml index 8a2f19f..28d1ad2 100644 --- a/libphonenumber_web/.idea/libraries/Dart_Packages.xml +++ b/libphonenumber_web/.idea/libraries/Dart_Packages.xml @@ -5,206 +5,198 @@ - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libphonenumber_web/.idea/libraries/Dart_SDK.xml b/libphonenumber_web/.idea/libraries/Dart_SDK.xml index e450131..41e82d7 100644 --- a/libphonenumber_web/.idea/libraries/Dart_SDK.xml +++ b/libphonenumber_web/.idea/libraries/Dart_SDK.xml @@ -1,26 +1,25 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/libphonenumber_web/.idea/workspace.xml b/libphonenumber_web/.idea/workspace.xml index 3bbad6e..318ea21 100644 --- a/libphonenumber_web/.idea/workspace.xml +++ b/libphonenumber_web/.idea/workspace.xml @@ -1,5 +1,8 @@ + + @@ -20,17 +23,30 @@ + + - - - + + + + + + + + + + + - + + + - + + - diff --git a/libphonenumber_web/libphonenumber_web.iml b/libphonenumber_web/libphonenumber_web.iml index 30e17ca..6d23324 100644 --- a/libphonenumber_web/libphonenumber_web.iml +++ b/libphonenumber_web/libphonenumber_web.iml @@ -13,8 +13,8 @@ - + \ No newline at end of file diff --git a/libphonenumber_web/pubspec.lock b/libphonenumber_web/pubspec.lock index 677564f..5bf75a0 100644 --- a/libphonenumber_web/pubspec.lock +++ b/libphonenumber_web/pubspec.lock @@ -7,7 +7,7 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.8.1" + version: "2.9.0" boolean_selector: dependency: transitive description: @@ -21,35 +21,28 @@ packages: name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.1" + version: "1.2.1" clock: dependency: transitive description: name: clock url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: transitive description: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.15.0" + version: "1.16.0" fake_async: dependency: transitive description: name: fake_async url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -71,7 +64,7 @@ packages: name: js url: "https://pub.dartlang.org" source: hosted - version: "0.6.3" + version: "0.6.4" libphonenumber_platform_interface: dependency: "direct main" description: @@ -85,21 +78,28 @@ packages: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.10" + version: "0.12.12" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.8.0" + version: "1.8.2" plugin_platform_interface: dependency: transitive description: @@ -118,7 +118,7 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.8.1" + version: "1.9.0" stack_trace: dependency: transitive description: @@ -139,35 +139,28 @@ packages: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.1.1" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.4.2" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" + version: "0.4.12" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.2" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.17.0-0 <3.0.0" flutter: ">=1.20.0" From 0c857300913f9325362f60a7c16343703ac92888 Mon Sep 17 00:00:00 2001 From: Nathaniel Ogunye Date: Mon, 9 Jan 2023 08:03:46 +0100 Subject: [PATCH 2/4] 1. Removed dependency on pub.dev libphonenumber 2. Updated Google's Java libphonenumber package to latest --- .../.idea/workspace.xml | 22 +---------- libphonenumber_plugin/.idea/workspace.xml | 36 ++++++++---------- .../LibphonenumberPlugin.java | 4 +- libphonenumber_plugin/example/.metadata | 32 ++++++++++++++-- .../example/analysis_options.yaml | 29 ++++++++++++++ .../android/app/src/main/AndroidManifest.xml | 29 +++++++------- libphonenumber_plugin/example/lib/main.dart | 9 +++-- .../example/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes .../example/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes libphonenumber_web/.idea/workspace.xml | 22 +---------- 10 files changed, 100 insertions(+), 83 deletions(-) create mode 100644 libphonenumber_plugin/example/analysis_options.yaml create mode 100644 libphonenumber_plugin/example/web/icons/Icon-maskable-192.png create mode 100644 libphonenumber_plugin/example/web/icons/Icon-maskable-512.png diff --git a/libphonenumber_platform_interface/.idea/workspace.xml b/libphonenumber_platform_interface/.idea/workspace.xml index f7fecfa..bc76605 100644 --- a/libphonenumber_platform_interface/.idea/workspace.xml +++ b/libphonenumber_platform_interface/.idea/workspace.xml @@ -23,30 +23,12 @@ - - - - - - - - - - + - - - - - - - - + - - - - - + - - - - - - - - - @@ -121,6 +117,7 @@ - \ No newline at end of file diff --git a/libphonenumber_plugin/assets/js/libphonenumber.js b/libphonenumber_plugin/assets/js/libphonenumber.js index b4ab572..5cebcde 100644 --- a/libphonenumber_plugin/assets/js/libphonenumber.js +++ b/libphonenumber_plugin/assets/js/libphonenumber.js @@ -5,19 +5,23 @@ Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ -var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.createTemplateTagFirstArg=function(a){return a.raw=a};$jscomp.createTemplateTagFirstArgWithRaw=function(a,b){a.raw=b;return a};$jscomp.checkStringArgs=function(a,b,c){if(null==a)throw new TypeError("The 'this' value for String.prototype."+c+" must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype."+c+" must not be a regular expression");return a+""};$jscomp.ASSUME_ES5=!1; -$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a}; +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.createTemplateTagFirstArg=function(a){return a.raw=a};$jscomp.createTemplateTagFirstArgWithRaw=function(a,b){a.raw=b;return a};$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b=e}},"es6","es3"); -$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e=f}},"es6","es3"); -$jscomp.polyfill("String.prototype.repeat",function(a){return a?a:function(b){var c=$jscomp.checkStringArgs(this,null,"repeat");if(0>b||1342177279>>=1)c+=c;return d}},"es6","es3");$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b=f}},"es6","es3"); +$jscomp.polyfill("String.prototype.repeat",function(a){return a?a:function(b){var c=$jscomp.checkStringArgs(this,null,"repeat");if(0>b||1342177279>>=1)c+=c;return d}},"es6","es3");$jscomp.initSymbol=function(){}; $jscomp.polyfill("Symbol",function(a){if(a)return a;var b=function(e,f){this.$jscomp$symbol$id_=e;$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:f})};b.prototype.toString=function(){return this.$jscomp$symbol$id_};var c=0,d=function(e){if(this instanceof d)throw new TypeError("Symbol is not a constructor");return new b("jscomp_symbol_"+(e||"")+"_"+c++,e)};return d},"es6","es3"); $jscomp.polyfill("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;cc&&(c=Math.max(c+e,0));c=b.length?0:this.getNumberType(a)==i18n.phonenumbers.PhoneNumberType.MOBILE&&(a=i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken(a.getCountryCodeOrDefault()),""!=a)?b[2].length+ -a.length:b[1].length};i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken=function(a){return i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_[a]||""};i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedRegions=function(){return module$contents$goog$array_filter(Object.keys(i18n.phonenumbers.metadata.countryToMetadata),function(a){return isNaN(a)})}; -i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedGlobalNetworkCallingCodes=function(){var a=module$contents$goog$array_filter(Object.keys(i18n.phonenumbers.metadata.countryToMetadata),function(b){return!isNaN(b)});return module$contents$goog$array_map(a,function(b){return parseInt(b,10)})}; -i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedCallingCodes=function(){var a=Object.keys(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap);return module$contents$goog$array_join(this.getSupportedGlobalNetworkCallingCodes(),module$contents$goog$array_map(a,function(b){return parseInt(b,10)}))};i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_=function(a){return null!=a&&(1!=a.possibleLengthCount()||-1!=a.possibleLengthArray()[0])}; +a.length:b[1].length};i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken=function(a){return i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_[a]||""};i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedRegions=function(){return Object.keys(i18n.phonenumbers.metadata.countryToMetadata).filter(function(a){return isNaN(a)})}; +i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedGlobalNetworkCallingCodes=function(){return Object.keys(i18n.phonenumbers.metadata.countryToMetadata).filter(function(a){return!isNaN(a)}).map(function(a){return parseInt(a,10)})}; +i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedCallingCodes=function(){var a=Object.keys(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap);return[].concat($jscomp.arrayFromIterable(this.getSupportedGlobalNetworkCallingCodes()),$jscomp.arrayFromIterable(a.map(function(b){return parseInt(b,10)})))};i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_=function(a){return null!=a&&(1!=a.possibleLengthCount()||-1!=a.possibleLengthArray()[0])}; i18n.phonenumbers.PhoneNumberUtil.descHasData_=function(a){return null!=a&&(a.hasExampleNumber()||i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(a)||a.hasNationalNumberPattern())}; i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_=function(a){var b=[];goog.object.forEach(i18n.phonenumbers.PhoneNumberType,function(c){if(c!=i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE&&c!=i18n.phonenumbers.PhoneNumberType.UNKNOWN){var d=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(a,c);i18n.phonenumbers.PhoneNumberUtil.descHasData_(d)&&b.push(c)}});return b}; i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForRegion=function(a){return this.isValidRegionCode_(a)?i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(this.getMetadataForRegion(a)):[]};i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForNonGeoEntity=function(a){a=this.getMetadataForNonGeographicalRegion(a);return null==a?[]:i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(a)}; i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_=function(a,b,c){for(var d=new goog.string.StringBuffer,e,f,g=a.length,h=0;ha?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT:e[e.length-1]a?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT:e[e.length-1] { String regionCode = 'MA'; var formattedNumber = - await PhoneNumberUtil.getNameForNumber(phoneNumber, regionCode); + await PhoneNumberUtil.formatAsYouType(phoneNumber, regionCode); var valid = await PhoneNumberUtil.isValidPhoneNumber(phoneNumber, regionCode); diff --git a/libphonenumber_plugin/lib/js/libphonenumber.js b/libphonenumber_plugin/lib/js/libphonenumber.js index b4ab572..5cebcde 100644 --- a/libphonenumber_plugin/lib/js/libphonenumber.js +++ b/libphonenumber_plugin/lib/js/libphonenumber.js @@ -5,19 +5,23 @@ Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ -var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.createTemplateTagFirstArg=function(a){return a.raw=a};$jscomp.createTemplateTagFirstArgWithRaw=function(a,b){a.raw=b;return a};$jscomp.checkStringArgs=function(a,b,c){if(null==a)throw new TypeError("The 'this' value for String.prototype."+c+" must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype."+c+" must not be a regular expression");return a+""};$jscomp.ASSUME_ES5=!1; -$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a}; +var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.createTemplateTagFirstArg=function(a){return a.raw=a};$jscomp.createTemplateTagFirstArgWithRaw=function(a,b){a.raw=b;return a};$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b=e}},"es6","es3"); -$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e=f}},"es6","es3"); -$jscomp.polyfill("String.prototype.repeat",function(a){return a?a:function(b){var c=$jscomp.checkStringArgs(this,null,"repeat");if(0>b||1342177279>>=1)c+=c;return d}},"es6","es3");$jscomp.arrayIteratorImpl=function(a){var b=0;return function(){return b=f}},"es6","es3"); +$jscomp.polyfill("String.prototype.repeat",function(a){return a?a:function(b){var c=$jscomp.checkStringArgs(this,null,"repeat");if(0>b||1342177279>>=1)c+=c;return d}},"es6","es3");$jscomp.initSymbol=function(){}; $jscomp.polyfill("Symbol",function(a){if(a)return a;var b=function(e,f){this.$jscomp$symbol$id_=e;$jscomp.defineProperty(this,"description",{configurable:!0,writable:!0,value:f})};b.prototype.toString=function(){return this.$jscomp$symbol$id_};var c=0,d=function(e){if(this instanceof d)throw new TypeError("Symbol is not a constructor");return new b("jscomp_symbol_"+(e||"")+"_"+c++,e)};return d},"es6","es3"); $jscomp.polyfill("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;cc&&(c=Math.max(c+e,0));c=b.length?0:this.getNumberType(a)==i18n.phonenumbers.PhoneNumberType.MOBILE&&(a=i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken(a.getCountryCodeOrDefault()),""!=a)?b[2].length+ -a.length:b[1].length};i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken=function(a){return i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_[a]||""};i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedRegions=function(){return module$contents$goog$array_filter(Object.keys(i18n.phonenumbers.metadata.countryToMetadata),function(a){return isNaN(a)})}; -i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedGlobalNetworkCallingCodes=function(){var a=module$contents$goog$array_filter(Object.keys(i18n.phonenumbers.metadata.countryToMetadata),function(b){return!isNaN(b)});return module$contents$goog$array_map(a,function(b){return parseInt(b,10)})}; -i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedCallingCodes=function(){var a=Object.keys(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap);return module$contents$goog$array_join(this.getSupportedGlobalNetworkCallingCodes(),module$contents$goog$array_map(a,function(b){return parseInt(b,10)}))};i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_=function(a){return null!=a&&(1!=a.possibleLengthCount()||-1!=a.possibleLengthArray()[0])}; +a.length:b[1].length};i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken=function(a){return i18n.phonenumbers.PhoneNumberUtil.MOBILE_TOKEN_MAPPINGS_[a]||""};i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedRegions=function(){return Object.keys(i18n.phonenumbers.metadata.countryToMetadata).filter(function(a){return isNaN(a)})}; +i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedGlobalNetworkCallingCodes=function(){return Object.keys(i18n.phonenumbers.metadata.countryToMetadata).filter(function(a){return!isNaN(a)}).map(function(a){return parseInt(a,10)})}; +i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedCallingCodes=function(){var a=Object.keys(i18n.phonenumbers.metadata.countryCodeToRegionCodeMap);return[].concat($jscomp.arrayFromIterable(this.getSupportedGlobalNetworkCallingCodes()),$jscomp.arrayFromIterable(a.map(function(b){return parseInt(b,10)})))};i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_=function(a){return null!=a&&(1!=a.possibleLengthCount()||-1!=a.possibleLengthArray()[0])}; i18n.phonenumbers.PhoneNumberUtil.descHasData_=function(a){return null!=a&&(a.hasExampleNumber()||i18n.phonenumbers.PhoneNumberUtil.descHasPossibleNumberData_(a)||a.hasNationalNumberPattern())}; i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_=function(a){var b=[];goog.object.forEach(i18n.phonenumbers.PhoneNumberType,function(c){if(c!=i18n.phonenumbers.PhoneNumberType.FIXED_LINE_OR_MOBILE&&c!=i18n.phonenumbers.PhoneNumberType.UNKNOWN){var d=i18n.phonenumbers.PhoneNumberUtil.getNumberDescByType_(a,c);i18n.phonenumbers.PhoneNumberUtil.descHasData_(d)&&b.push(c)}});return b}; i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForRegion=function(a){return this.isValidRegionCode_(a)?i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(this.getMetadataForRegion(a)):[]};i18n.phonenumbers.PhoneNumberUtil.prototype.getSupportedTypesForNonGeoEntity=function(a){a=this.getMetadataForNonGeographicalRegion(a);return null==a?[]:i18n.phonenumbers.PhoneNumberUtil.getSupportedTypesForMetadata_(a)}; i18n.phonenumbers.PhoneNumberUtil.normalizeHelper_=function(a,b,c){for(var d=new goog.string.StringBuffer,e,f,g=a.length,h=0;ha?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT:e[e.length-1]a?i18n.phonenumbers.PhoneNumberUtil.ValidationResult.TOO_SHORT:e[e.length-1] - - - - + +