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.

338 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. "th": #imageLiteral(resourceName: "flag_thailand"),
  78. "za": #imageLiteral(resourceName: "flag_south_africa"),
  79. "tg": #imageLiteral(resourceName: "flag_togo"),
  80. "sr": #imageLiteral(resourceName: "flag_suriname"),
  81. "pf": #imageLiteral(resourceName: "flag_french_polynesia"),
  82. "dz": #imageLiteral(resourceName: "flag_algeria"),
  83. "az": #imageLiteral(resourceName: "flag_azerbaijan"),
  84. "bz": #imageLiteral(resourceName: "flag_belize"),
  85. "at": #imageLiteral(resourceName: "flag_austria"),
  86. "pr": #imageLiteral(resourceName: "flag_puerto_rico"),
  87. "ec": #imageLiteral(resourceName: "flag_ecuador"),
  88. "ws": #imageLiteral(resourceName: "flag_samoa"),
  89. "ag": #imageLiteral(resourceName: "flag_antigua_and_barbuda"),
  90. "ne": #imageLiteral(resourceName: "flag_niger"),
  91. "si": #imageLiteral(resourceName: "flag_slovenia"),
  92. "lr": #imageLiteral(resourceName: "flag_liberia"),
  93. "wf": #imageLiteral(resourceName: "flag_wallis_and_futuna"),
  94. "kg": #imageLiteral(resourceName: "flag_kyrgyzstan"),
  95. "pm": #imageLiteral(resourceName: "flag_saint_pierre_and_miquelon"),
  96. "bi": #imageLiteral(resourceName: "flag_burundi"),
  97. "co": #imageLiteral(resourceName: "flag_colombia"),
  98. "gu": #imageLiteral(resourceName: "flag_guam"),
  99. "bw": #imageLiteral(resourceName: "flag_botswana"),
  100. "sz": #imageLiteral(resourceName: "flag_swaziland"),
  101. "im": #imageLiteral(resourceName: "flag_isle_of_man"),
  102. "je": #imageLiteral(resourceName: "flag_jersey"),
  103. "ki": #imageLiteral(resourceName: "flag_kiribati"),
  104. "cr": #imageLiteral(resourceName: "flag_costa_rica"),
  105. "bb": #imageLiteral(resourceName: "flag_barbados"),
  106. "mn": #imageLiteral(resourceName: "flag_mongolia"),
  107. "to": #imageLiteral(resourceName: "flag_tonga"),
  108. "uk": #imageLiteral(resourceName: "flag_united_kingdom"),
  109. "id": #imageLiteral(resourceName: "flag_indonesia"),
  110. "ua": #imageLiteral(resourceName: "flag_ukraine"),
  111. "kn": #imageLiteral(resourceName: "flag_saint_kitts_and_nevis"),
  112. "gy": #imageLiteral(resourceName: "flag_guyana"),
  113. "cn": #imageLiteral(resourceName: "flag_china"),
  114. "cu": #imageLiteral(resourceName: "flag_cuba"),
  115. "es": #imageLiteral(resourceName: "flag_spain"),
  116. "no": #imageLiteral(resourceName: "flag_norway"),
  117. "ht": #imageLiteral(resourceName: "flag_haiti"),
  118. "al": #imageLiteral(resourceName: "flag_albania"),
  119. "mz": #imageLiteral(resourceName: "flag_mozambique"),
  120. "in": #imageLiteral(resourceName: "flag_india"),
  121. "br": #imageLiteral(resourceName: "flag_brazil"),
  122. "bj": #imageLiteral(resourceName: "flag_benin"),
  123. "se": #imageLiteral(resourceName: "flag_sweden"),
  124. "pe": #imageLiteral(resourceName: "flag_peru"),
  125. "cf": #imageLiteral(resourceName: "flag_central_african_republic"),
  126. "tz": #imageLiteral(resourceName: "flag_tanzania"),
  127. "uy": #imageLiteral(resourceName: "flag_uruguay"),
  128. "vu": #imageLiteral(resourceName: "flag_vanuatu"),
  129. "my": #imageLiteral(resourceName: "flag_malaysia"),
  130. "md": #imageLiteral(resourceName: "flag_moldova"),
  131. "gt": #imageLiteral(resourceName: "flag_guatemala"),
  132. "is": #imageLiteral(resourceName: "flag_iceland"),
  133. "gr": #imageLiteral(resourceName: "flag_greece"),
  134. "tw": #imageLiteral(resourceName: "flag_taiwan"),
  135. "om": #imageLiteral(resourceName: "flag_oman"),
  136. "pt": #imageLiteral(resourceName: "flag_portugal"),
  137. "by": #imageLiteral(resourceName: "flag_belarus"),
  138. "kw": #imageLiteral(resourceName: "flag_kuwait"),
  139. "gl": #imageLiteral(resourceName: "flag_greenland"),
  140. "td": #imageLiteral(resourceName: "flag_chad"),
  141. "na": #imageLiteral(resourceName: "flag_namibia"),
  142. "ee": #imageLiteral(resourceName: "flag_estonia"),
  143. "ms": #imageLiteral(resourceName: "flag_montserrat"),
  144. "mv": #imageLiteral(resourceName: "flag_maldives"),
  145. "af": #imageLiteral(resourceName: "flag_afghanistan"),
  146. "nc": #imageLiteral(resourceName: "flag_new_caledonia"),
  147. "ga": #imageLiteral(resourceName: "flag_gabon"),
  148. "mo": #imageLiteral(resourceName: "flag_macao"),
  149. "ni": #imageLiteral(resourceName: "flag_nicaragua"),
  150. "zw": #imageLiteral(resourceName: "flag_zimbabwe"),
  151. "bm": #imageLiteral(resourceName: "flag_bermuda"),
  152. "rs": #imageLiteral(resourceName: "flag_serbia"),
  153. "cy": #imageLiteral(resourceName: "flag_cyprus"),
  154. "ao": #imageLiteral(resourceName: "flag_angola"),
  155. "py": #imageLiteral(resourceName: "flag_paraguay"),
  156. "tv": #imageLiteral(resourceName: "flag_tuvalu"),
  157. "mc": #imageLiteral(resourceName: "flag_monaco"),
  158. "sm": #imageLiteral(resourceName: "flag_san_marino"),
  159. "er": #imageLiteral(resourceName: "flag_eritrea"),
  160. "bt": #imageLiteral(resourceName: "flag_bhutan"),
  161. "ba": #imageLiteral(resourceName: "flag_bosnia_and_herzegovina"),
  162. "sc": #imageLiteral(resourceName: "flag_seychelles"),
  163. "mg": #imageLiteral(resourceName: "flag_madagascar"),
  164. "st": #imageLiteral(resourceName: "flag_sao_tome_and_principe"),
  165. "eg": #imageLiteral(resourceName: "flag_egypt"),
  166. "ky": #imageLiteral(resourceName: "flag_cayman_islands"),
  167. "ug": #imageLiteral(resourceName: "flag_uganda"),
  168. "sy": #imageLiteral(resourceName: "flag_syria"),
  169. "cm": #imageLiteral(resourceName: "flag_cameroon"),
  170. "aq": #imageLiteral(resourceName: "flag_antarctica"),
  171. "tn": #imageLiteral(resourceName: "flag_tunisia"),
  172. "ge": #imageLiteral(resourceName: "flag_georgia"),
  173. "it": #imageLiteral(resourceName: "flag_italy"),
  174. "gq": #imageLiteral(resourceName: "flag_equatorial_guinea"),
  175. "ca": #imageLiteral(resourceName: "flag_canada"),
  176. "am": #imageLiteral(resourceName: "flag_armenia"),
  177. "rw": #imageLiteral(resourceName: "flag_rwanda"),
  178. "bf": #imageLiteral(resourceName: "flag_burkina_faso"),
  179. "fo": #imageLiteral(resourceName: "flag_faroe_islands"),
  180. "aw": #imageLiteral(resourceName: "flag_aruba"),
  181. "fi": #imageLiteral(resourceName: "flag_finland"),
  182. "lv": #imageLiteral(resourceName: "flag_latvia"),
  183. "lt": #imageLiteral(resourceName: "flag_lithuania"),
  184. "np": #imageLiteral(resourceName: "flag_nepal"),
  185. "pg": #imageLiteral(resourceName: "flag_papua_new_guinea"),
  186. "ad": #imageLiteral(resourceName: "flag_andorra"),
  187. "me": #imageLiteral(resourceName: "flag_montenegro"),
  188. "pa": #imageLiteral(resourceName: "flag_panama"),
  189. "kh": #imageLiteral(resourceName: "flag_cambodia"),
  190. "ma": #imageLiteral(resourceName: "flag_morocco"),
  191. "lb": #imageLiteral(resourceName: "flag_lebanon"),
  192. "tk": #imageLiteral(resourceName: "flag_tokelau"),
  193. "nz": #imageLiteral(resourceName: "flag_new_zealand"),
  194. "sd": #imageLiteral(resourceName: "flag_sudan"),
  195. "hu": #imageLiteral(resourceName: "flag_hungary"),
  196. "iq": #imageLiteral(resourceName: "flag_iraq"),
  197. "hr": #imageLiteral(resourceName: "flag_croatia"),
  198. "ch": #imageLiteral(resourceName: "flag_switzerland"),
  199. "do": #imageLiteral(resourceName: "flag_dominican_republic"),
  200. "mk": #imageLiteral(resourceName: "flag_macedonia"),
  201. "ng": #imageLiteral(resourceName: "flag_nigeria"),
  202. "lu": #imageLiteral(resourceName: "flag_luxembourg"),
  203. "pk": #imageLiteral(resourceName: "flag_pakistan"),
  204. "ro": #imageLiteral(resourceName: "flag_romania"),
  205. "ar": #imageLiteral(resourceName: "flag_argentina"),
  206. "de": #imageLiteral(resourceName: "flag_germany"),
  207. "km": #imageLiteral(resourceName: "flag_comoros"),
  208. "sk": #imageLiteral(resourceName: "flag_slovakia"),
  209. "ke": #imageLiteral(resourceName: "flag_kenya"),
  210. "ml": #imageLiteral(resourceName: "flag_mali"),
  211. "ye": #imageLiteral(resourceName: "flag_yemen"),
  212. "il": #imageLiteral(resourceName: "flag_israel"),
  213. "ae": #imageLiteral(resourceName: "flag_united_arab_emirates"),
  214. "eh": #imageLiteral(resourceName: "flag_western_sahara"),
  215. "io": #imageLiteral(resourceName: "flag_british_indian_ocean_territory"),
  216. "mw": #imageLiteral(resourceName: "flag_malawi"),
  217. "lk": #imageLiteral(resourceName: "flag_sri_lanka"),
  218. "bh": #imageLiteral(resourceName: "flag_bahrain"),
  219. "nf": #imageLiteral(resourceName: "flag_norfolk_island"),
  220. "kr": #imageLiteral(resourceName: "flag_south_korea"),
  221. "uz":#imageLiteral(resourceName: "flag_uzbekistn"),
  222. "ru":#imageLiteral(resourceName: "flag_russia"),
  223. "en": #imageLiteral(resourceName: "flag_united_kingdom")
  224. ]
  225. var defaultCountries = [
  226. "Nepal", "Cambodia", "Philipinnes", "Sri Lanka", "Vietnam", "India", "Pakistan", "azerbaijan",
  227. "Bangladesh", "Belarus", "Georgia", "Indonesia", "Kazakhstan", "Kyrgyzstan", "Malaysia", "Moldova",
  228. "Mongolia", "Myanmar", "Russian Federation", "Singapore", "Tajikistan", "Thailand", "Uzbekistan"
  229. ]
  230. var defaultCountryCodes = [
  231. "np", "kh", "ph", "lk", "vn", "in", "pk", "az", "bd", "by", "ge", "kz", "kg", "my", "md", "mn", "mm",
  232. "ru", "sg", "tj", "th", "uz", "en"
  233. ]
  234. private var defaultSendingAmount: [String: String] =
  235. [
  236. "np" : "100000", // nepal
  237. "kh" : "500", // cambodia
  238. "ph" : "50000", // philipines
  239. "lk" : "100,000", // sri lanka
  240. "vn" : "50000000", // Vietnam
  241. "in" : "50000", // india
  242. "pk" : "100000", // pakistan
  243. "az" : "1000", // azerbaijan
  244. "bd" : "100000", // Bangladesh
  245. "by" : "1000", // Belarus
  246. "ge" : "1000", // Georgia
  247. // "id" : "1000000", // indonesia
  248. "kz" : "1000", // Kazakhstan
  249. "kg" : "1000", // Kyrgyzstan
  250. "my" : "10000", // Malaysia
  251. "md" : "1000", // Moldova
  252. "mn" : "1000", // Mongolia
  253. "mm" : "1500000", // Myanmar
  254. "ru" : "1000", // Russian Federation
  255. "sg" : "2000", // Singapore
  256. "tj" : "1000", // Tajikistan
  257. "th" : "30000", // Thailand
  258. "uz" : "1000", // Uzbekistan
  259. "default": "1000000"
  260. ]
  261. private var defaultSendingCurrency: [String: String] =
  262. [
  263. "np" : "NPR", // nepal
  264. "kh" : "USD", // cambodia
  265. "ph" : "PHP", // philipines
  266. "lk" : "LKR", // sri lanka
  267. "vn" : "VND", // vietnam
  268. "in" : "INR", // india
  269. "pk" : "PKR", // pakistan
  270. "az" : "USD", // azerbaijan
  271. "bd" : "USD", // Bangladesh
  272. "by" : "USD", // Belarus
  273. "ge" : "USD", // Georgia
  274. "id" : "IDR", // Indonesia
  275. "kz" : "USD", // Kazakhstan
  276. "kg" : "USD", // Kyrgyzstan
  277. "my" : "MYR", // Malaysia
  278. "md" : "USD", // Moldova
  279. "mn" : "USD", // Mongolia
  280. "mm" : "MMK", // Myanmar
  281. "ru" : "USD", // Russian Federation
  282. "sg" : "SGD", // Singapore
  283. "tj" : "USD", // Tajikistan
  284. "th" : "THB", // Thailand
  285. "uz" : "USD", // Uzbekistan
  286. "default": "MNT"
  287. ]
  288. private var secondarySendingCurrency: [String: String] =
  289. [
  290. "vn" : "USD", // vietnam
  291. "mn" : "MNT", // Mongolia
  292. "lk" : "USD" // sri lanka
  293. ]
  294. private var secondarySendingAmount: [String: String] =
  295. [
  296. "vn" : "2000", // Vietnam
  297. "lk" : "1000", // sri lanka
  298. "mn" : "2000000" // Mongolia
  299. ]
  300. func getFlag(for countryCode: String) -> UIImage? {
  301. return flag[countryCode.lowercased()] ?? nil
  302. }
  303. func getDefaultSendingAmount(for countryCode: String) -> String? {
  304. return defaultSendingAmount[countryCode.lowercased()]
  305. }
  306. func getDefaultSendingCurrency(for countryCode: String) -> String? {
  307. return defaultSendingCurrency[countryCode.lowercased()]
  308. }
  309. func getDefaultSendingMoneyInKoreanWon() -> String? {
  310. return defaultSendingAmount["default"]
  311. }
  312. func doesCountryCodeHasDefined(country: String, currency: String) -> Bool {
  313. return defaultSendingCurrency[country.lowercased()]?.contains(currency) ?? false
  314. }
  315. func doesSecondaryOptiopsHasDefined(country: String, currency: String) -> Bool {
  316. return secondarySendingCurrency[country.lowercased()]?.contains(currency) ?? false
  317. }
  318. func getSecondarySendingAmount(for countryCode: String) -> String? {
  319. return secondarySendingAmount[countryCode.lowercased()]
  320. }
  321. }