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.
558 lines
23 KiB
558 lines
23 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
|
|
import SDWebImage
|
|
import SafariServices
|
|
|
|
class SettingViewController: UIViewController {
|
|
|
|
struct StringConstants {
|
|
var changePasswordText = "change_password_text".localized()
|
|
var changePINText = "changepin_text".localized()
|
|
var settingText = "setting_text".localized()
|
|
var languageText = "language_text".localized()
|
|
}
|
|
|
|
var languages: [SendMoneyCountryViewModel] = []
|
|
private var multiMediaManager: MultiMediaManager?
|
|
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 if code == "jp" {
|
|
Localize.setCurrentLanguage("ja")
|
|
} else if code == "ja" {
|
|
Localize.setCurrentLanguage("ja")
|
|
} else {
|
|
Localize.setCurrentLanguage(code)
|
|
}
|
|
print("code: \(code)")
|
|
GMEDB.shared.app.set(code, .firstTimeLanguageIsSet)
|
|
configureLanguage()
|
|
appDelegate.reload()
|
|
}
|
|
}
|
|
var status: Bool!
|
|
|
|
// @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!
|
|
@IBOutlet weak var profileImage: UIImageView! {
|
|
didSet {
|
|
profileImage.clipsToBounds = true
|
|
profileImage.layer.cornerRadius = profileImage.frame.width/2
|
|
profileImage.sizeToFit()
|
|
}
|
|
}
|
|
@IBOutlet weak var pinView: UIView! {
|
|
didSet{
|
|
pinView.clipsToBounds = true
|
|
pinView.layer.cornerRadius = pinView.frame.width/2
|
|
}
|
|
}
|
|
|
|
@IBOutlet weak var renewIdView: UIStackView!
|
|
@IBOutlet weak var loyaltyPointsView: UIStackView!
|
|
@IBOutlet weak var referAndEarnView: UIStackView!
|
|
@IBOutlet weak var copyButton: UIButton!
|
|
@IBOutlet weak var paymentInfoStackView: UIStackView!
|
|
@IBOutlet weak var languageStackView: UIStackView!
|
|
@IBOutlet weak var accountStatementStackView: UIStackView!
|
|
@IBOutlet weak var changePinStackView: UIStackView!
|
|
@IBOutlet weak var changePasswordStackView: UIStackView!
|
|
@IBOutlet weak var biometricsStackView: UIStackView!
|
|
@IBOutlet weak var contactStackView: UIStackView!
|
|
@IBOutlet weak var aboutStackView: UIStackView!
|
|
@IBOutlet weak var usernameLabel: UILabel!
|
|
@IBOutlet weak var verificationStatusButton: UIButton!
|
|
@IBOutlet weak var accountNumberLabel: UILabel!
|
|
@IBOutlet weak var emailLabel: UILabel!
|
|
@IBOutlet weak var profileLabel: UILabel!
|
|
@IBOutlet weak var accountLabel: UILabel!
|
|
@IBOutlet weak var accountTitleLabel: UILabel!
|
|
@IBOutlet weak var accountDetailLabel: UILabel!
|
|
@IBOutlet weak var loyaltyPointsLabel: UILabel!
|
|
@IBOutlet weak var referTitleLabel: UILabel!
|
|
@IBOutlet weak var rewardPointLabel: UILabel!
|
|
@IBOutlet weak var paymentInfoLabel: UILabel!
|
|
@IBOutlet weak var viewLinkedCardLabel: UILabel!
|
|
@IBOutlet weak var renewIdLabel: UILabel!
|
|
@IBOutlet weak var langSelectionLabel: UILabel!
|
|
@IBOutlet weak var accountStatementLabel: UILabel!
|
|
@IBOutlet weak var changePinLabel: UILabel!
|
|
@IBOutlet weak var changePasswordLabel: UILabel!
|
|
@IBOutlet weak var enableBiometricLabel: UILabel!
|
|
@IBOutlet weak var fingerPrintLabel: UILabel!
|
|
@IBOutlet weak var supportLabel: UILabel!
|
|
@IBOutlet weak var contactUsLabel: UILabel!
|
|
@IBOutlet weak var aboutUsLabel: UILabel!
|
|
@IBOutlet weak var logoutLabel: UIButton!
|
|
@IBOutlet weak var privacyPolicyLabel: UIButton!
|
|
@IBOutlet weak var termsLabel: UIButton!
|
|
@IBOutlet weak var fraudGuranteeLabel: UIButton!
|
|
@IBOutlet weak var basicInformationLabel: UILabel!
|
|
@IBOutlet weak var securitySettingsLabel: UILabel!
|
|
|
|
@IBOutlet weak var roundview: UIView!
|
|
@IBAction func logoutTapped(_ sender: UIButton) {
|
|
alertWithOkCancel(
|
|
type: .normal,
|
|
message: "logout_confirmation_text".localized(),
|
|
title: "logout_text".localized(),
|
|
okTitle: "yes_text".localized(),
|
|
cancelTitle: "no_text".localized(),
|
|
okAction: { MainWireframe.logout() }
|
|
)
|
|
}
|
|
|
|
@IBAction func uploadProfileTapped(_ sender: UIButton) {
|
|
self.multiMediaManager?.openPicker(mode: UIImagePickerController.CameraCaptureMode.photo)
|
|
}
|
|
|
|
@IBAction func privacyPolicy(_ sender: UIButton) {
|
|
let urlString = "https://japanremit.com/Website/PrivacyPolicy"
|
|
showTutorial(url: urlString)
|
|
}
|
|
|
|
@IBAction func termsAndConditions(_ sender: UIButton) {
|
|
let urlString = "https://www.japanremit.com/Website/TermsAndConditions"
|
|
showTutorial(url: urlString)
|
|
}
|
|
|
|
@IBAction func fraudGuranteePolicy(_ sender: UIButton) {
|
|
let urlString = "https://japanremit.com/Website/FraudGuaranteePolicy"
|
|
showTutorial(url: urlString)
|
|
}
|
|
|
|
@IBAction func copyAccountNumber(_ sender: UIButton) {
|
|
UIPasteboard.general.string = GMEDB.shared.user.string(.walletNumber) ?? ""
|
|
if let textString = UIPasteboard.general.string {
|
|
print("paste:\(textString)")
|
|
showToast(message: "Copied to clipboard", font: .sanfrancisco(.medium, size: 12))
|
|
}
|
|
}
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
NotificationCenter.default.addObserver(
|
|
self,
|
|
selector: #selector(setText),
|
|
name: NSNotification.Name(LCLLanguageChangeNotification),
|
|
object: nil
|
|
)
|
|
roundview.rounded()
|
|
setTapGestures()
|
|
usernameLabel.text = GMEDB.shared.user.string(.firstName) ?? ""
|
|
accountNumberLabel.text = GMEDB.shared.user.string(.referralCode) ?? ""
|
|
emailLabel.text = GMEDB.shared.user.string(.email) ?? ""
|
|
multiMediaManager = MultiMediaManager(presenter: self)
|
|
multiMediaManager?.delegate = self
|
|
|
|
let image = GMEDB.shared.user.string(.profileImage) ?? ""
|
|
profileImage.sd_setImage(with: URL(string: image), placeholderImage: UIImage(named: "round-person"))
|
|
|
|
setupLanguages()
|
|
|
|
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
|
|
}
|
|
|
|
func configureLanguage() {
|
|
basicInformationLabel.text = "baisc_information".localized()
|
|
profileLabel.text = "profile_title_text".localized()
|
|
accountTitleLabel.text = "jme_wallet_no_text_1".localized()
|
|
accountDetailLabel.text = "account_detail".localized()
|
|
referTitleLabel.text = "refer_and_earn_text".localized()
|
|
rewardPointLabel.text = "reward_point".localized()
|
|
renewIdLabel.text = "renewId_text".localized()
|
|
loyaltyPointsLabel.text = "loyalty_points".localized()
|
|
paymentInfoLabel.text = "payment_information".localized()
|
|
viewLinkedCardLabel.text = "how_to_deposit_text".localized()
|
|
accountLabel.text = "account".localized()
|
|
langSelectionLabel.text = "language_selection".localized()
|
|
accountStatementLabel.text = "jme_account_statement_text".localized()
|
|
securitySettingsLabel.text = "security_setting".localized()
|
|
changePinLabel.text = "changepin_text".localized()
|
|
enableBiometricLabel.text = "enable_biometrics".localized()
|
|
fingerPrintLabel.text = "use_fingerprint_for_payment".localized()
|
|
supportLabel.text = "support_text".localized()
|
|
contactUsLabel.text = "contact_us".localized()
|
|
aboutUsLabel.text = "about_us".localized()
|
|
logoutLabel.setTitle("logout_text".localized(), for: .normal)
|
|
|
|
|
|
|
|
|
|
changePasswordLabel.text = "change_password_text".localized()
|
|
privacyPolicyLabel.setTitle("privacyAndPolicy_text".localized(), for: .normal)
|
|
termsLabel.setTitle("terms_and_condition_title_text".localized(), for: .normal)
|
|
}
|
|
|
|
func showTutorial(url: String) {
|
|
if let url = URL(string: url) {
|
|
let config = SFSafariViewController.Configuration()
|
|
config.entersReaderIfAvailable = false
|
|
|
|
let vc = SFSafariViewController(url: url, configuration: config)
|
|
present(vc, animated: true)
|
|
}
|
|
}
|
|
|
|
@objc func changeBiometricAuthSwitch(_ sender: UISwitch) {
|
|
// let isOn = sender.isOn ? "1" : "0"
|
|
status = sender.isOn ? true : false
|
|
let password = KeyChain.shared.get(key: .password) ?? ""
|
|
// if status {
|
|
guard let viewController = UIStoryboard(name: "PasswordConfirmation", bundle: nil)
|
|
.instantiateViewController(withIdentifier: "PasswordConfirmViewController") as? PasswordConfirmViewController else {
|
|
return
|
|
}
|
|
viewController.delegate = self
|
|
self.present(viewController, animated: true, completion: nil)
|
|
/* } else {
|
|
APIRouter.changeBioSwitch(isBio: status, password: password).request(
|
|
needsAuthorization: true,
|
|
success: { (response: ResponseMessage) in
|
|
if (response.errorCode ?? "") == "1" {
|
|
let error = NSError(domain: "Network", code: 0, message: response.message ?? "")
|
|
print(error.localizedDescription)
|
|
self.alertWithOk(type: .error, message: error.localizedDescription, title: "Error", okTitle: "ok_text".localized()) {
|
|
self.dismiss(animated: true, completion: nil)
|
|
}
|
|
} else {
|
|
let defaults = UserDefaults.standard
|
|
defaults.register(defaults: ["bioAcessCode" : ""])
|
|
defaults.set(response.id, forKey: "bioAcessCode")
|
|
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)
|
|
}
|
|
}
|
|
|
|
},
|
|
failure: { error in
|
|
self.alertWithOk(type: .error, message: error.localizedDescription, title: "Error", okTitle: "ok_text".localized()) {
|
|
self.dismiss(animated: true, completion: nil)
|
|
}
|
|
}
|
|
)
|
|
}*/
|
|
|
|
}
|
|
|
|
@objc func setText() {
|
|
|
|
profileLabel.text = "profile_title_text".localized()
|
|
accountTitleLabel.text = "account_number_text".localized()
|
|
referTitleLabel.text = "refer_and_earn_text".localized()
|
|
renewIdLabel.text = "renewId_text".localized()
|
|
changePasswordLabel.text = "change_password_text".localized()
|
|
privacyPolicyLabel.setTitle("privacyAndPolicy_text".localized(), for: .normal)
|
|
termsLabel.setTitle("terms_and_condition_title_text".localized(), for: .normal)
|
|
}
|
|
|
|
func setTapGestures() {
|
|
let paymentInfo = UITapGestureRecognizer(target: self, action: #selector(self.paymentInfo(_:)))
|
|
paymentInfoStackView.addGestureRecognizer(paymentInfo)
|
|
|
|
let loyaltyPoints = UITapGestureRecognizer(target: self, action: #selector(self.loyaltyInfo(_:)))
|
|
loyaltyPointsView.addGestureRecognizer(loyaltyPoints)
|
|
|
|
let referAndEarn = UITapGestureRecognizer(target: self, action: #selector(self.referAndEarn(_:)))
|
|
referAndEarnView.addGestureRecognizer(referAndEarn)
|
|
|
|
let renewId = UITapGestureRecognizer(target: self, action: #selector(self.renewId(_:)))
|
|
renewIdView.addGestureRecognizer(renewId)
|
|
|
|
let languageSelectionGuesture = UITapGestureRecognizer(target: self, action: #selector(self.showCountryPickerview(_:)))
|
|
languageStackView.addGestureRecognizer(languageSelectionGuesture)
|
|
|
|
let changePin = UITapGestureRecognizer(target: self, action: #selector(self.changePin(_:)))
|
|
changePinStackView.addGestureRecognizer(changePin)
|
|
|
|
let changePassword = UITapGestureRecognizer(target: self, action: #selector(self.changePassword(_:)))
|
|
changePasswordStackView.addGestureRecognizer(changePassword)
|
|
|
|
let contactUs = UITapGestureRecognizer(target: self, action: #selector(self.contactUsTapped(_:)))
|
|
contactStackView.addGestureRecognizer(contactUs)
|
|
|
|
let aboutUs = UITapGestureRecognizer(target: self, action: #selector(self.aboutUsTapped(_:)))
|
|
aboutStackView.addGestureRecognizer(aboutUs)
|
|
}
|
|
|
|
@objc func loyaltyInfo(_ sender: UITapGestureRecognizer) {
|
|
if let naviVC = navigationController {
|
|
LoyalityPointsWireframe().pushMainView(in: naviVC)
|
|
}
|
|
}
|
|
|
|
@objc func referAndEarn(_ sender: UITapGestureRecognizer) {
|
|
if let naviVC = navigationController {
|
|
InviteUserWireframe().pushMainView(in: naviVC)
|
|
}
|
|
}
|
|
|
|
@objc func renewId(_ sender: UITapGestureRecognizer) {
|
|
RenewIDWireframe().pushMainView(on: self)
|
|
}
|
|
|
|
@objc func paymentInfo(_ sender: UITapGestureRecognizer) {
|
|
if let naviVC = navigationController {
|
|
HowToDepositWireframe().pushMainView(in: naviVC)
|
|
}
|
|
}
|
|
|
|
@objc private func showCountryPickerview(_ sender: UITapGestureRecognizer) {
|
|
setupLanguages()
|
|
TablePresenterWireframe().openWith(
|
|
delegate: self,
|
|
model: languages,
|
|
source: self
|
|
)
|
|
|
|
}
|
|
|
|
@objc func changePin(_ sender: UITapGestureRecognizer) {
|
|
guard let viewController = UIStoryboard(name: "Profile", bundle: nil)
|
|
.instantiateViewController(withIdentifier: "changePin") as? ProfileChangePinViewController else {
|
|
return
|
|
}
|
|
self.push(viewController, animated: true)
|
|
}
|
|
|
|
@objc func changePassword(_ sender: UITapGestureRecognizer) {
|
|
guard let viewController = UIStoryboard(name: "Profile", bundle: nil)
|
|
.instantiateViewController(withIdentifier: "changePassword") as? ProfileChangePasswordViewController else {
|
|
return
|
|
}
|
|
self.push(viewController, animated: true)
|
|
}
|
|
|
|
@objc func contactUsTapped(_ sender: UITapGestureRecognizer) {
|
|
support()
|
|
}
|
|
|
|
@objc func aboutUsTapped(_ sender: UITapGestureRecognizer) {
|
|
guard let viewController = UIStoryboard(name: "SideMenu", bundle: nil)
|
|
.instantiateViewController(withIdentifier: "AboutGMEViewController") as? AboutGMEViewController else {
|
|
return
|
|
}
|
|
|
|
self.push(viewController, animated: true)
|
|
}
|
|
|
|
func support() {
|
|
let actionArray = [ActionSheetElement(title: "Facebook", id: "https://m.facebook.com/jmeremit/", icon: "Facebook"), ActionSheetElement(title: "03-5475-3913", id: "tel://0354753913", icon: "contact")]
|
|
if UIDevice.current.userInterfaceIdiom == .pad {
|
|
ActionSheetHelper.shared.openWith(parentVc: self, button: nil, title: "help_you_text".localized(), values: actionArray) { (element) in
|
|
UIApplication.tryURL(url: element.id)
|
|
|
|
}
|
|
} else {
|
|
ActionSheetHelper.shared.open(parentVc: self, title: "help_you_text".localized(), values: actionArray) { (element) in
|
|
UIApplication.tryURL(url: element.id)
|
|
}
|
|
}
|
|
}
|
|
|
|
func setupLanguages() {
|
|
|
|
self.languages = Utility.getLanguages()
|
|
}
|
|
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
configureLanguage()
|
|
self.navigationController?.navigationBar.isHidden = true
|
|
}
|
|
|
|
override func viewWillDisappear(_ animated: Bool) {
|
|
super.viewWillDisappear(animated)
|
|
self.navigationItem.title = ""
|
|
}
|
|
|
|
func countrySelected(models: [SendMoneyCountryViewModel]) {
|
|
self.selectedLanguage = models.first
|
|
}
|
|
|
|
func saveProfileInfo(image: UIImage,
|
|
success: @escaping (String) -> Void,
|
|
failure: @escaping (Error) -> Void
|
|
) {
|
|
APIRouter.uploadProfile
|
|
.requestMultipart(
|
|
images: getImageParams(model: image),
|
|
needsAuthorization: true,
|
|
success: { (response: KYCResponseContainer) in
|
|
|
|
if (response.errorCode ?? "") == "1" {
|
|
let error = NSError(
|
|
domain: "Network",
|
|
code: 0,
|
|
userInfo: [NSLocalizedDescriptionKey : response.message ?? ""]
|
|
)
|
|
failure(error)
|
|
} else {
|
|
guard let message = response.message else {
|
|
return
|
|
}
|
|
success(message)
|
|
}
|
|
},
|
|
failure: failure)
|
|
}
|
|
|
|
private func getImageParams(model: UIImage) -> [String: Data] {
|
|
var images: [String: Data] = [:]
|
|
|
|
if let data = model.pngData() {
|
|
images["CustomerProfile"] = data
|
|
}
|
|
|
|
return images
|
|
}
|
|
|
|
}
|
|
|
|
extension SettingViewController: ConfirmPasswordDelegate {
|
|
func confirm(password: String) {
|
|
APIRouter.changeBioSwitch(isBio: self.status, password: password).request(
|
|
needsAuthorization: true,
|
|
success: { (response: ResponseMessage) in
|
|
if (response.errorCode ?? "") == "1" {
|
|
let error = NSError(domain: "Network", code: 0, message: response.message ?? "")
|
|
print(error.localizedDescription)
|
|
self.alertWithOk(type: .error, message: error.localizedDescription, title: "Error", okTitle: "ok_text".localized()) {
|
|
self.useBiometricAuthSwitch.setOn(!self.status, animated: true)
|
|
self.dismiss(animated: true, completion: nil)
|
|
}
|
|
} else {
|
|
let defaults = UserDefaults.standard
|
|
defaults.register(defaults: ["bioAcessCode" : ""])
|
|
defaults.set(response.id, forKey: "bioAcessCode")
|
|
if self.status {
|
|
BiometricAuthenticationWireframe().showBiometricAuthentication { error in
|
|
if error != nil {
|
|
DispatchQueue.main.async {
|
|
self.alert(type: .error, message: error!.message)
|
|
self.useBiometricAuthSwitch.setOn(!self.status, animated: true)
|
|
}
|
|
} else {
|
|
KeyChain.shared.save(data: self.status ? "1" : "0", key: .biometricAuth)
|
|
}
|
|
}
|
|
} else {
|
|
KeyChain.shared.save(data: self.status ? "1" : "0", key: .biometricAuth)
|
|
}
|
|
}
|
|
|
|
},
|
|
failure: { error in
|
|
self.alertWithOk(type: .error, message: error.localizedDescription, title: "Error", okTitle: "ok_text".localized()) {
|
|
self.useBiometricAuthSwitch.setOn(!self.status, animated: true)
|
|
self.dismiss(animated: true, completion: nil)
|
|
}
|
|
}
|
|
)
|
|
}
|
|
|
|
func cancel() {
|
|
self.useBiometricAuthSwitch.setOn(!self.status, animated: true)
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
}
|
|
|
|
extension SettingViewController: MultimediaPresenterProtocol {
|
|
func presenting() -> UIViewController {
|
|
return self
|
|
}
|
|
}
|
|
|
|
extension SettingViewController: MultiMediaManagerDelegate {
|
|
func didFinishPickingWithImage(image: UIImage) {
|
|
self.showProgressHud()
|
|
saveProfileInfo(image: image, success: { msg in
|
|
self.hideProgressHud()
|
|
self.alertWithOk(type: .success, message: msg, title: nil, okTitle: "OK", okAction: {
|
|
self.profileImage.image = image
|
|
self.navigationController?.popViewController(animated: true)
|
|
})
|
|
|
|
}, failure: { error in
|
|
self.hideProgressHud()
|
|
self.alert(message: error.localizedDescription)
|
|
})
|
|
}
|
|
|
|
func didFinishPickingWithError(error: String) {
|
|
self.alert(type: .error, message: error)
|
|
}
|
|
|
|
func hideBorder(view: UIView?) {
|
|
view?.layer.borderWidth = 0
|
|
view?.layer.addShadow(with: .clear)
|
|
}
|
|
}
|