From d5a9125524c8d2ea29584766b2be12bbad140822 Mon Sep 17 00:00:00 2001 From: Harold Martin Date: Tue, 7 Mar 2023 07:09:19 -0800 Subject: [PATCH] numberHint as map --- .../ccp/component/TogiCountryCodePicker.kt | 17 +- .../togitech/ccp/data/utils/GetNumberHint.kt | 491 +++++++++--------- 2 files changed, 252 insertions(+), 256 deletions(-) diff --git a/ccp/src/main/java/com/togitech/ccp/component/TogiCountryCodePicker.kt b/ccp/src/main/java/com/togitech/ccp/component/TogiCountryCodePicker.kt index 65f4ba9..187b84e 100644 --- a/ccp/src/main/java/com/togitech/ccp/component/TogiCountryCodePicker.kt +++ b/ccp/src/main/java/com/togitech/ccp/component/TogiCountryCodePicker.kt @@ -41,20 +41,18 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.togitech.ccp.R import com.togitech.ccp.data.CountryData import com.togitech.ccp.data.utils.countryDataMap import com.togitech.ccp.data.utils.getDefaultPhoneCode -import com.togitech.ccp.data.utils.getNumberHint import com.togitech.ccp.data.utils.isPhoneNumberValid +import com.togitech.ccp.data.utils.numberHint import com.togitech.ccp.data.utils.unitedStates import com.togitech.ccp.transformation.PhoneNumberTransformation import kotlinx.collections.immutable.ImmutableSet private val DEFAULT_TEXT_FIELD_SHAPE = RoundedCornerShape(24.dp) -@OptIn(ExperimentalComposeUiApi::class) -@Suppress("LongMethod") -@Composable /** * @param text The text to be displayed in the text field. * @param onValueChange Called when the text in the text field changes. @@ -71,6 +69,9 @@ private val DEFAULT_TEXT_FIELD_SHAPE = RoundedCornerShape(24.dp) * Set to null to include all supported countries. * @param clearIcon The icon to be used for the clear button. Set to null to disable the clear button. */ +@OptIn(ExperimentalComposeUiApi::class) +@Suppress("LongMethod") +@Composable fun TogiCountryCodePicker( text: String, onValueChange: (Pair, Boolean) -> Unit, @@ -183,11 +184,9 @@ private fun PlaceholderNumberHint( ) { Text( text = stringResource( - id = getNumberHint( - countryDataMap.getOrDefault( - langAndCode.first, - fallbackCountry, - ).countryCode.lowercase(), + id = numberHint.getOrDefault( + countryDataMap.getOrDefault(langAndCode.first, fallbackCountry).countryCode, + R.string.unknown, ), ), ) diff --git a/ccp/src/main/java/com/togitech/ccp/data/utils/GetNumberHint.kt b/ccp/src/main/java/com/togitech/ccp/data/utils/GetNumberHint.kt index 335fc30..89eeb84 100644 --- a/ccp/src/main/java/com/togitech/ccp/data/utils/GetNumberHint.kt +++ b/ccp/src/main/java/com/togitech/ccp/data/utils/GetNumberHint.kt @@ -3,250 +3,247 @@ package com.togitech.ccp.data.utils import com.togitech.ccp.R @Suppress("LongMethod", "CyclomaticComplexMethod") -fun getNumberHint(countryName: String): Int { - return when (countryName) { - "ad" -> R.string.andorra_hint - "ae" -> R.string.united_arab_emirates_hint - "af" -> R.string.afganistan_hint - "ag" -> R.string.antigua_and_barbuda_hint - "ai" -> R.string.anguilla_hint - "al" -> R.string.albania_hint - "am" -> R.string.armenia_hint - "ao" -> R.string.angola_hint - "aq" -> R.string.antarctica_hint - "ar" -> R.string.argentina_hint - "as" -> R.string.american_samoa_hint - "at" -> R.string.austria_hint - "au" -> R.string.australia_hint - "aw" -> R.string.aruba_hint - "ax" -> R.string.aland_islands_hint - "az" -> R.string.azerbaijan_hint - "ba" -> R.string.bosnia_hint - "bb" -> R.string.barbados_hint - "bd" -> R.string.bangladesh_hint - "be" -> R.string.belgium_hint - "bf" -> R.string.burkina_faso_hint - "bg" -> R.string.bulgaria_hint - "bh" -> R.string.bahrain_hint - "bi" -> R.string.burundi_hint - "bj" -> R.string.benin_hint - "bl" -> R.string.saint_barhelemy_hint - "bm" -> R.string.bermuda_hint - "bn" -> R.string.brunei_darussalam_hint - "bo" -> R.string.bolivia_hint - "br" -> R.string.brazil_hint - "bs" -> R.string.bahamas_hint - "bt" -> R.string.bhutan_hint - "bw" -> R.string.botswana_hint - "by" -> R.string.belarus_hint - "bz" -> R.string.belize_hint - "ca" -> R.string.canada_hint - "cc" -> R.string.cocos_hint - "cd" -> R.string.congo_democratic_hint - "cf" -> R.string.central_african_hint - "cg" -> R.string.congo_hint - "ch" -> R.string.switzerland_hint - "ci" -> R.string.cote_dlvoire_hint - "ck" -> R.string.cook_islands_hint - "cl" -> R.string.chile_hint - "cm" -> R.string.cameroon_hint - "cn" -> R.string.china_hint - "co" -> R.string.colombia_hint - "cr" -> R.string.costa_rica_hint - "cu" -> R.string.cuba_hint - "cv" -> R.string.cape_verde_hint - "cw" -> R.string.curacao_hint - "cx" -> R.string.christmas_island_hint - "cy" -> R.string.cyprus_hint - "cz" -> R.string.czech_republic_hint - "de" -> R.string.germany_hint - "dj" -> R.string.djibouti_hint - "dk" -> R.string.denmark_hint - "dm" -> R.string.dominica_hint - "do" -> R.string.dominician_republic_hint - "dz" -> R.string.algeria_hint - "ec" -> R.string.ecuador_hint - "ee" -> R.string.estonia_hint - "eg" -> R.string.egypt_hint - "er" -> R.string.eritrea_hint - "es" -> R.string.spain_hint - "et" -> R.string.ethiopia_hint - "fi" -> R.string.finland_hint - "fj" -> R.string.fiji_hint - "fk" -> R.string.falkland_islands_hint - "fm" -> R.string.micro_hint - "fo" -> R.string.faroe_islands_hint - "fr" -> R.string.france_hint - "ga" -> R.string.gabon_hint - "gb" -> R.string.united_kingdom_hint - "gd" -> R.string.grenada_hint - "ge" -> R.string.georgia_hint - "gf" -> R.string.french_guyana_hint - "gg" -> R.string.guernsey_hint - "gh" -> R.string.ghana_hint - "gi" -> R.string.gibraltar_hint - "gl" -> R.string.greenland_hint - "gm" -> R.string.gambia_hint - "gn" -> R.string.guinea_hint - "gp" -> R.string.guadeloupe_hint - "gq" -> R.string.equatorial_guinea_hint - "gr" -> R.string.greece_hint - "gt" -> R.string.guatemala_hint - "gu" -> R.string.guam_hint - "gw" -> R.string.guinea_bissau_hint - "gy" -> R.string.guyana_hint - "hk" -> R.string.hong_kong_hint - "hn" -> R.string.honduras_hint - "hr" -> R.string.croatia_hint - "ht" -> R.string.haiti_hint - "hu" -> R.string.hungary_hint - "id" -> R.string.indonesia_hint - "ie" -> R.string.ireland_hint - "il" -> R.string.israil_hint - "im" -> R.string.isle_of_man - "is" -> R.string.iceland - "in" -> R.string.india_hint - "io" -> R.string.british_indian_ocean - "iq" -> R.string.iraq_hint - "ir" -> R.string.iran_hint - "it" -> R.string.italia_hint - "je" -> R.string.jersey_hint - "jm" -> R.string.jamaica_hint - "jo" -> R.string.jordan_hint - "jp" -> R.string.japan_hint - "ke" -> R.string.kenya_hint - "kg" -> R.string.kyrgyzstan_hint - "kh" -> R.string.cambodia_hint - "ki" -> R.string.kiribati - "km" -> R.string.comoros_hint - "kn" -> R.string.saint_kitts_hint - "kp" -> R.string.north_korea_hint - "kr" -> R.string.south_korea_hint - "kw" -> R.string.kuwait_hint - "ky" -> R.string.cayman_islands_hint - "kz" -> R.string.kazakhstan_hint - "la" -> R.string.laos_hint - "lb" -> R.string.lebanon_hint - "lc" -> R.string.saint_lucia_hint - "li" -> R.string.liechtenstein - "lk" -> R.string.siri_lanka_hint - "lr" -> R.string.liberia_hint - "ls" -> R.string.lesotho_hint - "lt" -> R.string.lithuania_hint - "lu" -> R.string.luxembourg_hint - "lv" -> R.string.latvia_hint - "ly" -> R.string.libya_hint - "ma" -> R.string.marocco_hint - "mc" -> R.string.monaco_hint - "md" -> R.string.moldova_hint - "me" -> R.string.montenegro_hint - "mf" -> R.string.saint_martin_hint - "mg" -> R.string.madagascar_hint - "mh" -> R.string.marshall_islands_hint - "mk" -> R.string.north_macedonia_hint - "ml" -> R.string.mali_hint - "mm" -> R.string.myanmar_hint - "mn" -> R.string.mongolia_hint - "mo" -> R.string.macau_hint - "mp" -> R.string.northern_mariana_hint - "mq" -> R.string.martinique_hint - "mr" -> R.string.mauriatana_hint - "ms" -> R.string.montserrat_hint - "mt" -> R.string.malta_hint - "mu" -> R.string.mauritius_hint - "mv" -> R.string.maldives_hint - "mw" -> R.string.malawi_hint - "mx" -> R.string.mexico_hint - "my" -> R.string.malaysia_hint - "mz" -> R.string.mozambique_hint - "na" -> R.string.namibia_hint - "nc" -> R.string.new_caledonia_hint - "ne" -> R.string.niger_hint - "nf" -> R.string.norfolk_hint - "ng" -> R.string.nigeria_hint - "ni" -> R.string.nicaragua - "nl" -> R.string.netherlands_hint - "no" -> R.string.norway_hint - "np" -> R.string.nepal_hint - "nr" -> R.string.nauru_hint - "nu" -> R.string.niue_hint - "nz" -> R.string.new_zealand_hint - "om" -> R.string.oman_hint - "pa" -> R.string.panama_hint - "pe" -> R.string.peru_hint - "pf" -> R.string.french_polynesia_hint - "pg" -> R.string.papua_new_guinea_hint - "ph" -> R.string.philippinies_hint - "pk" -> R.string.pakistan_hint - "pl" -> R.string.poland_hint - "pm" -> R.string.saint_pierre_hint - "pn" -> R.string.pitcairn - "pr" -> R.string.puerto_rico_hint - "ps" -> R.string.state_of_palestine_hint - "pt" -> R.string.portugal_hint - "pw" -> R.string.palau_hint - "py" -> R.string.paraguay_hint - "qa" -> R.string.qatar_hint - "re" -> R.string.reunion_hint - "ro" -> R.string.romania_hint - "rs" -> R.string.serbia_hint - "ru" -> R.string.russia_hint - "rw" -> R.string.rwanda_hint - "sa" -> R.string.saudi_arabia_hint - "sb" -> R.string.solomon_islands_hint - "sc" -> R.string.seychelles_hint - "sd" -> R.string.sudan_hint - "se" -> R.string.sweden_hint - "sg" -> R.string.singapore_hint - "sh" -> R.string.saint_helena_hint - "si" -> R.string.slovenia_hint - "sk" -> R.string.slovakia_hint - "sl" -> R.string.sierra_leone_hint - "sm" -> R.string.san_marino_hint - "sn" -> R.string.senegal_hint - "so" -> R.string.somali_hint - "sr" -> R.string.suriname_hint - "ss" -> R.string.south_sudan_hint - "st" -> R.string.sao_tome_hint - "sv" -> R.string.el_salvador_hint - "sx" -> R.string.sint_maarten_hint - "sy" -> R.string.syrian_hint - "sz" -> R.string.swaziland_hint - "tc" -> R.string.turks_and_caicos_hint - "td" -> R.string.chad_hint - "tg" -> R.string.togo_hint - "th" -> R.string.thailand_hint - "tj" -> R.string.taijikistan_hint - "tk" -> R.string.tokelau_hint - "tl" -> R.string.timor_leste_hint - "tm" -> R.string.turkmenistan_hint - "tn" -> R.string.tunisia_hint - "to" -> R.string.tonga_hint - "tr" -> R.string.turkey_hint - "tt" -> R.string.trinidad_and_tobago_hint - "tv" -> R.string.tuvalu_hint - "tw" -> R.string.taiwan_hint - "tz" -> R.string.tazmania_hint - "ua" -> R.string.ukraina_hint - "ug" -> R.string.uganda_hint - "us" -> R.string.united_states_america_hint - "uy" -> R.string.uruguay_hint - "uz" -> R.string.uzbekistan_hint - "va" -> R.string.holy_see - "vc" -> R.string.saint_vincent_hint - "ve" -> R.string.venezuela_hint - "vg" -> R.string.virgin_islands_hint - "vi" -> R.string.virgin_island_us - "vn" -> R.string.vietnam_hint - "vu" -> R.string.vanuatu_hint - "wf" -> R.string.walli_and_fatuna_hint - "ws" -> R.string.samoa_hint - "xk" -> R.string.kosovo_hint - "ye" -> R.string.yemen_hint - "yt" -> R.string.mayotte_hint - "za" -> R.string.south_africa_hint - "zm" -> R.string.zambia_hint - "zw" -> R.string.zimbabwe_hint - else -> R.string.unknown - } -} +val numberHint: Map = mapOf( + "ad" to R.string.andorra_hint, + "ae" to R.string.united_arab_emirates_hint, + "af" to R.string.afganistan_hint, + "ag" to R.string.antigua_and_barbuda_hint, + "ai" to R.string.anguilla_hint, + "al" to R.string.albania_hint, + "am" to R.string.armenia_hint, + "ao" to R.string.angola_hint, + "aq" to R.string.antarctica_hint, + "ar" to R.string.argentina_hint, + "as" to R.string.american_samoa_hint, + "at" to R.string.austria_hint, + "au" to R.string.australia_hint, + "aw" to R.string.aruba_hint, + "ax" to R.string.aland_islands_hint, + "az" to R.string.azerbaijan_hint, + "ba" to R.string.bosnia_hint, + "bb" to R.string.barbados_hint, + "bd" to R.string.bangladesh_hint, + "be" to R.string.belgium_hint, + "bf" to R.string.burkina_faso_hint, + "bg" to R.string.bulgaria_hint, + "bh" to R.string.bahrain_hint, + "bi" to R.string.burundi_hint, + "bj" to R.string.benin_hint, + "bl" to R.string.saint_barhelemy_hint, + "bm" to R.string.bermuda_hint, + "bn" to R.string.brunei_darussalam_hint, + "bo" to R.string.bolivia_hint, + "br" to R.string.brazil_hint, + "bs" to R.string.bahamas_hint, + "bt" to R.string.bhutan_hint, + "bw" to R.string.botswana_hint, + "by" to R.string.belarus_hint, + "bz" to R.string.belize_hint, + "ca" to R.string.canada_hint, + "cc" to R.string.cocos_hint, + "cd" to R.string.congo_democratic_hint, + "cf" to R.string.central_african_hint, + "cg" to R.string.congo_hint, + "ch" to R.string.switzerland_hint, + "ci" to R.string.cote_dlvoire_hint, + "ck" to R.string.cook_islands_hint, + "cl" to R.string.chile_hint, + "cm" to R.string.cameroon_hint, + "cn" to R.string.china_hint, + "co" to R.string.colombia_hint, + "cr" to R.string.costa_rica_hint, + "cu" to R.string.cuba_hint, + "cv" to R.string.cape_verde_hint, + "cw" to R.string.curacao_hint, + "cx" to R.string.christmas_island_hint, + "cy" to R.string.cyprus_hint, + "cz" to R.string.czech_republic_hint, + "de" to R.string.germany_hint, + "dj" to R.string.djibouti_hint, + "dk" to R.string.denmark_hint, + "dm" to R.string.dominica_hint, + "do" to R.string.dominician_republic_hint, + "dz" to R.string.algeria_hint, + "ec" to R.string.ecuador_hint, + "ee" to R.string.estonia_hint, + "eg" to R.string.egypt_hint, + "er" to R.string.eritrea_hint, + "es" to R.string.spain_hint, + "et" to R.string.ethiopia_hint, + "fi" to R.string.finland_hint, + "fj" to R.string.fiji_hint, + "fk" to R.string.falkland_islands_hint, + "fm" to R.string.micro_hint, + "fo" to R.string.faroe_islands_hint, + "fr" to R.string.france_hint, + "ga" to R.string.gabon_hint, + "gb" to R.string.united_kingdom_hint, + "gd" to R.string.grenada_hint, + "ge" to R.string.georgia_hint, + "gf" to R.string.french_guyana_hint, + "gg" to R.string.guernsey_hint, + "gh" to R.string.ghana_hint, + "gi" to R.string.gibraltar_hint, + "gl" to R.string.greenland_hint, + "gm" to R.string.gambia_hint, + "gn" to R.string.guinea_hint, + "gp" to R.string.guadeloupe_hint, + "gq" to R.string.equatorial_guinea_hint, + "gr" to R.string.greece_hint, + "gt" to R.string.guatemala_hint, + "gu" to R.string.guam_hint, + "gw" to R.string.guinea_bissau_hint, + "gy" to R.string.guyana_hint, + "hk" to R.string.hong_kong_hint, + "hn" to R.string.honduras_hint, + "hr" to R.string.croatia_hint, + "ht" to R.string.haiti_hint, + "hu" to R.string.hungary_hint, + "id" to R.string.indonesia_hint, + "ie" to R.string.ireland_hint, + "il" to R.string.israil_hint, + "im" to R.string.isle_of_man, + "is" to R.string.iceland, + "in" to R.string.india_hint, + "io" to R.string.british_indian_ocean, + "iq" to R.string.iraq_hint, + "ir" to R.string.iran_hint, + "it" to R.string.italia_hint, + "je" to R.string.jersey_hint, + "jm" to R.string.jamaica_hint, + "jo" to R.string.jordan_hint, + "jp" to R.string.japan_hint, + "ke" to R.string.kenya_hint, + "kg" to R.string.kyrgyzstan_hint, + "kh" to R.string.cambodia_hint, + "ki" to R.string.kiribati, + "km" to R.string.comoros_hint, + "kn" to R.string.saint_kitts_hint, + "kp" to R.string.north_korea_hint, + "kr" to R.string.south_korea_hint, + "kw" to R.string.kuwait_hint, + "ky" to R.string.cayman_islands_hint, + "kz" to R.string.kazakhstan_hint, + "la" to R.string.laos_hint, + "lb" to R.string.lebanon_hint, + "lc" to R.string.saint_lucia_hint, + "li" to R.string.liechtenstein, + "lk" to R.string.siri_lanka_hint, + "lr" to R.string.liberia_hint, + "ls" to R.string.lesotho_hint, + "lt" to R.string.lithuania_hint, + "lu" to R.string.luxembourg_hint, + "lv" to R.string.latvia_hint, + "ly" to R.string.libya_hint, + "ma" to R.string.marocco_hint, + "mc" to R.string.monaco_hint, + "md" to R.string.moldova_hint, + "me" to R.string.montenegro_hint, + "mf" to R.string.saint_martin_hint, + "mg" to R.string.madagascar_hint, + "mh" to R.string.marshall_islands_hint, + "mk" to R.string.north_macedonia_hint, + "ml" to R.string.mali_hint, + "mm" to R.string.myanmar_hint, + "mn" to R.string.mongolia_hint, + "mo" to R.string.macau_hint, + "mp" to R.string.northern_mariana_hint, + "mq" to R.string.martinique_hint, + "mr" to R.string.mauriatana_hint, + "ms" to R.string.montserrat_hint, + "mt" to R.string.malta_hint, + "mu" to R.string.mauritius_hint, + "mv" to R.string.maldives_hint, + "mw" to R.string.malawi_hint, + "mx" to R.string.mexico_hint, + "my" to R.string.malaysia_hint, + "mz" to R.string.mozambique_hint, + "na" to R.string.namibia_hint, + "nc" to R.string.new_caledonia_hint, + "ne" to R.string.niger_hint, + "nf" to R.string.norfolk_hint, + "ng" to R.string.nigeria_hint, + "ni" to R.string.nicaragua, + "nl" to R.string.netherlands_hint, + "no" to R.string.norway_hint, + "np" to R.string.nepal_hint, + "nr" to R.string.nauru_hint, + "nu" to R.string.niue_hint, + "nz" to R.string.new_zealand_hint, + "om" to R.string.oman_hint, + "pa" to R.string.panama_hint, + "pe" to R.string.peru_hint, + "pf" to R.string.french_polynesia_hint, + "pg" to R.string.papua_new_guinea_hint, + "ph" to R.string.philippinies_hint, + "pk" to R.string.pakistan_hint, + "pl" to R.string.poland_hint, + "pm" to R.string.saint_pierre_hint, + "pn" to R.string.pitcairn, + "pr" to R.string.puerto_rico_hint, + "ps" to R.string.state_of_palestine_hint, + "pt" to R.string.portugal_hint, + "pw" to R.string.palau_hint, + "py" to R.string.paraguay_hint, + "qa" to R.string.qatar_hint, + "re" to R.string.reunion_hint, + "ro" to R.string.romania_hint, + "rs" to R.string.serbia_hint, + "ru" to R.string.russia_hint, + "rw" to R.string.rwanda_hint, + "sa" to R.string.saudi_arabia_hint, + "sb" to R.string.solomon_islands_hint, + "sc" to R.string.seychelles_hint, + "sd" to R.string.sudan_hint, + "se" to R.string.sweden_hint, + "sg" to R.string.singapore_hint, + "sh" to R.string.saint_helena_hint, + "si" to R.string.slovenia_hint, + "sk" to R.string.slovakia_hint, + "sl" to R.string.sierra_leone_hint, + "sm" to R.string.san_marino_hint, + "sn" to R.string.senegal_hint, + "so" to R.string.somali_hint, + "sr" to R.string.suriname_hint, + "ss" to R.string.south_sudan_hint, + "st" to R.string.sao_tome_hint, + "sv" to R.string.el_salvador_hint, + "sx" to R.string.sint_maarten_hint, + "sy" to R.string.syrian_hint, + "sz" to R.string.swaziland_hint, + "tc" to R.string.turks_and_caicos_hint, + "td" to R.string.chad_hint, + "tg" to R.string.togo_hint, + "th" to R.string.thailand_hint, + "tj" to R.string.taijikistan_hint, + "tk" to R.string.tokelau_hint, + "tl" to R.string.timor_leste_hint, + "tm" to R.string.turkmenistan_hint, + "tn" to R.string.tunisia_hint, + "to" to R.string.tonga_hint, + "tr" to R.string.turkey_hint, + "tt" to R.string.trinidad_and_tobago_hint, + "tv" to R.string.tuvalu_hint, + "tw" to R.string.taiwan_hint, + "tz" to R.string.tazmania_hint, + "ua" to R.string.ukraina_hint, + "ug" to R.string.uganda_hint, + "us" to R.string.united_states_america_hint, + "uy" to R.string.uruguay_hint, + "uz" to R.string.uzbekistan_hint, + "va" to R.string.holy_see, + "vc" to R.string.saint_vincent_hint, + "ve" to R.string.venezuela_hint, + "vg" to R.string.virgin_islands_hint, + "vi" to R.string.virgin_island_us, + "vn" to R.string.vietnam_hint, + "vu" to R.string.vanuatu_hint, + "wf" to R.string.walli_and_fatuna_hint, + "ws" to R.string.samoa_hint, + "xk" to R.string.kosovo_hint, + "ye" to R.string.yemen_hint, + "yt" to R.string.mayotte_hint, + "za" to R.string.south_africa_hint, + "zm" to R.string.zambia_hint, + "zw" to R.string.zimbabwe_hint, +)