From 02c6997d5684c327ecbac3d8f7c00c14ad25602a Mon Sep 17 00:00:00 2001 From: InKwon James Kim Date: Tue, 13 Aug 2019 13:38:08 +0900 Subject: [PATCH] implemented redirect to auto debit page --- GME Remit/AppDelegate.swift | 3 + GME Remit/Library/.DS_Store | Bin 6148 -> 0 bytes GME Remit/Library/CountryFlag.swift | 8 - GME Remit/Library/Keyboard.swift | 85 ---------- GME Remit/Models/User.swift | 4 + .../User Interface/View/AutoDebit.storyboard | 16 +- .../View/AutoDebitViewController.swift | 64 ++++---- .../Home/User Interface/View/Home.storyboard | 71 ++++---- .../View/HomeViewController.swift | 151 ++++++++++-------- .../View/HomeViewInterface.swift | 12 +- .../View/LauncherScreenViewController.swift | 13 +- .../Wireframe/LauncherScreenWireframe.swift | 49 +++--- .../View/RecipientsViewController.swift | 44 ++++- GME Remit/Utilities/Database/GMEDB.swift | 2 + 14 files changed, 250 insertions(+), 272 deletions(-) delete mode 100644 GME Remit/Library/.DS_Store delete mode 100644 GME Remit/Library/CountryFlag.swift delete mode 100644 GME Remit/Library/Keyboard.swift diff --git a/GME Remit/AppDelegate.swift b/GME Remit/AppDelegate.swift index 6198f5d3..89c62752 100644 --- a/GME Remit/AppDelegate.swift +++ b/GME Remit/AppDelegate.swift @@ -62,6 +62,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate { .shared .app .remove([.isOpenedTokenRenwalAlert, .isOpenedPopupNotification]) + + // FIXME: For Test + GMEDB.shared.user.set("autodebit", .redirectTo) return true } diff --git a/GME Remit/Library/.DS_Store b/GME Remit/Library/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 = ["M", "o", "b", "i", "l", "e", "T", "r" , "a", "n", "s", "K", "e", "y", "1", "0"] - - secureKey = NSData(bytes: iv, length: 16) - - NSLog("securekey : %@", secureKey) - // securekey : - // real securekey : <4d6f6269 6c655472 616e734b 65793130> - setQwertyTranskey() - setNumberTranskey() - } - - func setQwertyTranskey(){ - mQwertyTransKeyView = TransKeyView() - mQwertyTransKeyView?.mTK_Init(presenter) - mQwertyTransKeyView?.delegate = presenter - mQwertyTransKeyView?.mTK_SetSecureKey(secureKey as Data!) - mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) - mQwertyTransKeyView?.mTK_LicenseCheck("license_mtranskey") - } - - func setNumberTranskey(){ - mNumberTransKeyView = TransKeyView() - mNumberTransKeyView?.mTK_Init(presenter) - mNumberTransKeyView?.delegate = presenter - mNumberTransKeyView?.mTK_SetSecureKey(secureKey as Data!) - mNumberTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape) - mNumberTransKeyView?.mTK_LicenseCheck("license_mtranskey") - } - -} - -extension KeyBoard: KeyboardPresenterDelegate { - func parentViewDidDisappear() { - mQwertyTransKeyView?.mTK_ClearDelegateSubviews() - mNumberTransKeyView?.mTK_ClearDelegateSubviews() - if isTranskeyShowing == false{ - mQwertyTransKeyView?.delegate = nil; - mNumberTransKeyView?.delegate = nil; - } - } -} diff --git a/GME Remit/Models/User.swift b/GME Remit/Models/User.swift index afc63e32..e689c8bc 100644 --- a/GME Remit/Models/User.swift +++ b/GME Remit/Models/User.swift @@ -68,6 +68,7 @@ class User: Mappable { var accessTokenRegTime: String? var accessTokenExpTime: String? + var redirectTo: String? required init?(map: Map) { } @@ -112,6 +113,9 @@ class User: Mappable { accessTokenRegTime <- map["accessTokenRegTime"] accessTokenExpTime <- map["accessTokenExpTime"] + + redirectTo <- map["redirectTo"] + } } diff --git a/GME Remit/Modules/AutoDebitModules/AutoDebit/User Interface/View/AutoDebit.storyboard b/GME Remit/Modules/AutoDebitModules/AutoDebit/User Interface/View/AutoDebit.storyboard index 7e40b517..2f0f181f 100644 --- a/GME Remit/Modules/AutoDebitModules/AutoDebit/User Interface/View/AutoDebit.storyboard +++ b/GME Remit/Modules/AutoDebitModules/AutoDebit/User Interface/View/AutoDebit.storyboard @@ -82,7 +82,7 @@ - + @@ -83,10 +79,11 @@ - + + - + @@ -94,10 +91,12 @@ - + + + - + @@ -108,28 +107,28 @@ - + - + - + - + - + @@ -184,7 +183,7 @@ - - + + - - - - + + + + + - + @@ -359,20 +359,21 @@ + + + - - - + - + diff --git a/GME Remit/Modules/Home/User Interface/View/HomeViewController.swift b/GME Remit/Modules/Home/User Interface/View/HomeViewController.swift index ac019cb3..d1ac8ba4 100644 --- a/GME Remit/Modules/Home/User Interface/View/HomeViewController.swift +++ b/GME Remit/Modules/Home/User Interface/View/HomeViewController.swift @@ -10,6 +10,7 @@ import UIKit import Crashlytics import Localize_Swift import ChannelIO +import LGSideMenuController class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { enum Sections: Int { @@ -38,17 +39,17 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { @IBOutlet private weak var verificationNoticeView: UIView! @IBOutlet private weak var verificationText: UILabel! - @IBOutlet private weak var verificationTitleLabel: UILabel! - @IBOutlet private weak var verificationHeaderLeftImageview: UIImageView! - @IBOutlet private weak var verificationHeaderRightButton: UIButton! + @IBOutlet private weak var messageTitleLabel: UILabel! + @IBOutlet private weak var messageLeftImageview: UIImageView! + @IBOutlet private weak var messageRightButton: UIButton! + @IBOutlet private var tapMessageViewGestrueRecognizer: UITapGestureRecognizer! @IBOutlet private weak var seperatorView: UIView! - // title labels - @IBOutlet private weak var thankyouTitleLabel: UILabel! - + @IBOutlet private weak var supportBarButton: UIBarButtonItem! // MARK: Properties + lazy var blobView = UIView() var messageCount: String? { didSet { @@ -66,7 +67,7 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { didSet { // update self.save(user: user) - self.showUnverifiedNotice() + setMessageView() self.tableView.reloadData() updateBalance() self.update() @@ -109,7 +110,6 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - configureViews() self.tableView.reloadData() NotificationCenter.default.addObserver( @@ -226,6 +226,9 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { private func setup() { // all setup should be done here + self.verificationNoticeHeightConstraint.constant = 0 + self.verificationNoticeView.alpha = 0 + setupDelegates() setupNotifications() addRefreshControlTableView() @@ -457,72 +460,75 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { } - private func showUnverifiedNotice() { - setVerificationText() - if shouldShowUnverifiedNotice() { - UIView.animate(withDuration: 0.33) { - self.verificationNoticeHeightConstraint.constant = Constants.verificationNoticeHeight - self.verificationNoticeView.alpha = 1 - self.view.layoutIfNeeded() - } - } else { - self.verificationNoticeHeightConstraint.constant = 0 - self.verificationNoticeView.alpha = 0 - self.view.layoutIfNeeded() - } - } - - private func setVerificationText() { + private func setMessageView() { if didSubmitKycAndNotVerified() { - verificationTitleLabel.text = StringConstants().verificationInProcessTitleText - self.verificationText.text = StringConstants().soonToUseGmeServicesTitle - self.verificationHeaderLeftImageview.image = #imageLiteral(resourceName: "ic_home_verified") - self.verificationHeaderRightButton.setImage(#imageLiteral(resourceName: "ic_home_payoutLocation"), for: UIControl.State.normal) + showWaitVerifyMessage() + setNavBar(isUseMenu: true) } else { - self.verificationNoticeHeightConstraint.constant = 0 - self.verificationNoticeView.alpha = 0 + let redirect = GMEDB.shared.user.string(.redirectTo) ?? "" + + switch redirect { + case "autodebit": + showAutoDebitMessage() + setNavBar(isUseMenu: false) + default: + removeAllMessage() + setNavBar(isUseMenu: true) + } } } - private func didSubmitKycAndNotVerified() -> Bool { - return Utility.didSubmitKyc() && !Utility.isVerifiedUser() - } - - private func didSubmitKycAndVerified() -> Bool { - return Utility.didSubmitKyc() && Utility.isVerifiedUser() - } - - private func didNotSubmitKycAndNotVerified() -> Bool { - return !Utility.didSubmitKyc() && !Utility.isVerifiedUser() + private func showWaitVerifyMessage() { + self.verificationNoticeHeightConstraint.constant = 100 + self.verificationNoticeView.alpha = 0 + + messageTitleLabel.text = StringConstants().verificationInProcessTitleText + self.verificationText.text = StringConstants().soonToUseGmeServicesTitle + self.messageLeftImageview.image = #imageLiteral(resourceName: "ic_home_verified") + self.messageRightButton.setImage(#imageLiteral(resourceName: "ic_home_payoutLocation"), for: .normal) } - private func shouldShowPennyTestError() -> Bool { - return Utility.shouldShowPennyTestError() + private func showAutoDebitMessage() { + self.verificationNoticeHeightConstraint.constant = 100 + self.verificationNoticeView.alpha = 1 + messageTitleLabel.text = "Move to autodebit regist" + self.verificationText.text = "You have to regist your autodebit account" + self.messageLeftImageview.image = #imageLiteral(resourceName: "ic_home_verified") + self.messageRightButton.setImage(#imageLiteral(resourceName: "ic_home_payoutLocation"), for: .normal) + + blobView.removeFromSuperview() + + blobView = UIView( + frame: CGRect(x: 0, y: 164, width: view.frame.width, height: view.frame.height) + ) + blobView.backgroundColor = .init(white: 0, alpha: 0.5) + + tabBarController?.view.addSubview(blobView) + tapMessageViewGestrueRecognizer.addTarget(self, action: #selector(tapMessageView(_:))) } - private func shouldShowUnverifiedNotice() -> Bool { - return !self.isUserVerified() + @objc private func tapMessageView(_ sender: UITapGestureRecognizer) { + blobView.removeFromSuperview() + let navigationVC = UINavigationController(rootViewController: AutoDebitWireframe().getMainView()) + tabBarController?.present(navigationVC, animated: true, completion: nil) } - private func configureViews() { + private func removeAllMessage() { self.verificationNoticeHeightConstraint.constant = 0 - showUnverifiedNotice() - setNavBar() + self.verificationNoticeView.alpha = 0 + blobView.removeFromSuperview() } - func setNavBar() { + func setNavBar(isUseMenu: Bool) { let selector = #selector(self.showSideMenu) - self.setupPicturedNavBar(sideMenuAction: selector) + + isUseMenu ? setupPicturedNavBar(sideMenuAction: selector) : setupPicturedNavBar(sideMenuAction: nil) } @objc func showSideMenu() { sideMenuController?.showLeftViewAnimated() } - private func isUserVerified() -> Bool { - return Utility.isVerifiedUser() - } - @objc private func showSendMoney() { let kycSubmited = user?.kyc ?? false let pennyTestComplete = Utility.pennyTestVerified() @@ -549,7 +555,6 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { return } if isUserVerified() { - // remaining of previous developer. I dont have much time. Later. TODO: refracor if let navigation = self.navigationController { let wireframe = ResendWireframe() wireframe.pushMainView(in: navigation) @@ -569,13 +574,6 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { } self.alert(message: "This feature is coming soon") - return - if isUserVerified() { - return - self.performSegue(withIdentifier: "mobileRecharge", sender: nil) - } else { - self.showUnVerifiedMessage() - } } @objc private func showTodaysRate() { @@ -633,11 +631,40 @@ class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout { } } +// MARK: - Other functions +extension HomeViewController { + private func isUserVerified() -> Bool { + return Utility.isVerifiedUser() + } + + private func didSubmitKycAndNotVerified() -> Bool { + return Utility.didSubmitKyc() && !Utility.isVerifiedUser() + } + + private func didSubmitKycAndVerified() -> Bool { + return Utility.didSubmitKyc() && Utility.isVerifiedUser() + } + + private func didNotSubmitKycAndNotVerified() -> Bool { + return !Utility.didSubmitKyc() && !Utility.isVerifiedUser() + } + + private func shouldShowPennyTestError() -> Bool { + return Utility.shouldShowPennyTestError() + } + + private func shouldShowUnverifiedNotice() -> Bool { + return !self.isUserVerified() + } + +} + // MARK: HomeViewInterface extension HomeViewController: HomeViewInterface { func setHotLine(with model: [HotLine]?) { hotLines = model } + func show(model: User) { self.user = model } @@ -816,7 +843,6 @@ extension HomeViewController { private func checkKFTCToken() { if !GMEDB.shared.app.bool(.isOpenedTokenRenwalAlert) { - // TODO: Show Alert for token refresh (navigation push) guard let remind = GMEDB.shared.user.string(.remindKFTCTokenDay), let remindDay = Int(remind) else { @@ -898,7 +924,6 @@ extension HomeViewController { @unknown default: message += "(8)" } - self.alert(message: message) } diff --git a/GME Remit/Modules/Home/User Interface/View/HomeViewInterface.swift b/GME Remit/Modules/Home/User Interface/View/HomeViewInterface.swift index 5a2f9242..0632a6bc 100644 --- a/GME Remit/Modules/Home/User Interface/View/HomeViewInterface.swift +++ b/GME Remit/Modules/Home/User Interface/View/HomeViewInterface.swift @@ -7,11 +7,11 @@ // protocol HomeViewInterface: class { - func show(model: User) - func show(error: String) - func showLoading() - func hideLoading() - func endRefreshing() - func show(panicError: String) + func show(model: User) + func show(error: String) + func showLoading() + func hideLoading() + func endRefreshing() + func show(panicError: String) func setHotLine(with model: [HotLine]?) } diff --git a/GME Remit/Modules/LauncherScreen/User Interface/View/LauncherScreenViewController.swift b/GME Remit/Modules/LauncherScreen/User Interface/View/LauncherScreenViewController.swift index 9445db60..d1107705 100644 --- a/GME Remit/Modules/LauncherScreen/User Interface/View/LauncherScreenViewController.swift +++ b/GME Remit/Modules/LauncherScreen/User Interface/View/LauncherScreenViewController.swift @@ -8,7 +8,6 @@ import UIKit - class LauncherScreenViewController: UIViewController { // MARK: Properties @@ -18,7 +17,7 @@ class LauncherScreenViewController: UIViewController { private var isShow = false private var window: UIWindow? { - if let app = UIApplication.shared.delegate as? AppDelegate{ + if let app = UIApplication.shared.delegate as? AppDelegate { return app.window } else { return nil @@ -26,12 +25,8 @@ class LauncherScreenViewController: UIViewController { } // MARK: Computed Properties - - // MARK: IBOutlets - - // MARK: VC's Life cycle override func viewDidLoad() { @@ -49,8 +44,6 @@ class LauncherScreenViewController: UIViewController { } // MARK: IBActions - - } // MARK: LauncherScreenViewInterface @@ -89,11 +82,10 @@ extension LauncherScreenViewController { } } - // MARK: - Login Logic extension LauncherScreenViewController { private func setEntryPoint() { - guard let _ = KeyChain.shared.get(key: .id), + guard KeyChain.shared.get(key: .id) != nil, (KeyChain.shared.get(key: .login) ?? "1") == "1" ? true : false else { presenter?.goSplashScreen() return @@ -102,4 +94,3 @@ extension LauncherScreenViewController { presenter?.openAuthenticationScreen() } } - diff --git a/GME Remit/Modules/LauncherScreen/User Interface/Wireframe/LauncherScreenWireframe.swift b/GME Remit/Modules/LauncherScreen/User Interface/Wireframe/LauncherScreenWireframe.swift index a9873590..6332be17 100644 --- a/GME Remit/Modules/LauncherScreen/User Interface/Wireframe/LauncherScreenWireframe.swift +++ b/GME Remit/Modules/LauncherScreen/User Interface/Wireframe/LauncherScreenWireframe.swift @@ -51,10 +51,13 @@ extension LauncherScreenWireframe: LauncherScreenWireframeInput { } } - // MARK: - BiometricAuthenticationViewControllerDelegate extension LauncherScreenWireframe: BiometricAuthenticationViewControllerDelegate { - func viewController(_ viewController: BiometricAuthenticationViewController, informationTitleLabel titleLabel: UILabel, authenticationButton button: UIButton) { + func viewController( + _ viewController: BiometricAuthenticationViewController, + informationTitleLabel titleLabel: UILabel, + authenticationButton button: UIButton + ) { biometricViewController = viewController titleLabel.text = "bio_login_intro_text".localized() @@ -89,7 +92,9 @@ extension LauncherScreenWireframe: BiometricAuthenticationViewControllerDelegate } } - func doSelectLocalAuthenticationPolicy(_ viewController: BiometricAuthenticationViewController) -> BiometricAuthenticationPolicy { + func doSelectLocalAuthenticationPolicy( + _ viewController: BiometricAuthenticationViewController + ) -> BiometricAuthenticationPolicy { return .deviceOwnerAuthenticationWithBiometrics } } @@ -106,7 +111,7 @@ extension LauncherScreenWireframe: SecureKeypadDelegate { // MARK: - Other Methods extension LauncherScreenWireframe { - private func doLogin(){ + private func doLogin() { biometricViewController?.showProgressHud() let loginService = LoginService() @@ -128,36 +133,42 @@ extension LauncherScreenWireframe { let mainWireFrame = MainWireframe.shared let tabBarViewController = mainWireFrame?.getMainView() - let sidemenuVc = UIStoryboard(name: "SideMenu", bundle: nil).instantiateViewController(withIdentifier: "SideMenuViewController") as! SideMenuViewController + guard let sidemenuVc = UIStoryboard(name: "SideMenu", bundle: nil).instantiateViewController( + withIdentifier: "SideMenuViewController" + ) as? SideMenuViewController else { + return + } - let sideMenuController = LGSideMenuController(rootViewController: tabBarViewController, leftViewController: sidemenuVc, rightViewController: nil) + let sideMenuController = LGSideMenuController( + rootViewController: tabBarViewController, + leftViewController: sidemenuVc, + rightViewController: nil + ) sideMenuController.rootViewLayerShadowColor = UIColor(white: 0.9, alpha: 0.6) sideMenuController.rootViewLayerShadowRadius = 8.0 sideMenuController.leftViewPresentationStyle = .scaleFromBig sideMenuController.leftViewWidth = UIScreen.main.bounds.width - 70.0 + sideMenuController.leftViewBackgroundBlurEffect = UIBlurEffect(style: .regular) - if #available(iOS 10.0, *) { - sideMenuController.leftViewBackgroundBlurEffect = UIBlurEffect(style: .regular) - } else { - // Fallback on earlier versions - } self.biometricViewController?.hideProgressHud() self.biometricViewController?.dismiss(animated: true) { self.window?.backgroundColor = sidemenuVc.view.backgroundColor self.window?.rootViewController = sideMenuController } - }) { (error) in - self.biometricViewController?.hideProgressHud() - self.biometricViewController?.alert(type: .error, message: error.localizedDescription, title: "Warning"){ - // if failed login, remove all in keychain, change logout status and then go splash screen - KeyChain.shared.removeAll() - self.biometricViewController?.dismiss(animated: true) { - (self.view as? LauncherScreenViewController)?.presenter?.goSplashScreen() + }, + failure: { (error) in + self.biometricViewController?.hideProgressHud() + self.biometricViewController?.alert(type: .error, message: error.localizedDescription, title: "Warning"){ + // if failed login, remove all in keychain, change logout status and then go splash screen + KeyChain.shared.removeAll() + self.biometricViewController?.dismiss(animated: true) { + (self.view as? LauncherScreenViewController)?.presenter?.goSplashScreen() + } } } - } + ) } } diff --git a/GME Remit/Modules/RecipientModules/Recipients/User Interface/View/RecipientsViewController.swift b/GME Remit/Modules/RecipientModules/Recipients/User Interface/View/RecipientsViewController.swift index 3bc7754e..61404acf 100644 --- a/GME Remit/Modules/RecipientModules/Recipients/User Interface/View/RecipientsViewController.swift +++ b/GME Remit/Modules/RecipientModules/Recipients/User Interface/View/RecipientsViewController.swift @@ -9,6 +9,7 @@ import UIKit import RxSwift import RxCocoa +import Localize_Swift class RecipientsViewController: UIViewController { struct StringConstant { @@ -43,19 +44,30 @@ class RecipientsViewController: UIViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - title = "recipient_listing_title_text".localized() + self.navigationItem.title = "recipient_listing_title_text".localized() setupNormalNavigation() configureLanguage() } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) - title = "" + self.navigationItem.title = "" } // MARK: IBActions + + override func setupTabItem() { + let image = UIImage.init(named: "ic-sendmoney") + self.tabBarItem = UITabBarItem( + title: "send_money_title_text".localized(), + image: image, selectedImage: nil + ) + self.tabBarItem.titlePositionAdjustment = UIOffset( + horizontal: 0, + vertical: UI_USER_INTERFACE_IDIOM() == .pad ? 2 : -6 + ) + } } - // MARK: Other Functions extension RecipientsViewController { func configureLanguage() { @@ -66,6 +78,13 @@ extension RecipientsViewController { private func setup() { // all setup should be done here setBinding() + + NotificationCenter.default.addObserver( + self, + selector: #selector(setupTabItem), + name: NSNotification.Name(LCLLanguageChangeNotification), + object: nil + ) } private func setBinding() { @@ -85,7 +104,9 @@ extension RecipientsViewController { output .recipients - .drive(tableView.rx.items(cellIdentifier: "RecipientCell")){ (index: Int, element: Recipient, cell: RecipientCell) in + .drive( + tableView.rx.items(cellIdentifier: "RecipientCell") + ) { (_, element: Recipient, cell: RecipientCell) in cell.setModel(with: element) } .disposed(by: disposeBag) @@ -108,8 +129,14 @@ extension RecipientsViewController { // MARK: - UITableViewDelegate extension RecipientsViewController: UITableViewDelegate { - func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { - let delete = UITableViewRowAction(style: .destructive, title: "delete_text".localized()) { (action, indexPath) in + func tableView( + _ tableView: UITableView, + editActionsForRowAt indexPath: IndexPath + ) -> [UITableViewRowAction]? { + let delete = UITableViewRowAction( + style: .destructive, + title: "delete_text".localized() + ) { (_, indexPath) in self.alertWithOkCancel( message: "delete_recipient_confirmation_text".localized(), title: "alert_text".localized(), @@ -118,7 +145,10 @@ extension RecipientsViewController: UITableViewDelegate { }) } - let edit = UITableViewRowAction(style: .normal, title: "edit_text".localized()) { (action, indexPath) in + let edit = UITableViewRowAction( + style: .normal, + title: "edit_text".localized() + ) { (_, indexPath) in self.editTrigger.onNext(indexPath) } diff --git a/GME Remit/Utilities/Database/GMEDB.swift b/GME Remit/Utilities/Database/GMEDB.swift index 093c0a06..4921d9f9 100644 --- a/GME Remit/Utilities/Database/GMEDB.swift +++ b/GME Remit/Utilities/Database/GMEDB.swift @@ -61,6 +61,7 @@ class GMEDB { case data case isUseBiometricAuth = "com.gmeremit.isUseBiometricAuth" case remindKFTCTokenDay + case redirectTo } enum AppKey: String, KeyProtocol { @@ -134,6 +135,7 @@ extension GMEDB { .set(user?.availableBalance, .availableBalance) .set(user?.accessTokenRegTime, .accessTokenRegTime) .set(user?.accessTokenExpTime, .accessTokenExpTime) + .set(user?.redirectTo, .redirectTo) return self.user }