From a58e8d56d20c2ded8cb42cd0232435dbc3140eba Mon Sep 17 00:00:00 2001 From: Giorgos Papadopoulos Date: Thu, 28 Oct 2021 12:03:23 +0200 Subject: [PATCH] don't show anything if locale from country code is not valid --- .../java/nl/rijksoverheid/ctr/shared/ext/LocaleExt.kt | 10 +++++++++- .../ui/scanner/ScanResultPersonalDetailsFragment.kt | 7 +++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/shared/src/main/java/nl/rijksoverheid/ctr/shared/ext/LocaleExt.kt b/shared/src/main/java/nl/rijksoverheid/ctr/shared/ext/LocaleExt.kt index 2a64dcee0..c0f5b9674 100644 --- a/shared/src/main/java/nl/rijksoverheid/ctr/shared/ext/LocaleExt.kt +++ b/shared/src/main/java/nl/rijksoverheid/ctr/shared/ext/LocaleExt.kt @@ -13,5 +13,13 @@ val Locale.flagEmoji: String get() { val firstLetter = Character.codePointAt(country, 0) - 0x41 + 0x1F1E6 val secondLetter = Character.codePointAt(country, 1) - 0x41 + 0x1F1E6 - return String(Character.toChars(firstLetter)) + String(Character.toChars(secondLetter)) + + // check if the locale created by the country code provided + // is valid. if it is not, we leave it empty + return try { + isO3Country + String(Character.toChars(firstLetter)) + String(Character.toChars(secondLetter)) + } catch (exception: MissingResourceException) { + "" + } } \ No newline at end of file diff --git a/verifier/src/main/java/nl/rijksoverheid/ctr/verifier/ui/scanner/ScanResultPersonalDetailsFragment.kt b/verifier/src/main/java/nl/rijksoverheid/ctr/verifier/ui/scanner/ScanResultPersonalDetailsFragment.kt index bc217572a..d6e35f7c8 100644 --- a/verifier/src/main/java/nl/rijksoverheid/ctr/verifier/ui/scanner/ScanResultPersonalDetailsFragment.kt +++ b/verifier/src/main/java/nl/rijksoverheid/ctr/verifier/ui/scanner/ScanResultPersonalDetailsFragment.kt @@ -98,11 +98,14 @@ class ScanResultPersonalDetailsFragment : binding.personalDetailsBirthdate.setContent(personalDetails.birthDay) if (testResultAttributes.isInternationalDCC()) { binding.internationalDescription.visibility = View.VISIBLE + val dccLocale = Locale("", testResultAttributes.issuerCountryCode) val text = getString( R.string.scan_result_valid_international_scanned, - Locale("", testResultAttributes.issuerCountryCode).flagEmoji + dccLocale.flagEmoji ) - binding.internationalDescription.text = increasedSizeFlagEmoji(text) + if (dccLocale.flagEmoji.isNotEmpty()) { + binding.internationalDescription.text = increasedSizeFlagEmoji(text) + } } }