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.

205 lines
7.1 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // SideMenuViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by Sujal on 2/22/18.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. import SDWebImage
  10. import LGSideMenuController
  11. struct SideMenuNavigationNotifications {
  12. static let aboutGme = "aboutGme"
  13. static let support = "support"
  14. static let setting = "setting"
  15. static let availableBalance = "Available_Balance"
  16. }
  17. class SideMenuViewController: UIViewController {
  18. @IBOutlet weak var imageViewProfileSetting: UIImageView!
  19. @IBOutlet weak var labelProfileName: UILabel!
  20. @IBOutlet weak var labelPhone: UILabel!
  21. @IBOutlet weak var labelEmail: UILabel!
  22. @IBOutlet weak var roundedBgView: UIView!
  23. @IBOutlet weak var labelBalance: UILabel!
  24. @IBOutlet weak var labelWalletNumber: UILabel!
  25. @IBOutlet weak var labelBank: UILabel!
  26. @IBOutlet weak var labelUserNameInitial: UILabel!
  27. @IBOutlet weak var settingButton: UIButton!
  28. @IBOutlet weak var aboutGmeButton: UIButton!
  29. @IBOutlet weak var logoutButton: UIButton!
  30. @IBOutlet weak var aboutIconImageView: UIImageView!
  31. @IBOutlet weak var settingIconImageView: UIImageView!
  32. @IBOutlet weak var logoutIconImageView: UIImageView!
  33. override func viewDidLoad() {
  34. super.viewDidLoad()
  35. setUpSettingsScreen()
  36. setup()
  37. // setupBlueBackGroundTheme()
  38. }
  39. override func viewWillAppear(_ animated: Bool) {
  40. super.viewWillAppear(animated)
  41. self.setUpSettingsScreen()
  42. }
  43. private func setup() {
  44. self.view.backgroundColor = AppConstants.themeRedColor
  45. self.roundedBgView.layer.cornerRadius = 20
  46. NotificationCenter.default.addObserver(self, selector: #selector(self.updateBalance(sender:)), name: self.getAvailableBalanceNotificationName(), object: nil)
  47. }
  48. @objc private func updateBalance(sender: Notification) {
  49. let balance = sender.userInfo?[SideMenuNavigationNotifications.availableBalance] as? String
  50. self.labelBalance.text = balance
  51. }
  52. private func setupBlueBackGroundTheme() {
  53. self.roundedBgView.backgroundColor = AppConstants.themeBlueColor
  54. [ labelPhone, labelEmail, labelBalance, labelWalletNumber, labelBank, labelUserNameInitial].forEach({
  55. $0?.textColor = AppConstants.themWhiteColor
  56. })
  57. [aboutGmeButton, settingButton, logoutButton].forEach({
  58. $0?.setTitleColor(AppConstants.themWhiteColor, for: UIControlState.normal)
  59. })
  60. aboutIconImageView.tintColor = AppConstants.themWhiteColor
  61. }
  62. @IBAction func aboutGme(_ sender: UIButton) {
  63. self.sideMenuController?.hideLeftView()
  64. NotificationCenter.default.post(name: self.getAboutGmeNotificationName(), object: nil, userInfo: nil)
  65. }
  66. @IBAction func support(_ sender: UIButton) {
  67. self.sideMenuController?.hideLeftView()
  68. NotificationCenter.default.post(name: self.getSupportNotificationName(), object: nil, userInfo: nil)
  69. }
  70. @IBAction func setting(_ sender: UIButton) {
  71. self.sideMenuController?.hideLeftView()
  72. NotificationCenter.default.post(name: self.getSettingNotificationName(), object: nil, userInfo: nil)
  73. }
  74. @IBAction func withDraw(_ sender: Any) {
  75. let storyboard = UIStoryboard.init(name: "Profile", bundle: Bundle.main)
  76. // if let withDrawViewController = storyboard.instantiateViewController(withIdentifier: "withdraw") as? WithdrawViewController {
  77. // self.navigationController!.pushViewController(withDrawViewController, animated: true)
  78. // }
  79. }
  80. @IBAction func logout(_ sender: Any) {
  81. let alert = UIAlertController(title: "Logout?", message: "Are you sure you want to logout?", preferredStyle: .alert)
  82. let yesAction = UIAlertAction(title: "Yes", style: .default,handler: {
  83. (action : UIAlertAction!) -> Void in
  84. // let appDelegate = UIApplication.shared.delegate as! AppDelegate
  85. // appDelegate.firstTranscationStatusForHome = true
  86. // appDelegate.firstTranscationStatusForProfileForm = true
  87. MainWireframe.logout()
  88. })
  89. let noAction = UIAlertAction(title: "No", style: .default, handler: nil)
  90. noAction.setValue(UIColor.black, forKey: "titleTextColor")
  91. yesAction.setValue(UIColor(hex:0xEC1C24), forKey: "titleTextColor")
  92. alert.addAction(yesAction)
  93. alert.addAction(noAction)
  94. self.present(alert, animated: true, completion: nil)
  95. }
  96. override func didReceiveMemoryWarning() {
  97. super.didReceiveMemoryWarning()
  98. // Dispose of any resources that can be recreated.
  99. }
  100. func setUpSettingsScreen() {
  101. let store = UserDefaults.standard
  102. //PHONE
  103. labelPhone.text = store.string(forKey: UserKeys.mobileNumber)
  104. //EMAIL
  105. labelEmail.text = store.string(forKey: UserKeys.email)
  106. //NAME
  107. labelProfileName.text = store.string(forKey: UserKeys.firstName)?.capitalized
  108. //WALLET NUMBER
  109. labelWalletNumber.text = store.string(forKey: UserKeys.walletNumber)
  110. //BALANCE
  111. let balance = store.string(forKey: UserKeys.availableBalance)
  112. labelBalance.text = Utility.getCommaSeperatedString(numberString: balance ?? "")
  113. //BANK NAME
  114. labelBank.text = store.string(forKey: UserKeys.primaryBankName)
  115. //IMAGE
  116. let userDpString = store.string(forKey: UserKeys.dpUrl)
  117. if let userDpUrl = URL(string: userDpString!) {
  118. SDImageCache.shared().clearMemory()
  119. SDImageCache.shared().clearDisk()
  120. self.imageViewProfileSetting.sd_setImage(with: userDpUrl, completed: nil)
  121. labelUserNameInitial.isHidden = true
  122. imageViewProfileSetting.isHidden = false
  123. imageViewProfileSetting.contentMode = .scaleAspectFill
  124. } else {
  125. labelUserNameInitial.layer.backgroundColor = UIColor(hex: 0x2e3192).cgColor
  126. labelUserNameInitial.layer.cornerRadius = labelUserNameInitial.frame.height / 2
  127. labelUserNameInitial.text = labelProfileName.text?.prefix(1).uppercased()
  128. labelUserNameInitial.isHidden = false
  129. imageViewProfileSetting.isHidden = true
  130. }
  131. imageViewProfileSetting.layer.cornerRadius = imageViewProfileSetting.frame.height / 2
  132. }
  133. // Notification Names
  134. func getAboutGmeNotificationName() -> Notification.Name {
  135. return Notification.Name.init(SideMenuNavigationNotifications.aboutGme)
  136. }
  137. func getSupportNotificationName() -> Notification.Name {
  138. return Notification.Name.init(SideMenuNavigationNotifications.support)
  139. }
  140. func getSettingNotificationName() -> Notification.Name {
  141. return Notification.Name.init(SideMenuNavigationNotifications.setting)
  142. }
  143. func getAvailableBalanceNotificationName() -> Notification.Name {
  144. return Notification.Name.init(SideMenuNavigationNotifications.availableBalance)
  145. }
  146. }