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.

123 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. }
  58. private func configureLanguage() {
  59. self.changePasswordButton.setTitle("change_password_text".localized(), for: .normal)
  60. self.settingButton.setTitle("language_text".localized(), for: .normal)
  61. }
  62. func setupLanguages() {
  63. self.languages = Utility.getLanguages()
  64. }
  65. override func viewWillAppear(_ animated: Bool) {
  66. super.viewWillAppear(animated)
  67. self.setupNormalNavigation()
  68. self.navigationItem.title = StringConstants().settingText
  69. }
  70. override func viewWillDisappear(_ animated: Bool) {
  71. super.viewWillDisappear(animated)
  72. self.navigationItem.title = ""
  73. }
  74. @IBAction func redirectToChangePassword(_ sender: Any) {
  75. let storyboard = UIStoryboard.init(name: "Profile", bundle: Bundle.main)
  76. if let changePasswordViewController = storyboard.instantiateViewController(withIdentifier: "changePassword") as? ProfileChangePasswordViewController {
  77. self.navigationController!.pushViewController(changePasswordViewController, animated: true)
  78. }
  79. }
  80. @IBAction func settings(_ sender: Any) {
  81. self.showCountryPickerview()
  82. }
  83. @objc private func showCountryPickerview() {
  84. setupLanguages()
  85. let viewcontroller = UIStoryboard.init(name: "CountryPicker", bundle: nil).instantiateViewController(withIdentifier: "CountryPickerViewController") as! CountryPickerViewController
  86. let data: [SendMoneyCountryViewModel] = self.languages
  87. viewcontroller.isLanguageSelection = true
  88. viewcontroller.data = data
  89. viewcontroller.doneAction = self.countrySelected
  90. viewcontroller.type = PickerTitle.country
  91. self.present(viewcontroller, animated: true, completion: nil)
  92. }
  93. func countrySelected(models: [SendMoneyCountryViewModel]) {
  94. self.selectedLanguage = models.first
  95. }
  96. }