diff --git a/lib/src/country_code.dart b/lib/src/country_code.dart index b8a3863..2339303 100644 --- a/lib/src/country_code.dart +++ b/lib/src/country_code.dart @@ -39,6 +39,15 @@ class CountryCode { return CountryCode.fromJson(jsonCode!); } + static CountryCode? tryFromCountryCode(String countryCode) { + try { + return CountryCode.fromCountryCode(countryCode); + } catch (e) { + if (kDebugMode) print('Failed to recognize country from countryCode: $countryCode'); + return null; + } + } + factory CountryCode.fromDialCode(String dialCode) { final Map? jsonCode = codes.firstWhereOrNull( (code) => code['dial_code'] == dialCode, @@ -46,6 +55,15 @@ class CountryCode { return CountryCode.fromJson(jsonCode!); } + static CountryCode? tryFromDialCode(String dialCode) + try { + return CountryCode.fromDialCode(dialCode); + } catch (e) { + if (kDebugMode) print('Failed to recognize country from dialCode: $dialCode'); + return null; + } + } + CountryCode localize(BuildContext context) { return this ..name = CountryLocalizations.of(context)?.translate(code) ?? name;