Browse Source

obtimized

pull/1/head
james 6 years ago
parent
commit
17623bf4cf
  1. BIN
      GMERemittance/Module/GmeContacts/.DS_Store
  2. BIN
      GMERemittance/Module/GmeContacts/User Interface/View/.DS_Store
  3. 216
      GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewController 2.swift
  4. BIN
      GMERemittance/Module/Home/User Interface/View/.DS_Store
  5. 731
      GMERemittance/Module/Home/User Interface/View/HomeViewController 2.swift
  6. BIN
      GMERemittance/Module/Main/User Interface/View/.DS_Store
  7. 176
      GMERemittance/Module/Main/User Interface/View/MainViewController 2.swift
  8. BIN
      GMERemittance/Module/Register/User Interface/View/.DS_Store
  9. 374
      GMERemittance/Module/Register/User Interface/View/RegisterViewController 2.swift

BIN
GMERemittance/Module/GmeContacts/.DS_Store

BIN
GMERemittance/Module/GmeContacts/User Interface/View/.DS_Store

216
GMERemittance/Module/GmeContacts/User Interface/View/GmeContactsViewController 2.swift

@ -1,216 +0,0 @@
//
// GmeContactsViewController.swift
// GMERemittance
//
// Created by gme_2 on 25/08/2018.
//Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
import Localize_Swift
class GmeContactsViewController: UIViewController {
// MARK: IBOutlets
@IBOutlet weak var tableview: UITableView!
var presenter: GmeContactsModuleInterface?
var contacts: [GmeContacts] = [] {
didSet {
self.tableview.reloadData()
}
}
// MARK: Properties
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.viperSetup() // since the viewcontroller in the tabbar is in strong bind with storyboard and segue
self.setup()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.setLargeTitle()
self.navigationItem.title = "branch_text".localized()
}
// MARK: IBActions
// MARK: Other Functions
private func setup() {
self.tableview.dataSource = self
self.tableview.delegate = self
// all setup should be done here
self.createTestContacts()
NotificationCenter.default.addObserver(self, selector: #selector(setupTabItem), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
}
struct StringConstants {
}
private func createTestContacts() {
// let headOfficeContacts = GmeContacts()
// headOfficeContacts.title = "Head Office"
// headOfficeContacts.address = "325, Jong-ro, Jongno-gu, 03104 Seoul"
// headOfficeContacts.contactNumber = ["15886864"]
// headOfficeContacts.language = "Korean Language Support"
let dongdaemunBranchContacts = GmeContacts()
dongdaemunBranchContacts.title = "Dongdaemun Branch"
dongdaemunBranchContacts.address = "315, Jong-ro Jongno-gu, Seoul \n(Dongdaemun Station - Exit 3) \n 서울시 종로구 종로 315"
dongdaemunBranchContacts.contactNumber = ["027635559"]
let hwaseongBranchContacts = GmeContacts()
hwaseongBranchContacts.title = "Hwaseong Branch"
hwaseongBranchContacts.address = "1101-1, 3.1 Manse-ro Hyangnam-eup, Hwaseong-si, Gyeonggi-do \n(Baran Market Place) \n 경기도 화성시 향남읍 3.1만세로 1101-1"
hwaseongBranchContacts.contactNumber = ["0313540450"]
let ansanBranchContacts = GmeContacts()
ansanBranchContacts.title = "Ansan Branch"
ansanBranchContacts.address = "2nd floor, 455, Jungang-daero, Danwon-gu, Ansan -si, Gyeonggi-do \n(Entrance of Asian Street) \n 경기도 안산시 단원구 중앙대로 455 2층"
ansanBranchContacts.contactNumber = ["0313626740"]
let gimhaeBranchContacts = GmeContacts()
gimhaeBranchContacts.title = "Gimhae Branch"
gimhaeBranchContacts.address = "84, Garak-ro, Gimhae-si, Gyeongsangnam-do,\n(Opposite to Top Mart) \n 경상남도 김해시 가락로 84 "
gimhaeBranchContacts.contactNumber = ["0553295559"]
let songuriBranchContacts = GmeContacts()
songuriBranchContacts.title = "Songu-ri Branch"
songuriBranchContacts.address = "91, Solmoru-ro, Soheul-eup, Pocheon-si, Gyeonggi-do, Korea\nNext to Nonghyub Bank) \n 경기도 포천시 소흘읍 솔모루로 91"
songuriBranchContacts.contactNumber = ["0315411856"]
let dongdaemunCisBranch = GmeContacts()
dongdaemunCisBranch.title = "Dongdaemun CIS Branch"
dongdaemunCisBranch.address = "2nd floor, 281, Changgyeonggunag-ro Jongno-gu, Seoul\n(Upper floor of Dongdaemun Mart) \n 서울 중구 을지로 42길 5 2층"
dongdaemunCisBranch.contactNumber = ["0221386429", "01030156864"]
let hyehwaBranch = GmeContacts()
hyehwaBranch.title = "Hyehwa Branch"
hyehwaBranch.address = "281, Changgyeonggung-ro, Jongno-gu, Seoul Hyehwa Rotary\n(Right across from Catholic Church) \n 서울특별시 종로구 창경궁로 281"
hyehwaBranch.contactNumber = ["0221386429", "01029706864"]
let gmeContacts = [dongdaemunCisBranch, dongdaemunBranchContacts, hwaseongBranchContacts, ansanBranchContacts, gimhaeBranchContacts, songuriBranchContacts, hyehwaBranch]
self.contacts = gmeContacts
}
private func call(number: String) {
let number = number.removeWhitespacesInBetween()
if let url = URL(string: "tel://\(number)") {
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
}
}
}
override func setupTabItem() {
let image = UIImage.init(named: "ic-agent")
self.tabBarItem = UITabBarItem(title: "branch_text".localized(), image: image, selectedImage: nil)
self.tabBarItem.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: UI_USER_INTERFACE_IDIOM() == .pad ? 2 : -6)
}
}
// MARK: GmeContactsViewInterface
extension GmeContactsViewController: GmeContactsViewInterface {
}
extension GmeContactsViewController {
func viperSetup() {
let service = GmeContactsService()
let interactor = GmeContactsInteractor(service: service)
let presenter = GmeContactsPresenter()
let wireframe = GmeContactsWireframe()
self.presenter = presenter
interactor.output = presenter
presenter.interactor = interactor
presenter.wireframe = wireframe
presenter.view = self
wireframe.view = self
}
}
extension GmeContactsViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
print(indexPath.row)
if indexPath.row == 0 {return 10}
return UITableViewAutomaticDimension
}
}
extension GmeContactsViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return contacts.count + 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "EmptyTableViewCell") as! EmptyTableViewCell
return cell
}
let cell = tableView.dequeueReusableCell(withIdentifier: "GmeContactsTableViewCell") as! GmeContactsTableViewCell
cell.contact = self.contacts.elementAt(index: indexPath.row - 1)
cell.delegate = self
cell.index = indexPath.row - 1
cell.setup()
cell.layer.shadowColor = UIColor.darkGray.cgColor
cell.layer.shadowOpacity = 0.5
cell.layer.shadowRadius = 2
let offset = CGSize(width: 2, height: 2)
cell.layer.shadowOffset = offset
return cell
}
}
extension GmeContactsViewController: GmeContactCallDelegate {
func call(index: Int?) {
guard let index = index else {return}
if let contact = self.contacts.elementAt(index: index) {
let numbers = contact.contactNumber
let alert = UIAlertController(title:nil, message:"help_you_text".localized(), preferredStyle: .actionSheet)
numbers?.forEach({ number in
let action = UIAlertAction.init(title: "\(number)", style: UIAlertActionStyle.default, handler: { action in
self.call(number: number)
})
alert.addAction(action)
})
alert.view.tintColor = UIColor.darkGray
alert.addAction(UIAlertAction(title: "cancel_text".localized(), style: UIAlertActionStyle.cancel, handler: nil))
present(alert, animated: true, completion: nil)
}
}
}

