You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

339 lines
16 KiB

6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // CountryInfo.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 22/08/2018.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. class CountryInfo {
  11. private var flag: [String: UIImage] =
  12. [
  13. "mm": #imageLiteral(resourceName: "flag_myanmar"),
  14. "bs": #imageLiteral(resourceName: "flag_bahamas"),
  15. "bo": #imageLiteral(resourceName: "flag_bolivia"),
  16. "jo": #imageLiteral(resourceName: "flag_jordan"),
  17. "cl": #imageLiteral(resourceName: "flag_chile"),
  18. "fr": #imageLiteral(resourceName: "flag_france"),
  19. "sa": #imageLiteral(resourceName: "flag_saudi_arabia"),
  20. "mu": #imageLiteral(resourceName: "flag_mauritius"),
  21. "kz": #imageLiteral(resourceName: "flag_kazakhstan"),
  22. "tr": #imageLiteral(resourceName: "flag_turkey"),
  23. "sn": #imageLiteral(resourceName: "flag_senegal"),
  24. "hk": #imageLiteral(resourceName: "flag_hong_kong"),
  25. "fj": #imageLiteral(resourceName: "flag_fiji"),
  26. "cz": #imageLiteral(resourceName: "flag_czech_republic"),
  27. "nu": #imageLiteral(resourceName: "flag_niue"),
  28. "jm": #imageLiteral(resourceName: "flag_jamaica"),
  29. "gg": #imageLiteral(resourceName: "flag_guernsey"),
  30. "ph": #imageLiteral(resourceName: "flag_philippines"),
  31. "bv": #imageLiteral(resourceName: "flag_bouvet_island"),
  32. "yt": #imageLiteral(resourceName: "flag_mayotte"),
  33. "bd": #imageLiteral(resourceName: "flag_bangladesh"),
  34. "tj": #imageLiteral(resourceName: "flag_tajikistan"),
  35. "bg": #imageLiteral(resourceName: "flag_bulgaria"),
  36. "hn": #imageLiteral(resourceName: "flag_honduras"),
  37. "bn": #imageLiteral(resourceName: "flag_brunei"),
  38. "gn": #imageLiteral(resourceName: "flag_guinea"),
  39. "ai": #imageLiteral(resourceName: "flag_anguilla"),
  40. "cv": #imageLiteral(resourceName: "flag_cape_verde"),
  41. "et": #imageLiteral(resourceName: "flag_ethiopia"),
  42. "sg": #imageLiteral(resourceName: "flag_singapore"),
  43. "dk": #imageLiteral(resourceName: "flag_denmark"),
  44. "dj": #imageLiteral(resourceName: "flag_djibouti"),
  45. "nr": #imageLiteral(resourceName: "flag_nauru"),
  46. "sb": #imageLiteral(resourceName: "flag_solomon_islands"),
  47. "so": #imageLiteral(resourceName: "flag_somalia"),
  48. "gi": #imageLiteral(resourceName: "flag_gibraltar"),
  49. "gf": #imageLiteral(resourceName: "flag_french_guiana"),
  50. "gh": #imageLiteral(resourceName: "flag_ghana"),
  51. "mt": #imageLiteral(resourceName: "flag_malta"),
  52. "gm": #imageLiteral(resourceName: "flag_gambia"),
  53. "ck": #imageLiteral(resourceName: "flag_cook_islands"),
  54. "sl": #imageLiteral(resourceName: "flag_sierra_leone"),
  55. "li": #imageLiteral(resourceName: "flag_liechtenstein"),
  56. "ls": #imageLiteral(resourceName: "flag_lesotho"),
  57. "fm": #imageLiteral(resourceName: "flag_micronesia"),
  58. "nl": #imageLiteral(resourceName: "flag_netherlands"),
  59. "gd": #imageLiteral(resourceName: "flag_grenada"),
  60. "cx": #imageLiteral(resourceName: "flag_christmas_island"),
  61. "qa": #imageLiteral(resourceName: "flag_qatar"),
  62. "vn": #imageLiteral(resourceName: "flag_vietnam"),
  63. "au": #imageLiteral(resourceName: "flag_australia"),
  64. "la": #imageLiteral(resourceName: "flag_laos"),
  65. "dm": #imageLiteral(resourceName: "flag_dominica"),
  66. "tt": #imageLiteral(resourceName: "flag_trinidad_and_tobago"),
  67. "mq": #imageLiteral(resourceName: "flag_martinique"),
  68. "sv": #imageLiteral(resourceName: "flag_el_salvador"),
  69. "mr": #imageLiteral(resourceName: "flag_mauritania"),
  70. "pw": #imageLiteral(resourceName: "flag_palau"),
  71. "be": #imageLiteral(resourceName: "flag_belgium"),
  72. "ve": #imageLiteral(resourceName: "flag_venezuela"),
  73. "as": #imageLiteral(resourceName: "flag_american_samoa"),
  74. "zm": #imageLiteral(resourceName: "flag_zambia"),
  75. "mx": #imageLiteral(resourceName: "flag_mexico"),
  76. "jp": #imageLiteral(resourceName: "flag_japan"),
  77. "ja": #imageLiteral(resourceName: "flag_japan"),
  78. "th": #imageLiteral(resourceName: "flag_thailand"),
  79. "za": #imageLiteral(resourceName: "flag_south_africa"),
  80. "tg": #imageLiteral(resourceName: "flag_togo"),
  81. "sr": #imageLiteral(resourceName: "flag_suriname"),
  82. "pf": #imageLiteral(resourceName: "flag_french_polynesia"),
  83. "dz": #imageLiteral(resourceName: "flag_algeria"),
  84. "az": #imageLiteral(resourceName: "flag_azerbaijan"),
  85. "bz": #imageLiteral(resourceName: "flag_belize"),
  86. "at": #imageLiteral(resourceName: "flag_austria"),
  87. "pr": #imageLiteral(resourceName: "flag_puerto_rico"),
  88. "ec": #imageLiteral(resourceName: "flag_ecuador"),
  89. "ws": #imageLiteral(resourceName: "flag_samoa"),
  90. "ag": #imageLiteral(resourceName: "flag_antigua_and_barbuda"),
  91. "ne": #imageLiteral(resourceName: "flag_niger"),
  92. "si": #imageLiteral(resourceName: "flag_slovenia"),
  93. "lr": #imageLiteral(resourceName: "flag_liberia"),
  94. "wf": #imageLiteral(resourceName: "flag_wallis_and_futuna"),
  95. "kg": #imageLiteral(resourceName: "flag_kyrgyzstan"),
  96. "pm": #imageLiteral(resourceName: "flag_saint_pierre_and_miquelon"),
  97. "bi": #imageLiteral(resourceName: "flag_burundi"),
  98. "co": #imageLiteral(resourceName: "flag_colombia"),
  99. "gu": #imageLiteral(resourceName: "flag_guam"),
  100. "bw": #imageLiteral(resourceName: "flag_botswana"),
  101. "sz": #imageLiteral(resourceName: "flag_swaziland"),
  102. "im": #imageLiteral(resourceName: "flag_isle_of_man"),
  103. "je": #imageLiteral(resourceName: "flag_jersey"),
  104. "ki": #imageLiteral(resourceName: "flag_kiribati"),
  105. "cr": #imageLiteral(resourceName: "flag_costa_rica"),
  106. "bb": #imageLiteral(resourceName: "flag_barbados"),
  107. "mn": #imageLiteral(resourceName: "flag_mongolia"),
  108. "to": #imageLiteral(resourceName: "flag_tonga"),
  109. "uk": #imageLiteral(resourceName: "flag_united_kingdom"),
  110. "id": #imageLiteral(resourceName: "flag_indonesia"),
  111. "ua": #imageLiteral(resourceName: "flag_ukraine"),
  112. "kn": #imageLiteral(resourceName: "flag_saint_kitts_and_nevis"),
  113. "gy": #imageLiteral(resourceName: "flag_guyana"),
  114. "cn": #imageLiteral(resourceName: "flag_china"),
  115. "cu": #imageLiteral(resourceName: "flag_cuba"),
  116. "es": #imageLiteral(resourceName: "flag_spain"),
  117. "no": #imageLiteral(resourceName: "flag_norway"),
  118. "ht": #imageLiteral(resourceName: "flag_haiti"),
  119. "al": #imageLiteral(resourceName: "flag_albania"),
  120. "mz": #imageLiteral(resourceName: "flag_mozambique"),
  121. "in": #imageLiteral(resourceName: "flag_india"),
  122. "br": #imageLiteral(resourceName: "flag_brazil"),
  123. "bj": #imageLiteral(resourceName: "flag_benin"),
  124. "se": #imageLiteral(resourceName: "flag_sweden"),
  125. "pe": #imageLiteral(resourceName: "flag_peru"),
  126. "cf": #imageLiteral(resourceName: "flag_central_african_republic"),
  127. "tz": #imageLiteral(resourceName: "flag_tanzania"),
  128. "uy": #imageLiteral(resourceName: "flag_uruguay"),
  129. "vu": #imageLiteral(resourceName: "flag_vanuatu"),
  130. "my": #imageLiteral(resourceName: "flag_malaysia"),
  131. "md": #imageLiteral(resourceName: "flag_moldova"),
  132. "gt": #imageLiteral(resourceName: "flag_guatemala"),
  133. "is": #imageLiteral(resourceName: "flag_iceland"),
  134. "gr": #imageLiteral(resourceName: "flag_greece"),
  135. "tw": #imageLiteral(resourceName: "flag_taiwan"),
  136. "om": #imageLiteral(resourceName: "flag_oman"),
  137. "pt": #imageLiteral(resourceName: "flag_portugal"),
  138. "by": #imageLiteral(resourceName: "flag_belarus"),
  139. "kw": #imageLiteral(resourceName: "flag_kuwait"),
  140. "gl": #imageLiteral(resourceName: "flag_greenland"),
  141. "td": #imageLiteral(resourceName: "flag_chad"),
  142. "na": #imageLiteral(resourceName: "flag_namibia"),
  143. "ee": #imageLiteral(resourceName: "flag_estonia"),
  144. "ms": #imageLiteral(resourceName: "flag_montserrat"),
  145. "mv": #imageLiteral(resourceName: "flag_maldives"),
  146. "af": #imageLiteral(resourceName: "flag_afghanistan"),
  147. "nc": #imageLiteral(resourceName: "flag_new_caledonia"),
  148. "ga": #imageLiteral(resourceName: "flag_gabon"),
  149. "mo": #imageLiteral(resourceName: "flag_macao"),
  150. "ni": #imageLiteral(resourceName: "flag_nicaragua"),
  151. "zw": #imageLiteral(resourceName: "flag_zimbabwe"),
  152. "bm": #imageLiteral(resourceName: "flag_bermuda"),
  153. "rs": #imageLiteral(resourceName: "flag_serbia"),
  154. "cy": #imageLiteral(resourceName: "flag_cyprus"),
  155. "ao": #imageLiteral(resourceName: "flag_angola"),
  156. "py": #imageLiteral(resourceName: "flag_paraguay"),
  157. "tv": #imageLiteral(resourceName: "flag_tuvalu"),
  158. "mc": #imageLiteral(resourceName: "flag_monaco"),
  159. "sm": #imageLiteral(resourceName: "flag_san_marino"),
  160. "er": #imageLiteral(resourceName: "flag_eritrea"),
  161. "bt": #imageLiteral(resourceName: "flag_bhutan"),
  162. "ba": #imageLiteral(resourceName: "flag_bosnia_and_herzegovina"),
  163. "sc": #imageLiteral(resourceName: "flag_seychelles"),
  164. "mg": #imageLiteral(resourceName: "flag_madagascar"),
  165. "st": #imageLiteral(resourceName: "flag_sao_tome_and_principe"),
  166. "eg": #imageLiteral(resourceName: "flag_egypt"),
  167. "ky": #imageLiteral(resourceName: "flag_cayman_islands"),
  168. "ug": #imageLiteral(resourceName: "flag_uganda"),
  169. "sy": #imageLiteral(resourceName: "flag_syria"),
  170. "cm": #imageLiteral(resourceName: "flag_cameroon"),
  171. "aq": #imageLiteral(resourceName: "flag_antarctica"),
  172. "tn": #imageLiteral(resourceName: "flag_tunisia"),
  173. "ge": #imageLiteral(resourceName: "flag_georgia"),
  174. "it": #imageLiteral(resourceName: "flag_italy"),
  175. "gq": #imageLiteral(resourceName: "flag_equatorial_guinea"),
  176. "ca": #imageLiteral(resourceName: "flag_canada"),
  177. "am": #imageLiteral(resourceName: "flag_armenia"),
  178. "rw": #imageLiteral(resourceName: "flag_rwanda"),
  179. "bf": #imageLiteral(resourceName: "flag_burkina_faso"),
  180. "fo": #imageLiteral(resourceName: "flag_faroe_islands"),
  181. "aw": #imageLiteral(resourceName: "flag_aruba"),
  182. "fi": #imageLiteral(resourceName: "flag_finland"),
  183. "lv": #imageLiteral(resourceName: "flag_latvia"),
  184. "lt": #imageLiteral(resourceName: "flag_lithuania"),
  185. "np": #imageLiteral(resourceName: "flag_nepal"),
  186. "pg": #imageLiteral(resourceName: "flag_papua_new_guinea"),
  187. "ad": #imageLiteral(resourceName: "flag_andorra"),
  188. "me": #imageLiteral(resourceName: "flag_montenegro"),
  189. "pa": #imageLiteral(resourceName: "flag_panama"),
  190. "kh": #imageLiteral(resourceName: "flag_cambodia"),
  191. "ma": #imageLiteral(resourceName: "flag_morocco"),
  192. "lb": #imageLiteral(resourceName: "flag_lebanon"),
  193. "tk": #imageLiteral(resourceName: "flag_tokelau"),
  194. "nz": #imageLiteral(resourceName: "flag_new_zealand"),
  195. "sd": #imageLiteral(resourceName: "flag_sudan"),
  196. "hu": #imageLiteral(resourceName: "flag_hungary"),
  197. "iq": #imageLiteral(resourceName: "flag_iraq"),
  198. "hr": #imageLiteral(resourceName: "flag_croatia"),
  199. "ch": #imageLiteral(resourceName: "flag_switzerland"),
  200. "do": #imageLiteral(resourceName: "flag_dominican_republic"),
  201. "mk": #imageLiteral(resourceName: "flag_macedonia"),
  202. "ng": #imageLiteral(resourceName: "flag_nigeria"),
  203. "lu": #imageLiteral(resourceName: "flag_luxembourg"),
  204. "pk": #imageLiteral(resourceName: "flag_pakistan"),
  205. "ro": #imageLiteral(resourceName: "flag_romania"),
  206. "ar": #imageLiteral(resourceName: "flag_argentina"),
  207. "de": #imageLiteral(resourceName: "flag_germany"),
  208. "km": #imageLiteral(resourceName: "flag_comoros"),
  209. "sk": #imageLiteral(resourceName: "flag_slovakia"),
  210. "ke": #imageLiteral(resourceName: "flag_kenya"),
  211. "ml": #imageLiteral(resourceName: "flag_mali"),
  212. "ye": #imageLiteral(resourceName: "flag_yemen"),
  213. "il": #imageLiteral(resourceName: "flag_israel"),
  214. "ae": #imageLiteral(resourceName: "flag_united_arab_emirates"),
  215. "eh": #imageLiteral(resourceName: "flag_western_sahara"),
  216. "io": #imageLiteral(resourceName: "flag_british_indian_ocean_territory"),
  217. "mw": #imageLiteral(resourceName: "flag_malawi"),
  218. "lk": #imageLiteral(resourceName: "flag_sri_lanka"),
  219. "bh": #imageLiteral(resourceName: "flag_bahrain"),
  220. "nf": #imageLiteral(resourceName: "flag_norfolk_island"),
  221. "kr": #imageLiteral(resourceName: "flag_south_korea"),
  222. "uz":#imageLiteral(resourceName: "flag_uzbekistn"),
  223. "ru":#imageLiteral(resourceName: "flag_russia"),
  224. "en": #imageLiteral(resourceName: "flag_united_kingdom")
  225. ]
  226. var defaultCountries = [
  227. "Nepal", "Cambodia", "Philipinnes", "Sri Lanka", "Vietnam", "India", "Pakistan", "azerbaijan",
  228. "Bangladesh", "Belarus", "Georgia", "Indonesia", "Kazakhstan", "Kyrgyzstan", "Malaysia", "Moldova",
  229. "Mongolia", "Myanmar", "Russian Federation", "Singapore", "Tajikistan", "Thailand", "Uzbekistan"
  230. ]
  231. var defaultCountryCodes = [
  232. "np", "kh", "ph", "lk", "vn", "in", "pk", "az", "bd", "by", "ge", "kz", "kg", "my", "md", "mn", "mm",
  233. "ru", "sg", "tj", "th", "uz", "en"
  234. ]
  235. private var defaultSendingAmount: [String: String] =
  236. [
  237. "np" : "100000", // nepal
  238. "kh" : "500", // cambodia
  239. "ph" : "50000", // philipines
  240. "lk" : "100,000", // sri lanka
  241. "vn" : "50000000", // Vietnam
  242. "in" : "50000", // india
  243. "pk" : "100000", // pakistan
  244. "az" : "1000", // azerbaijan
  245. "bd" : "100000", // Bangladesh
  246. "by" : "1000", // Belarus
  247. "ge" : "1000", // Georgia
  248. // "id" : "1000000", // indonesia
  249. "kz" : "1000", // Kazakhstan
  250. "kg" : "1000", // Kyrgyzstan
  251. "my" : "10000", // Malaysia
  252. "md" : "1000", // Moldova
  253. "mn" : "1000", // Mongolia
  254. "mm" : "1500000", // Myanmar
  255. "ru" : "1000", // Russian Federation
  256. "sg" : "2000", // Singapore
  257. "tj" : "1000", // Tajikistan
  258. "th" : "30000", // Thailand
  259. "uz" : "1000", // Uzbekistan
  260. "default": "1000000"
  261. ]
  262. private var defaultSendingCurrency: [String: String] =
  263. [
  264. "np" : "NPR", // nepal
  265. "kh" : "USD", // cambodia
  266. "ph" : "PHP", // philipines
  267. "lk" : "LKR", // sri lanka
  268. "vn" : "VND", // vietnam
  269. "in" : "INR", // india
  270. "pk" : "PKR", // pakistan
  271. "az" : "USD", // azerbaijan
  272. "bd" : "USD", // Bangladesh
  273. "by" : "USD", // Belarus
  274. "ge" : "USD", // Georgia
  275. "id" : "IDR", // Indonesia
  276. "kz" : "USD", // Kazakhstan
  277. "kg" : "USD", // Kyrgyzstan
  278. "my" : "MYR", // Malaysia
  279. "md" : "USD", // Moldova
  280. "mn" : "USD", // Mongolia
  281. "mm" : "MMK", // Myanmar
  282. "ru" : "USD", // Russian Federation
  283. "sg" : "SGD", // Singapore
  284. "tj" : "USD", // Tajikistan
  285. "th" : "THB", // Thailand
  286. "uz" : "USD", // Uzbekistan
  287. "default": "MNT"
  288. ]
  289. private var secondarySendingCurrency: [String: String] =
  290. [
  291. "vn" : "USD", // vietnam
  292. "mn" : "MNT", // Mongolia
  293. "lk" : "USD" // sri lanka
  294. ]
  295. private var secondarySendingAmount: [String: String] =
  296. [
  297. "vn" : "2000", // Vietnam
  298. "lk" : "1000", // sri lanka
  299. "mn" : "2000000" // Mongolia
  300. ]
  301. func getFlag(for countryCode: String) -> UIImage? {
  302. return flag[countryCode.lowercased()] ?? nil
  303. }
  304. func getDefaultSendingAmount(for countryCode: String) -> String? {
  305. return defaultSendingAmount[countryCode.lowercased()]
  306. }
  307. func getDefaultSendingCurrency(for countryCode: String) -> String? {
  308. return defaultSendingCurrency[countryCode.lowercased()]
  309. }
  310. func getDefaultSendingMoneyInKoreanWon() -> String? {
  311. return defaultSendingAmount["default"]
  312. }
  313. func doesCountryCodeHasDefined(country: String, currency: String) -> Bool {
  314. return defaultSendingCurrency[country.lowercased()]?.contains(currency) ?? false
  315. }
  316. func doesSecondaryOptiopsHasDefined(country: String, currency: String) -> Bool {
  317. return secondarySendingCurrency[country.lowercased()]?.contains(currency) ?? false
  318. }
  319. func getSecondarySendingAmount(for countryCode: String) -> String? {
  320. return secondarySendingAmount[countryCode.lowercased()]
  321. }
  322. }