import UIKit import Localize_Swift class ProfileViewController: UIViewController { struct StringConstants { let changePasswordText = "change_password_text".localized() let gmeWalletNotText = "gme_wallet_no_text".localized() let yourAvailableBalanceText = "available_balance_text".localized() let profileText = "profile_text".localized() let withdrawButtonText = "withdraw_text".localized() } @IBOutlet weak var labelUserProfileName: UILabel! @IBOutlet weak var imageViewUserProfile: UIImageView! @IBOutlet weak var gmeWalletNumber: UILabel! @IBOutlet weak var buttonEdit: UIButton! @IBOutlet weak var labelUserName: UILabel? @IBOutlet weak var labelEmail: UILabel! @IBOutlet weak var labelMobileNumber: UILabel! @IBOutlet weak var labelBalance: UILabel! @IBOutlet weak var withdrawButton: UIButton! @IBOutlet weak var changePasswordButton: UIButton! @IBOutlet weak var bankNameLabel: UILabel! @IBOutlet weak var referralCodeLabel: UILabel! // titles @IBOutlet weak var availableBalancetTitleLabel: UILabel! @IBOutlet weak var gmeWalletNoTitle: UILabel! @IBOutlet weak var referralCodeTitle: UILabel! @IBOutlet weak var limitTitleLabel: UILabel! @IBOutlet weak var limitLabel: UILabel! var profileImage: UIImage! public static var profileConnectionTimeOutCheck = 0 override func viewWillAppear(_ animated: Bool) { super.viewWillDisappear(animated) self.configureLanguage() self.setupNormalNavigation() self.navigationItem.title = StringConstants().profileText self.withdrawButton.isHidden = !Utility.pennyTestVerified() show() } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) self.navigationItem.title = "" } override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver( self, selector: #selector(setupTabItem), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil ) labelBalance.textColor = .themeRed } func configureLanguage() { self.availableBalancetTitleLabel.text = StringConstants().yourAvailableBalanceText self.gmeWalletNoTitle.text = "gme_wallet_no_text".localized() self.withdrawButton.setTitle(StringConstants().withdrawButtonText, for: UIControl.State.normal) self.changePasswordButton.setTitle(StringConstants().changePasswordText, for: UIControl.State.normal) withdrawButton.layer.cornerRadius = 5 limitTitleLabel.text = "remaining_limit_text".localized() limitLabel.textColor = .themeRed let yearlyLimit = GMEDB.shared.user.string(.yearlyLimit) limitLabel.text = Utility.getCommaSeperatedString(numberString: yearlyLimit ?? "") } override func setupTabItem() { let image = UIImage.init(named: "ic-profile") self.tabBarItem = UITabBarItem(title: "profile_text".localized(), image: image, selectedImage: nil) self.tabBarItem.titlePositionAdjustment = UIOffset( horizontal: 0, vertical: UI_USER_INTERFACE_IDIOM() == .pad ? 2 : -6 ) } @IBAction func withdraw(_ sender: UIButton) { guard let vc = UIStoryboard( name: "autoRefund", bundle: nil ).instantiateViewController(withIdentifier: "AutoRefundsViewController") as? AutoRefundsViewController else { return } self.navigationController?.pushViewController(vc, animated: true) } func getWithdrawNotificationName() -> Notification.Name { return Notification.Name.init(SideMenuNavigationNotifications.withdraw) } func show() { let name = GMEDB.shared.user.string(.firstName) self.labelUserName?.text = name?.capitalized self.labelMobileNumber.text = GMEDB.shared.user.string(.mobileNumber) self.labelEmail.text = GMEDB.shared.user.string(.email) self.labelBalance.text = GMEDB.shared.user.string(.availableBalance) let walletNum = GMEDB.shared.user.string(.walletNumber) let bankName = GMEDB.shared.user.string(.primaryBankName) let referralCode = GMEDB.shared.user.string(.referralCode) bankNameLabel.text = bankName gmeWalletNumber.text = walletNum referralCodeLabel.text = referralCode labelUserProfileName.layer.backgroundColor = UIColor(hex: 0x2e3192).cgColor labelUserProfileName.layer.cornerRadius = labelUserProfileName.frame.height / 2 labelUserProfileName.text = labelUserName?.text?.prefix(1).uppercased() } @IBAction func goEdit(_ sender: UIButton) { let vc = PersonalInformationWireframe().getMainView() navigationController?.pushViewController(vc, animated: true) } }