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.

142 lines
5.6 KiB

6 years ago
  1. //
  2. // LoadBalanceViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by Fm-user on 3/14/18.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. class LoadBalanceViewController: PopUpSavingViewController {
  10. private final let secondInfoMessage = "You can transfer money to your GME Wallet from any nearest ATM or your Internet Banking."
  11. @IBOutlet weak var firstInfoInRedBG: UILabel!
  12. @IBOutlet weak var secondInfoInWhiteBG: UILabel!
  13. @IBOutlet weak var userNameLabelOutlet: UILabel!
  14. @IBOutlet weak var profileImageOutlet: UIImageView!
  15. override func viewDidLoad() {
  16. super.viewDidLoad()
  17. let walletNumber = UserDefaults.standard.string(forKey: "com.gmeremit.walletNumber")
  18. let bankName = UserDefaults.standard.string(forKey: "com.gmeremit.bankName")
  19. let fullName = UserDefaults.standard.string(forKey: "com.gmeremit.fullName")!
  20. if let dpUrl = UserDefaults.standard.string(forKey: "com.gmeremit.dpUrl"){
  21. if dpUrl != ""{
  22. userNameLabelOutlet.isHidden = true
  23. profileImageOutlet.isHidden = false
  24. profileImageOutlet.contentMode = .scaleAspectFit
  25. downloadImage(url: Foundation.URL(string: dpUrl)!)
  26. }else{
  27. userNameLabelOutlet.isHidden = false
  28. profileImageOutlet.isHidden = true
  29. userNameLabelOutlet.layer.backgroundColor = UIColor(hex: 0x2e3192).cgColor
  30. userNameLabelOutlet.layer.cornerRadius = userNameLabelOutlet.frame.height / 2
  31. userNameLabelOutlet.textAlignment = NSTextAlignment.center
  32. userNameLabelOutlet.textColor = UIColor.white
  33. userNameLabelOutlet.font = UIFont(name: "SanFranciscoText-Bold", size: 24)
  34. if let fullName = UserDefaults.standard.string(forKey: "com.gmeremit.fullName"){
  35. self.userNameLabelOutlet.text = fullName.prefix(1).uppercased()
  36. }
  37. }
  38. }
  39. firstInfoMessage(sender: "\(String(describing: walletNumber!)) (\(String(describing: bankName!)))",userName: fullName)
  40. secondInfoInWhiteBG.text = self.secondInfoMessage
  41. }
  42. @IBAction func gotItAction(_ sender: Any) {
  43. self.dismissDialog()
  44. self.removeFromParentViewController()
  45. }
  46. override func didReceiveMemoryWarning() {
  47. super.didReceiveMemoryWarning()
  48. }
  49. func dismissDialog()
  50. {
  51. self.navigationController?.navigationBar.isHidden = false
  52. self.tabBarController?.tabBar.isHidden = false
  53. UIView.animate(withDuration: 0.0, animations: {
  54. self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
  55. self.view.alpha = 0.0;
  56. }, completion:{(finished : Bool) in
  57. if (finished)
  58. {
  59. self.view.removeFromSuperview()
  60. }
  61. });
  62. }
  63. func firstInfoMessage(sender:String,userName:String){
  64. let message: String = String("Hello, \(userName) your GME Wallet Number is ")
  65. let mutableMessage1 = NSMutableAttributedString(string: message)
  66. let attrs = [NSAttributedStringKey.font : UIFont.boldSystemFont(ofSize: 15)]
  67. let messageInBold = NSMutableAttributedString(string:sender, attributes:attrs)
  68. let mutableMessage = NSMutableAttributedString()
  69. mutableMessage.append(mutableMessage1)
  70. mutableMessage.append(messageInBold)
  71. firstInfoInRedBG.attributedText = mutableMessage
  72. }
  73. /**
  74. Image view property
  75. */
  76. func setImage(image: UIImage){
  77. profileImageOutlet.layer.borderWidth = 1.0
  78. profileImageOutlet.layer.masksToBounds = false
  79. profileImageOutlet.layer.cornerRadius = profileImageOutlet.frame.size.width / 2
  80. profileImageOutlet.clipsToBounds = true
  81. self.profileImageOutlet.image = image
  82. }
  83. func getDataFromUrl(url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
  84. URLSession.shared.dataTask(with: url) { data, response, error in
  85. completion(data, response, error)
  86. }.resume()
  87. }
  88. /**
  89. Download image of user through url
  90. */
  91. func downloadImage(url: URL) {
  92. getDataFromUrl(url: url) { data, response, error in
  93. guard let data = data, error == nil else { return }
  94. DispatchQueue.main.async() {
  95. let roundedImage = UIImage(data: data)
  96. self.profileImageOutlet.image = roundedImage?.circleMasked
  97. }
  98. }
  99. }
  100. }
  101. extension UIImage {
  102. var isPortrait: Bool { return size.height > size.width }
  103. var isLandscape: Bool { return size.width > size.height }
  104. var breadth: CGFloat { return min(size.width, size.height) }
  105. var breadthSize: CGSize { return CGSize(width: breadth, height: breadth) }
  106. var breadthRect: CGRect { return CGRect(origin: .zero, size: breadthSize) }
  107. var circleMasked: UIImage? {
  108. UIGraphicsBeginImageContextWithOptions(breadthSize, false, scale)
  109. defer { UIGraphicsEndImageContext() }
  110. guard let cgImage = cgImage?.cropping(to: CGRect(origin: CGPoint(x: isLandscape ? floor((size.width - size.height) / 2) : 0, y: isPortrait ? floor((size.height - size.width) / 2) : 0), size: breadthSize)) else { return nil }
  111. UIBezierPath(ovalIn: breadthRect).addClip()
  112. UIImage(cgImage: cgImage, scale: 1, orientation: imageOrientation).draw(in: breadthRect)
  113. return UIGraphicsGetImageFromCurrentImageContext()
  114. }
  115. }