Browse Source

TrustSDK bug fixed

v0.17
stepie.ub 1 year ago
parent
commit
498a405373
  1. 23
      GME Remit.xcodeproj/project.pbxproj
  2. 6
      GME Remit/Modules/BeneficiaryDetail/User Interface/View/BeneficiaryDetail.storyboard
  3. 4
      GME Remit/Modules/BeneficiaryDetail/User Interface/View/BeneficiaryDetailViewController.swift
  4. 3
      GME Remit/Modules/ExchangeRates/User Interface/View/ExchangeRatesViewController.swift
  5. 53
      GME Remit/Modules/Home/User Interface/View/Cell/PageIndicatorCollectionViewCell.swift
  6. 2
      GME Remit/Modules/Home/User Interface/View/Custom/HomeCarouselView.swift
  7. 143
      GME Remit/Modules/Home/User Interface/View/Custom/HomeExchangeRateView.swift
  8. 137
      GME Remit/Modules/Home/User Interface/View/Custom/RePageControl.swift
  9. 2
      GME Remit/Modules/Home/User Interface/View/HomeViewController.swift
  10. 4
      GME Remit/Modules/Main/User Interface/View/MainViewController.swift
  11. 6
      GME Remit/Modules/RegisterModules/UserAuthentication/ChooseKycDocumentType/View/ChooseDocTableViewCell.swift
  12. 22
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/View/KYCVerifyStep1.storyboard
  13. 151
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/View/KYCVerifyStep1ViewController.swift
  14. 2
      GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/Wireframe/KYCVerifyStep1Wireframe.swift
  15. 14
      GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/User Interface/Wireframe/NewRegisterWireframe.swift
  16. BIN
      GME Remit/Supported Files/Assets.xcassets/.DS_Store
  17. 21
      GME Remit/Supported Files/Assets.xcassets/ic_arrow_right_white.imageset/Contents.json
  18. BIN
      GME Remit/Supported Files/Assets.xcassets/ic_arrow_right_white.imageset/long-arrow-pointing-to-the-right.png
  19. 2
      GME Remit/Utilities/ExchangeRateCustomView.swift
  20. 2
      GME Remit/Utilities/TabBar Helper/CustomItemTabView.swift
  21. 2
      GME Remit/Utilities/TabBar Helper/CustomTabBar.swift

23
GME Remit.xcodeproj/project.pbxproj