BIN
GMERemittance/Module/Home/User Interface/View/.DS_Store

731
GMERemittance/Module/Home/User Interface/View/HomeViewController 2.swift

@ -1,731 +0,0 @@
//
// HomeViewController.swift
// GMERemittance
//
// Created by gme_2 on 21/09/2018.
//Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
import Crashlytics
import Localize_Swift
class HomeViewController: UIViewController, UICollectionViewDelegateFlowLayout {
enum Sections: Int {
case balance = 0
case collection
}
struct Constants {
static let verificationNoticeHeight: CGFloat = 100
}
struct StringConstants {
let homeText = "home_text".localized()
let registerProcessText = "complete_your_registration_text".localized()
let registrationApprovalText = "verification_in_aproval_process_text".localized()
let pennyTestPrimaryBankText = "complete_penny_test".localized()
let verifyTitleText = "kyc_fill_text".localized()
let continueRegistrationTitleText = "penny_test_pending_text".localized()
let verificationInProcessTitleText = "kyc_verify_pending_text".localized()
let soonToUseGmeServicesTitle = "verification_in_aproval_process_text".localized()
}
// MARK: IBOutlets
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var verificationNoticeHeightConstraint: NSLayoutConstraint!
@IBOutlet var verificationNoticeView: UIView!
@IBOutlet weak var verificationCloseButton: UIButton!
@IBOutlet weak var verificationText: UILabel!
@IBOutlet var tapGuesture: UITapGestureRecognizer!
@IBOutlet weak var verificationTitleLabel: UILabel!
@IBOutlet weak var verificationHeaderLeftImageview: UIImageView!
@IBOutlet weak var verificationHeaderRightButton: UIButton!
@IBOutlet weak var seperatorView: UIView!
// title labels
@IBOutlet weak var thankyouTitleLabel: UILabel!
// MARK: Properties
var refreshControl: UIRefreshControl?
var presenter: HomeModuleInterface?
var user: User? {
didSet {
// update
self.save(user: user)
self.showUnverifiedNotice()
self.tableView.reloadData()
updateBalance()
self.update()
}
}
var sections: [Sections] = [.balance, .collection]
var menuHeight: CGFloat? {
didSet {
self.tableView.reloadData()
}
}
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
// test()
setupNavigationNotifications()
self.setup()
}
func test() {
let web = WkWebViewController()
web.url = "http://gmeuat.gmeremit.com:5013/kftcCallback?code=b894944b-c500-4627-9cf9-9fc5fd3f2822&scope=login+inquiry+transfer&client_info=f6Qv6Xd44Q5hmkcYLNVH8w%3D%3D"
// web.url = "http://gmeuat.gmeremit.com:5013/test.html"
// self.present(web, animated: true, completion: nil)
self.navigationController?.pushViewController(web, animated: true)
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
configureViews()
self.setActionBarIcons(showNotificationParameter: false) // set true if there is unread
self.tableView.reloadData()
NotificationCenter.default.addObserver(self, selector: #selector(updateTabBarTitle), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationItem.title = ""
}
// MARK: IBActions
@IBAction func closeVerificationNotice(_ sender: UIButton) {
return
if #available(iOS 10.0, *) {
let animator = UIViewPropertyAnimator(duration: 0.4, curve: .easeOut )
animator.addAnimations {
self.verificationNoticeView.alpha = 0
}
animator.addAnimations({
self.verificationNoticeHeightConstraint.constant = 0
self.view.layoutIfNeeded()
}, delayFactor: 0.5)
animator.startAnimation()
}
}
// MARK: Other Functions
private func setup() {
// all setup should be done here
setupDelegates()
setupNotifications()
configureLanguage()
self.addRefreshControlTableView()
self.presenter?.refreshData()
NotificationCenter.default.addObserver(self, selector: #selector(self.showPennyTestFirstTime), name: NSNotification.Name.init("showPennyTestFirstTime"), object: nil)
}
@objc private func configureLanguage() {
// self.barButtonItem.title = StringConstants().homeText
}
@objc private func showPennyTestFirstTime() {
presenter?.showPennyTest()
}
private func update() {
let platform = self.user?.platforms ?? []
guard let ios = platform.filter({
$0.os ?? "" == "IOS"
}).first else {return}
let critical = ios.critical ?? "N"
UserDefaults.standard.set(critical, forKey: AppConstants.criticalUpdate)
let version = Utility.getAppVersion() ?? ""
let val = version.components(separatedBy: ".")
let latestVersion = ios.version ?? "0"
let latestVal = latestVersion.components(separatedBy: ".").last ?? "0"
if val.count == 3 {
if let build = val.last {
if (Int(latestVal) ?? 0) > (Int(build) ?? 0) {
self.presenter?.showAppUpdate()
}
}
}
}
private func updateBalance() {
let balance = user?.availableBalance ?? ""
UserDefaults.standard.set(balance, forKey: UserKeys.availableBalance)
let userInfo = [SideMenuNavigationNotifications.availableBalance : balance]
NotificationCenter.default.post(name: self.getAvailableBalanceNotificationName(), object: nil, userInfo: userInfo)
self.tableView.reloadData()
}
private func setupNavigationNotifications() {
NotificationCenter.default.addObserver(self, selector: #selector(self.showAutoDebit), name: self.getKftcAccountListNotificationName(), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.showWithdraw), name: self.getWithdrawNotificationName(), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.showSideMenuAboutGme), name: self.getAboutMeNotificationName(), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.showSideMenuSupport), name: self.getSupportNotificationName(), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.showSideMenuSetting), name: self.getSettingNotificationName(), object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(self.showTransactionStatement), name: self.getTransactionHistoryNotificationName(), object: nil)
}
private func getAboutMeNotificationName() -> Notification.Name {
return Notification.Name.init(SideMenuNavigationNotifications.aboutGme)
}
private func getTransactionHistoryNotificationName() -> Notification.Name {
return Notification.Name.init(SideMenuNavigationNotifications.transactionHistory)
}
private func getSupportNotificationName() -> Notification.Name {
return Notification.Name.init(SideMenuNavigationNotifications.support)
}
private func getSettingNotificationName() -> Notification.Name {
return Notification.Name.init(SideMenuNavigationNotifications.setting)
}
@objc private func showSideMenuAboutGme() {
let vc = UIStoryboard.init(name: "_Home", bundle: nil).instantiateViewController(withIdentifier: "AboutGMEViewController") as! AboutGMEViewController
self.navigationController?.pushViewController(vc, animated: true)
}
@objc private func showSideMenuSetting() {
let vc = UIStoryboard.init(name: "Setting", bundle: nil).instantiateViewController(withIdentifier: "SettingViewController") as! SettingViewController
self.navigationController?.pushViewController(vc, animated: true)
}
@objc private func showSideMenuSupport() {
let vc = UIStoryboard.init(name: "_Home", bundle: nil).instantiateViewController(withIdentifier: "SupportViewController") as! SupportViewController
self.navigationController?.pushViewController(vc, animated: true)
}
@objc private func showAutoDebit() {
let wireframe = AutoDebitWireframe()
if let navigation = self.navigationController {
wireframe.pushMainView(in: navigation)
}
}
@objc private func showWithdraw() {
let vc = UIStoryboard.init(name: "autoRefund", bundle: nil).instantiateViewController(withIdentifier: "AutoRefundsViewController") as! AutoRefundsViewController
self.navigationController?.pushViewController(vc, animated: true)
}
private func setupDelegates() {
tableView.delegate = self
tableView.dataSource = self
self.tapGuesture.delegate = self
}
private func addRefreshControlTableView() {
let colorOption = [NSAttributedStringKey.foregroundColor : AppConstants.themWhiteColor];
let title = NSAttributedString(string: "pull to refresh", attributes: colorOption)
let refreshControl = UIRefreshControl()
refreshControl.attributedTitle = title
refreshControl.backgroundColor = AppConstants.themeBlueColor
refreshControl.tintColor = AppConstants.themWhiteColor
refreshControl.addTarget(self, action: #selector(self.refresh), for: .valueChanged)
self.refreshControl = refreshControl
if #available(iOS 10.0, *) {
tableView.refreshControl = self.refreshControl
} else {
if let control = self.refreshControl {
tableView.addSubview(control)
}
}
}
@objc private func refresh() {
presenter?.refreshData()
}
@objc func showNotification(){
performSegue(withIdentifier: "notification", sender: nil)
}
@objc func showSupport() {
let alert = UIAlertController(title:nil, message:"help_you_text".localized(), preferredStyle: .actionSheet)
// alert.view.subviews.last?.subviews.last?.backgroundColor = UIColor.darkGray
let liveChat = UIAlertAction(title: "Live Chat", style: .default) {
UIAlertAction in
}
let contactNumber = UIAlertAction(title: "1588 6864", style: .default) {
UIAlertAction in
self.startCall(contactNumber: "1588 6864")
}
let supportEmail = UIAlertAction(title: "support@gmeremit.com", style: .default) {
UIAlertAction in
let storyboard = UIStoryboard.init(name: "MessageCompose", bundle: Bundle.main)
if let messageViewController = storyboard.instantiateViewController(withIdentifier: "message") as? MessageComposeViewController {
self.navigationController!.pushViewController(messageViewController, animated: true)
}
}
liveChat.setValue(UIImage(named:"ic_live_chat")?.withRenderingMode(.alwaysOriginal),forKey:"image")
contactNumber.setValue(UIImage(named:"ic_call")?.withRenderingMode(.alwaysOriginal),forKey:"image")
supportEmail.setValue(UIImage(named:"ic_email")?.withRenderingMode(.alwaysOriginal),forKey:"image")
// TODO: have to enable when zendesk is provided
// alert.addAction(liveChat)
alert.addAction(contactNumber)
// alert.addAction(supportEmail)
alert.view.tintColor = UIColor.darkGray
// alert.view.subviews.last?.subviews.last?.layer.cornerRadius = 10
alert.addAction(UIAlertAction(title: "cancel_text".localized(), style: UIAlertActionStyle.cancel, handler: nil))
present(alert, animated: true, completion: nil)
}
func startCall(contactNumber: String){
if let url = URL(string: "tel://\(contactNumber.removeWhitespacesInBetween())"), UIApplication.shared.canOpenURL(url) {
if #available(iOS 10, *) {
UIApplication.shared.open(url)
} else {
UIApplication.shared.openURL(url)
}
}
}
private func setupNotifications() {
let center = NotificationCenter.default
center.addObserver(self, selector: #selector(self.showSendMoney), name: self.getSendMoneyNotificationName(), object: nil)
center.addObserver(self, selector: #selector(self.showMobileRecharge), name: self.getMobileRechargeNotificationName(), object: nil)
center.addObserver(self, selector: #selector(self.showTodaysRate), name: self.getTodaysRateNotificationName(), object: nil)
center.addObserver(self, selector: #selector(self.showResendMoney), name: self.getTrackYourTransferNotificationName(), object: nil)
center.addObserver(self, selector: #selector(self.showTrackYourTransfer), name: self.getTransactionStatementNotificationName(), object: nil)
// center.addObserver(self, selector: #selector(self.showResendMoney), name: self.getWalletToWalletNotificationName(), object: nil)
center.addObserver(self, selector: #selector(self.setupHeight(sender:)), name: self.getCollectionHeightNotificationName(), object: nil)
center.addObserver(self, selector: #selector(self.showUnVerifiedMessage), name: self.getMainControllerNotificationName(), object: nil)
}
func setActionBarIcons(showNotificationParameter: Bool){
let supportImage = UIImage(named: "ic_support")?.withRenderingMode(.alwaysOriginal)
let supportButton = UIBarButtonItem(image:supportImage, style: .plain, target: self, action: #selector(showSupport))
let notificationImage: UIImage!
if showNotificationParameter {
notificationImage = UIImage(named: "ic_notificationDot")?.withRenderingMode(.alwaysOriginal)
} else {
notificationImage = UIImage(named: "ic_notification")?.withRenderingMode(.alwaysOriginal)
}
let notificationButton = UIBarButtonItem(image: notificationImage, style: .plain, target: self, action: #selector(showNotification))
// self.navigationItem.rightBarButtonItems=[notificationButton,supportButton]
self.navigationItem.rightBarButtonItems = [supportButton]
}
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() {
// && Utility.didPennyTestNotInitiated()
if didNotSubmitKycAndNotVerified() {
verificationTitleLabel.text = StringConstants().verifyTitleText
self.verificationText.text = StringConstants().registerProcessText
self.verificationHeaderLeftImageview.image = UIImage.init(named: "ic_home_verified")
let image = UIImage.init(named: "ic_home_payoutLocation")
self.verificationHeaderRightButton.setImage(image, for: UIControlState.normal)
}else if didSubmitKycAndNotVerified() && shouldShowPennyTestError() {
verificationTitleLabel.text = StringConstants().continueRegistrationTitleText
self.verificationText.text = StringConstants().pennyTestPrimaryBankText
self.verificationHeaderLeftImageview.image = #imageLiteral(resourceName: "shield.png")
self.verificationNoticeHeightConstraint.constant = Constants.verificationNoticeHeight
self.verificationNoticeView.alpha = 1
self.verificationHeaderRightButton.isHidden = true
}
else 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: UIControlState.normal)
}
if didSubmitKycAndVerified() && !Utility.pennyTestVerified() {
verificationTitleLabel.text = StringConstants().continueRegistrationTitleText
self.verificationText.text = StringConstants().pennyTestPrimaryBankText
self.verificationHeaderLeftImageview.image = #imageLiteral(resourceName: "shield.png")
self.verificationNoticeHeightConstraint.constant = Constants.verificationNoticeHeight
self.verificationNoticeView.alpha = 1
self.verificationHeaderRightButton.isHidden = true
}
if didSubmitKycAndVerified() && Utility.pennyTestVerified() {
self.verificationNoticeHeightConstraint.constant = 0
self.verificationNoticeView.alpha = 0
}
}
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()
}
@IBAction func showKyc(_ sender: UITapGestureRecognizer) {
if self.didNotSubmitKycAndNotVerified() {
self.presenter?.showKyc()
}else if shouldShowPennyTestError() {
if Utility.didPennyTestRequested() {
presenter?.showPennyTestSubmit()
}else {
presenter?.showPennyTest()
}
}
}
private func shouldShowUnverifiedNotice() -> Bool {
return !self.isUserVerified() || Utility.shouldShowPennyTestError()
}
private func configureViews() {
self.verificationNoticeHeightConstraint.constant = 0
showUnverifiedNotice()
setNavBar()
}
func setNavBar() {
let selector = #selector(self.showSideMenu)
self.setupPicturedNavBar(sideMenuAction: selector)
}
@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()
if kycSubmited == true && pennyTestComplete == false {
self.show(error: StringConstants().pennyTestPrimaryBankText)
return
}
if isUserVerified() {
// remaining of previous developer. I dont have much time. Later. TODO: refracor
let viewcontroller = UIStoryboard.init(name:
"RecipientListViewController", bundle: nil).instantiateViewController(withIdentifier: "RecipientListViewController") as! RecipientListViewController
self.navigationController?.pushViewController(viewcontroller, animated: true)
} else {
self.showUnVerifiedMessage()
}
}
@objc private func showResendMoney() {
let kycSubmited = user?.kyc ?? false
let pennyTestComplete = Utility.pennyTestVerified()
if kycSubmited == true && pennyTestComplete == false {
self.show(error: StringConstants().pennyTestPrimaryBankText)
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)
}
} else {
self.showUnVerifiedMessage()
}
}
@objc private func showMobileRecharge() {
let kycSubmited = user?.kyc ?? false
let pennyTestComplete = Utility.pennyTestVerified()
if kycSubmited == true && pennyTestComplete == false {
self.show(error: StringConstants().pennyTestPrimaryBankText)
return
}
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() {
presenter?.openTodaysRate()
}
// Transaction Report
@objc private func showTrackYourTransfer() {
let kycSubmited = user?.kyc ?? false
let pennyTestComplete = Utility.pennyTestVerified()
if kycSubmited == true && pennyTestComplete == false {
self.show(error: StringConstants().pennyTestPrimaryBankText)
return
}
isUserVerified() ? (presenter?.openTrackYourTransfer()) : (self.showUnVerifiedMessage())
}
@objc private func showTransactionStatement() {
let kycSubmited = user?.kyc ?? false
let pennyTestComplete = Utility.pennyTestVerified()
if kycSubmited == true && pennyTestComplete == false {
self.show(error: StringConstants().pennyTestPrimaryBankText)
return
}
isUserVerified() ? (presenter?.openTransactionHistory()) : (self.showUnVerifiedMessage())
}
@objc private func showUnVerifiedMessage() {
if didNotSubmitKycAndNotVerified() {
self.alert(message: StringConstants().registerProcessText)
} else if Utility.didSubmitKyc() && !Utility.pennyTestVerified() {
self.alert(message: StringConstants().pennyTestPrimaryBankText)
}
else
if didSubmitKycAndNotVerified() {
// verification_in_aproval_process_text
// Your registration request is in approval process. You will soon be able to use GME services.
self.alert(message: "verification_in_aproval_process_text".localized())
}
}
// TODO:-
@objc private func showUnVerifiedPennyTestMessage() {
// complete_penny_test
self.alert(message: "complete_penny_test".localized())
}
@objc private func showWalletToWallet() {
self.alert(message: "This feature is coming soon")
}
@objc private func setupHeight(sender: Notification) {
if let height = sender.userInfo?[MenuNotificationName.collectionHeight] as? CGFloat {
self.menuHeight = height
}
}
}
// MARK: HomeViewInterface
extension HomeViewController: HomeViewInterface {
func show(model: User) {
self.user = model
}
func show(error: String) {
self.alert(message: error)
}
func show(panicError: String) {
self.alert(message: panicError, title: "Warning") {
self.presenter?.logout()
}
}
func showLoading() {
self.showProgressHud()
}
func hideLoading() {
self.hideProgressHud()
}
func endRefreshing() {
if #available(iOS 10.0, *) {
guard let control = self.tableView.refreshControl else {return}
if control.isRefreshing == true {
DispatchQueue.main.async {
control.perform(#selector(control.endRefreshing), with: nil, afterDelay: 0.5)
}
}
} else {
// Fallback on earlier versions
}
}
}
extension HomeViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
guard let _section = Sections.init(rawValue: indexPath.section) else {return 0}
switch _section {
case .balance:
return UITableViewAutomaticDimension
case .collection:
let totalHeight = view.frame.height
let ramainingBalanceCellHeight: CGFloat = 100
let finalHeight = totalHeight - ramainingBalanceCellHeight
return finalHeight
}
}
}
extension HomeViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func numberOfSections(in tableView: UITableView) -> Int {
return self.sections.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let _section = Sections.init(rawValue: indexPath.section) else {return UITableViewCell()}
switch _section {
case .balance:
return configureRemainingLimitCell(tableView: tableView, indexPath: indexPath)
case .collection:
return configureCollectionCell(tableView: tableView, indexPath: indexPath)
}
}
func configureRemainingLimitCell(tableView: UITableView, indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "HomeRemainingLimitTableViewCell") as! HomeRemainingLimitTableViewCell
cell.user = self.user
cell.setup()
return cell
}
func configureCollectionCell(tableView: UITableView, indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "HomeCollectionTableViewCell") as! HomeCollectionTableViewCell
cell.setup()
return cell
}
override func setupTabItem() {
let image = UIImage.init(named: "ic-home")
self.tabBarItem = UITabBarItem(title: "home_text".localized(), image: image, selectedImage: nil)
self.tabBarItem.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: UI_USER_INTERFACE_IDIOM() == .pad ? 2 : -6)
}
@objc func updateTabBarTitle() {
self.tabBarItem.title = "home_text".localized()
}
}
// notification Name
extension HomeViewController {
func getSendMoneyNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: MenuNotificationName.sendMoney)
}
func getMobileRechargeNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: MenuNotificationName.mobileRecharge)
}
func getTodaysRateNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: MenuNotificationName.todaysRate)
}
func getTrackYourTransferNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: MenuNotificationName.resend)
}
func getTransactionStatementNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: MenuNotificationName.transactionStatement)
}
func getWalletToWalletNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: MenuNotificationName.walletToWallet)
}
func getCollectionHeightNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: MenuNotificationName.collectionHeight)
}
func getAvailableBalanceNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: SideMenuNavigationNotifications.availableBalance)
}
func getMainControllerNotificationName() -> Notification.Name {
return Notification.Name.init(rawValue: AppConstants.MainWireFrameNotificationName)
}
func getWithdrawNotificationName() -> Notification.Name {
return Notification.Name.init(SideMenuNavigationNotifications.withdraw)
}
func getKftcAccountListNotificationName() -> Notification.Name {
return Notification.Name.init(SideMenuNavigationNotifications.KftcAccountList)
}
}
extension HomeViewController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
return !Utility.didSubmitKyc() || Utility.shouldShowPennyTestError() || Utility.didPennyTestCancelled() || Utility.didPennyTestRequested() || Utility.didPennyTestNotInitiated()
}
}
extension HomeViewController {
private func save(value: Any?, forKey: String) {
let defaults = UserDefaults.standard
defaults.set(value, forKey: forKey)
}
func save(user: User?) {
Utility.save(user: user)
}
}

