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

//
// SettingViewController.swift
// GMERemittance
//
// Created by Sujal on 2/18/18.
// Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
import Localize_Swift
class SettingViewController: UIViewController {
struct StringConstants {
var changePasswordText = "change_password_text".localized()
var settingText = "setting_text".localized()
var languageText = "language_text".localized()
}
var languages: [SendMoneyCountryViewModel] = []
var selectedLanguage: SendMoneyCountryViewModel? {
didSet {
let code = selectedLanguage?.code ?? "en"
if code == "lk" {
Localize.setCurrentLanguage("si")
}else
if code == "kh" {
Localize.setCurrentLanguage("km")
}else
if code == "kr" {
Localize.setCurrentLanguage("ko")
}else
if code == "mm" {
Localize.setCurrentLanguage("my")
}else
if code == "bd" {
Localize.setCurrentLanguage("bn")
}
else
if code == "np" {
Localize.setCurrentLanguage("ne")
}
else {
Localize.setCurrentLanguage(code)
}
UserDefaults.standard.set(code, forKey: AppConstants.firstTimeLanguageIsSet)
}
}
@IBOutlet weak var settingLabel: UILabel!
@IBOutlet weak var changePasswordButton: UIButton!
@IBOutlet weak var settingButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(setText), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
setupLanguages()
configureLanguage()
}
@objc func setText() {
self.changePasswordButton.setTitle("change_password_text".localized(), for: .normal)
self.settingButton.setTitle("language_text".localized(), for: .normal)
self.settingLabel.text = "setting_text".localized()
}
private func configureLanguage() {
self.changePasswordButton.setTitle("change_password_text".localized(), for: .normal)
self.settingButton.setTitle("language_text".localized(), for: .normal)
}
func setupLanguages() {
self.languages = Utility.getLanguages()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.setupNormalNavigation()
self.navigationItem.title = StringConstants().settingText
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationItem.title = ""
}
@IBAction func redirectToChangePassword(_ sender: Any) {
let storyboard = UIStoryboard.init(name: "Profile", bundle: Bundle.main)
if let changePasswordViewController = storyboard.instantiateViewController(withIdentifier: "changePassword") as? ProfileChangePasswordViewController {
self.navigationController!.pushViewController(changePasswordViewController, animated: true)
}
}
@IBAction func settings(_ sender: Any) {
self.showCountryPickerview()
}
@objc private func showCountryPickerview() {
setupLanguages()
let viewcontroller = UIStoryboard.init(name: "CountryPicker", bundle: nil).instantiateViewController(withIdentifier: "CountryPickerViewController") as! CountryPickerViewController
let data: [SendMoneyCountryViewModel] = self.languages
viewcontroller.isLanguageSelection = true
viewcontroller.data = data
viewcontroller.doneAction = self.countrySelected
viewcontroller.type = PickerTitle.country
self.present(viewcontroller, animated: true, completion: nil)
}
func countrySelected(models: [SendMoneyCountryViewModel]) {
self.selectedLanguage = models.first
}
}