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.
178 lines
5.6 KiB
178 lines
5.6 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 if code == "pk" {
|
|
Localize.setCurrentLanguage("ur-PK")
|
|
} else {
|
|
Localize.setCurrentLanguage(code)
|
|
}
|
|
print("code: \(code)")
|
|
GMEDB.shared.app.set(code, .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!
|
|
@IBOutlet weak var settingTopBackgroundView: UIView!
|
|
|
|
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 = .themeBlue
|
|
self.useBiometricAuthSwitch.addTarget(
|
|
self,
|
|
action: #selector(self.changeBiometricAuthSwitch(_:)),
|
|
for: .valueChanged
|
|
)
|
|
|
|
// settingTopBackgroundView.backgroundColor = .themeRed
|
|
}
|
|
|
|
@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.alert(type: .error, message: error!.message)
|
|
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_text".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_text".localized()
|
|
}
|
|
|
|
func setupLanguages() {
|
|
|
|
self.languages = Utility.getLanguages()
|
|
}
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
setupNormalNavigation(color: .themeRedDark)
|
|
setupNavigationShadow(isUse: false)
|
|
// self.navigationItem.title = StringConstants().settingText
|
|
}
|
|
|
|
override func viewWillDisappear(_ animated: Bool) {
|
|
super.viewWillDisappear(animated)
|
|
self.navigationItem.title = ""
|
|
setupNavigationShadow(isUse: true)
|
|
}
|
|
|
|
@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()
|
|
TablePresenterWireframe().openWith(
|
|
delegate: self,
|
|
model: languages,
|
|
source: self
|
|
)
|
|
|
|
}
|
|
|
|
func countrySelected(models: [SendMoneyCountryViewModel]) {
|
|
self.selectedLanguage = models.first
|
|
}
|
|
|
|
}
|
|
|
|
extension SettingViewController: TablePresenterDelegate {
|
|
func tablePresenterView(_ viewController: TablePresenterViewController) -> TablePresenterConfiguration {
|
|
return TablePresenterConfiguration(
|
|
presenterTitle: "select_country_text".localized(),
|
|
closeButtonTitle: "cancel_text".localized(),
|
|
notFoundTitle: "no_result_found_text".localized(),
|
|
searchBarPlaceHolder: "search_country_text".localized()
|
|
)
|
|
}
|
|
|
|
func tablePresenterView(
|
|
_ viewController: TablePresenterViewController,
|
|
didSelectModel model: TablePresenterProtocol?
|
|
) {
|
|
self.selectedLanguage = (model as? SendMoneyCountryViewModel) ?? self.selectedLanguage
|
|
}
|
|
|
|
}
|