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.
160 lines
6.1 KiB
160 lines
6.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
|
|
if code == "ru" {
|
|
Localize.setCurrentLanguage("ru-RU")
|
|
}else
|
|
if code == "vn" {
|
|
Localize.setCurrentLanguage("vi-VN")
|
|
}
|
|
|
|
else {
|
|
Localize.setCurrentLanguage(code)
|
|
}
|
|
print("code: \(code)")
|
|
UserDefaults.standard.set(code, forKey: AppConstants.firstTimeLanguageIsSet)
|
|
}
|
|
}
|
|
|
|
@IBOutlet weak var settingLabel: UILabel!
|
|
@IBOutlet weak var changePasswordButton: UIButton!
|
|
@IBOutlet weak var useBiometricAuthLabel: UILabel!
|
|
@IBOutlet weak var settingButton: UIButton!
|
|
@IBOutlet weak var useBiometricAuthSwitch: UISwitch!
|
|
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
NotificationCenter.default.addObserver(self, selector: #selector(setText), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
|
|
setupLanguages()
|
|
configureLanguage()
|
|
|
|
let userBiometricAuth = (KeyChain.shared.get(key: .biometricAuth) ?? "0" ) == "1" ? true : false
|
|
self.useBiometricAuthSwitch.setOn(userBiometricAuth, animated: true)
|
|
self.useBiometricAuthSwitch.onTintColor = AppConstants.themeBlueColor
|
|
self.useBiometricAuthSwitch.addTarget(self, action: #selector(self.changeBiometricAuthSwitch(_:)), for: .valueChanged)
|
|
}
|
|
|
|
|
|
@objc
|
|
func changeBiometricAuthSwitch(_ sender: UISwitch){
|
|
let isOn = sender.isOn ? "1" : "0"
|
|
|
|
if sender.isOn {
|
|
BiometricAuthenticationWireframe().showBiometricAuthentication() { error in
|
|
if error != nil {
|
|
DispatchQueue.main.async {
|
|
self.useBiometricAuthSwitch.setOn(false, animated: true)
|
|
}
|
|
} else {
|
|
KeyChain.shared.save(data: isOn, key: .biometricAuth)
|
|
}
|
|
}
|
|
} else {
|
|
KeyChain.shared.save(data: isOn, key: .biometricAuth)
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@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()
|
|
useBiometricAuthLabel.text = "use_biometric_authentication".localized()
|
|
}
|
|
|
|
private func configureLanguage() {
|
|
self.changePasswordButton.setTitle("change_password_text".localized(), for: .normal)
|
|
self.settingButton.setTitle("language_text".localized(), for: .normal)
|
|
useBiometricAuthLabel.text = "use_biometric_authentication".localized()
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
}
|