From 484a495360855f23104edace6e44afd7642f19e1 Mon Sep 17 00:00:00 2001 From: Lukas Pierce Date: Sun, 14 Apr 2024 18:10:41 +0500 Subject: [PATCH] Update country_code.dart Added methods tryFromCountryCode and tryFromDialCode, which has nullable result --- lib/src/country_code.dart | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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;