@ -195,10 +195,12 @@
540E0CA52A555F4D0023FA8B /* ChooseKycDocumentTypeInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 540E0C9C2A555F4D0023FA8B /* ChooseKycDocumentTypeInteractor.swift */; };
542326842A1F2A2D0030052F /* SendMoneyExchangeRateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 542326822A1F2A2D0030052F /* SendMoneyExchangeRateViewController.swift */; };
542326852A1F2A2D0030052F /* SendMoneyExchangeRate.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 542326832A1F2A2D0030052F /* SendMoneyExchangeRate.storyboard */; };
5443E40F2A5C7E92009E4B30 /* PageIndicatorCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5443E40E2A5C7E92009E4B30 /* PageIndicatorCollectionViewCell.swift */; };
54608DD22A5BF8F40011A1E1 /* TrustdockSDK_Full.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54F7EE082A5AD62700032FC1 /* TrustdockSDK_Full.xcframework */; };
54608DD32A5BF8F40011A1E1 /* TrustdockSDK_Full.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 54F7EE082A5AD62700032FC1 /* TrustdockSDK_Full.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
5482FC6A2A5D3714006110AE /* RePageControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5482FC692A5D3714006110AE /* RePageControl.swift */; };
54A3127A2A56767F002BBFB8 /* ChooseDocumentRequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A312792A56767F002BBFB8 /* ChooseDocumentRequestModel.swift */; };
54A3127C2A56965D002BBFB8 /* ChooseDocTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A3127B2A56965D002BBFB8 /* ChooseDocTableViewCell.swift */; };
54F7EE092A5AD62700032FC1 /* TrustdockSDK_Full.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54F7EE082A5AD62700032FC1 /* TrustdockSDK_Full.xcframework */; };
54F7EE0A2A5AD62700032FC1 /* TrustdockSDK_Full.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54F7EE082A5AD62700032FC1 /* TrustdockSDK_Full.xcframework */; };
5565FF1D1FE275E5002934E9 /* SanFranciscoDisplay-Heavy.otf in Resources */ = {isa = PBXBuildFile; fileRef = 5565FF071FE275E0002934E9 /* SanFranciscoDisplay-Heavy.otf */; };
5565FF1E1FE275E5002934E9 /* SanFranciscoText-RegularItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = 5565FF081FE275E0002934E9 /* SanFranciscoText-RegularItalic.otf */; };
5565FF1F1FE275E5002934E9 /* SanFranciscoText-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 5565FF091FE275E0002934E9 /* SanFranciscoText-Regular.otf */; };
@ -888,6 +890,7 @@
E8E3B7C229D8950500D641EC /* ItrustEkycLibrary.xcframework in Embed Frameworks */,
E8E3B7C029D8950300D641EC /* emrtd_sdk.xcframework in Embed Frameworks */,
E8E3B7C429D8950700D641EC /* openssl.xcframework in Embed Frameworks */,
54608DD32A5BF8F40011A1E1 /* TrustdockSDK_Full.xcframework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@ -1100,6 +1103,8 @@
540E0C9C2A555F4D0023FA8B /* ChooseKycDocumentTypeInteractor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChooseKycDocumentTypeInteractor.swift; sourceTree = "<group>"; };
542326822A1F2A2D0030052F /* SendMoneyExchangeRateViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SendMoneyExchangeRateViewController.swift; sourceTree = "<group>"; };
542326832A1F2A2D0030052F /* SendMoneyExchangeRate.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = SendMoneyExchangeRate.storyboard; sourceTree = "<group>"; };
5443E40E2A5C7E92009E4B30 /* PageIndicatorCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageIndicatorCollectionViewCell.swift; sourceTree = "<group>"; };
5482FC692A5D3714006110AE /* RePageControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RePageControl.swift; sourceTree = "<group>"; };
54A312792A56767F002BBFB8 /* ChooseDocumentRequestModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChooseDocumentRequestModel.swift; sourceTree = "<group>"; };
54A3127B2A56965D002BBFB8 /* ChooseDocTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChooseDocTableViewCell.swift; sourceTree = "<group>"; };
54F7EE082A5AD62700032FC1 /* TrustdockSDK_Full.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = TrustdockSDK_Full.xcframework; sourceTree = "<group>"; };
@ -1779,7 +1784,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
54F7EE092A5AD62700032FC1 /* TrustdockSDK_Full.xcframework in Frameworks */,
54608DD22A5BF8F40011A1E1 /* TrustdockSDK_Full.xcframework in Frameworks */,
282F6A60296483AE00E324FF /* Algorithms in Frameworks */,
D99B6A4D22040E440096C1D6 /* LocalAuthentication.framework in Frameworks */,
CC9B671D5DDC9BB476C2775F /* Pods_GME_Remit.framework in Frameworks */,
@ -1804,7 +1809,6 @@
buildActionMask = 2147483647;
files = (
B28F83785E653C4FCC6E5788 /* Pods_GMERemittanceUITests.framework in Frameworks */,
54F7EE0A2A5AD62700032FC1 /* TrustdockSDK_Full.xcframework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1958,6 +1962,7 @@
244C69B629B7A01600D7B69A /* HomeAccountDetailView.swift */,
24A4501F29B831EF0049CE29 /* HomeExchangeRateView.swift */,
247222DD29C7419800732E55 /* HomeCarouselView.swift */,
5482FC692A5D3714006110AE /* RePageControl.swift */,
);
path = Custom;
sourceTree = "<group>";
@ -2247,11 +2252,11 @@
3DE940CE478E7407EB7DE7CE /* Frameworks */ = {
isa = PBXGroup;
children = (
54F7EE082A5AD62700032FC1 /* TrustdockSDK_Full.xcframework */,
E8E3B7B929D894AD00D641EC /* ItrustEkycLibrary.xcframework */,
E8E3B7BD29D894D100D641EC /* openssl.xcframework */,
E8E3B7BB29D894BB00D641EC /* libjeid.xcframework */,
E8E3B7B729D8949E00D641EC /* emrtd_sdk.xcframework */,
54F7EE082A5AD62700032FC1 /* TrustdockSDK_Full.xcframework */,
28753FB2292E613800541B07 /* CoreNFC.framework */,
D99B6A4C22040E440096C1D6 /* LocalAuthentication.framework */,
754C503578F5B5FFF3758D6E /* Pods_GME_Remit.framework */,
@ -6445,6 +6450,7 @@
D923EBB8215C7421008A3026 /* HomeCollectionCollectionViewCell.swift */,
24A4502129B83A710049CE29 /* HomeExchangeRateCollectionViewCell.swift */,
247222DF29C7425700732E55 /* CarouselCell.swift */,
5443E40E2A5C7E92009E4B30 /* PageIndicatorCollectionViewCell.swift */,
);
path = Cell;
sourceTree = "<group>";
@ -8061,6 +8067,7 @@
736A8C422277EB2A00337A50 /* BiometricNotificationServiceType.swift in Sources */,
73149F6822E5AF8000D66B26 /* LauncherScreenPresenter.swift in Sources */,
73B6D6882306402200A0CB6E /* PaymentMethodModel.swift in Sources */,
5443E40F2A5C7E92009E4B30 /* PageIndicatorCollectionViewCell.swift in Sources */,
D9D2242B22407EBA00C7313D /* ResendListModel.swift in Sources */,
89739E4524459A630016251B /* SendMoneyExchangeRateService.swift in Sources */,
73D3F3E5270C65B5006C3F97 /* CDDIViewControllerViewInterface.swift in Sources */,
@ -8158,6 +8165,7 @@
73210DB122FBF4B000715D6C /* ObservableType+Ext.swift in Sources */,
D96BD119216479E200DFE7D8 /* WalletStatementInteractor.swift in Sources */,
D9031140214786EA00AD5BA9 /* ForgotPasswordInteractorIO.swift in Sources */,
5482FC6A2A5D3714006110AE /* RePageControl.swift in Sources */,
89EA0D80243EC1C5003ACCC8 /* ChangePersonalInformationModuleInterface.swift in Sources */,
7EDBFBDC24B2C5DA00AD5D4D /* RedeemCashPickUpInteractorIO.swift in Sources */,
D96A4FD821460B4A00CFD507 /* SplashScreenInteractorIO.swift in Sources */,
@ -9019,7 +9027,7 @@
CODE_SIGN_ENTITLEMENTS = "GME Remit.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 4;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 68KRG7GPAV;
ENABLE_BITCODE = NO;
@ -9065,12 +9073,11 @@
CODE_SIGN_ENTITLEMENTS = "GME Remit/GME RemitRelease.entitlements";
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 4;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 68KRG7GPAV;
ENABLE_BITCODE = NO;
EXCLUDED_ARCHS = "";
"EXCLUDED_ARCHS[sdk=*]" = arm64;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/GME\\ Remit/ThirdParty/virtualKeyboard/mtk_module",

6
GME Remit/Modules/BeneficiaryDetail/User Interface/View/BeneficiaryDetail.storyboard

@ -158,7 +158,9 @@
</constraints>
<color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<state key="normal" title="Button"/>
<buttonConfiguration key="configuration" style="plain" image="arrow.forward" catalog="system" title="Continue "/>
<buttonConfiguration key="configuration" style="plain" image="ic_arrow_right_white" title="Continue ">
<fontDescription key="titleFontDescription" name="SanFranciscoDisplay-Semibold" family="San Francisco Display" pointSize="16"/>
</buttonConfiguration>
<connections>
<action selector="didPressContinueButton:" destination="HSb-ou-7T5" eventType="touchUpInside" id="Egh-gp-A6v"/>
</connections>
@ -205,8 +207,8 @@
</scenes>
<color key="tintColor" red="0.78177064659999995" green="0.55228364470000002" blue="0.018981300289999999" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<resources>
<image name="arrow.forward" catalog="system" width="128" height="95"/>
<image name="circle" catalog="system" width="128" height="123"/>
<image name="ic_arrow_right_white" width="25" height="25"/>
<image name="ic_delete3" width="24" height="24"/>
<image name="ic_koreaBank" width="50" height="33"/>
<systemColor name="systemBackgroundColor">

4
GME Remit/Modules/BeneficiaryDetail/User Interface/View/BeneficiaryDetailViewController.swift

@ -107,7 +107,9 @@ class BeneficiaryDetailViewController: UIViewController {
tableView.dataSource = self
tableView.register(UINib(nibName: BeneficiaryDetailHeaderView.identifier, bundle: nil), forHeaderFooterViewReuseIdentifier: BeneficiaryDetailHeaderView.identifier)
continueButton.set(cornerRadius: 10)
continueButton.setTitle("continue_text".localized(), for: .normal)
continueButton.titleLabel?.font = .sanfrancisco(.semibold, size: 20)
continueButton.setTitle("continue_text".localized() + " ", for: .normal)
//updateButton.set(cornerRadius: 10)
//updateButton.set(borderWidth: 2, of: .init(hex: "#2E89FF"))
}

3
GME Remit/Modules/ExchangeRates/User Interface/View/ExchangeRatesViewController.swift

@ -99,6 +99,9 @@ class ExchangeRatesViewController: UIViewController {
var calcBy = ""
private var exchangeRateModels: [ExchangeRateModel]? {
didSet {
let countryCode = GMEDB.shared.user.string(.countryCode)

53
GME Remit/Modules/Home/User Interface/View/Cell/PageIndicatorCollectionViewCell.swift

@ -0,0 +1,53 @@
//
import UIKit
class PageIndicatorCollectionViewCell: UICollectionViewCell {
static let identifier: String = "CarouselCollectionCellID"
let pageControl: CustomPageControl = {
let view = CustomPageControl(frame: .zero)
view.backgroundColor = .themeWhite
view.currentPageIndicatorTintColor = .theme2E89FF
view.pageIndicatorTintColor = .themeGray2
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
var count: Int = 0 {
didSet {
pageControl.numberOfPages = count
setup()
}
}
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") }
func setup(){
let _pageControl = pageControl
self.backgroundColor = .themeWhite
self.addSubview(_pageControl)
_pageControl.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
_pageControl.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 0).isActive = true
_pageControl.heightAnchor.constraint(equalToConstant: 30).isActive = true
}
@objc open dynamic var currentIndex: Int = 0 {
didSet {
updateAccessoryViews()
}
}
func updateAccessoryViews() {
pageControl.currentPage = currentIndex
}
}

2
GME Remit/Modules/Home/User Interface/View/Custom/HomeCarouselView.swift

@ -26,7 +26,7 @@ class HomeCarouselView: UIView {
private let pageControl: CustomPageControl = {
let view = CustomPageControl(frame: .zero)
view.backgroundColor = .themeWhite
view.currentPageIndicatorTintColor = .themeBlack
view.currentPageIndicatorTintColor = .theme2E89FF
view.pageIndicatorTintColor = .themeGray2
view.translatesAutoresizingMaskIntoConstraints = false
return view

143
GME Remit/Modules/Home/User Interface/View/Custom/HomeExchangeRateView.swift

@ -24,7 +24,25 @@ class HomeExchangeRateView: UIView {
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
var defaultPageControl: UIPageControl = {
let control = UIPageControl(frame: .zero)
control.pageIndicatorTintColor = .themeGray2
control.currentPageIndicatorTintColor = .theme2E89FF
control.translatesAutoresizingMaskIntoConstraints = false
return control
}()
var pageControl: ReCustomPageControl = {
let view = ReCustomPageControl(frame: .zero)
view.backgroundColor = .themeWhite
view.currentPageIndicatorTintColor = .theme2E89FF
view.pageIndicatorTintColor = .themeGray2
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
private let collectionView: UICollectionView = {
let flowlayout = UICollectionViewFlowLayout()
@ -37,6 +55,7 @@ class HomeExchangeRateView: UIView {
colView.register(HomeExchangeRateCollectionViewCell.self, forCellWithReuseIdentifier: "HomeExchangeRateCollectionViewCell")
colView.register(PageIndicatorCollectionViewCell.self, forCellWithReuseIdentifier: "PageIndicatorCollectionViewCell")
colView.backgroundColor = .white
colView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 8, right: 0)
colView.showsHorizontalScrollIndicator = false
@ -101,15 +120,44 @@ class HomeExchangeRateView: UIView {
private var exchangeRateModels: [ExchangeRateModel]?
private var selectedExchangeRateModel: ExchangeRateModel? {
didSet {
self.selectedPaymentModeIndex = 0
self.defaultPageControl.isHidden = (selectedExchangeRateModel?.availableServices?.count ?? 0) <= 2
selectedExchangeRateModel(selectedExchangeRateModel)
// updateAccessoryViews()
}
}
var calcBy = ""
var selectedPaymentModeIndex = 0
var selectedPaymentModeIndex = 0 {
didSet {
updateAccessoryViews()
}
}
var openCountryList: (() -> ())?
var tappedCalculateExchangeRate: ((ExchangeRateRequestModel) ->())?
var tappedContinueButton: (() ->())?
// @objc open dynamic var currentIndex: Int = 0 {
// didSet {
// DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
// self.updateAccessoryViews()
// }
// }
// }
func updateAccessoryViews() {
self.defaultPageControl.numberOfPages = self.selectedExchangeRateModel?.availableServices?.count ?? 0
defaultPageControl.currentPage = selectedPaymentModeIndex
// self.defaultPageControl.setNeedsLayout()
// self.defaultPageControl.layoutIfNeeded()
}
override init(frame: CGRect) {
super.init(frame: .zero)
setup()
@ -119,6 +167,12 @@ class HomeExchangeRateView: UIView {
fatalError("init(coder:) has not been implemented")
}
// override open func layoutSubviews() {
// super.layoutSubviews()
// selectedPaymentModeIndex = 0
//
// }
func setup() {
uiSetup()
uiPropertiesSetup()
@ -151,13 +205,22 @@ class HomeExchangeRateView: UIView {
guranteedView.spacing = 3
guranteedView.distribution = .fill
containerView.addSubviews(collectionView,
defaultPageControl,
sendMoneyView,
recivedMoneyView,
transferFeeIncluded,
guranteedView,
continueButton)
//
// pageControl.centerXAnchor.constraint(equalTo: self.centerXAnchor).isActive = true
// pageControl.bottomAnchor.constraint(equalTo: self.bottomAnchor, constant: 0).isActive = true
// pageControl.heightAnchor.constraint(equalToConstant: 30).isActive = true
collectionView.anchor(
top: containerView.topAnchor,
@ -169,9 +232,21 @@ class HomeExchangeRateView: UIView {
height: 30
)
defaultPageControl.anchor(top: collectionView.bottomAnchor,
paddingTop: 0,
left: containerView.leadingAnchor,
paddingLeft: 0,
right: containerView.trailingAnchor,
paddingRight: 0,
height: 22
//(selectedExchangeRateModel?.availableServices?.count ?? 0) > 0 ? 30 : 0
)
// collectionView.bottomAnchor.constraint(equalTo: pageControl.topAnchor, constant: 0).isActive = true
sendMoneyView.anchor(
top: collectionView.bottomAnchor,
paddingTop: 16,
top: defaultPageControl.bottomAnchor,
paddingTop: 0,
left: containerView.leadingAnchor,
paddingLeft: 0,
right: containerView.trailingAnchor,
@ -229,10 +304,11 @@ class HomeExchangeRateView: UIView {
}
func uiPropertiesSetup() {
transferFeeIncludedText.text = ""
guranteedRateText.text = ""
continueButton.setTitle("send_money_title_text".localized(), for: .normal)
continueButton.setImage(UIImage(systemName: "arrow.backward"), for: .normal)
continueButton.setTitle("send_money_title_text".localized() + " ", for: .normal)
continueButton.setImage(UIImage(named: "ic_arrow_right_white"), for: .normal)
continueButton.semanticContentAttribute = .forceRightToLeft
continueButton.backgroundColor = .theme2E89FF
continueButton.titleLabel?.font = .sanfrancisco(.semibold, size: 20)
@ -277,7 +353,6 @@ class HomeExchangeRateView: UIView {
recivedMoneyView.didSelectCountry = { [weak self] in
self?.sendMoneyView.resignFirstResponder()
self?.recivedMoneyView.resignFirstResponder()
self?.selectedPaymentModeIndex = 0
self?.openCountryList?()
}
@ -366,6 +441,8 @@ class HomeExchangeRateView: UIView {
calculateExchangeRate()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
self.collectionView.reloadData()
// self.selectedPaymentModeIndex = self.selectedPaymentModeIndex
}
}
@ -398,7 +475,9 @@ extension HomeExchangeRateView: UICollectionViewDelegate,
UICollectionViewDataSource,
UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.selectedExchangeRateModel?.availableServices?.count ?? 0
}
@ -406,24 +485,26 @@ extension HomeExchangeRateView: UICollectionViewDelegate,
_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath
) -> UICollectionViewCell {
let service = self.selectedExchangeRateModel?.availableServices?.elementAt(index: indexPath.row)
guard let index = PaymentMode.init(rawValue: service?.id ?? "") else {
return UICollectionViewCell()
}
switch index {
case .bankDeposite:
return configureBankDepositeCell(collectionView: collectionView, indexPath: indexPath)
case .cashDelivery:
return configureCashDeliveryCell(collectionView: collectionView, indexPath: indexPath)
case .homeDelivery:
return configureHomeDeliveryCell(collectionView: collectionView, indexPath: indexPath)
case .mobileWallet:
return configureWalletDeliveryCell(collectionView: collectionView, indexPath: indexPath)
case .cardPayment:
return configureCardPaymentCell(collectionView: collectionView, indexPath: indexPath)
}
let service = self.selectedExchangeRateModel?.availableServices?.elementAt(index: indexPath.row)
guard let index = PaymentMode.init(rawValue: service?.id ?? "") else {
return UICollectionViewCell()
}
switch index {
case .bankDeposite:
return configureBankDepositeCell(collectionView: collectionView, indexPath: indexPath)
case .cashDelivery:
return configureCashDeliveryCell(collectionView: collectionView, indexPath: indexPath)
case .homeDelivery:
return configureHomeDeliveryCell(collectionView: collectionView, indexPath: indexPath)
case .mobileWallet:
return configureWalletDeliveryCell(collectionView: collectionView, indexPath: indexPath)
case .cardPayment:
return configureCardPaymentCell(collectionView: collectionView, indexPath: indexPath)
}
}
@ -516,9 +597,12 @@ extension HomeExchangeRateView: UICollectionViewDelegate,
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let element = self.selectedExchangeRateModel?.availableServices?.elementAt(
index: indexPath.row)?.subtitle ?? ""
return CGSize(width: element.size(withAttributes: [NSAttributedString.Key.font : UIFont.sanfrancisco(.semibold, size: 16)]).width + 25, height: collectionView.frame.height)
let element = self.selectedExchangeRateModel?.availableServices?.elementAt(
index: indexPath.row)?.subtitle ?? ""
return CGSize(width: element.size(withAttributes: [NSAttributedString.Key.font : UIFont.sanfrancisco(.semibold, size: 16)]).width + 25, height: collectionView.frame.height)
}
@ -535,9 +619,10 @@ extension HomeExchangeRateView: UICollectionViewDelegate,
// }
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
self.selectedPaymentModeIndex = indexPath.row
self.collectionView.reloadData()
self.calculateExchangeRate()
self.selectedPaymentModeIndex = indexPath.row
self.collectionView.reloadData()
self.calculateExchangeRate()
}
}

137
GME Remit/Modules/Home/User Interface/View/Custom/RePageControl.swift

@ -0,0 +1,137 @@
//
import Foundation
import UIKit
@IBDesignable
class ReCustomPageControl: UIControl {
//MARK:- Properties
private var numberOfDots = [UIView]() {
didSet{
if numberOfDots.count == numberOfPages {
setupViews()
}
}
}
@IBInspectable var numberOfPages: Int = 0 {
didSet{
for tag in 0 ..< numberOfPages {
let dot = getDotView()
dot.tag = tag
dot.backgroundColor = pageIndicatorTintColor
self.numberOfDots.append(dot)
}
}
}
var currentPage: Int = 0 {
didSet{
onPageControlSwipe()
}
}
@IBInspectable var pageIndicatorTintColor: UIColor? = .blue
@IBInspectable var currentPageIndicatorTintColor: UIColor? = .green
private lazy var stackView = UIStackView.init(frame: self.bounds)
private lazy var constantSpace = ((stackView.spacing) * CGFloat(numberOfPages - 1) + ((self.bounds.height * 0.45) * CGFloat(numberOfPages)) - self.bounds.width)
override var bounds: CGRect {
didSet{
self.numberOfDots.forEach { (dot) in
self.setupDotAppearance(dot: dot)
}
}
}
//MARK:- Intialisers
convenience init() {
self.init(frame: .zero)
}
func refreshPagerView() {
numberOfDots = []
}
init(withNoOfPages pages: Int) {
self.numberOfPages = pages
self.currentPage = 0
super.init(frame: .zero)
setupViews()
}
override init(frame: CGRect) {
super.init(frame: frame)
setupViews()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
private func setupViews() {
self.numberOfDots.forEach { (dot) in
self.stackView.addArrangedSubview(dot)
}
stackView.alignment = .center
stackView.axis = .horizontal
stackView.distribution = .fillEqually
stackView.spacing = 8
stackView.translatesAutoresizingMaskIntoConstraints = false
self.addSubview(stackView)
self.addConstraints([
stackView.centerXAnchor.constraint(equalTo: self.centerXAnchor),
stackView.centerYAnchor.constraint(equalTo: self.centerYAnchor),
stackView.heightAnchor.constraint(equalTo: self.heightAnchor),
])
self.numberOfDots.forEach { dot in
self.addConstraints([
dot.centerYAnchor.constraint(equalTo: self.stackView.centerYAnchor),
dot.widthAnchor.constraint(equalToConstant: 7),
dot.heightAnchor.constraint(equalToConstant: 7),
])
}
self.numberOfDots.forEach { dot in
dot.layer.cornerRadius = dot.bounds.height / 2
}
}
@objc private func onPageControlSwipe() {
_ = numberOfDots.map { (dot) in
setupDotAppearance(dot: dot)
if dot.tag == currentPage {
UIView.animate(withDuration: 0.2, animations: {
dot.layer.cornerRadius = dot.bounds.height / 5
dot.transform = CGAffineTransform.init(scaleX: 2, y: 1)
dot.backgroundColor = self.currentPageIndicatorTintColor
})
}
}
}
//MARK: Helper methods...
private func getDotView() -> UIView {
let dot = UIView()
dot.translatesAutoresizingMaskIntoConstraints = false
self.setupDotAppearance(dot: dot)
return dot
}
private func setupDotAppearance(dot: UIView) {
dot.transform = .identity
dot.layer.cornerRadius = dot.bounds.height / 2
dot.layer.masksToBounds = true
dot.backgroundColor = pageIndicatorTintColor
}
}

2
GME Remit/Modules/Home/User Interface/View/HomeViewController.swift

@ -939,6 +939,7 @@ extension HomeViewController: HomeViewInterface {
self.user = model.loginResponse
self.exchangeRateModels = rates
self.exchangeRateView.set(rates)
self.exchangeRateView.updateAccessoryViews()
}
func show(error: String) {
@ -1167,6 +1168,7 @@ extension HomeViewController: TablePresenterDelegate {
if let exchangeRateModel = model as? ExchangeRateModel {
self.exchangeRateModel = exchangeRateModel
self.exchangeRateView.set(exchangeRateModel)
self.exchangeRateView.updateAccessoryViews()
//reload(0, Sections.collection.rawValue)
}
}

4
GME Remit/Modules/Main/User Interface/View/MainViewController.swift

@ -71,8 +71,8 @@ class MainViewController: UITabBarController {
}
private func setupLayout() {
customTabBar.widthAnchor.constraint(equalToConstant: 168).isActive = true
customTabBar.heightAnchor.constraint(equalToConstant: 48).isActive = true
customTabBar.widthAnchor.constraint(equalToConstant: 220).isActive = true
customTabBar.heightAnchor.constraint(equalToConstant: 58).isActive = true
customTabBar.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
customTabBar.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -8).isActive = true
}

6
GME Remit/Modules/RegisterModules/UserAuthentication/ChooseKycDocumentType/View/ChooseDocTableViewCell.swift

@ -28,19 +28,19 @@ class ChooseDocTableViewCell: UITableViewCell {
}
private func setUp() {
containerView.backgroundColor = .lightBlueColor
containerView.set(cornerRadius: 10)
containerView.backgroundColor = .white
selectedButton.setTitle("", for: .normal)
}
func isSelected(_ status:Bool) {
if status{
containerView.backgroundColor = .lightBlueColor
selectedButton.tintColor = .themeRed
selectedButton.setImage(UIImage(systemName: "largecircle.fill.circle"), for: .normal)
} else {
containerView.backgroundColor = .white
// containerView.backgroundColor = .white
selectedButton.tintColor = .themeGray1
selectedButton.setImage(UIImage(systemName: "circle"), for: .normal)

22
GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/View/KYCVerifyStep1.storyboard

@ -44,7 +44,7 @@
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="32" translatesAutoresizingMaskIntoConstraints="NO" id="BEO-Od-Aem">
<rect key="frame" x="0.0" y="0.0" width="335" height="482"/>
<subviews>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="xYR-of-uBD">
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="xYR-of-uBD">
<rect key="frame" x="0.0" y="0.0" width="335" height="400"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
@ -69,28 +69,28 @@
<buttonConfiguration key="configuration" style="plain" image="circle" catalog="system"/>
</button>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="iJ0-7D-K7Q">
<rect key="frame" x="54" y="8" width="269" height="187"/>
<rect key="frame" x="54" y="16" width="281" height="171"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="u91-w4-78S">
<rect key="frame" x="0.0" y="0.0" width="269" height="187"/>
<rect key="frame" x="0.0" y="0.0" width="281" height="171"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" alignment="center" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="mGy-lW-7EK">
<rect key="frame" x="16" y="16" width="253" height="155"/>
<rect key="frame" x="16" y="16" width="265" height="139"/>
<subviews>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="cop-m9-EF3">
<rect key="frame" x="0.0" y="58" width="253" height="39.5"/>
<rect key="frame" x="0.0" y="50" width="265" height="39.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="IME Pay Mobile Wallet" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tPl-vv-aLh">
<rect key="frame" x="0.0" y="0.0" width="253" height="17"/>
<rect key="frame" x="0.0" y="0.0" width="265" height="17"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="14"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="4" translatesAutoresizingMaskIntoConstraints="NO" id="GBN-vX-g5b">
<rect key="frame" x="0.0" y="25" width="253" height="14.5"/>
<rect key="frame" x="0.0" y="25" width="265" height="14.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="ID: 9841303676" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8No-S1-MQD">
<rect key="frame" x="0.0" y="0.0" width="253" height="14.5"/>
<rect key="frame" x="0.0" y="0.0" width="265" height="14.5"/>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="12"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.59999999999999998" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
@ -114,10 +114,10 @@
</stackView>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="iJ0-7D-K7Q" secondAttribute="bottom" constant="8" id="AB2-UO-kqr"/>
<constraint firstAttribute="bottom" secondItem="iJ0-7D-K7Q" secondAttribute="bottom" constant="16" id="AB2-UO-kqr"/>
<constraint firstItem="ohS-CH-1nD" firstAttribute="centerY" secondItem="iJ0-7D-K7Q" secondAttribute="centerY" id="KEI-6q-hhz"/>
<constraint firstAttribute="trailing" secondItem="iJ0-7D-K7Q" secondAttribute="trailing" constant="12" id="ZTx-6P-740"/>
<constraint firstItem="iJ0-7D-K7Q" firstAttribute="top" secondItem="KyY-PP-xpQ" secondAttribute="top" constant="8" id="a7d-Hu-SaO"/>
<constraint firstAttribute="trailing" secondItem="iJ0-7D-K7Q" secondAttribute="trailing" id="ZTx-6P-740"/>
<constraint firstItem="iJ0-7D-K7Q" firstAttribute="top" secondItem="KyY-PP-xpQ" secondAttribute="top" constant="16" id="a7d-Hu-SaO"/>
<constraint firstItem="ohS-CH-1nD" firstAttribute="leading" secondItem="KyY-PP-xpQ" secondAttribute="leadingMargin" id="ga8-vH-PaY"/>
<constraint firstItem="iJ0-7D-K7Q" firstAttribute="leading" secondItem="ohS-CH-1nD" secondAttribute="trailing" constant="18" id="mim-yt-mTf"/>
</constraints>

151
GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/View/KYCVerifyStep1ViewController.swift

@ -70,6 +70,7 @@ class KYCVerifyStep1ViewController: UIViewController {
private var isSelected = false
private var isForeigner = true
private var isFromSDKError = false;
@IBOutlet weak var chooseDocStackView: UIStackView!
@IBOutlet weak var chooseDocTableView: UITableView!
@ -157,12 +158,15 @@ class KYCVerifyStep1ViewController: UIViewController {
self.chooseDocStackView.isHidden = self.step != .choose
self.personalInformationStack.isHidden = self.step != .first
if self.redirectToKYC != "EKYC" {
let selectedDocConfig = getKycDocFromPref()
if ((selectedDocConfig?.doc_type?.lowercased() == "mkyc")) {
self.uploadPictureStack.isHidden = self.step != .upload
} else {
self.uploadPictureStack.isHidden = true
if self.step == .upload {
if trustDockCalled == false {
// initializeSDK()
self.openSDK()
}
}
@ -825,7 +829,7 @@ extension KYCVerifyStep1ViewController {
output.docSaveSuccess
.drive(onNext: {[weak self] (message) in
guard let self = self else {return}
self.delegate?.newRegister(self, isFromNo: false, currentStep: .choose, nextStep: .first)
self.initializeSDK()
}).disposed(by: disposeBag)
output.gpsAddress.drive(onNext: {[weak self] in
@ -962,7 +966,7 @@ extension KYCVerifyStep1ViewController {
}
private func setMultiLanguages() {
chooseDocSaveButton.setTitle("save_and_next_text".localized(), for: .normal)
chooseDocSaveButton.setTitle("next_text".localized(), for: .normal)
self.personalInformationLabel.text = "personal_information_text".localized()
self.employerNameTxtField.placeholder = "employerName_text".localized()
@ -1006,12 +1010,12 @@ extension KYCVerifyStep1ViewController {
//MARK: Saving Selected doc in Pref because Task was urgent and it was time consuming to work on this architecture
extension KYCVerifyStep1ViewController {
private func saveKycDocOnPref() {
let _selected = docType.elementAt(index: selectedIndex)
private func saveKycDocOnPref(_selected: DocumentOptions?) {
// let _selected = docType.elementAt(index: selectedIndex)
let jsonEncoder = JSONEncoder()
do{
let jsonData = try jsonEncoder.encode(_selected)
let jsonData = try jsonEncoder.encode(_selected ?? docType.elementAt(index: selectedIndex))
let json = String(data: jsonData, encoding: String.Encoding.utf8)
@ -1079,6 +1083,42 @@ extension KYCVerifyStep1ViewController {
return nil
}
private func saveTrustDocResposeOnPref() {
let jsonEncoder = JSONEncoder()
do{
let jsonData = try jsonEncoder.encode(trustDockResponse)
let json = String(data: jsonData, encoding: String.Encoding.utf8)
UserDefaults.standard.setValue(json, forKey: "TrustDocConfig")
}
catch{
fatalError("Unable To Convert in Json")
}
}
private func getTrustDocResposeFromPref() -> TrustDockResponse? {
if let selectedDoc = UserDefaults.standard.value(forKey: "TrustDocConfig") as? AnyObject, (selectedDoc != nil) {
let jsonDecoder = JSONDecoder()
do{
let convertedData = try jsonDecoder.decode(TrustDockResponse.self, from: (selectedDoc).data(using: String.Encoding.utf8.rawValue)!)
return convertedData
}catch{
print("Error")
}
}
return nil
}
}
// MARK: CLLocationManagerDelegate
@ -1218,7 +1258,7 @@ extension KYCVerifyStep1ViewController: UITableViewDataSource, UITableViewDelega
//
self.selectedIndex = indexPath.row
onDocSelPub.onNext(selectedOption!)
saveKycDocOnPref()
saveKycDocOnPref(_selected: selectedOption)
self.chooseDocTableView.reloadSections(IndexSet(integer: 0), with: .none)
}
@ -1254,7 +1294,11 @@ extension KYCVerifyStep1ViewController: WKNavigationDelegate, UIScrollViewDelega
}
extension KYCVerifyStep1ViewController {
func openSDK() {
if self.trustDockResponse?.messgae?.lowercased() == "accepted" {
let trustDocResponse = getTrustDocResposeFromPref()
if trustDocResponse?.messgae?.lowercased() == "accepted" {
DispatchQueue.main.async { [self] in
var trustDocPlans: [TrustdockPlan] = []
@ -1276,7 +1320,7 @@ extension KYCVerifyStep1ViewController {
// let withoutNFC = [TrustdockPlan(id:"039cfef5-0248-44c4-8464-25baef241f05")]
let params = TrustdockVerificationParams(publicId: self.trustDockResponse?.publicId ?? "",
let params = TrustdockVerificationParams(publicId: trustDocResponse?.publicId ?? "",
nativeAppSdkToken: selectedDocConfig?.sdk_Token ?? "",
plans: trustDocPlans)
TrustdockVerificationSDK.start(parentVC: self, params: params)
@ -1301,43 +1345,62 @@ extension KYCVerifyStep1ViewController {
}
fileprivate func initializeSDK() {
self.showProgressHud(loadingColor: .gray)
let requestParams = NSMutableDictionary()
let selectedDocConfig = getKycDocConfigFromPref()
let selectedDocConfig = getKycDocFromPref()
let url = URL(string: selectedDocConfig?.url ?? "")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = try? JSONSerialization.data(withJSONObject: requestParams, options: .prettyPrinted)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer \(selectedDocConfig?.authorization_key ?? "")", forHTTPHeaderField: "Authorization")
let session = URLSession.shared.dataTask(with: request) {[unowned self] (data, response, error) in
guard let data = data, error == nil else {
let errorMessage = error?.localizedDescription ?? TrustDockSDKError.unknownError.localizedDescription
self.hideProgressHud()
return
}
do {
let jsonData = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
let statusCode = (response as! HTTPURLResponse).statusCode
let publicId = jsonData?["public_id"] as? String
let id = jsonData?["id"] as? String
let successMessage = (jsonData?["state"] as? String)
self.trustDockResponse = TrustDockResponse(id: id ?? "", publicID: publicId ?? "", message: successMessage ?? "", statusCode: statusCode)
self.hideProgressHud()
self.openSDK()
} catch {
self.hideProgressHud()
if ((selectedDocConfig?.doc_type?.lowercased() != "mkyc")) {
self.showProgressHud(loadingColor: .gray)
let requestParams = NSMutableDictionary()
let selectedDocConfig = getKycDocConfigFromPref()
let url = URL(string: selectedDocConfig?.url ?? "")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = try? JSONSerialization.data(withJSONObject: requestParams, options: .prettyPrinted)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer \(selectedDocConfig?.authorization_key ?? "")", forHTTPHeaderField: "Authorization")
let session = URLSession.shared.dataTask(with: request) {[unowned self] (data, response, error) in
guard let data = data, error == nil else {
let errorMessage = error?.localizedDescription ?? TrustDockSDKError.unknownError.localizedDescription
self.hideProgressHud()
return
}
do {
let jsonData = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
let statusCode = (response as! HTTPURLResponse).statusCode
let publicId = jsonData?["public_id"] as? String
let id = jsonData?["id"] as? String
let successMessage = (jsonData?["state"] as? String)
self.trustDockResponse = TrustDockResponse(id: id ?? "", publicID: publicId ?? "", message: successMessage ?? "", statusCode: statusCode)
self.saveTrustDocResposeOnPref()
self.hideProgressHud()
if isFromSDKError {
self.openSDK()
}
else {
self.delegate?.newRegister(self, isFromNo: false, currentStep: .choose, nextStep: .first)
}
} catch {
self.hideProgressHud()
}
}
session.resume()
}
session.resume()
else {
self.delegate?.newRegister(self, isFromNo: false, currentStep: .choose, nextStep: .first)
}
}
}
extension KYCVerifyStep1ViewController: TrustdockVerificationDelegate {
@ -1368,6 +1431,7 @@ extension KYCVerifyStep1ViewController: TrustdockVerificationDelegate {
message: "EKYC process was unsuccessful. Click Retry to try again. Click No to select manual KYC process.",
rightButtonTitle: "RETRY",
leftButtonTitle: "NO", rightButtonAction: {
self.isFromSDKError = true
self.initializeSDK()
}, leftButtonAction: {
self.presenter.callCustomerInfoAgreement(flag: false)
@ -1380,6 +1444,7 @@ extension KYCVerifyStep1ViewController: TrustdockVerificationDelegate {
message: "EKYC process using NFC was unsuccessful. Click Retry to try again. Click No to select Non-NFC process.",
rightButtonTitle: "RETRY",
leftButtonTitle: "NO", rightButtonAction: {
self.isFromSDKError = true
self.initializeSDK()
}, leftButtonAction: {
//open sdk without nfc
@ -1464,7 +1529,7 @@ extension TrustdockVerificationError {
}
}
}
class TrustDockResponse {
class TrustDockResponse: Codable {
var id: String?
var publicId: String?
var messgae: String?

2
GME Remit/Modules/RegisterModules/UserAuthentication/KYCVerifyStep1/User Interface/Wireframe/KYCVerifyStep1Wireframe.swift

@ -47,7 +47,7 @@ extension KYCVerifyStep1Wireframe: KYCVerifyStep1WireframeInput {
return viewController
}
func getMainView(with delegate: NewRegisterDelegate?, step: NewRegisterViewController.Step = .first, customerType: String, trustdockModel: TrustDockResponse, redirectTo: String, useNFC: String, fullName: String, dob: String) -> UIViewController {
func getMainView(with delegate: NewRegisterDelegate?, step: NewRegisterViewController.Step = .first, customerType: String, trustdockModel: TrustDockResponse?, redirectTo: String, useNFC: String, fullName: String, dob: String) -> UIViewController {
self.delegate = delegate
self.customerType = customerType
self.trustdockModel = trustdockModel

14
GME Remit/Modules/RegisterModules/UserAuthentication/NewRegister/User Interface/Wireframe/NewRegisterWireframe.swift

@ -45,18 +45,18 @@ extension NewRegisterWireframe: NewRegisterWireframeInput {
step3VC = ExistingUserKycWireframe().getMainView(with: self, step: .terms)
// stepChooseDocVC = KYCVerifyStep1Wireframe().getMainView(with: self, step: .choose, customerType: self.customerType, trustdockModel: trustDockModel, redirectTo: redirectTo, useNFC: useNFC, fullName: fullName, dob: dob)
} else {
if let trustDockModel = trustDockModel {
// if let trustDockModel = trustDockModel {
step1VC = KYCVerifyStep1Wireframe().getMainView(with: self, step: .first, customerType: self.customerType, trustdockModel: trustDockModel, redirectTo: redirectTo, useNFC: useNFC, fullName: fullName, dob: dob)
step2VC = KYCVerifyStep1Wireframe().getMainView(with: self, step: .upload, customerType: self.customerType, trustdockModel: trustDockModel, redirectTo: redirectTo, useNFC: useNFC, fullName: fullName, dob: dob)
step3VC = KYCVerifyStep1Wireframe().getMainView(with: self, step: .terms, customerType: self.customerType, trustdockModel: trustDockModel, redirectTo: redirectTo, useNFC: useNFC, fullName: fullName, dob: dob)
stepChooseDocVC = KYCVerifyStep1Wireframe().getMainView(with: self, step: .choose, customerType: self.customerType, trustdockModel: trustDockModel, redirectTo: redirectTo, useNFC: useNFC, fullName: fullName, dob: dob)
} else {
stepChooseDocVC = KYCVerifyStep1Wireframe().getMainViewWithoutTrustDock(with: self, step: .first, customerType: self.customerType, redirectTo: self.redirectTo, fullName: fullName, dob: dob)
step1VC = KYCVerifyStep1Wireframe().getMainViewWithoutTrustDock(with: self, step: .first, customerType: self.customerType, redirectTo: self.redirectTo, fullName: fullName, dob: dob)
step2VC = KYCVerifyStep1Wireframe().getMainViewWithoutTrustDock(with: self, step: .upload, customerType: self.customerType, redirectTo: self.redirectTo, fullName: fullName, dob: dob)
step3VC = KYCVerifyStep1Wireframe().getMainViewWithoutTrustDock(with: self, step: .terms, customerType: self.customerType, redirectTo: self.redirectTo, fullName: fullName, dob: dob)
}
// } else {
// stepChooseDocVC = KYCVerifyStep1Wireframe().getMainViewWithoutTrustDock(with: self, step: .choose, customerType: self.customerType, redirectTo: self.redirectTo, fullName: fullName, dob: dob)
// step1VC = KYCVerifyStep1Wireframe().getMainViewWithoutTrustDock(with: self, step: .first, customerType: self.customerType, redirectTo: self.redirectTo, fullName: fullName, dob: dob)
// step2VC = KYCVerifyStep1Wireframe().getMainViewWithoutTrustDock(with: self, step: .upload, customerType: self.customerType, redirectTo: self.redirectTo, fullName: fullName, dob: dob)
// step3VC = KYCVerifyStep1Wireframe().getMainViewWithoutTrustDock(with: self, step: .terms, customerType: self.customerType, redirectTo: self.redirectTo, fullName: fullName, dob: dob)
// }
}
let service = NewRegisterService()

BIN
GME Remit/Supported Files/Assets.xcassets/.DS_Store

21
GME Remit/Supported Files/Assets.xcassets/ic_arrow_right_white.imageset/Contents.json

@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "long-arrow-pointing-to-the-right.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

BIN
GME Remit/Supported Files/Assets.xcassets/ic_arrow_right_white.imageset/long-arrow-pointing-to-the-right.png

After

Width: 50  |  Height: 50  |  Size: 2.1 KiB

2
GME Remit/Utilities/ExchangeRateCustomView.swift

@ -54,7 +54,7 @@ class ExchangeRateCustomView: UIView {
var dropdownIcon: UIImageView = {
let dropdownIconImageView = UIImageView()
dropdownIconImageView.image = UIImage.init(named: "dropdown")
dropdownIconImageView.image = UIImage.init(named: "dropdown_white")
dropdownIconImageView.translatesAutoresizingMaskIntoConstraints = false
dropdownIconImageView.clipsToBounds = true
dropdownIconImageView.contentMode = .center

2
GME Remit/Utilities/TabBar Helper/CustomItemTabView.swift

@ -58,7 +58,7 @@ final class CustomItemTabView: UIView {
containerView.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
containerView.topAnchor.constraint(equalTo: self.topAnchor).isActive = true
containerView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
containerView.heightAnchor.constraint(equalToConstant: 46).isActive = true
containerView.heightAnchor.constraint(equalToConstant: 60).isActive = true
underlineView.topAnchor.constraint(equalTo: self.containerView.topAnchor, constant: 0).isActive = true

2
GME Remit/Utilities/TabBar Helper/CustomTabBar.swift

@ -54,7 +54,7 @@ final class CustomTabBar: UIStackView {
alignment = .top
backgroundColor = .themeWhite
setupCornerRadius(20)
setupCornerRadius(29)
customItemViews.forEach {
$0.translatesAutoresizingMaskIntoConstraints = false

Loading…
Cancel
Save