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.

124 lines
4.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
  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. }
  39. else {
  40. Localize.setCurrentLanguage(code)
  41. }
  42. UserDefaults.standard.set(code, forKey: AppConstants.firstTimeLanguageIsSet)
  43. }
  44. }
  45. @IBOutlet weak var settingLabel: UILabel!
  46. @IBOutlet weak var changePasswordButton: UIButton!
  47. @IBOutlet weak var settingButton: UIButton!
  48. override func viewDidLoad() {
  49. super.viewDidLoad()
  50. NotificationCenter.default.addObserver(self, selector: #selector(setText), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
  51. setupLanguages()
  52. configureLanguage()
  53. }
  54. @objc func setText() {
  55. self.changePasswordButton.setTitle("change_password_text".localized(), for: .normal)
  56. self.settingButton.setTitle("language_text".localized(), for: .normal)
  57. self.settingLabel.text = "setting_text".localized()
  58. }
  59. private func configureLanguage() {
  60. self.changePasswordButton.setTitle("change_password_text".localized(), for: .normal)
  61. self.settingButton.setTitle("language_text".localized(), for: .normal)
  62. }
  63. func setupLanguages() {
  64. self.languages = Utility.getLanguages()
  65. }
  66. override func viewWillAppear(_ animated: Bool) {
  67. super.viewWillAppear(animated)
  68. self.setupNormalNavigation()
  69. self.navigationItem.title = StringConstants().settingText
  70. }
  71. override func viewWillDisappear(_ animated: Bool) {
  72. super.viewWillDisappear(animated)
  73. self.navigationItem.title = ""
  74. }
  75. @IBAction func redirectToChangePassword(_ sender: Any) {
  76. let storyboard = UIStoryboard.init(name: "Profile", bundle: Bundle.main)
  77. if let changePasswordViewController = storyboard.instantiateViewController(withIdentifier: "changePassword") as? ProfileChangePasswordViewController {
  78. self.navigationController!.pushViewController(changePasswordViewController, animated: true)
  79. }
  80. }
  81. @IBAction func settings(_ sender: Any) {
  82. self.showCountryPickerview()
  83. }
  84. @objc private func showCountryPickerview() {
  85. setupLanguages()
  86. let viewcontroller = UIStoryboard.init(name: "CountryPicker", bundle: nil).instantiateViewController(withIdentifier: "CountryPickerViewController") as! CountryPickerViewController
  87. let data: [SendMoneyCountryViewModel] = self.languages
  88. viewcontroller.isLanguageSelection = true
  89. viewcontroller.data = data
  90. viewcontroller.doneAction = self.countrySelected
  91. viewcontroller.type = PickerTitle.country
  92. self.present(viewcontroller, animated: true, completion: nil)
  93. }
  94. func countrySelected(models: [SendMoneyCountryViewModel]) {
  95. self.selectedLanguage = models.first
  96. }
  97. }