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.

130 lines
4.7 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
  1. //
  2. // SettingViewController.swift
  3. // GMERemittance
  4. //
  5. // Created by Sujal on 2/18/18.
  6. // Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import UIKit
  9. import Localize_Swift
  10. class SettingViewController: UIViewController {
  11. struct StringConstants {
  12. var changePasswordText = "change_password_text".localized()
  13. var settingText = "setting_text".localized()
  14. var languageText = "language_text".localized()
  15. }
  16. var languages: [SendMoneyCountryViewModel] = []
  17. var selectedLanguage: SendMoneyCountryViewModel? {
  18. didSet {
  19. let code = selectedLanguage?.code ?? "en"
  20. if code == "lk" {
  21. Localize.setCurrentLanguage("si")
  22. }else
  23. if code == "kh" {
  24. Localize.setCurrentLanguage("km")
  25. }else
  26. if code == "kr" {
  27. Localize.setCurrentLanguage("ko")
  28. }else
  29. if code == "mm" {
  30. Localize.setCurrentLanguage("my")
  31. }else
  32. if code == "bd" {
  33. Localize.setCurrentLanguage("bn")
  34. }
  35. else
  36. if code == "np" {
  37. Localize.setCurrentLanguage("ne")
  38. }else
  39. if code == "ru" {
  40. Localize.setCurrentLanguage("ru-RU")
  41. }else
  42. if code == "vn" {
  43. Localize.setCurrentLanguage("vi-VN")
  44. }
  45. else {
  46. Localize.setCurrentLanguage(code)
  47. }
  48. UserDefaults.standard.set(code, forKey: AppConstants.firstTimeLanguageIsSet)
  49. }
  50. }
  51. @IBOutlet weak var settingLabel: UILabel!
  52. @IBOutlet weak var changePasswordButton: UIButton!
  53. @IBOutlet weak var settingButton: UIButton!
  54. override func viewDidLoad() {
  55. super.viewDidLoad()
  56. NotificationCenter.default.addObserver(self, selector: #selector(setText), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
  57. setupLanguages()
  58. configureLanguage()
  59. }
  60. @objc func setText() {
  61. self.changePasswordButton.setTitle("change_password_text".localized(), for: .normal)
  62. self.settingButton.setTitle("language_text".localized(), for: .normal)
  63. self.settingLabel.text = "setting_text".localized()
  64. }
  65. private func configureLanguage() {
  66. self.changePasswordButton.setTitle("change_password_text".localized(), for: .normal)
  67. self.settingButton.setTitle("language_text".localized(), for: .normal)
  68. }
  69. func setupLanguages() {
  70. self.languages = Utility.getLanguages()
  71. }
  72. override func viewWillAppear(_ animated: Bool) {
  73. super.viewWillAppear(animated)
  74. self.setupNormalNavigation()
  75. self.navigationItem.title = StringConstants().settingText
  76. }
  77. override func viewWillDisappear(_ animated: Bool) {
  78. super.viewWillDisappear(animated)
  79. self.navigationItem.title = ""
  80. }
  81. @IBAction func redirectToChangePassword(_ sender: Any) {
  82. let storyboard = UIStoryboard.init(name: "Profile", bundle: Bundle.main)
  83. if let changePasswordViewController = storyboard.instantiateViewController(withIdentifier: "changePassword") as? ProfileChangePasswordViewController {
  84. self.navigationController!.pushViewController(changePasswordViewController, animated: true)
  85. }
  86. }
  87. @IBAction func settings(_ sender: Any) {
  88. self.showCountryPickerview()
  89. }
  90. @objc private func showCountryPickerview() {
  91. setupLanguages()
  92. let viewcontroller = UIStoryboard.init(name: "CountryPicker", bundle: nil).instantiateViewController(withIdentifier: "CountryPickerViewController") as! CountryPickerViewController
  93. let data: [SendMoneyCountryViewModel] = self.languages
  94. viewcontroller.isLanguageSelection = true
  95. viewcontroller.data = data
  96. viewcontroller.doneAction = self.countrySelected
  97. viewcontroller.type = PickerTitle.country
  98. self.present(viewcontroller, animated: true, completion: nil)
  99. }
  100. func countrySelected(models: [SendMoneyCountryViewModel]) {
  101. self.selectedLanguage = models.first
  102. }
  103. }