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.

210 lines
7.4 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // AppConstants.swift
  3. // GMERemittance
  4. //
  5. // Created by gme_2 on 10/09/2018.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. class AppConstants {
  10. static let uuid = "uuid"
  11. static let dateFormat = "yyyy-MM-dd"
  12. static let humanReadableDateFormat = "MMM d, yyyy"
  13. static let errorBorderWidth: CGFloat = 0.1
  14. static let themeRedColor = UIColor.init(hex: "#ed1b24")
  15. static let themeDarkRedColor = UIColor.init(hex: "#be0007")
  16. static let themeBlueColor = UIColor.init(hex: "#303e9f") // 2D368F
  17. static let themWhiteColor = UIColor.init(hex: "#ffffff")
  18. static let emergencyLogoutErrorCode = -1111
  19. static let maxKoreanMobileNoLength = 11
  20. static let MainWireFrameNotificationName = "MainViewControllerSelect"
  21. static let pennyTestServerMessage = "pennyTestServerMessage"
  22. static let pennyTestStatusCode = "pennyTestStatusCode"
  23. }
  24. enum Devices {
  25. case iphone5
  26. case iphone678
  27. case iphone678Plus
  28. case iphoneX
  29. case ipad
  30. case other
  31. }
  32. //pennyTestStatus='0'-----0 not started, 1 requested , 2 completed
  33. enum PennyTestStatusCode: String {
  34. case notStarted = "0"
  35. case requested = "1"
  36. case completed = "2"
  37. }
  38. class Utility {
  39. static func getDeviceModel() -> Devices {
  40. if UIDevice().userInterfaceIdiom == .phone {
  41. switch UIScreen.main.nativeBounds.height {
  42. case 1136:
  43. return .iphone5
  44. case 1334:
  45. return .iphone678
  46. case 2208:
  47. return .iphone678Plus
  48. case 2436:
  49. return .iphoneX
  50. default:
  51. return .other
  52. }
  53. }else {
  54. return .ipad
  55. }
  56. }
  57. static func isVerifiedUser() -> Bool {
  58. let val = (UserDefaults.standard.object(forKey: UserKeys.verified) as? Bool ) ?? false
  59. return val
  60. }
  61. static func didSubmitKyc() -> Bool {
  62. let val = (UserDefaults.standard.object(forKey: UserKeys.kyc) as? Bool ) ?? false
  63. return val
  64. }
  65. static func getMyUserName() -> String {
  66. let defaults = UserDefaults.standard
  67. let myUsername = defaults.string(forKey: UserKeys.userId) ?? ""
  68. return myUsername
  69. }
  70. static func getMyId() -> String {
  71. let defaults = UserDefaults.standard
  72. let myId = defaults.string(forKey: UserKeys.senderId) ?? ""
  73. return myId
  74. }
  75. static func getMyIdNumber() -> String {
  76. let defaults = UserDefaults.standard
  77. let myId = defaults.string(forKey: UserKeys.idNumber) ?? ""
  78. return myId
  79. }
  80. static func getMyPrimaryAccountNumber() -> String {
  81. let defaults = UserDefaults.standard
  82. let val = defaults.string(forKey: UserKeys.primaryAccountNumber) ?? ""
  83. return val
  84. }
  85. static func isValidEmail(email: String) -> Bool {
  86. let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}"
  87. let emailTest = NSPredicate(format:"SELF MATCHES %@", emailRegex)
  88. return emailTest.evaluate(with: email)
  89. }
  90. static func getCommaSeperatedString(numberString: String) -> String? {
  91. let text = numberString.filter({ $0 != "," })
  92. if let number = Double(text) {
  93. let nsNumber = NSNumber.init(value: number)
  94. let currencyFormatter = NumberFormatter()
  95. currencyFormatter.numberStyle = .decimal
  96. let commaSeperatedNumberString = currencyFormatter.string(for: nsNumber)
  97. let text = commaSeperatedNumberString?.replacingOccurrences(of: ".", with: ",")
  98. return text
  99. }
  100. return nil
  101. }
  102. static func getCommaSeperatedStringWithDecimal(numberString: String) -> String? {
  103. let text = numberString.filter({ $0 != "," })
  104. if let number = Double(text) {
  105. let nsNumber = NSNumber.init(value: number)
  106. let currencyFormatter = NumberFormatter()
  107. currencyFormatter.numberStyle = .decimal
  108. currencyFormatter.groupingSize = 3
  109. currencyFormatter.usesGroupingSeparator = true
  110. let commaSeperatedNumberString = currencyFormatter.string(for: nsNumber)
  111. return commaSeperatedNumberString
  112. }
  113. return nil
  114. }
  115. static func save(user: User?, accessCodeBase64: String? = nil, password: String? = nil, login: Bool? = false) {
  116. func save(value: Any?, forKey: String) {
  117. let defaults = UserDefaults.standard
  118. defaults.set(value, forKey: forKey)
  119. }
  120. save(value: user?.dpUrl ?? "", forKey: UserKeys.dpUrl)
  121. save(value: user?.walletNumber ?? "", forKey: UserKeys.walletNumber)
  122. save(value: user?.primaryBankName ?? "", forKey: UserKeys.primaryBankName)
  123. let firstName = user?.firstName ?? ""
  124. let middleName = user?.lastName ?? ""
  125. let lastName = user?.lastName ?? ""
  126. let fullName = firstName + " " + middleName + " " + lastName
  127. save(value: fullName, forKey: UserKeys.fullName)
  128. save(value: firstName, forKey: UserKeys.firstName)
  129. save(value: lastName, forKey: UserKeys.lastName)
  130. if login ?? false {
  131. save(value: accessCodeBase64, forKey: UserKeys.accessCode)
  132. }
  133. save(value: user?.userId ?? "", forKey: UserKeys.userId)
  134. save(value: user?.nickName ?? "", forKey: UserKeys.nickName)
  135. save(value: user?.availableBalance ?? "", forKey: user?.availableBalance ?? "0" )
  136. save(value: user?.rewardPoint ?? "", forKey: UserKeys.rewardPoint)
  137. save(value: user?.verified ?? false, forKey: UserKeys.verified)
  138. save(value: user?.kyc ?? "", forKey: UserKeys.kyc)
  139. save(value: user?.email ?? "", forKey: UserKeys.email)
  140. save(value: user?.mobileNumber ?? "", forKey: UserKeys.mobileNumber)
  141. save(value: user?.sourceId ?? "", forKey: UserKeys.sourceId)
  142. save(value: password, forKey: "com.gmeremit.password")
  143. save(value: user?.isReferred ?? "", forKey: UserKeys.isReferred)
  144. save(value: user?.idType ?? "", forKey: UserKeys.idType)
  145. save(value: user?.idNumber ?? "", forKey: UserKeys.idNumber)
  146. save(value: user?.country ?? "" , forKey: UserKeys.country)
  147. save(value: user?.countryCode, forKey: UserKeys.countryCode)
  148. save(value: user?.senderId, forKey: UserKeys.senderId)
  149. save(value: user?.yearlyLimit, forKey: UserKeys.yearlyLimit)
  150. save(value: user?.dateOfBirth, forKey: UserKeys.dateOfBirth)
  151. }
  152. static func numberWithoutprecedingZero(str: String) -> String {
  153. let formatter = NumberFormatter()
  154. let number = formatter.number(from: str)
  155. return "\(number ?? 0)" ?? ""
  156. }
  157. static func getAppVersion () -> String? {
  158. let version = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String
  159. return version
  160. }
  161. static func getOsVersion() -> String {
  162. let version = UIDevice.current.systemVersion
  163. return version
  164. }
  165. static func getPhoneBrand() -> String {
  166. let phoneName = UIDevice.current.model
  167. return phoneName
  168. }
  169. static func getPhoneOs() -> String {
  170. let os = UIDevice.current.systemName
  171. return os
  172. }
  173. static func getUUid() -> String? {
  174. let uuid = UIDevice.current.identifierForVendor?.uuidString
  175. return uuid
  176. }
  177. static func getCliendId() -> String {
  178. return "172017F9EC11222E8107142733"
  179. }
  180. }