BIN
GMERemittance/Module/Main/User Interface/View/.DS_Store

176
GMERemittance/Module/Main/User Interface/View/MainViewController 2.swift

@ -1,176 +0,0 @@
//
// MainViewController.swift
//
//
// Created by shishir sapkota
//
import Foundation
import UIKit
class MainViewController: UITabBarController {
// MARK: Properties
// MARK: ENUMS:
private enum Items: Int {
case home = 0
case sendMoney
case branch
case profile
}
var presenter: MainModuleInterface?
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.delegate = self
self.setupAppearance()
}
func setup(viewControllers: [UIViewController]) {
self.viewControllers = viewControllers
self.setupTab()
setupTabItem()
}
// MARK: Other functions
func setupAppearance() {
UINavigationBar.setInsideAppearance()
}
private func setupTab() {
self.tabBar.tintColor = Colors.defaultRed
self.tabBar.isTranslucent = false
self.tabBar.shadowImage = Colors.TabBar.shadow.image()
self.tabBar.backgroundImage = UIImage()
}
override func setupTabItem() {
self.viewControllers?.forEach({ (viewController) in
})
}
}
extension MainViewController: MainViewInterface {
}
extension MainViewController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if let nav = viewController as? UINavigationController {
if let _ = nav.viewControllers.first as? RecipientListViewController {
NotificationCenter.default.post(name: Notification.Name.init(AppConstants.MainWireFrameNotificationName), object: nil, userInfo: nil)
return Utility.isVerifiedUser()
}
}
print(tabBarController.selectedIndex)
return true
}
}
extension UINavigationBar {
static func setInsideAppearance() {
let navBarAppearance = UINavigationBar.appearance()
navBarAppearance.isTranslucent = false
navBarAppearance.barTintColor = UIColor.white
}
static func setOutsideAppearance() {
self.setInsideAppearance()
let navBarAppearance = UINavigationBar.appearance()
navBarAppearance.barTintColor = Colors.defaultRed
let font = Fonts.NavBar.titleFont
navBarAppearance.titleTextAttributes = [
NSAttributedStringKey.foregroundColor: UIColor.black,
NSAttributedStringKey.font: font]
navBarAppearance.tintColor = UIColor.black
}
static func setupImageAppearance() {
let navBarAppearance = UINavigationBar.appearance()
navBarAppearance.barTintColor = Colors.defaultRed
let font = Fonts.NavBar.titleFont
navBarAppearance.titleTextAttributes = [
NSAttributedStringKey.foregroundColor: UIColor.black,
NSAttributedStringKey.font: font]
navBarAppearance.tintColor = UIColor.black
}
}
@objc protocol Setup {
@objc optional func setupTabItem()
}
extension UIViewController: Setup {
func setupTabItem() {
}
}
struct Colors {
static let separator = UIColor(hex: "#eeeeee")
static let defaultRed = UIColor(hex: "#0xec1c24")
static let cartBadge = UIColor(hex: "#F5951D")
struct TabBar {
static let textItemSelected = Colors.defaultRed
static let textItemNotSelected = UIColor(hex: "#959595")
static let shadow = Colors.separator
}
struct NavBar {
// static let barTint =
static let tint = UIColor.white
static let shadow = Colors.separator
}
struct XLTabBar {
static let titleUnselected = UIColor(hex: "#555555")
static let titleSelected = Colors.defaultRed
static let selectedBackground = Colors.defaultRed
}
}
struct Fonts {
struct Family {
static let regular = "SanFranciscoDisplay-regular"
static let light = "SanFranciscoDisplay-light"
static let bold = "SanFranciscoDisplay-Bold"
static let semiBold = "SanFranciscoDisplay-Semibold"
}
struct TabBar {
static let itemFont = UIFont(name: Family.light, size: 10)!
}
struct NavBar {
static let titleFont = UIFont(name: Family.regular, size: 17)!
}
struct XLTabBar {
static let itemFont = UIFont(name: Family.regular, size: 12)!
}
struct Error {
static let font = UIFont(name: Family.semiBold, size: 11)!
}
}
extension UIColor {
func image(of size: CGSize = CGSize(width: 1, height: 1)) -> UIImage {
let rect = CGRect(origin: .zero, size: size)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
self.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}

BIN
GMERemittance/Module/Register/User Interface/View/.DS_Store

374
GMERemittance/Module/Register/User Interface/View/RegisterViewController 2.swift

@ -1,374 +0,0 @@
//
// RegisterViewController.swift
// GMERemittance
//
// Created by gme_2 on 10/09/2018.
//Copyright © 2018 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
import Localize_Swift
import RxSwift
import RxCocoa
class RegisterViewController: UIViewController {
struct StringConstants {
let userIdTitle = "login_user_id_text".localized()
let useridPlaceholder = "email_text".localized()
let passwordTitle = "password_text".localized()
let passwordPlaceholder = "create_password_text".localized()
let confirmPasswordTitle = "confirm_password_text".localized()
let confirmPasswordPlaceholder = "confirm_password_text".localized()
let dobTitlePlaceholder = "dob_text".localized()
let alreadyHaveAccountText = "already_have_account_text".localized()
let loginText = "login_text".localized()
let registerText = "register_text".localized()
let registerHeader = "register_title_text".localized()
let registerSubtitle = "register_subtitle_text".localized()
}
// MARK: IBOutlets
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var confirmPasswordTextfield: UITextField!
@IBOutlet weak var dobTextField: UITextField!
@IBOutlet weak var emailValidMessageLabel: UILabel!
// header labels
@IBOutlet weak var headerLabel: UILabel!
@IBOutlet weak var subHeaderLabel: UILabel!
// title labels
@IBOutlet weak var userIdTitleLabel: UILabel!
@IBOutlet weak var passwordTitleLabel: UILabel!
@IBOutlet weak var confirmPasswordTitleLabel: UILabel!
@IBOutlet weak var dobTitileLabel: UILabel!
@IBOutlet weak var alreadyHaveAccountLabel: UILabel!
// buttons
@IBOutlet weak var loginButton: UIButton!
@IBOutlet weak var registerButton: UIButton!
// MARK: Properties
let datePicker = UIDatePicker()
var presenter: RegisterModuleInterface?
var disposeBag = DisposeBag()
// keyboard
var mQwertyTransKeyView : TransKeyView?
var mNumberTransKeyView : TransKeyView?
var secureKey : NSData!
var numberCipherString : String!
var qwertyCipherString : String!
var isTranskeyShowing : Bool!
var isShowQwerty : Bool! = true
var isShowNumber : Bool!
var password: String! {
didSet {
self.passwordTextField.text = password
}
}
var encryptedPassword: String!
var encryptedConfirmPassword: String!
var confirmPassword: String! {
didSet {
self.confirmPasswordTextfield.text = confirmPassword
}
}
var showingPasswordField = false
var showingConfirmPasswordField: Bool = false
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.setupKeyboard()
self.setup()
self.setBinding()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.setupPicturedNavBar()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationItem.title = ""
mQwertyTransKeyView?.mTK_ClearDelegateSubviews()
mNumberTransKeyView?.mTK_ClearDelegateSubviews()
if isTranskeyShowing == false {
mQwertyTransKeyView?.delegate = nil;
mNumberTransKeyView?.delegate = nil;
}
}
// MARK: IBActions
@IBAction func login(_ sender: UIButton) {
self.presenter?.login()
}
private func setupDatePicker() {
self.datePicker.datePickerMode = .date
self.dobTextField.inputView = datePicker
datePicker.maximumDate = Date()
self.datePicker.addTarget(self, action: #selector(handleDatePicker(sender:)), for: .valueChanged)
}
@objc private func handleDatePicker(sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
self.dobTextField.text = dateFormatter.string(from: sender.date)
}
@IBAction func register(_ sender: UIButton) {
let email = self.emailTextField.text!
// let password = self.passwordTextField.text!
let password = self.password
let dob = self.dobTextField.text!
let confirmPassword = self.confirmPasswordTextfield.text!
let model = RegisterRequestModel()
model.username = email
model.password = password
model.encryptedConfirmPassword = self.encryptedConfirmPassword
model.confirmPassword = confirmPassword
model.dob = dob
model.encryptedPassword = self.encryptedPassword
self.presenter?.register(model: model)
}
// MARK: Other Functions
private func setBinding() {
self.emailTextField
.rx
.text
.map{ userID -> Bool? in
guard let id = userID else {
return nil
}
if id == "" {
return nil
} else {
return id.isValidEmail()
}
}
.bind{[weak self] in
guard let isValid = $0 else {
self?.emailValidMessageLabel.text = ""
return
}
if !isValid {
self?.emailValidMessageLabel.textColor = .red
self?.emailValidMessageLabel.text = "* 이메일 형식이여야 합니다."
} else {
self?.emailValidMessageLabel.text = ""
}
}
.disposed(by: disposeBag)
}
func setupKeyboard() {
isShowNumber = false
isShowQwerty = true
isTranskeyShowing = false
setQwertyTranskey()
// self.showQwertyTranskeyAction()
}
func setQwertyTranskey(){
mQwertyTransKeyView = TransKeyView()
mQwertyTransKeyView?.mTK_Init(self)
mQwertyTransKeyView?.delegate = self
mQwertyTransKeyView?.mTK_MakeSecureKey()
mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortrait)
mQwertyTransKeyView?.mTK_EnableSamekeyInputDataEncrypt(false)
// ccr key
mQwertyTransKeyView?.mTK_LicenseCheck("license_IBK_TEST_IONEBANK_20181105_20190531")
}
private func setup() {
// all setup should be done here
self.setupPicturedNavBar()
self.setupDatePicker()
self.configureLanguage()
self.passwordTextField.delegate = self
self.confirmPasswordTextfield.delegate = self
}
private func configureLanguage() {
self.headerLabel.text = StringConstants().registerHeader
self.subHeaderLabel.text = StringConstants().registerSubtitle
self.userIdTitleLabel.text = "email_text".localized()
self.emailTextField.placeholder = StringConstants().useridPlaceholder
let passwordPlaceholder = StringConstants().passwordPlaceholder
let attributedPasswordPlaceholder = NSMutableAttributedString(string: passwordPlaceholder)
let passwordPolicy = " (\("password_policy_error".localized()))"
let font = UIFont.init(name: "SanFranciscoDisplay-regular", size: 12)!
let myAttribute = [ NSAttributedString.Key.foregroundColor: UIColor.lightGray, NSAttributedStringKey.font : font ]
let attributedPasswordPolicy = NSAttributedString(string: passwordPolicy, attributes: myAttribute)
attributedPasswordPlaceholder.append(attributedPasswordPolicy)
self.passwordTitleLabel.attributedText = attributedPasswordPlaceholder
self.passwordTextField.placeholder = StringConstants().passwordPlaceholder
self.confirmPasswordTitleLabel.text = StringConstants().confirmPasswordPlaceholder
self.confirmPasswordTextfield.placeholder = StringConstants().confirmPasswordPlaceholder
self.dobTitileLabel.text = StringConstants().dobTitlePlaceholder
self.dobTextField.placeholder = StringConstants().dobTitlePlaceholder
self.alreadyHaveAccountLabel.text = StringConstants().alreadyHaveAccountText
self.loginButton.setTitle(StringConstants().loginText, for: .normal)
self.registerButton.setTitle(StringConstants().registerText, for: .normal)
}
}
// MARK: RegisterViewInterface
extension RegisterViewController: RegisterViewInterface {
func showLoading() {
self.showProgressHud()
}
func hideLoading() {
self.hideProgressHud()
}
func show(error: String) {
self.alert(message: error)
}
func show(message: String) {
self.alertWithOk(message: message, title: "Success", okTitle: "Ok") {
self.presenter?.login()
}
}
}
extension RegisterViewController: TransKeyViewDelegate {
func secureInputFinish(_ type: Int) {
NSLog("secureInputFinish Btn Type : %d", type)
NSLog("secureInputFinish");
var targetView : TransKeyView?
NSLog("qwerty : " + isShowQwerty.description + " number : " + isShowNumber.description)
if isShowQwerty == true{
qwertyCipherString = mQwertyTransKeyView?.mTK_GetSecureData()
if showingPasswordField {
if mQwertyTransKeyView?.mTK_GetDataLength() == 0 {
self.encryptedPassword = ""
self.passwordTextField.text = ""
}else {
self.encryptedPassword = qwertyCipherString
self.passwordTextField.text = "password"
} }
if showingConfirmPasswordField {
if mQwertyTransKeyView?.mTK_GetDataLength() == 0 {
encryptedConfirmPassword = ""
self.confirmPasswordTextfield.text = ""
}else {
encryptedConfirmPassword = qwertyCipherString
self.confirmPasswordTextfield.text = "password"
}
}
targetView = mQwertyTransKeyView
// self.mQwertyTransKeyView?.dismissViewControllerAnimated(true, completion: nil)
}
isShowQwerty = false
isShowNumber = false
isTranskeyShowing = false
targetView?.dismiss(animated: true, completion: nil)
}
func showQwertyPasswordTranskeyAction(){
// let pbkdfKey = "acc4af609fad57f1cd870a5d94092a24be5fd974"
//// let salts = { 1, 6, 0, 7, 4, 4, 4, 4, 8, 8, 7, 1, 4, 3, 3, 3, 3, 3, 3, 3}
// var PBKDF2_SALT : NSData!
// let PBKDF2_IT = 512;
// mQwertyTransKeyView?.mTK_SetPBKDF_RandKey(<#T##randkey: NSData!##NSData!#>)
// setQwertyTranskey()
if mQwertyTransKeyView?.isBeingPresented == false {
isShowQwerty = true
isTranskeyShowing = true
let hintStr = String(format:"password", 0)
let font = UIFont(name: "Arial", size: 15)
mQwertyTransKeyView?.mTK_SetHint(hintStr, font: font)
mQwertyTransKeyView?.mTK_ShowMessageIfMaxLength("16자리 입력이 초과되었습니다.")
mQwertyTransKeyView?.mTK_UseCursor(true)
mQwertyTransKeyView?.mTK_UseAllDeleteButton(true)
mQwertyTransKeyView?.mTK_UseNavigationBar(true)
mQwertyTransKeyView?.mTK_UseVoiceOver(true)
mQwertyTransKeyView?.mTK_setHideInputPasswordDelay(3)
mQwertyTransKeyView?.mTK_SetControlCenter(false)
mQwertyTransKeyView?.mTK_setIgnoreStatusbar(false)
// mQwertyTransKeyView?.mTK_SetLanguage(1)
mQwertyTransKeyView?.mTK_Supported(byDeviceOrientation: SupportedByDevicePortraitAndLandscape)
mQwertyTransKeyView?.setKeyboardType(self,
keypadType: 0,
mTK_inputType: 2,
mTK_inputTitle: "password",
mTK_cryptType: 0,
mTK_maxLength: 100,
mTK_minLength: 0,
mTK_keypadUpper: false,
mTK_languageType: 1)
mQwertyTransKeyView?.mTK_EnableSamekeyInputDataEncrypt(false)
mQwertyTransKeyView?.mTK_SetUseBalloonImageButton(true)
if let mQwertyTransKeyView = mQwertyTransKeyView {
self.present(mQwertyTransKeyView, animated: true, completion: nil)
}
}
}
}
extension RegisterViewController: UITextFieldDelegate {
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if textField == passwordTextField {
self.showingPasswordField = true
self.showingConfirmPasswordField = false
self.showQwertyPasswordTranskeyAction()
return false
}
if textField == confirmPasswordTextfield {
self.showingConfirmPasswordField = true
self.showingPasswordField = false
self.showQwertyPasswordTranskeyAction()
return false
}
return true
}
}
Loading…
Cancel
Save